Emmanuel Frimpong Asante commited on
Commit
62b33ab
·
1 Parent(s): 8e2341a

update space

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. backend/app/config/database.py +12 -0
  2. backend/app/main.py +70 -0
  3. backend/app/middleware/auth_middleware.py +87 -0
  4. backend/app/models/auth.h5 +3 -0
  5. backend/app/models/diseases.h5 +3 -0
  6. backend/app/models/group.py +8 -0
  7. backend/app/models/health_record.py +10 -0
  8. backend/app/models/inventory_item.py +9 -0
  9. backend/app/models/task.py +10 -0
  10. backend/app/models/user.py +8 -0
  11. backend/app/routes/auth.py +158 -0
  12. backend/app/routes/chat.py +121 -0
  13. backend/app/routes/dashboard.py +98 -0
  14. backend/app/routes/disease_detection.py +48 -0
  15. backend/app/routes/farm.py +168 -0
  16. backend/app/routes/health.py +198 -0
  17. backend/app/routes/inventory.py +170 -0
  18. backend/app/routes/pages.py +288 -0
  19. backend/app/routes/task.py +155 -0
  20. backend/app/schemas/chat_history_schema.py +29 -0
  21. backend/app/schemas/group_schema.py +13 -0
  22. backend/app/schemas/health_record_schema.py +32 -0
  23. backend/app/schemas/inventory_item_schema.py +83 -0
  24. backend/app/schemas/task_schema.py +15 -0
  25. backend/app/schemas/user_schema.py +28 -0
  26. backend/app/services/auth_service.py +147 -0
  27. backend/app/services/disease_detection.py +281 -0
  28. backend/app/services/llama_service.py +139 -0
  29. backend/app/static/css/adminlte.css +0 -0
  30. backend/app/static/css/adminlte.css.map +0 -0
  31. backend/app/static/css/adminlte.min.css +0 -0
  32. backend/app/static/css/adminlte.min.css.map +0 -0
  33. backend/app/static/css/adminlte.rtl.css +0 -0
  34. backend/app/static/css/adminlte.rtl.css.map +0 -0
  35. backend/app/static/css/adminlte.rtl.min.css +0 -0
  36. backend/app/static/css/adminlte.rtl.min.css.map +0 -0
  37. backend/app/static/css/all.css +0 -0
  38. backend/app/static/css/all.min.css +9 -0
  39. backend/app/static/css/bootstrap-grid.css +5051 -0
  40. backend/app/static/css/bootstrap-grid.css.map +0 -0
  41. backend/app/static/css/bootstrap-grid.min.css +6 -0
  42. backend/app/static/css/bootstrap-grid.min.css.map +0 -0
  43. backend/app/static/css/bootstrap-grid.rtl.css +5051 -0
  44. backend/app/static/css/bootstrap-grid.rtl.css.map +0 -0
  45. backend/app/static/css/bootstrap-grid.rtl.min.css +6 -0
  46. backend/app/static/css/bootstrap-grid.rtl.min.css.map +0 -0
  47. backend/app/static/css/bootstrap-reboot.css +609 -0
  48. backend/app/static/css/bootstrap-reboot.css.map +0 -0
  49. backend/app/static/css/bootstrap-reboot.min.css +6 -0
  50. backend/app/static/css/bootstrap-reboot.min.css.map +1 -0
backend/app/config/database.py ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from pymongo import MongoClient
2
+ from dotenv import load_dotenv
3
+ import os
4
+
5
+ load_dotenv() # Load environment variables
6
+
7
+ client = MongoClient(os.getenv("MONGODB_URI"))
8
+ db = client["poultry_db"] # Define your database name
9
+
10
+
11
+ def get_database():
12
+ return db
backend/app/main.py ADDED
@@ -0,0 +1,70 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # main.py
2
+ import logging
3
+ from fastapi import FastAPI
4
+ from fastapi.staticfiles import StaticFiles
5
+ from fastapi.templating import Jinja2Templates
6
+ from backend.app.routes import auth, farm, health, task, inventory, pages, chat
7
+ from backend.app.routes.dashboard import router as dashboard_router
8
+
9
+ # Initialize logging configuration
10
+ logging.basicConfig(
11
+ level=logging.INFO,
12
+ format="%(asctime)s [%(levelname)s] %(message)s",
13
+ handlers=[logging.StreamHandler()]
14
+ )
15
+ logger = logging.getLogger(__name__)
16
+
17
+ # Initialize the FastAPI app
18
+ app = FastAPI(
19
+ title="Poultry Farming Assistance System",
20
+ description=(
21
+ "An AI-powered system for poultry farm management, offering features "
22
+ "such as disease detection, task management, inventory tracking, and more."
23
+ ),
24
+ version="1.0.0",
25
+ )
26
+
27
+ # Set up Jinja2 templates for frontend rendering
28
+ logger.info("Setting up Jinja2 templates...")
29
+ templates = Jinja2Templates(directory="backend/app/templates")
30
+
31
+ # Mount static files for serving assets like CSS, JS, and images
32
+ logger.info("Mounting static files...")
33
+ app.mount("/static", StaticFiles(directory="backend/app/static"), name="static")
34
+
35
+ # Include individual routers for different system modules
36
+ logger.info("Including routers for different modules...")
37
+
38
+ # Authentication module
39
+ logger.info("Registering Authentication routes...")
40
+ app.include_router(auth.router, prefix="/auth", tags=["Authentication"])
41
+
42
+ # Farm/Group Management module
43
+ logger.info("Registering Farm/Group Management routes...")
44
+ app.include_router(farm.router, prefix="/groups", tags=["Farm Management"])
45
+
46
+ # Health Management module
47
+ logger.info("Registering Health Management routes...")
48
+ app.include_router(health.router, prefix="/health", tags=["Health Management"])
49
+
50
+ # Task Management module
51
+ logger.info("Registering Task Management routes...")
52
+ app.include_router(task.router, prefix="/tasks", tags=["Task Management"])
53
+
54
+ # Inventory Management module
55
+ logger.info("Registering Inventory Management routes...")
56
+ app.include_router(inventory.router, prefix="/inventory", tags=["Inventory Management"])
57
+
58
+ # Dashboard Data module
59
+ logger.info("Registering Dashboard Data routes...")
60
+ app.include_router(dashboard_router, prefix="/dashboard", tags=["Dashboard"])
61
+
62
+ # Chat Integration module
63
+ logger.info("Registering Chat Integration routes...")
64
+ app.include_router(chat.router, prefix="/chat", tags=["AI Chat Integration"])
65
+
66
+ # Frontend Pages module
67
+ logger.info("Registering Frontend Pages routes...")
68
+ app.include_router(pages.router, prefix="", tags=["Frontend Pages"])
69
+
70
+ logger.info("Poultry Farming Assistance System is ready to run.")
backend/app/middleware/auth_middleware.py ADDED
@@ -0,0 +1,87 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # middleware/auth_middleware.py
2
+
3
+ import logging
4
+ from fastapi import HTTPException, Depends, Request
5
+ from fastapi.responses import RedirectResponse
6
+ from backend.app.services.auth_service import verify_token
7
+
8
+ # Initialize logging
9
+ logging.basicConfig(level=logging.INFO)
10
+ logger = logging.getLogger(__name__)
11
+
12
+ SESSION_COOKIE_NAME = "session_token"
13
+
14
+
15
+ def get_current_user(request: Request):
16
+ """
17
+ Retrieve and verify the session token from cookies.
18
+
19
+ Parameters:
20
+ - request (Request): The HTTP request containing cookies.
21
+
22
+ Returns:
23
+ - dict: The decoded JWT payload with complete user details if the token is valid.
24
+
25
+ Redirects to:
26
+ - `/login` for missing, invalid, or expired session tokens, or invalid payloads.
27
+ """
28
+ try:
29
+ # Extract the session token from cookies
30
+ session_token = request.cookies.get(SESSION_COOKIE_NAME)
31
+
32
+ # If no session token is found, redirect to login
33
+ if not session_token:
34
+ logger.warning("Unauthorized access attempt: No session token provided")
35
+ return RedirectResponse(url="/login", status_code=302)
36
+
37
+ # Attempt to verify and decode the session token
38
+ payload = verify_token(session_token)
39
+
40
+ # If verification fails, redirect to login
41
+ if payload is None:
42
+ logger.warning("Unauthorized access attempt with invalid or expired session token")
43
+ return RedirectResponse(url="/login", status_code=302)
44
+
45
+ # Ensure required fields are in the payload
46
+ required_fields = ["user_id", "email", "role", "farm_id"]
47
+ missing_fields = [field for field in required_fields if field not in payload]
48
+ if missing_fields:
49
+ logger.error(f"Payload missing required fields: {missing_fields}")
50
+ return RedirectResponse(url="/login", status_code=302)
51
+
52
+ logger.info(f"Session token verified successfully for user ID: {payload.get('user_id')}")
53
+ return payload
54
+
55
+ except HTTPException as http_err:
56
+ # Redirect to login for HTTP exceptions related to authentication
57
+ if http_err.status_code in {401, 403}:
58
+ return RedirectResponse(url="/login", status_code=302)
59
+ raise http_err
60
+ except Exception as e:
61
+ # Log unexpected errors and redirect to login
62
+ logger.error(f"Unexpected error during session token verification: {e}")
63
+ return RedirectResponse(url="/login", status_code=302)
64
+
65
+
66
+ def role_required(role: str):
67
+ """
68
+ Dependency to enforce role-based access control.
69
+
70
+ Parameters:
71
+ - role (str): The required role for accessing the route.
72
+
73
+ Returns:
74
+ - function: A dependency function to verify the user's role.
75
+
76
+ Prompts and returns the user to the origin for access denied.
77
+ """
78
+ def role_verifier(user=Depends(get_current_user)):
79
+ # Check if the user's role matches the required role
80
+ if user.get("role") != role:
81
+ logger.warning(f"Access denied: User role '{user.get('role')}' does not match required role '{role}'")
82
+ raise HTTPException(status_code=403, detail="Access denied: insufficient permissions")
83
+
84
+ logger.info(f"Access granted for user ID: {user.get('user_id')} with role '{role}'")
85
+ return user
86
+
87
+ return role_verifier
backend/app/models/auth.h5 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:55ca5e07d8f4d45eab021364be749ced18402f85f5edb7425486ed76ea5c3093
3
+ size 234256896
backend/app/models/diseases.h5 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e6fbc0b00b8e4d86b50707fcb39a39f99eecccdb6f4732ea53cdfee793a052c4
3
+ size 234256896
backend/app/models/group.py ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ from pydantic import BaseModel
2
+ from typing import List, Optional
3
+
4
+
5
+ class Group(BaseModel):
6
+ group_name: str
7
+ farmers: Optional[List[str]] = [] # List of farmer IDs
8
+ created_by: str # ID of the user who created the group
backend/app/models/health_record.py ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ from pydantic import BaseModel
2
+ from datetime import datetime
3
+
4
+
5
+ class HealthRecord(BaseModel):
6
+ farm_id: str # ID of the farm
7
+ disease_type: str
8
+ diagnosis_date: datetime
9
+ treatment_given: str
10
+ logged_by: str # ID of the admin logging the health record
backend/app/models/inventory_item.py ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ from pydantic import BaseModel
2
+ from typing import Optional
3
+
4
+ class InventoryItem(BaseModel):
5
+ item_name: str
6
+ quantity: int
7
+ category: Optional[str] # Category is optional
8
+ status: str # Options: 'in-stock', 'out-of-stock'
9
+ updated_by: str # ID of the admin updating the item
backend/app/models/task.py ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ from pydantic import BaseModel
2
+ from datetime import datetime
3
+
4
+
5
+ class Task(BaseModel):
6
+ task_description: str
7
+ assigned_to: str # ID of the user or group assigned the task
8
+ status: str = "pending"
9
+ created_at: datetime
10
+ due_date: datetime
backend/app/models/user.py ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ from pydantic import BaseModel, EmailStr
2
+
3
+
4
+ class User(BaseModel):
5
+ username: str
6
+ email: EmailStr
7
+ password: str
8
+ role: str
backend/app/routes/auth.py ADDED
@@ -0,0 +1,158 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # backend/app/routes/auth.py
2
+ import logging
3
+ from datetime import datetime, timezone
4
+ from fastapi import APIRouter, HTTPException, Response, Request
5
+ from backend.app.config.database import get_database
6
+ from backend.app.schemas.user_schema import LoginRequest, UserCreate
7
+ from backend.app.services.auth_service import hash_password, verify_password, create_token, verify_token
8
+
9
+ # Initialize router and logger
10
+ router = APIRouter()
11
+ db = get_database()
12
+ logger = logging.getLogger(__name__)
13
+
14
+ # Session token cookie name
15
+ SESSION_COOKIE_NAME = "session_token"
16
+
17
+
18
+ @router.post("/register")
19
+ async def register_user(user: UserCreate):
20
+ """
21
+ Register a new user with a unique email.
22
+
23
+ Parameters:
24
+ - user: UserCreate object containing user details (username, email, password, role, and optionally group_name).
25
+
26
+ Returns:
27
+ - Success message if registration is successful.
28
+
29
+ Raises:
30
+ - HTTPException: If the user already exists.
31
+ """
32
+ try:
33
+ # Check if the user already exists
34
+ if db.users.find_one({"email": user.email}):
35
+ logger.warning("Attempt to register an existing user with email: %s", user.email)
36
+ raise HTTPException(status_code=400, detail="User already exists")
37
+
38
+ # Hash password and create the user data dictionary
39
+ hashed_password = hash_password(user.password)
40
+ user_data = {
41
+ "username": user.username,
42
+ "email": user.email,
43
+ "password_hash": hashed_password,
44
+ "role": user.role,
45
+ "created_at": datetime.now(timezone.utc),
46
+ "group_name": user.group_name if user.role == "admin" else None # Group name only for admin role
47
+ }
48
+
49
+ # Conditional group creation for admin role
50
+ if user.role == "admin":
51
+ group_data = {
52
+ "group_name": user.group_name or f"{user.username}'s Farm",
53
+ "created_at": datetime.now(timezone.utc)
54
+ }
55
+ group_id = db.groups.insert_one(group_data).inserted_id
56
+ user_data["farm_id"] = group_id
57
+
58
+ # Insert the new user into the database
59
+ db.users.insert_one(user_data)
60
+ logger.info("New user registered successfully with email: %s", user.email)
61
+ return {"message": "User registered successfully"}
62
+
63
+ except Exception as e:
64
+ logger.error("Error registering user: %s", str(e))
65
+ raise HTTPException(status_code=500, detail="Internal server error")
66
+
67
+ @router.post("/login")
68
+ async def login_user(login: LoginRequest, response: Response):
69
+ """
70
+ Authenticate a user and set a session cookie with the token.
71
+
72
+ Parameters:
73
+ - login: LoginRequest object containing email and password.
74
+
75
+ Returns:
76
+ - A success message if login is successful.
77
+
78
+ Raises:
79
+ - HTTPException: If the email or password is incorrect.
80
+ """
81
+ try:
82
+ logger.info("Login process initiated for email: %s", login.email)
83
+
84
+ # Find user by email
85
+ user = db.users.find_one({"email": login.email})
86
+ if not user or not verify_password(login.password, user["password_hash"]):
87
+ logger.warning("Failed login attempt for email: %s", login.email)
88
+ raise HTTPException(status_code=400, detail="Invalid email or password")
89
+
90
+ # Generate token
91
+ token_data = {
92
+ "user_id": str(user["_id"]), # Convert ObjectId to string
93
+ "email": user["email"],
94
+ "role": user["role"],
95
+ "farm_id": str(user.get("farm_id", "")) # Convert farm_id if present
96
+ }
97
+ token = create_token(token_data)
98
+
99
+ # Set the session cookie
100
+ response.set_cookie(
101
+ key=SESSION_COOKIE_NAME,
102
+ value=token,
103
+ httponly=True, # Prevent JavaScript access
104
+ secure=True, # Use only over HTTPS
105
+ samesite="lax" # Prevent CSRF in cross-site requests
106
+ )
107
+ logger.info("User logged in successfully with email: %s", login.email)
108
+ return {"message": "Login successful"}
109
+
110
+ except Exception as e:
111
+ logger.error("Unexpected error during login: %s", str(e))
112
+ raise HTTPException(status_code=500, detail="Internal server error")
113
+
114
+ @router.post("/logout")
115
+ async def logout_user(response: Response):
116
+ """
117
+ Logout a user by clearing the session cookie.
118
+
119
+ Returns:
120
+ - A success message indicating the user has been logged out.
121
+ """
122
+ response.delete_cookie(SESSION_COOKIE_NAME)
123
+ logger.info("User logged out successfully")
124
+ return {"message": "User logged out successfully"}
125
+
126
+ @router.get("/me")
127
+ async def get_current_user_info(request: Request):
128
+ """
129
+ Retrieve the current authenticated user's information.
130
+
131
+ Parameters:
132
+ - request: HTTP request to extract the session token from cookies.
133
+
134
+ Returns:
135
+ - The user's information.
136
+
137
+ Raises:
138
+ - HTTPException: If the session token is invalid or expired.
139
+ """
140
+ try:
141
+ session_token = request.cookies.get(SESSION_COOKIE_NAME)
142
+ if not session_token:
143
+ raise HTTPException(status_code=401, detail="Not authenticated")
144
+
145
+ payload = verify_token(session_token)
146
+ if not payload:
147
+ raise HTTPException(status_code=401, detail="Invalid or expired session token")
148
+
149
+ user_id = payload.get("user_id")
150
+ user = db.users.find_one({"_id": user_id})
151
+ if not user:
152
+ raise HTTPException(status_code=404, detail="User not found")
153
+
154
+ return {"user_id": user_id, "email": user["email"], "role": user["role"]}
155
+
156
+ except Exception as e:
157
+ logger.error("Error retrieving current user: %s", str(e))
158
+ raise HTTPException(status_code=500, detail="Internal server error")
backend/app/routes/chat.py ADDED
@@ -0,0 +1,121 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # routes/chat.py
2
+
3
+ from fastapi import APIRouter, HTTPException, Depends, UploadFile, File
4
+ from datetime import datetime, timezone
5
+ from backend.app.config.database import get_database
6
+ from backend.app.middleware.auth_middleware import get_current_user
7
+ from backend.app.services.llama_service import process_message
8
+ from backend.app.services.disease_detection import detect_disease
9
+ from bson import ObjectId
10
+
11
+ router = APIRouter()
12
+ db = get_database()
13
+
14
+ @router.post("/")
15
+ async def chat_with_ai(message: str, current_user: dict = Depends(get_current_user)):
16
+ """
17
+ Process user messages using Llama-3.2 and return a response.
18
+ """
19
+ try:
20
+ user_id = ObjectId(current_user["_id"])
21
+ session_id = ObjectId()
22
+
23
+ # Retrieve the latest chat session for context
24
+ chat_session = db.chat_histories.find_one({"user_id": user_id}, sort=[("updated_at", -1)])
25
+ session_id = chat_session["session_id"] if chat_session else session_id
26
+
27
+ # Process the message with Llama-3.2
28
+ response = process_message(user_id, session_id, message)
29
+
30
+ # Save the chat to history
31
+ chat_entry = {
32
+ "user_id": user_id,
33
+ "session_id": session_id,
34
+ "user_message": message,
35
+ "assistant_response": response,
36
+ "timestamp": datetime.now(timezone.utc)
37
+ }
38
+ db.chat_histories.update_one(
39
+ {"user_id": user_id, "session_id": session_id},
40
+ {"$push": {"messages": chat_entry}, "$set": {"updated_at": datetime.now(timezone.utc)}},
41
+ upsert=True
42
+ )
43
+
44
+ return {"response": response}
45
+ except Exception as e:
46
+ raise HTTPException(status_code=500, detail="Error processing message.")
47
+
48
+
49
+ @router.post("/upload")
50
+ async def upload_image(file: UploadFile = File(...), current_user: dict = Depends(get_current_user)):
51
+ """
52
+ Upload an image for disease detection and return the analysis result.
53
+ """
54
+ try:
55
+ # Read and analyze the image
56
+ file_bytes = await file.read()
57
+ analysis_result = detect_disease(file_bytes)
58
+
59
+ if analysis_result["name"] == "Unknown Image":
60
+ raise HTTPException(status_code=400, detail="Invalid image format.")
61
+
62
+ # Save the analysis result to the database
63
+ analysis_entry = {
64
+ "user_id": ObjectId(current_user["_id"]),
65
+ "file_name": file.filename,
66
+ "analysis_result": analysis_result,
67
+ "timestamp": datetime.now(timezone.utc)
68
+ }
69
+ db.image_analysis.insert_one(analysis_entry)
70
+
71
+ return {"analysis_result": analysis_result}
72
+ except Exception as e:
73
+ raise HTTPException(status_code=500, detail="Error analyzing image.")
74
+
75
+
76
+ @router.get("/history")
77
+ async def get_chat_history(current_user: dict = Depends(get_current_user)):
78
+ """
79
+ Retrieve previous chat history for the logged-in user.
80
+ """
81
+ try:
82
+ user_id = ObjectId(current_user["_id"])
83
+ history = list(db.chat_histories.find({"user_id": user_id}).sort("updated_at", -1))
84
+
85
+ # Convert ObjectId to string for JSON serialization
86
+ for chat in history:
87
+ chat["_id"] = str(chat["_id"])
88
+ chat["session_id"] = str(chat["session_id"])
89
+ chat["messages"] = [
90
+ {
91
+ "user_message": msg["user_message"],
92
+ "assistant_response": msg["assistant_response"],
93
+ "timestamp": msg["timestamp"].isoformat()
94
+ }
95
+ for msg in chat["messages"]
96
+ ]
97
+
98
+ return history
99
+ except Exception as e:
100
+ raise HTTPException(status_code=500, detail="Error retrieving chat history.")
101
+
102
+
103
+ @router.post("/new")
104
+ async def start_new_chat(current_user: dict = Depends(get_current_user)):
105
+ """
106
+ Start a new chat session by clearing context.
107
+ """
108
+ try:
109
+ # Create a new session entry without history
110
+ session_id = ObjectId()
111
+ db.chat_histories.insert_one({
112
+ "user_id": ObjectId(current_user["_id"]),
113
+ "session_id": session_id,
114
+ "messages": [],
115
+ "created_at": datetime.now(timezone.utc),
116
+ "updated_at": datetime.now(timezone.utc)
117
+ })
118
+
119
+ return {"message": "New chat started. Previous context cleared.", "session_id": str(session_id)}
120
+ except Exception as e:
121
+ raise HTTPException(status_code=500, detail="Error starting new chat.")
backend/app/routes/dashboard.py ADDED
@@ -0,0 +1,98 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # backend/app/routes/dashboard.py
2
+
3
+ from datetime import datetime
4
+ import logging
5
+ from fastapi import APIRouter, Depends, HTTPException
6
+ from backend.app.config.database import get_database
7
+ from backend.app.middleware.auth_middleware import get_current_user
8
+
9
+ # Initialize router and logger
10
+ router = APIRouter()
11
+ db = get_database()
12
+ logger = logging.getLogger(__name__)
13
+
14
+
15
+
16
+ @router.get("/data")
17
+ async def get_dashboard_data(current_user: dict = Depends(get_current_user)):
18
+ """
19
+ Fetch dashboard data for the logged-in user.
20
+
21
+ Returns:
22
+ - Tasks count, inventory count, health records count.
23
+ - Recent tasks and health records (last 5 entries).
24
+ """
25
+ try:
26
+ if not current_user:
27
+ raise HTTPException(status_code=401, detail="Unauthorized access")
28
+
29
+ # Fetch user details
30
+ user_role = current_user.get("role")
31
+ user_farm_id = current_user.get("farm_id")
32
+
33
+ # Initialize response data
34
+ response_data = {
35
+ "tasksCount": 0,
36
+ "inventoryCount": 0,
37
+ "healthRecordsCount": 0,
38
+ "recentTasks": [],
39
+ "recentHealthRecords": []
40
+ }
41
+
42
+ # Fetch data based on user role
43
+ if user_role == "admin":
44
+ response_data["tasksCount"] = db.tasks.count_documents({"created_by": current_user["user_id"]})
45
+ response_data["inventoryCount"] = db.inventory.count_documents({"farm_id": user_farm_id})
46
+ response_data["healthRecordsCount"] = db.health_records.count_documents({"farm_id": user_farm_id})
47
+
48
+ # Recent tasks and health records (admin)
49
+ response_data["recentTasks"] = list(
50
+ db.tasks.find({"created_by": current_user["user_id"]})
51
+ .sort("created_at", -1)
52
+ .limit(5)
53
+ )
54
+ response_data["recentHealthRecords"] = list(
55
+ db.health_records.find({"farm_id": user_farm_id})
56
+ .sort("diagnosis_date", -1)
57
+ .limit(5)
58
+ )
59
+
60
+ elif user_role == "farmer":
61
+ response_data["tasksCount"] = db.tasks.count_documents({"assigned_to": current_user["user_id"]})
62
+ response_data["healthRecordsCount"] = db.health_records.count_documents({"farm_id": user_farm_id})
63
+
64
+ # Recent tasks and health records (farmer)
65
+ response_data["recentTasks"] = list(
66
+ db.tasks.find({"assigned_to": current_user["user_id"]})
67
+ .sort("created_at", -1)
68
+ .limit(5)
69
+ )
70
+ response_data["recentHealthRecords"] = list(
71
+ db.health_records.find({"farm_id": user_farm_id})
72
+ .sort("diagnosis_date", -1)
73
+ .limit(5)
74
+ )
75
+
76
+ # Convert MongoDB ObjectId to strings and ensure datetime fields are serialized correctly
77
+ for task in response_data["recentTasks"]:
78
+ task["_id"] = str(task["_id"])
79
+ # Safely handle due_date
80
+ if isinstance(task.get("due_date"), datetime):
81
+ task["due_date"] = task["due_date"].isoformat()
82
+ else:
83
+ task["due_date"] = task.get("due_date", "N/A")
84
+
85
+ for record in response_data["recentHealthRecords"]:
86
+ record["_id"] = str(record["_id"])
87
+ # Safely handle diagnosis_date
88
+ if isinstance(record.get("diagnosis_date"), datetime):
89
+ record["diagnosis_date"] = record["diagnosis_date"].isoformat()
90
+ else:
91
+ record["diagnosis_date"] = record.get("diagnosis_date", "N/A")
92
+
93
+ logger.info("Dashboard data fetched successfully for user: %s", current_user["email"])
94
+ return response_data
95
+
96
+ except Exception as e:
97
+ logger.error("Error fetching dashboard data: %s", str(e))
98
+ raise HTTPException(status_code=500, detail="Internal server error")
backend/app/routes/disease_detection.py ADDED
@@ -0,0 +1,48 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # app/routes/disease_detection.py
2
+
3
+ from fastapi import APIRouter, HTTPException, UploadFile, File
4
+ from backend.app.services.disease_detection import detect_disease
5
+ import logging
6
+
7
+ # Initialize router and logger
8
+ router = APIRouter()
9
+ logger = logging.getLogger(__name__)
10
+
11
+
12
+ @router.post("/predict_disease/")
13
+ async def predict_disease_endpoint(file: UploadFile = File(...)):
14
+ """
15
+ Endpoint to upload an image and predict the disease.
16
+
17
+ Parameters:
18
+ - file (UploadFile): An image file of the poultry to analyze.
19
+
20
+ Returns:
21
+ - JSON response containing disease name, status, and recommendation.
22
+
23
+ Raises:
24
+ - HTTPException: If there is an error in disease detection.
25
+ """
26
+ try:
27
+ # Verify the file is an image
28
+ if not file.content_type.startswith("image/"):
29
+ logger.warning("Invalid file type: %s", file.content_type)
30
+ raise HTTPException(status_code=400, detail="Invalid file type. Please upload an image.")
31
+
32
+ # Read the file contents
33
+ image_data = await file.read()
34
+
35
+ # Run disease detection
36
+ result = detect_disease(image_data)
37
+
38
+ # Log and return the result
39
+ logger.info("Disease prediction completed successfully.")
40
+ return result
41
+
42
+ except HTTPException as http_error:
43
+ # Forward HTTP exceptions directly
44
+ raise http_error
45
+ except Exception as e:
46
+ # Log and return a generic error message for unexpected issues
47
+ logger.error("Unhandled error in disease prediction endpoint: %s", e)
48
+ raise HTTPException(status_code=500, detail="Unexpected error during disease prediction.")
backend/app/routes/farm.py ADDED
@@ -0,0 +1,168 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # backend/app/routes/farm.py
2
+
3
+ import logging
4
+ from datetime import datetime, timezone
5
+ from bson import ObjectId
6
+ from fastapi import APIRouter, HTTPException, Depends
7
+ from backend.app.config.database import get_database
8
+ from backend.app.middleware.auth_middleware import get_current_user
9
+ from backend.app.models.user import User
10
+ from fastapi.encoders import jsonable_encoder
11
+
12
+ # Initialize router and logger
13
+ router = APIRouter()
14
+ db = get_database()
15
+ logger = logging.getLogger(__name__)
16
+
17
+ @router.post("/")
18
+ async def create_group(group_name: str, current_user: dict = Depends(get_current_user)):
19
+ """
20
+ Create a new group (farm) by an admin.
21
+ """
22
+ if current_user["role"] != "admin":
23
+ logger.warning("Unauthorized group creation attempt by user: %s", current_user["email"])
24
+ raise HTTPException(status_code=403, detail="Only admins can create groups")
25
+
26
+ try:
27
+ group_data = {
28
+ "group_name": group_name,
29
+ "farmers": [],
30
+ "created_by": ObjectId(current_user["_id"]),
31
+ "created_at": datetime.now(timezone.utc),
32
+ }
33
+
34
+ result = db.groups.insert_one(group_data)
35
+ logger.info("New group created successfully with name: %s by admin: %s", group_name, current_user["email"])
36
+ return {"message": "Group created successfully", "group_id": str(result.inserted_id)}
37
+ except Exception as e:
38
+ logger.error("Error creating group: %s", str(e))
39
+ raise HTTPException(status_code=500, detail="Internal server error")
40
+
41
+
42
+ @router.post("/add_farmer")
43
+ async def add_farmer_to_group(farmer: User, current_user: dict = Depends(get_current_user)):
44
+ """
45
+ Add a farmer to the admin's group.
46
+ """
47
+ group_id = ObjectId(current_user["farm_id"]) # Directly derive the group ID
48
+ if current_user["role"] != "admin":
49
+ logger.warning("Unauthorized add_farmer attempt by user: %s", current_user["email"])
50
+ raise HTTPException(status_code=403, detail="Only admins can add farmers to groups")
51
+
52
+ try:
53
+ group = db.groups.find_one({"created_by": ObjectId(current_user["user_id"])})
54
+ if not group:
55
+ logger.warning("Group not found or unauthorized access by admin: %s", current_user["email"])
56
+ raise HTTPException(status_code=404, detail="Group not found or unauthorized access")
57
+
58
+ farmer_data = farmer.model_dump()
59
+
60
+ farmer_data["role"] = "farmer"
61
+ farmer_data["farm_id"] = ObjectId(current_user["farm_id"])
62
+ farmer_data["created_at"] = datetime.now(timezone.utc)
63
+
64
+ result = db.users.insert_one(farmer_data)
65
+
66
+ # Add farmer to the group's farmer list
67
+ db.groups.update_one(
68
+ {"_id": ObjectId(current_user["farm_id"])},
69
+ {"$addToSet": {"farmers": result.inserted_id}}
70
+ )
71
+
72
+ logger.info("Farmer %s added to group %s by admin %s", farmer.username, group_id, current_user["email"])
73
+ return {"message": "Farmer added to group successfully"}
74
+ except Exception as e:
75
+ logger.error("Error adding farmer to group: %s", str(e))
76
+ raise HTTPException(status_code=500, detail="Internal server error")
77
+
78
+
79
+ @router.get("/farmers")
80
+ async def get_farmers_in_group(current_user: dict = Depends(get_current_user)):
81
+ """
82
+ Retrieve all farmers in the admin's group.
83
+ """
84
+ group_id = ObjectId(current_user["farm_id"]) # Directly derive the group ID
85
+ if current_user["role"] != "admin":
86
+ logger.warning("Unauthorized farmers retrieval attempt by user: %s", current_user["email"])
87
+ raise HTTPException(status_code=403, detail="Only admins can view farmers in groups")
88
+
89
+ try:
90
+ # Fetch the group by the admin's user ID
91
+ group = db.groups.find_one({"created_by": ObjectId(current_user["user_id"])})
92
+ if not group:
93
+ logger.warning("Group not found or unauthorized access by admin: %s", current_user["email"])
94
+ raise HTTPException(status_code=404, detail="Group not found or unauthorized access")
95
+
96
+ # Retrieve farmers in the group
97
+ farmers = list(db.users.find({"farm_id": ObjectId(current_user["farm_id"]), "role": "farmer"}, {"password_hash": 0}))
98
+
99
+ # Convert ObjectId fields to strings
100
+ for farmer in farmers:
101
+ farmer["_id"] = str(farmer["_id"])
102
+ farmer["farm_id"] = str(farmer["farm_id"])
103
+
104
+ logger.info("Farmers retrieved successfully for group %s by admin %s", group_id, current_user["email"])
105
+ return jsonable_encoder(farmers) # Encode data to make it JSON serializable
106
+ except Exception as e:
107
+ logger.error("Error retrieving farmers in group: %s", str(e))
108
+ raise HTTPException(status_code=500, detail="Internal server error")
109
+
110
+
111
+ @router.delete("/remove_farmer/{farmer_id}")
112
+ async def remove_farmer_from_group(farmer_id: str, current_user: dict = Depends(get_current_user)):
113
+ """
114
+ Remove a farmer from the admin's group.
115
+ """
116
+ group_id = ObjectId(current_user["farm_id"]) # Directly derive the group ID
117
+ if current_user["role"] != "admin":
118
+ logger.warning("Unauthorized remove_farmer attempt by user: %s", current_user["email"])
119
+ raise HTTPException(status_code=403, detail="Only admins can remove farmers from groups")
120
+
121
+ try:
122
+ group = db.groups.find_one({ "created_by": ObjectId(current_user["user_id"])})
123
+ if not group:
124
+ logger.warning("Group not found or unauthorized access by admin: %s", current_user["email"])
125
+ raise HTTPException(status_code=404, detail="Group not found or unauthorized access")
126
+
127
+ # Remove farmer from the group and users collection
128
+ db.groups.update_one(
129
+ {"_id": group_id},
130
+ {"$pull": {"farmers": ObjectId(farmer_id)}}
131
+ )
132
+ result = db.users.delete_one({"_id": ObjectId(farmer_id), "farm_id": str(group_id)})
133
+ if result.deleted_count == 0:
134
+ logger.warning("Farmer deletion failed for ID: %s in group: %s", farmer_id, group_id)
135
+ raise HTTPException(status_code=404, detail="Farmer not found in group")
136
+
137
+ logger.info("Farmer with ID %s removed from group %s by admin %s", farmer_id, group_id, current_user["email"])
138
+ return {"message": "Farmer removed from group successfully"}
139
+ except Exception as e:
140
+ logger.error("Error removing farmer from group: %s", str(e))
141
+ raise HTTPException(status_code=500, detail="Internal server error")
142
+
143
+
144
+ @router.get("/name")
145
+ async def get_group_name(current_user: dict = Depends(get_current_user)):
146
+ """
147
+ Retrieve the name of the group (farm) by its ID.
148
+ """
149
+ group_id = ObjectId(current_user["farm_id"])
150
+ logger.info(current_user["farm_id"])
151
+ # Directly derive the group ID
152
+ if current_user["role"] != "admin":
153
+ logger.warning("Unauthorized get_group_name attempt by user: %s", current_user["email"])
154
+ raise HTTPException(status_code=403, detail="Only admins can view group names")
155
+
156
+ try:
157
+ group = db.groups.find_one({ "created_by": ObjectId(current_user["user_id"])})
158
+ if not group:
159
+ logger.warning("Group not found or unauthorized access attempt by admin: %s", current_user["email"])
160
+ raise HTTPException(status_code=404, detail="Group not found or unauthorized access")
161
+
162
+ group_name = group.get("group_name", "Unnamed Group")
163
+ logger.info("Group name retrieved successfully: %s by admin %s", group_name, current_user["email"])
164
+ return {"group_id": str(group_id), "group_name": group_name}
165
+ except Exception as e:
166
+ logger.error("Error retrieving group name: %s", str(e))
167
+ raise HTTPException(status_code=500, detail="Internal server error")
168
+
backend/app/routes/health.py ADDED
@@ -0,0 +1,198 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # backend/app/routes/health.py
2
+
3
+ import logging
4
+ from datetime import datetime, timezone
5
+ from bson import ObjectId
6
+ from fastapi import APIRouter, HTTPException, Depends, UploadFile, File
7
+ from backend.app.config.database import get_database
8
+ from backend.app.middleware.auth_middleware import get_current_user
9
+ from backend.app.schemas.health_record_schema import HealthRecordSchema
10
+ from backend.app.services.disease_detection import detect_disease
11
+ import cv2
12
+ import numpy as np
13
+ # Initialize router and logger
14
+ router = APIRouter()
15
+ db = get_database()
16
+ logger = logging.getLogger(__name__)
17
+
18
+
19
+ # @router.post("/detect_and_log")
20
+ # async def detect_and_log_health_record(
21
+ # file: UploadFile = File(...),
22
+ # current_user: dict = Depends(get_current_user)
23
+ # ):
24
+ # """
25
+ # Detect disease from an uploaded image and log a health record if a disease is detected.
26
+ # """
27
+ # try:
28
+ # # Read file content as bytes
29
+ # file_bytes = await file.read()
30
+ #
31
+ # # Detect disease
32
+ # detection_result = detect_disease(file_bytes)
33
+ #
34
+ # # Extract disease details
35
+ # disease_name = detection_result.get("name")
36
+ # recommendation = detection_result.get("recommendation")
37
+ #
38
+ # if disease_name == "Unknown Image":
39
+ # logger.info("Invalid image detected. No health record logged.")
40
+ # return {
41
+ # "message": "Invalid image. Health record not logged.",
42
+ # "disease_name": disease_name,
43
+ # "recommendation": recommendation,
44
+ # }
45
+ #
46
+ # # Prepare health record data
47
+ # record_data = {
48
+ # "farm_id": current_user["farm_id"],
49
+ # "disease_type": disease_name,
50
+ # "diagnosis_date": datetime.now(timezone.utc),
51
+ # "recommendation": recommendation,
52
+ # "logged_by": current_user["user_id"],
53
+ # }
54
+ #
55
+ # # Insert record into the database
56
+ # db.health_records.insert_one(record_data)
57
+ #
58
+ # logger.info("Health record logged successfully for farm ID: %s", current_user["farm_id"])
59
+ # return {
60
+ # "message": "Health record logged successfully",
61
+ # "disease_name": disease_name,
62
+ # "recommendation": recommendation,
63
+ # }
64
+ #
65
+ # except Exception as e:
66
+ # logger.error("Error during disease detection or logging: %s", str(e))
67
+ # raise HTTPException(status_code=500, detail="Internal server error")
68
+
69
+ @router.post("/detect_and_log")
70
+ async def detect_and_log_health_record(
71
+ file: UploadFile = File(...),
72
+ current_user: dict = Depends(get_current_user)
73
+ ):
74
+ """
75
+ Detect disease from an uploaded image and log a health record if a disease is detected.
76
+ """
77
+ try:
78
+ # Ensure the file pointer is at the start
79
+ file.file.seek(0)
80
+
81
+ # Pass the file object directly to the detection function
82
+ detection_result = detect_disease(file.file)
83
+
84
+ # Extract disease details
85
+ disease_name = detection_result.get("name")
86
+ recommendation = detection_result.get("recommendation")
87
+
88
+ if disease_name == "Unknown Image":
89
+ logger.info("Invalid image detected. No health record logged.")
90
+ return {
91
+ "message": "Invalid image. Health record not logged.",
92
+ "disease_name": disease_name,
93
+ "recommendation": recommendation,
94
+ }
95
+
96
+ # Prepare health record data
97
+ record_data = {
98
+ "farm_id": current_user["farm_id"],
99
+ "disease_type": disease_name,
100
+ "diagnosis_date": datetime.now(timezone.utc),
101
+ "recommendation": recommendation,
102
+ "logged_by": current_user["user_id"],
103
+ }
104
+
105
+ # Insert record into the database
106
+ db.health_records.insert_one(record_data)
107
+
108
+ logger.info(
109
+ "Health record logged successfully for farm ID: %s",
110
+ current_user["farm_id"]
111
+ )
112
+ return {
113
+ "message": "Health record logged successfully",
114
+ "disease_name": disease_name,
115
+ "recommendation": recommendation,
116
+ }
117
+
118
+ except Exception as e:
119
+ logger.error("Error during disease detection or logging: %s", str(e))
120
+ raise HTTPException(status_code=500, detail="Internal server error")
121
+
122
+ @router.get("/")
123
+ async def get_health_records(current_user: dict = Depends(get_current_user)):
124
+ """
125
+ Retrieve all health records for the user's associated farm.
126
+ """
127
+ try:
128
+ farm_id = current_user["farm_id"]
129
+ logger.info("Fetching health records for farm ID: %s", farm_id)
130
+
131
+ # Query health records by farm ID
132
+ records = list(db.health_records.find({"farm_id": farm_id}))
133
+
134
+ if not records:
135
+ logger.info("No health records found for farm ID: %s", farm_id)
136
+ return []
137
+
138
+ # Convert ObjectId fields to strings
139
+ for record in records:
140
+ record["_id"] = str(record["_id"])
141
+
142
+ return [HealthRecordSchema(**record) for record in records]
143
+
144
+ except Exception as e:
145
+ logger.error("Error retrieving health records: %s", str(e))
146
+ raise HTTPException(status_code=500, detail="Internal server error")
147
+
148
+ @router.put("/{record_id}")
149
+ async def update_health_record(
150
+ record_id: str,
151
+ updated_data: HealthRecordSchema,
152
+ current_user: dict = Depends(get_current_user)
153
+ ):
154
+ """
155
+ Update an existing health record for the user's associated farm.
156
+ """
157
+ try:
158
+ farm_id = current_user["farm_id"]
159
+
160
+ # Update the health record
161
+ result = db.health_records.update_one(
162
+ {"_id": ObjectId(record_id), "farm_id": farm_id},
163
+ {"$set": updated_data.model_dump(exclude_unset=True)}
164
+ )
165
+
166
+ if result.matched_count == 0:
167
+ logger.warning("Health record not found or unauthorized for record ID: %s", record_id)
168
+ raise HTTPException(status_code=404, detail="Health record not found or unauthorized")
169
+
170
+ logger.info("Health record updated successfully for record ID: %s", record_id)
171
+ return {"message": "Health record updated successfully"}
172
+
173
+ except Exception as e:
174
+ logger.error("Error updating health record: %s", str(e))
175
+ raise HTTPException(status_code=500, detail="Internal server error")
176
+
177
+
178
+ @router.delete("/{record_id}")
179
+ async def delete_health_record(record_id: str, current_user: dict = Depends(get_current_user)):
180
+ """
181
+ Delete a health record for the user's associated farm.
182
+ """
183
+ try:
184
+ farm_id = current_user["farm_id"]
185
+
186
+ # Delete the health record
187
+ result = db.health_records.delete_one({"_id": ObjectId(record_id), "farm_id": farm_id})
188
+
189
+ if result.deleted_count == 0:
190
+ logger.warning("Health record not found or unauthorized for record ID: %s", record_id)
191
+ raise HTTPException(status_code=404, detail="Health record not found or unauthorized")
192
+
193
+ logger.info("Health record deleted successfully for record ID: %s", record_id)
194
+ return {"message": "Health record deleted successfully"}
195
+
196
+ except Exception as e:
197
+ logger.error("Error deleting health record: %s", str(e))
198
+ raise HTTPException(status_code=500, detail="Internal server error")
backend/app/routes/inventory.py ADDED
@@ -0,0 +1,170 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # backend/app/routes/inventory.py
2
+
3
+ import logging
4
+ from datetime import datetime, timezone
5
+ from bson.objectid import ObjectId
6
+ from fastapi import APIRouter, HTTPException, Depends
7
+ from backend.app.config.database import get_database
8
+ from backend.app.middleware.auth_middleware import get_current_user
9
+ from backend.app.schemas.inventory_item_schema import InventoryItemSchema, InventoryItemUpdate, InventoryItemCreate
10
+
11
+ # Initialize router, database, and logger
12
+ router = APIRouter()
13
+ db = get_database()
14
+ logger = logging.getLogger(__name__)
15
+
16
+
17
+ @router.post("/", response_model=dict)
18
+ async def add_inventory_item(
19
+ item: InventoryItemCreate, current_user: dict = Depends(get_current_user)
20
+ ):
21
+ """
22
+ Add a new inventory item.
23
+
24
+ Parameters:
25
+ - item: InventoryItemCreate schema containing details of the item.
26
+ - current_user: The authenticated user adding the item.
27
+
28
+ Returns:
29
+ - Success message with the item ID if the item is added successfully.
30
+ """
31
+ try:
32
+ item_data = item.model_dump(exclude_none=True)
33
+ item_data.update({
34
+ "last_updated": datetime.now(timezone.utc),
35
+ "updated_by": current_user["user_id"],
36
+ })
37
+
38
+ # Insert the item into the inventory collection
39
+ result = db.inventory.insert_one(item_data)
40
+ logger.info("Inventory item added successfully: %s", item.item_name)
41
+ return {"message": "Inventory item added successfully", "item_id": str(result.inserted_id)}
42
+ except Exception as e:
43
+ logger.error("Error adding inventory item: %s", str(e))
44
+ raise HTTPException(status_code=500, detail="Internal server error")
45
+
46
+ @router.get("/", response_model=list[InventoryItemSchema])
47
+ async def get_inventory_items(current_user: dict = Depends(get_current_user)):
48
+ """
49
+ Retrieve all inventory items for the authenticated user's farm.
50
+
51
+ Parameters:
52
+ - current_user: The authenticated user.
53
+
54
+ Returns:
55
+ - A list of inventory items associated with the user's farm.
56
+ """
57
+ try:
58
+ # Get the farm_id from the authenticated user
59
+ farm_id = current_user.get("farm_id")
60
+ if not farm_id:
61
+ logger.warning("Authenticated user has no associated farm_id")
62
+ raise HTTPException(status_code=403, detail="User does not have access to any farm")
63
+
64
+ # Query inventory items by farm_id
65
+ items = list(db.inventory.find({"farm_id": farm_id}))
66
+ logger.info("Fetched inventory items for farm_id: %s", farm_id)
67
+
68
+ # Convert MongoDB ObjectId to string for `_id`
69
+ for item in items:
70
+ item["_id"] = str(item["_id"])
71
+
72
+ # Return items serialized using InventoryItemSchema
73
+ return [InventoryItemSchema(**item) for item in items]
74
+ except Exception as e:
75
+ logger.error("Error fetching inventory items: %s", str(e))
76
+ raise HTTPException(status_code=500, detail="Internal server error")
77
+
78
+
79
+ @router.get("/{item_id}", response_model=InventoryItemSchema)
80
+ async def get_inventory_item(item_id: str):
81
+ """
82
+ Retrieve an inventory item by its unique ID.
83
+
84
+ Parameters:
85
+ - item_id: The unique identifier of the inventory item.
86
+
87
+ Returns:
88
+ - InventoryItemSchema if the item is found.
89
+ """
90
+ try:
91
+ if not ObjectId.is_valid(item_id):
92
+ raise HTTPException(status_code=400, detail="Invalid item ID format")
93
+
94
+ # Find item by ID
95
+ item = db.inventory.find_one({"_id": ObjectId(item_id)})
96
+ if not item:
97
+ logger.warning("Inventory item not found: %s", item_id)
98
+ raise HTTPException(status_code=404, detail="Inventory item not found")
99
+
100
+ logger.info("Inventory item retrieved: %s", item_id)
101
+ return InventoryItemSchema(**item)
102
+ except Exception as e:
103
+ logger.error("Error retrieving inventory item: %s", str(e))
104
+ raise HTTPException(status_code=500, detail="Internal server error")
105
+
106
+
107
+ @router.put("/{item_id}", response_model=dict)
108
+ async def update_inventory_item(
109
+ item_id: str, item: InventoryItemUpdate, current_user: dict = Depends(get_current_user)
110
+ ):
111
+ """
112
+ Update an existing inventory item by its unique ID.
113
+
114
+ Parameters:
115
+ - item_id: The unique identifier of the inventory item.
116
+ - item: InventoryItemUpdate containing updated details.
117
+ - current_user: The authenticated user making the update.
118
+
119
+ Returns:
120
+ - Success message if the item is updated successfully.
121
+ """
122
+ try:
123
+ if not ObjectId.is_valid(item_id):
124
+ raise HTTPException(status_code=400, detail="Invalid item ID format")
125
+
126
+ update_data = item.model_dump(exclude_none=True)
127
+ update_data.update({
128
+ "last_updated": datetime.now(timezone.utc),
129
+ "updated_by": current_user["user_id"],
130
+ })
131
+
132
+ # Update item data in the database
133
+ result = db.inventory.update_one({"_id": ObjectId(item_id)}, {"$set": update_data})
134
+ if result.matched_count == 0:
135
+ logger.warning("Inventory item update failed: %s", item_id)
136
+ raise HTTPException(status_code=404, detail="Inventory item not found")
137
+
138
+ logger.info("Inventory item updated: %s", item_id)
139
+ return {"message": "Inventory item updated successfully"}
140
+ except Exception as e:
141
+ logger.error("Error updating inventory item: %s", str(e))
142
+ raise HTTPException(status_code=500, detail="Internal server error")
143
+
144
+
145
+ @router.delete("/{item_id}", response_model=dict)
146
+ async def delete_inventory_item(item_id: str):
147
+ """
148
+ Delete an inventory item by its unique ID.
149
+
150
+ Parameters:
151
+ - item_id: The unique identifier of the inventory item.
152
+
153
+ Returns:
154
+ - Success message if the item is deleted successfully.
155
+ """
156
+ try:
157
+ if not ObjectId.is_valid(item_id):
158
+ raise HTTPException(status_code=400, detail="Invalid item ID format")
159
+
160
+ # Delete item from the inventory collection
161
+ result = db.inventory.delete_one({"_id": ObjectId(item_id)})
162
+ if result.deleted_count == 0:
163
+ logger.warning("Inventory item deletion failed: %s", item_id)
164
+ raise HTTPException(status_code=404, detail="Inventory item not found")
165
+
166
+ logger.info("Inventory item deleted: %s", item_id)
167
+ return {"message": "Inventory item deleted successfully"}
168
+ except Exception as e:
169
+ logger.error("Error deleting inventory item: %s", str(e))
170
+ raise HTTPException(status_code=500, detail="Internal server error")
backend/app/routes/pages.py ADDED
@@ -0,0 +1,288 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # routes/pages.py
2
+
3
+ from fastapi import APIRouter, Request, Depends, HTTPException
4
+ from fastapi.responses import HTMLResponse, RedirectResponse
5
+ from fastapi.templating import Jinja2Templates
6
+ from backend.app.middleware.auth_middleware import get_current_user
7
+ import logging
8
+
9
+ # Initialize router and templates
10
+ router = APIRouter()
11
+ templates = Jinja2Templates(directory="backend/app/templates")
12
+
13
+ # Initialize logger
14
+ logger = logging.getLogger(__name__)
15
+
16
+
17
+ @router.get("/", response_class=HTMLResponse)
18
+ async def landing_page(request: Request):
19
+ """
20
+ Render the landing page for the Poultry Farming Assistance System.
21
+
22
+ Parameters:
23
+ - request: HTTP request object.
24
+
25
+ Returns:
26
+ - HTMLResponse: Rendered landing page template.
27
+ """
28
+ logger.info("Rendering landing page.")
29
+ return templates.TemplateResponse("landing.html", {"request": request})
30
+
31
+
32
+ @router.get("/login", response_class=HTMLResponse)
33
+ async def login_page(request: Request):
34
+ """
35
+ Render the login page for the system.
36
+
37
+ Parameters:
38
+ - request: HTTP request object.
39
+
40
+ Returns:
41
+ - HTMLResponse: Rendered login page template.
42
+ """
43
+ logger.info("Rendering login page.")
44
+ return templates.TemplateResponse("/auth/login.html", {"request": request})
45
+
46
+
47
+ @router.get("/register", response_class=HTMLResponse)
48
+ async def register_page(request: Request):
49
+ """
50
+ Render the registration page for the system.
51
+
52
+ Parameters:
53
+ - request: HTTP request object.
54
+
55
+ Returns:
56
+ - HTMLResponse: Rendered registration page template.
57
+ """
58
+ logger.info("Rendering registration page.")
59
+ return templates.TemplateResponse("/auth/register.html", {"request": request})
60
+
61
+
62
+ @router.get("/dashboard", response_class=HTMLResponse)
63
+ async def dashboard_page(request: Request, current_user: dict = Depends(get_current_user)):
64
+ """
65
+ Render the dashboard page for authenticated users.
66
+
67
+ Parameters:
68
+ - request: HTTP request object.
69
+ - current_user: Dictionary containing authenticated user's information.
70
+
71
+ Returns:
72
+ - HTMLResponse: Rendered dashboard page template.
73
+ """
74
+ if not current_user:
75
+ logger.warning("Unauthorized access attempt to dashboard.")
76
+ return RedirectResponse(url="/login")
77
+ is_admin = current_user.get("role") == "admin"
78
+ logger.info("Rendering dashboard for user ID: %s", current_user["user_id"])
79
+ return templates.TemplateResponse(
80
+ "dashboard.html", {"request": request, "title": "Dashboard", "is_admin": is_admin}
81
+ )
82
+
83
+
84
+ @router.get("/additem", response_class=HTMLResponse)
85
+ async def add_inventory_page(request: Request, current_user: dict = Depends(get_current_user)):
86
+ """
87
+ Render the page for adding inventory items.
88
+
89
+ Parameters:
90
+ - request: HTTP request object.
91
+ - current_user: Dictionary containing authenticated user's information.
92
+
93
+ Returns:
94
+ - HTMLResponse: Rendered add inventory page template.
95
+ """
96
+ if not current_user:
97
+ logger.warning("Unauthorized access attempt to add inventory page.")
98
+ return RedirectResponse(url="/login")
99
+ logger.info("Rendering add inventory page for user ID: %s", current_user["user_id"])
100
+ return templates.TemplateResponse(
101
+ "inventory/add_inventory.html",
102
+ {"request": request, "title": "Add New Item", "user_id": current_user["user_id"],
103
+ "farm_id": current_user["farm_id"]}
104
+ )
105
+
106
+
107
+ @router.get("/items", response_class=HTMLResponse)
108
+ async def manage_inventory_page(request: Request, current_user: dict = Depends(get_current_user)):
109
+ """
110
+ Render the inventory management page.
111
+
112
+ Parameters:
113
+ - request: HTTP request object.
114
+ - current_user: Dictionary containing authenticated user's information.
115
+
116
+ Returns:
117
+ - HTMLResponse: Rendered inventory management page template.
118
+ """
119
+ if not current_user:
120
+ logger.warning("Unauthorized access attempt to manage inventory page.")
121
+ return RedirectResponse(url="/login")
122
+ logger.info("Rendering inventory management page for user ID: %s", current_user["user_id"])
123
+ return templates.TemplateResponse(
124
+ "inventory/view_inventory.html", {"request": request, "title": "Manage Inventory",
125
+ "farm_id": current_user["farm_id"]}
126
+ )
127
+
128
+
129
+ @router.get("/addrecord", response_class=HTMLResponse)
130
+ async def add_health_record_page(request: Request, current_user: dict = Depends(get_current_user)):
131
+ """
132
+ Render the page for adding health records.
133
+
134
+ Parameters:
135
+ - request: HTTP request object.
136
+ - current_user: Dictionary containing authenticated user's information.
137
+
138
+ Returns:
139
+ - HTMLResponse: Rendered add health record page template.
140
+ """
141
+ if not current_user:
142
+ logger.warning("Unauthorized access attempt to add health record page.")
143
+ return RedirectResponse(url="/login")
144
+ logger.info("Rendering add health record page for user ID: %s", current_user["user_id"])
145
+ return templates.TemplateResponse(
146
+ "health/log_health.html", {"request": request, "title": "Log New Health Record",
147
+ "farm_id": current_user["farm_id"]}
148
+ )
149
+
150
+
151
+ @router.get("/hrecords", response_class=HTMLResponse)
152
+ async def manage_health_records_page(request: Request, current_user: dict = Depends(get_current_user)):
153
+ """
154
+ Render the health records management page.
155
+
156
+ Parameters:
157
+ - request: HTTP request object.
158
+ - current_user: Dictionary containing authenticated user's information.
159
+
160
+ Returns:
161
+ - HTMLResponse: Rendered health records management page template.
162
+ """
163
+ if not current_user:
164
+ logger.warning("Unauthorized access attempt to manage health records page.")
165
+ return RedirectResponse(url="/login")
166
+ logger.info("Rendering health records management page for user ID: %s", current_user["user_id"])
167
+ return templates.TemplateResponse( "health/manage_health.html", {"request": request, "title": "Manage Health Records","farm_id": current_user["farm_id"]})
168
+
169
+
170
+ @router.get("/mangroup", response_class=HTMLResponse)
171
+ async def group_management_page(request: Request, current_user: dict = Depends(get_current_user)):
172
+ """
173
+ Render the group management page for admins.
174
+
175
+ Parameters:
176
+ - request: HTTP request object.
177
+ - current_user: Dictionary containing authenticated user's information.
178
+
179
+ Returns:
180
+ - HTMLResponse: Rendered group management page template.
181
+ """
182
+ if not current_user or current_user.get("role") != "admin":
183
+ logger.warning("Unauthorized access attempt to group management page by user ID: %s",
184
+ current_user.get("user_id", "Unknown"))
185
+ raise HTTPException(status_code=403, detail="Access denied")
186
+ logger.info("Rendering group management page for admin ID: %s", current_user["user_id"])
187
+ return templates.TemplateResponse(
188
+ "group/manage_group.html", {"request": request, "title": "Manage Group", "is_admin": True,
189
+ "farm_id": current_user["farm_id"]}
190
+ )
191
+
192
+
193
+ @router.get("/addtask", response_class=HTMLResponse)
194
+ async def add_task_page(request: Request, current_user: dict = Depends(get_current_user)):
195
+ """
196
+ Render the page for adding tasks.
197
+
198
+ Parameters:
199
+ - request: HTTP request object.
200
+ - current_user: Dictionary containing authenticated user's information.
201
+
202
+ Returns:
203
+ - HTMLResponse: Rendered add task page template.
204
+ """
205
+ if not current_user or current_user.get("role") != "admin":
206
+ logger.warning("Unauthorized access attempt to add task page by user ID: %s",
207
+ current_user.get("user_id", "Unknown"))
208
+ raise HTTPException(status_code=403, detail="Access denied")
209
+ logger.info("Rendering add task page for admin ID: %s", current_user["user_id"])
210
+ return templates.TemplateResponse(
211
+ "todo/add_task.html", {"request": request, "title": "Add Task", "is_admin": True,
212
+ "farm_id": current_user["farm_id"], "current_user.role": current_user["role"]}
213
+ )
214
+
215
+
216
+ @router.get("/tasks", response_class=HTMLResponse)
217
+ async def manage_tasks_page(request: Request, current_user: dict = Depends(get_current_user)):
218
+ """
219
+ Render the task management page.
220
+
221
+ Parameters:
222
+ - request: HTTP request object.
223
+ - current_user: Dictionary containing authenticated user's information.
224
+
225
+ Returns:
226
+ - HTMLResponse: Rendered task management page template.
227
+ """
228
+ if not current_user:
229
+ logger.warning("Unauthorized access attempt to manage tasks page.")
230
+ return RedirectResponse(url="/login")
231
+ is_admin = current_user.get("role") == "admin"
232
+ logger.info("Rendering task management page for user ID: %s", current_user["user_id"])
233
+ return templates.TemplateResponse(
234
+ "todo/manage_tasks.html",
235
+ {"request": request, "title": "Manage Tasks", "is_admin": is_admin, "user_id": current_user["user_id"],
236
+ "farm_id": current_user["farm_id"], "current_user.role": current_user["role"]}
237
+ )
238
+ @router.get("/chat", response_class=HTMLResponse)
239
+ async def chat_page(request: Request, current_user: dict = Depends(get_current_user)):
240
+ """
241
+ Render the AI Chat page.
242
+
243
+ Parameters:
244
+ - request: HTTP request object.
245
+ - current_user: Dictionary containing authenticated user's information.
246
+
247
+ Returns:
248
+ - HTMLResponse: Rendered chat page template.
249
+ """
250
+ if not current_user:
251
+ logger.warning("Unauthorized access attempt to chat page.")
252
+ return RedirectResponse(url="/login")
253
+ logger.info("Rendering chat page for user ID: %s", current_user["user_id"])
254
+ return templates.TemplateResponse(
255
+ "chat/index.html",
256
+ {
257
+ "request": request,
258
+ "title": "AI Chat",
259
+ "user_id": current_user["user_id"],
260
+ "is_admin": current_user.get("role") == "admin"
261
+ }
262
+ )
263
+
264
+
265
+ @router.get("/chat-history", response_class=HTMLResponse)
266
+ async def chat_history_page(request: Request, current_user: dict = Depends(get_current_user)):
267
+ """
268
+ Render the Chat History page.
269
+
270
+ Parameters:
271
+ - request: HTTP request object.
272
+ - current_user: Dictionary containing authenticated user's information.
273
+
274
+ Returns:
275
+ - HTMLResponse: Rendered chat history page template.
276
+ """
277
+ if not current_user:
278
+ logger.warning("Unauthorized access attempt to chat history page.")
279
+ return RedirectResponse(url="/login")
280
+ logger.info("Rendering chat history page for user ID: %s", current_user["user_id"])
281
+ return templates.TemplateResponse(
282
+ "chat/chat_history.html",
283
+ {
284
+ "request": request,
285
+ "title": "Chat History",
286
+ "user_id": current_user["user_id"]
287
+ }
288
+ )
backend/app/routes/task.py ADDED
@@ -0,0 +1,155 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import logging
2
+ from datetime import datetime, timezone
3
+ from bson import ObjectId
4
+ from fastapi import APIRouter, HTTPException, Depends
5
+ from backend.app.config.database import get_database
6
+ from backend.app.middleware.auth_middleware import get_current_user
7
+ from backend.app.models.task import Task
8
+
9
+ # Initialize router and logger
10
+ router = APIRouter()
11
+ db = get_database()
12
+ logger = logging.getLogger(__name__)
13
+
14
+
15
+ @router.post("/")
16
+ async def create_task(task: Task):
17
+ """
18
+ Create a new task.
19
+
20
+ Parameters:
21
+ - task: Task object containing task details (e.g., description, assigned_to, status).
22
+
23
+ Returns:
24
+ - Success message if the task is created successfully.
25
+
26
+ Raises:
27
+ - HTTPException: If there is an error during task creation.
28
+ """
29
+ try:
30
+ # Prepare task data with the current UTC timestamp
31
+ task_data = {
32
+ "task_description": task.task_description,
33
+ "due_date": task.due_date,
34
+ "status": "pending",
35
+ "assigned_to": ObjectId(task.assigned_to) if task.assigned_to else None,
36
+ "created_at": datetime.now(timezone.utc),
37
+ }
38
+
39
+ # Insert the new task into the database
40
+ result = db.tasks.insert_one(task_data)
41
+ logger.info("Task created successfully with ID: %s", result.inserted_id)
42
+ return {"message": "Task created successfully", "task_id": str(result.inserted_id)}
43
+
44
+ except Exception as e:
45
+ logger.error("Error creating task: %s", str(e))
46
+ raise HTTPException(status_code=500, detail="Internal server error")
47
+
48
+
49
+ @router.get("/")
50
+ async def get_tasks(current_user: dict = Depends(get_current_user)):
51
+ """
52
+ Retrieve tasks based on user role.
53
+
54
+ Admin:
55
+ - View all tasks.
56
+
57
+ Farmer:
58
+ - View only assigned tasks.
59
+
60
+ Returns:
61
+ - List of tasks with assigned_to_name added based on the user's role.
62
+ """
63
+ try:
64
+ tasks = []
65
+
66
+ if current_user["role"] == "admin":
67
+ # Admin can view all tasks
68
+ tasks = list(db.tasks.find())
69
+ logger.info("Admin %s retrieved all tasks", current_user["email"])
70
+ elif current_user["role"] == "farmer":
71
+ # Farmer can only view assigned tasks
72
+ tasks = list(db.tasks.find({"assigned_to": ObjectId(current_user["user_id"])}))
73
+ logger.info("Farmer %s retrieved assigned tasks", current_user["email"])
74
+ else:
75
+ logger.warning("Unauthorized access attempt by user: %s", current_user["email"])
76
+ raise HTTPException(status_code=403, detail="Unauthorized access")
77
+
78
+ # Add assigned_to_name for each task
79
+ for task in tasks:
80
+ task["_id"] = str(task["_id"]) # Convert ObjectId to string for JSON serialization
81
+ if task.get("assigned_to"):
82
+ assigned_to = db.users.find_one({"_id": ObjectId(task["assigned_to"])}, {"username": 1})
83
+ task["assigned_to_name"] = assigned_to["username"] if assigned_to else "Unknown"
84
+ task["assigned_to"] = str(task["assigned_to"]) # Convert ObjectId to string
85
+ else:
86
+ task["assigned_to_name"] = "Not Assigned"
87
+
88
+ return tasks
89
+
90
+ except Exception as e:
91
+ logger.error("Error retrieving tasks: %s", str(e))
92
+ raise HTTPException(status_code=500, detail="Internal server error")
93
+
94
+ @router.put("/{task_id}")
95
+ async def update_task(task_id: str, task: Task):
96
+ """
97
+ Update an existing task by its unique ID.
98
+
99
+ Parameters:
100
+ - task_id: The unique identifier of the task.
101
+ - task: Task object containing updated task details.
102
+
103
+ Returns:
104
+ - Success message if the task is updated successfully.
105
+
106
+ Raises:
107
+ - HTTPException: If the task does not exist.
108
+ """
109
+ try:
110
+ # Convert assigned_to to ObjectId if present
111
+ task_data = task.model_dump()
112
+ if task.assigned_to:
113
+ task_data["assigned_to"] = ObjectId(task.assigned_to)
114
+
115
+ # Update task data in the database
116
+ result = db.tasks.update_one({"_id": ObjectId(task_id)}, {"$set": task_data})
117
+ if result.matched_count == 0:
118
+ logger.warning("Task update failed for ID: %s", task_id)
119
+ raise HTTPException(status_code=404, detail="Task not found")
120
+
121
+ logger.info("Task updated successfully with ID: %s", task_id)
122
+ return {"message": "Task updated successfully"}
123
+
124
+ except Exception as e:
125
+ logger.error("Error updating task: %s", str(e))
126
+ raise HTTPException(status_code=500, detail="Internal server error")
127
+
128
+
129
+ @router.delete("/{task_id}")
130
+ async def delete_task(task_id: str):
131
+ """
132
+ Delete a task by its unique ID.
133
+
134
+ Parameters:
135
+ - task_id: The unique identifier of the task.
136
+
137
+ Returns:
138
+ - Success message if the task is deleted successfully.
139
+
140
+ Raises:
141
+ - HTTPException: If the task does not exist.
142
+ """
143
+ try:
144
+ # Delete task from the database
145
+ result = db.tasks.delete_one({"_id": ObjectId(task_id)})
146
+ if result.deleted_count == 0:
147
+ logger.warning("Task deletion failed for ID: %s", task_id)
148
+ raise HTTPException(status_code=404, detail="Task not found")
149
+
150
+ logger.info("Task deleted successfully with ID: %s", task_id)
151
+ return {"message": "Task deleted successfully"}
152
+
153
+ except Exception as e:
154
+ logger.error("Error deleting task: %s", str(e))
155
+ raise HTTPException(status_code=500, detail="Internal server error")
backend/app/schemas/chat_history_schema.py ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from pydantic import BaseModel, Field
2
+ from typing import List, Optional
3
+ from datetime import datetime, timezone
4
+ from bson import ObjectId
5
+
6
+ class ChatMessage(BaseModel):
7
+ """
8
+ Represents an individual chat message in the history.
9
+ """
10
+ user_message: str
11
+ assistant_response: str
12
+ timestamp: datetime = Field(default_factory=lambda: datetime.now(timezone.utc))
13
+
14
+ class ChatHistory(BaseModel):
15
+ """
16
+ Represents a chat session with a list of chat messages.
17
+ """
18
+ id: Optional[ObjectId] = Field(default=None, alias="_id") # MongoDB ObjectId
19
+ user_id: ObjectId # Reference to the user who owns the chat
20
+ session_id: ObjectId # Unique identifier for the chat session
21
+ messages: List[ChatMessage] = [] # List of messages in the chat session
22
+ created_at: datetime = Field(default_factory=lambda: datetime.now(timezone.utc)) # When the session was created
23
+ updated_at: datetime = Field(default_factory=lambda: datetime.now(timezone.utc)) # Last time the session was updated
24
+
25
+ class Config:
26
+ arbitrary_types_allowed = True
27
+ json_encoders = {
28
+ ObjectId: str, # Ensure ObjectId is serialized to string for JSON responses
29
+ }
backend/app/schemas/group_schema.py ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from bson import ObjectId
2
+ from pydantic import BaseModel
3
+ from typing import List
4
+
5
+
6
+ class GroupSchema(BaseModel):
7
+ id: ObjectId
8
+ group_name: str
9
+ farmers: List[ObjectId]
10
+ created_by: ObjectId
11
+
12
+ class Config:
13
+ arbitrary_types_allowed = True
backend/app/schemas/health_record_schema.py ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from bson import ObjectId
2
+ from pydantic import BaseModel, Field
3
+ from datetime import datetime
4
+ from typing import Optional
5
+
6
+
7
+ class HealthRecordSchema(BaseModel):
8
+ """
9
+ Schema for health records in the database.
10
+
11
+ Attributes:
12
+ - id: The unique identifier of the health record.
13
+ - farm_id: The ID of the farm associated with the record.
14
+ - disease_type: The detected disease type.
15
+ - diagnosis_date: The date and time when the disease was diagnosed.
16
+ - recommendation: Recommended actions or treatment for the detected disease.
17
+ - logged_by: The ID of the user who logged the record.
18
+ """
19
+ id: Optional[str] = Field(alias="_id") # Maps MongoDB's "_id" to "id" for JSON compatibility
20
+ farm_id: str
21
+ disease_type: str
22
+ diagnosis_date: datetime
23
+ recommendation: str
24
+ logged_by: str
25
+
26
+ class Config:
27
+ arbitrary_types_allowed = True # Allow non-standard types (e.g., ObjectId)
28
+ json_encoders = {
29
+ ObjectId: str, # Convert ObjectId to string for JSON serialization
30
+ datetime: lambda v: v.isoformat(), # Convert datetime to ISO 8601 format
31
+ }
32
+ allow_population_by_field_name = True # Allow alias field population (e.g., "_id" -> "id")
backend/app/schemas/inventory_item_schema.py ADDED
@@ -0,0 +1,83 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from bson import ObjectId
2
+ from pydantic import BaseModel, Field
3
+ from typing import Optional
4
+ from datetime import datetime, timezone
5
+
6
+
7
+ class InventoryItemSchema(BaseModel):
8
+ """
9
+ Schema for Inventory Item with fields for item name, category, quantity, status, updated_by, last_updated, and farm_id.
10
+
11
+ Fields:
12
+ - id: The unique identifier for the inventory item (alias for MongoDB's _id).
13
+ - item_name: Name of the inventory item.
14
+ - category: Category to classify the inventory item (e.g., "Feed", "Tool").
15
+ - quantity: The quantity of the inventory item.
16
+ - status: Status of the item (e.g., "active", "inactive").
17
+ - updated_by: The ID of the user who last updated this item (optional for creation).
18
+ - last_updated: Timestamp of the last update to the item in UTC.
19
+ - farm_id: The ID of the farm to which the inventory item belongs.
20
+ """
21
+ id: Optional[str] = Field(alias="_id") # Map MongoDB "_id" to "id" for easier frontend compatibility
22
+ item_name: str # Name of the inventory item
23
+ category: str # Category for classifying the inventory item
24
+ quantity: int # Number of items in stock
25
+ status: str # Current status of the item (e.g., "active" or "inactive")
26
+ updated_by: Optional[str] = None # User ID of the last person who updated the item
27
+ last_updated: Optional[datetime] = None # Timestamp of the last update to the item
28
+ farm_id: str # ID of the farm to which the item belongs
29
+
30
+ class Config:
31
+ """
32
+ Configuration for the schema:
33
+ - Supports MongoDB ObjectId serialization.
34
+ - Allows using 'id' instead of '_id' for field naming consistency.
35
+ """
36
+ arbitrary_types_allowed = True # Allow ObjectId type
37
+ json_encoders = {
38
+ ObjectId: str,
39
+ datetime: lambda dt: dt.isoformat() # Convert datetime to ISO 8601 string
40
+ }
41
+ allow_population_by_field_name = True # Allow populating 'id' from '_id'
42
+
43
+
44
+ class InventoryItemCreate(BaseModel):
45
+ """
46
+ Schema for creating a new inventory item.
47
+
48
+ Fields:
49
+ - item_name: Name of the inventory item.
50
+ - category: Category to classify the inventory item (e.g., "Feed", "Tool").
51
+ - quantity: The quantity of the inventory item.
52
+ - status: Status of the item (e.g., "active", "inactive").
53
+ - last_updated: Timestamp of the item's creation in UTC (default to current time).
54
+ - farm_id: ID of the farm to which the item belongs.
55
+ """
56
+ item_name: str
57
+ category: str
58
+ quantity: int
59
+ status: Optional[str] = "active" # Default status is "active"
60
+ last_updated: Optional[datetime] = Field(default_factory=lambda: datetime.now(timezone.utc)) # Automatically set the creation timestamp
61
+ farm_id: str # ID of the farm
62
+
63
+
64
+ class InventoryItemUpdate(BaseModel):
65
+ """
66
+ Schema for updating an existing inventory item.
67
+
68
+ Fields:
69
+ - item_name: (Optional) Updated name of the inventory item.
70
+ - category: (Optional) Updated category of the inventory item.
71
+ - quantity: (Optional) Updated quantity of the inventory item.
72
+ - status: (Optional) Updated status of the inventory item.
73
+ - updated_by: ID of the user making the update.
74
+ - last_updated: Timestamp of the last update to the item in UTC (default to current time).
75
+ - farm_id: (Optional) ID of the farm (used for reassignment).
76
+ """
77
+ item_name: Optional[str] = None
78
+ category: Optional[str] = None
79
+ quantity: Optional[int] = None
80
+ status: Optional[str] = None
81
+ updated_by: Optional[str] = None
82
+ last_updated: Optional[datetime] = Field(default_factory=lambda: datetime.now(timezone.utc)) # Automatically set the update timestamp
83
+ farm_id: Optional[str] = None # Optional farm ID for reassignment
backend/app/schemas/task_schema.py ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from bson import ObjectId
2
+ from pydantic import BaseModel
3
+ from datetime import datetime
4
+
5
+
6
+ class TaskSchema(BaseModel):
7
+ id: ObjectId
8
+ task_description: str
9
+ assigned_to: ObjectId
10
+ status: str
11
+ created_at: datetime
12
+ due_date: datetime
13
+
14
+ class Config:
15
+ arbitrary_types_allowed = True
backend/app/schemas/user_schema.py ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ # schemas/user_schema.py
3
+ from bson import ObjectId
4
+ from pydantic import BaseModel, EmailStr, Field
5
+ from typing import Optional
6
+
7
+ class UserSchema(BaseModel):
8
+ id: Optional[str] = Field(None, alias="_id") # Use alias for MongoDB compatibility
9
+ username: str
10
+ farm_id: Optional[str] # Make farm_id optional to handle non-admin users
11
+ email: EmailStr
12
+ role: str
13
+ group_name: Optional[str] # Group name associated with the user's farm
14
+
15
+ class Config:
16
+ arbitrary_types_allowed = True
17
+ json_encoders = {ObjectId: str} # Automatically convert ObjectId to str
18
+
19
+ class UserCreate(BaseModel):
20
+ username: str
21
+ email: EmailStr
22
+ password: str
23
+ role: str # User role (e.g., "admin" or "farmer")
24
+ group_name: Optional[str] # Group name for initial group creation in registration
25
+
26
+ class LoginRequest(BaseModel):
27
+ email: EmailStr
28
+ password: str
backend/app/services/auth_service.py ADDED
@@ -0,0 +1,147 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import jwt
2
+ import bcrypt
3
+ import os
4
+ import logging
5
+ from datetime import datetime, timedelta, timezone
6
+ from dotenv import load_dotenv
7
+
8
+ # Load environment variables
9
+ load_dotenv()
10
+
11
+ # Initialize logger
12
+ logger = logging.getLogger(__name__)
13
+
14
+ # Retrieve secret key from environment variables
15
+ SECRET_KEY = os.getenv("JWT_SECRET_KEY")
16
+
17
+
18
+ def create_token(data: dict) -> str:
19
+ """
20
+ Generate a JWT token with an expiration time.
21
+
22
+ Parameters:
23
+ - data (dict): The data to encode in the JWT token, typically user-related info.
24
+ Expected keys: user_id, email, role, farm_id.
25
+
26
+ Returns:
27
+ - str: The encoded JWT token.
28
+
29
+ Raises:
30
+ - RuntimeError: If token creation fails due to missing fields or other issues.
31
+ """
32
+ try:
33
+ # Ensure SECRET_KEY is set
34
+ if not SECRET_KEY:
35
+ logger.error("SECRET_KEY is not set in the environment variables.")
36
+ raise RuntimeError("Missing SECRET_KEY for token creation.")
37
+
38
+ # Validate required fields
39
+ required_fields = ["user_id", "email", "role", "farm_id"]
40
+ missing_fields = [field for field in required_fields if field not in data]
41
+ if missing_fields:
42
+ logger.error("Missing required fields in token data: %s", missing_fields)
43
+ raise ValueError(f"Token data is missing required fields: {missing_fields}")
44
+
45
+ # Ensure all ObjectId fields are converted to strings
46
+ for key in ["user_id", "farm_id"]:
47
+ if isinstance(data.get(key), object):
48
+ data[key] = str(data[key]) # Convert ObjectId to string
49
+
50
+ # Set token expiration to 1 hour from the current UTC time
51
+ expiration = datetime.now(timezone.utc) + timedelta(hours=1)
52
+ data.update({"exp": expiration}) # Add expiration to the token payload
53
+
54
+ # Encode the JWT token with HS256 algorithm
55
+ token = jwt.encode(data, SECRET_KEY, algorithm="HS256")
56
+ logger.info(
57
+ "Token created successfully for user_id=%s with expiration at %s",
58
+ data.get("user_id"),
59
+ expiration
60
+ )
61
+ return token
62
+ except ValueError as ve:
63
+ logger.error("Value error during token creation: %s", ve)
64
+ raise
65
+ except Exception as e:
66
+ logger.error("Error creating token: %s", str(e))
67
+ raise RuntimeError("Failed to create token") from e
68
+
69
+
70
+ def verify_token(token: str):
71
+ """
72
+ Decode and verify a JWT token.
73
+
74
+ Parameters:
75
+ - token (str): The JWT token to verify.
76
+
77
+ Returns:
78
+ - dict: Decoded token data if valid and contains required fields.
79
+ - None: If the token is invalid, expired, or missing required fields.
80
+ """
81
+ try:
82
+ # Decode the token
83
+ payload = jwt.decode(token, SECRET_KEY, algorithms=["HS256"])
84
+ logger.info("Token verified successfully.")
85
+
86
+ # Validate required fields
87
+ required_fields = ["user_id", "email", "role", "farm_id"]
88
+ missing_fields = [field for field in required_fields if field not in payload]
89
+ if missing_fields:
90
+ logger.warning("Token missing required fields: %s", missing_fields)
91
+ return None
92
+
93
+ return payload
94
+ except jwt.ExpiredSignatureError:
95
+ logger.warning("Token verification failed: token expired.")
96
+ return None
97
+ except jwt.InvalidTokenError:
98
+ logger.warning("Token verification failed: invalid token.")
99
+ return None
100
+ except Exception as e:
101
+ logger.error("Unexpected error during token verification: %s", str(e))
102
+ return None
103
+
104
+
105
+ def hash_password(password: str) -> str:
106
+ """
107
+ Hash a plain password using bcrypt.
108
+
109
+ Parameters:
110
+ - password (str): The plain password to hash.
111
+
112
+ Returns:
113
+ - str: The hashed password.
114
+ """
115
+ try:
116
+ # Generate salt and hash the password
117
+ salt = bcrypt.gensalt()
118
+ hashed_password = bcrypt.hashpw(password.encode('utf-8'), salt).decode('utf-8')
119
+ logger.info("Password hashed successfully.")
120
+ return hashed_password
121
+ except Exception as e:
122
+ logger.error("Error hashing password: %s", str(e))
123
+ raise RuntimeError("Failed to hash password") from e
124
+
125
+
126
+ def verify_password(plain_password: str, hashed_password: str) -> bool:
127
+ """
128
+ Verify a plain password against a hashed password.
129
+
130
+ Parameters:
131
+ - plain_password (str): The plain password to verify.
132
+ - hashed_password (str): The hashed password to verify against.
133
+
134
+ Returns:
135
+ - bool: True if passwords match, False otherwise.
136
+ """
137
+ try:
138
+ # Check if the plain password matches the hashed password
139
+ is_valid = bcrypt.checkpw(plain_password.encode('utf-8'), hashed_password.encode('utf-8'))
140
+ if is_valid:
141
+ logger.info("Password verification successful.")
142
+ else:
143
+ logger.warning("Password verification failed.")
144
+ return is_valid
145
+ except Exception as e:
146
+ logger.error("Error verifying password: %s", str(e))
147
+ raise RuntimeError("Failed to verify password") from e
backend/app/services/disease_detection.py ADDED
@@ -0,0 +1,281 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # services/disease_detection.py
2
+
3
+ import logging
4
+ from io import BytesIO
5
+ import cv2
6
+ import numpy as np
7
+ from PIL import Image
8
+ from fastapi import HTTPException
9
+ from tensorflow.keras.models import load_model
10
+
11
+ # Initialize logger
12
+ logger = logging.getLogger(__name__)
13
+
14
+ # Load models at module level to avoid reloading on every request
15
+ try:
16
+ auth_model = load_model("backend/app/models/auth.h5")
17
+ logger.info("Authentication model loaded successfully.")
18
+ except Exception as auth_load_error:
19
+ logger.error("Error loading authentication model: %s", auth_load_error)
20
+ raise RuntimeError("Failed to load authentication model. Verify model paths.")
21
+
22
+ try:
23
+ disease_model = load_model("backend/app/models/diseases.h5")
24
+ logger.info("Disease model loaded successfully.")
25
+ except Exception as disease_load_error:
26
+ logger.error("Error loading disease model: %s", disease_load_error)
27
+ raise RuntimeError("Failed to load disease model. Verify model paths.")
28
+
29
+ # Disease classes with recommendations
30
+ disease_classes = {
31
+ 0: {"name": "Coccidiosis", "status": "Critical",
32
+ "recommendation": "Administer anti-coccidial medication, maintain hygiene, and ensure proper litter management."},
33
+ 1: {"name": "Healthy", "status": "No issue",
34
+ "recommendation": "No treatment necessary; maintain regular monitoring and hygiene."},
35
+ 2: {"name": "New Castle Disease", "status": "Critical",
36
+ "recommendation": "Isolate affected birds and seek veterinary consultation for targeted treatment."},
37
+ 3: {"name": "Salmonella", "status": "Critical",
38
+ "recommendation": "Administer antibiotics as prescribed by a veterinarian and ensure biosecurity."}
39
+ }
40
+
41
+
42
+ # def preprocess_image(image_file: bytes):
43
+ # """
44
+ # Preprocess the image for model prediction.
45
+ #
46
+ # Args:
47
+ # image_file (bytes): The raw image data.
48
+ #
49
+ # Returns:
50
+ # np.ndarray: Preprocessed image array ready for prediction.
51
+ # """
52
+ # try:
53
+ # # Open and preprocess the image
54
+ # image = Image.open(BytesIO(image_file)).convert("RGB")
55
+ # image = image.resize((224, 224)) # Resize as per model input
56
+ # image_array = np.array(image) / 255.0 # Normalize
57
+ # image_array = np.expand_dims(image_array, axis=0) # Add batch dimension
58
+ # logger.info("Image preprocessed successfully for prediction.")
59
+ # return image_array
60
+ # except Exception as preprocess_error:
61
+ # logger.error("Error during image preprocessing: %s", preprocess_error)
62
+ # raise HTTPException(status_code=400, detail="Invalid image format or preprocessing error.")
63
+
64
+
65
+ # def authenticate_image(image_data: np.ndarray):
66
+ # """
67
+ # Authenticate the image using the authentication model.
68
+ #
69
+ # Args:
70
+ # image_data (np.ndarray): Preprocessed image data.
71
+ #
72
+ # Returns:
73
+ # bool: True if image is valid; False otherwise.
74
+ # """
75
+ # try:
76
+ # prediction = auth_model.predict(image_data).argmax()
77
+ # if prediction == 0:
78
+ # logger.info("Image authentication successful.")
79
+ # return True
80
+ # else:
81
+ # logger.warning("Invalid image detected during authentication.")
82
+ # return False
83
+ # except Exception as auth_error:
84
+ # logger.error("Error during image authentication: %s", auth_error)
85
+ # raise HTTPException(status_code=500, detail="Error during image authentication.")
86
+ #
87
+
88
+ # def predict_disease(image_data: np.ndarray):
89
+ # """
90
+ # Predict disease from the authenticated image data.
91
+ #
92
+ # Args:
93
+ # image_data (np.ndarray): Preprocessed and authenticated image data.
94
+ #
95
+ # Returns:
96
+ # dict: Disease name, status, and recommendation based on the prediction.
97
+ # """
98
+ # try:
99
+ # # Perform disease prediction
100
+ # disease_prediction = disease_model.predict(image_data)
101
+ # predicted_index = np.argmax(disease_prediction, axis=1)[0]
102
+ #
103
+ # # Retrieve disease details
104
+ # disease_info = disease_classes.get(predicted_index, {"name": "Unknown", "status": "Unknown",
105
+ # "recommendation": "No recommendation available"})
106
+ #
107
+ # logger.info("Disease prediction successful: %s detected with status %s.", disease_info["name"],
108
+ # disease_info["status"])
109
+ # return disease_info
110
+ # except Exception as prediction_error:
111
+ # logger.error("Error during disease prediction: %s", prediction_error)
112
+ # raise HTTPException(status_code=500, detail="Error during disease prediction.")
113
+ #
114
+ #
115
+ # def detect_disease(image_file: bytes):
116
+ # """
117
+ # API handler for disease detection, integrating image authentication and disease prediction.
118
+ #
119
+ # Args:
120
+ # image_file (bytes): Image data received from the request.
121
+ #
122
+ # Returns:
123
+ # dict: Contains disease name, status, and recommendation if prediction is successful.
124
+ # """
125
+ # try:
126
+ # # Step 1: Preprocess the image
127
+ # image_data = preprocess_image(image_file)
128
+ #
129
+ # # Step 2: Authenticate the image
130
+ # if not authenticate_image(image_data):
131
+ # logger.warning("Image authentication failed. Unrecognized image format.")
132
+ # return {
133
+ # "name": "Unknown Image",
134
+ # "status": "N/A",
135
+ # "recommendation": "Check image quality and try again."
136
+ # }
137
+ #
138
+ # # Step 3: Predict disease if authentication is successful
139
+ # disease_info = predict_disease(image_data)
140
+ # return disease_info
141
+ #
142
+ # except HTTPException as http_error:
143
+ # # Forward HTTP exceptions directly
144
+ # raise http_error
145
+ # except Exception as detection_error:
146
+ # # Log and return a generic error message for unexpected issues
147
+ # logger.error("Unhandled error in detect_disease: %s", detection_error)
148
+ # raise HTTPException(status_code=500, detail="Unexpected error during disease detection.")
149
+
150
+ def preprocess_image(image_file: bytes):
151
+ """
152
+ Preprocess the image for model prediction.
153
+
154
+ Args:
155
+ image_file (bytes): The raw image data.
156
+
157
+ Returns:
158
+ np.ndarray: Preprocessed image array ready for prediction.
159
+ """
160
+ try:
161
+ # Read image using OpenCV for consistency with the Gradio version
162
+ np_image = np.frombuffer(image_file, np.uint8)
163
+ image = cv2.imdecode(np_image, cv2.IMREAD_COLOR) # Decode to an image array
164
+ if image is None:
165
+ raise ValueError("Image decoding failed.")
166
+
167
+ # Resize image as expected by the model
168
+ image = cv2.resize(image, (224, 224))
169
+
170
+ # Normalize the image to [0, 1]
171
+ image_array = image / 255.0
172
+
173
+ # Add batch dimension
174
+ image_array = np.expand_dims(image_array, axis=0)
175
+
176
+ logger.info("Image preprocessed successfully for prediction.")
177
+ return image_array
178
+ except Exception as preprocess_error:
179
+ logger.error("Error during image preprocessing: %s", preprocess_error)
180
+ raise HTTPException(status_code=400, detail="Invalid image format or preprocessing error.")
181
+
182
+
183
+ def predict_disease(image_data: np.ndarray):
184
+ """
185
+ Predict disease from the image data, including authentication.
186
+
187
+ Args:
188
+ image_data (np.ndarray): Preprocessed image data.
189
+
190
+ Returns:
191
+ dict: Disease name, status, and recommendation based on the prediction.
192
+ """
193
+ try:
194
+ # Step 1: Authenticate the image
195
+ auth_prediction = auth_model.predict(image_data).argmax()
196
+ logger.info("Authentication model raw output: %s", auth_prediction)
197
+ if auth_prediction != 0:
198
+ logger.warning("Image authentication failed.")
199
+ return {
200
+ "name": "Unknown Image",
201
+ "status": "N/A",
202
+ "recommendation": "Check image quality and try again."
203
+ }
204
+
205
+ # Step 2: Predict disease
206
+ disease_prediction = disease_model.predict(image_data)
207
+ predicted_index = np.argmax(disease_prediction, axis=1)[0]
208
+
209
+ # Step 3: Retrieve disease details
210
+ return disease_classes.get(predicted_index, {
211
+ "name": "Unknown",
212
+ "status": "Unknown",
213
+ "recommendation": "No recommendation available."
214
+ })
215
+ except Exception as prediction_error:
216
+ logger.error("Error during disease prediction: %s", prediction_error)
217
+ raise HTTPException(status_code=500, detail="Error during disease prediction.")
218
+
219
+
220
+ def detect_disease(image_file):
221
+ """
222
+ API handler for disease detection, integrating image authentication and disease prediction.
223
+
224
+ Args:
225
+ image_file: A file-like object containing the image data.
226
+
227
+ Returns:
228
+ dict: Contains disease name, status, and recommendation if prediction is successful.
229
+ """
230
+ try:
231
+ # Read the image file into a NumPy array using OpenCV
232
+ file_bytes = np.frombuffer(image_file.read(), np.uint8)
233
+ image_file.seek(0) # Reset the file pointer after reading
234
+
235
+ # Decode the image
236
+ image = cv2.imdecode(file_bytes, cv2.IMREAD_COLOR)
237
+ if image is None:
238
+ logger.warning("Failed to decode image.")
239
+ raise HTTPException(status_code=400, detail="Invalid image format.")
240
+
241
+ # Resize and preprocess the image
242
+ image_resized = cv2.resize(image, (224, 224))
243
+ image_normalized = image_resized / 255.0 # Normalize pixel values
244
+ image_batch = np.expand_dims(image_normalized, axis=0) # Add batch dimension
245
+
246
+ logger.info("Step 1: Authenticate the image")
247
+ # Step 1: Authenticate the image
248
+ auth_prediction = auth_model.predict(image_batch).argmax()
249
+ if auth_prediction != 0:
250
+ logger.warning("Image authentication failed. Unrecognized image format.")
251
+ return {
252
+ "name": "Unknown Image",
253
+ "status": "N/A",
254
+ "recommendation": "Check image quality and try again."
255
+ }
256
+ logger.info("SStep 2: Predict disease")
257
+ # Step 2: Predict disease
258
+ disease_prediction = disease_model.predict(image_batch)
259
+ predicted_index = np.argmax(disease_prediction, axis=1)[0]
260
+
261
+ logger.info("Step 3: Retrieve disease information")
262
+ # Step 3: Retrieve disease information
263
+ disease_info = disease_classes.get(predicted_index, {
264
+ "name": "Unknown",
265
+ "status": "Unknown",
266
+ "recommendation": "No recommendation available."
267
+ })
268
+
269
+ logger.info("Disease detection successful: %s", disease_info["name"])
270
+ return disease_info
271
+
272
+ except HTTPException as http_error:
273
+ # Forward HTTP exceptions directly
274
+ logger.error("HTTPException during disease detection: %s", http_error.detail)
275
+ raise http_error
276
+ except Exception as detection_error:
277
+ # Log and return a generic error message for unexpected issues
278
+ logger.error("Unhandled error in detect_disease: %s", detection_error)
279
+ raise HTTPException(status_code=500, detail="Unexpected error during disease detection.")
280
+
281
+
backend/app/services/llama_service.py ADDED
@@ -0,0 +1,139 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # services/llama_service.py
2
+
3
+ import logging
4
+ import os
5
+ import torch
6
+ from datetime import datetime, timezone
7
+ from huggingface_hub import login
8
+ from transformers import AutoTokenizer, AutoModelForCausalLM
9
+ from pymongo import MongoClient
10
+ from bson import ObjectId
11
+
12
+ # Initialize logger
13
+ logger = logging.getLogger(__name__)
14
+
15
+ # Load Hugging Face API token for secure model access
16
+ HF_TOKEN = os.environ.get("HF_TOKEN")
17
+ if HF_TOKEN:
18
+ try:
19
+ login(token=HF_TOKEN, add_to_git_credential=True)
20
+ logger.info("Hugging Face login successful.")
21
+ except Exception as e:
22
+ logger.error("Failed to login to Hugging Face", exc_info=True)
23
+ raise RuntimeError("Failed to login to Hugging Face. Verify API token.")
24
+ else:
25
+ logger.warning("Hugging Face token missing. Please set HF_TOKEN in environment variables.")
26
+
27
+ # MongoDB initialization
28
+ MONGO_URI = os.getenv("MONGO_URI", "mongodb://localhost:27017/")
29
+ mongo_client = MongoClient(MONGO_URI)
30
+ db = mongo_client["chatbot_db"]
31
+
32
+ # Model and tokenizer initialization
33
+ llama_model = None
34
+ llama_tokenizer = None
35
+
36
+
37
+ def load_llama_model():
38
+ """
39
+ Load the Llama-3.2 model and tokenizer from Hugging Face.
40
+ """
41
+ global llama_model, llama_tokenizer
42
+ try:
43
+ logger.info("Loading Llama 3.2 model and tokenizer.")
44
+ model_name = "meta-llama/Llama-3.2-1B"
45
+
46
+ # Load tokenizer and model from Hugging Face
47
+ llama_tokenizer = AutoTokenizer.from_pretrained(model_name)
48
+ llama_model = AutoModelForCausalLM.from_pretrained(model_name).to(
49
+ "cuda" if torch.cuda.is_available() else "cpu"
50
+ )
51
+
52
+ # Add padding token if missing
53
+ if llama_tokenizer.pad_token is None:
54
+ logger.info("Adding padding token to tokenizer.")
55
+ llama_tokenizer.add_special_tokens({'pad_token': '[PAD]'})
56
+ llama_model.resize_token_embeddings(len(llama_tokenizer))
57
+
58
+ logger.info("Llama model and tokenizer loaded successfully.")
59
+ except Exception as e:
60
+ logger.error("Failed to load Llama model", exc_info=True)
61
+ raise RuntimeError("Failed to load the Llama 3.2 model. Verify compatibility.")
62
+
63
+
64
+ # Load the model and tokenizer at import time
65
+ load_llama_model()
66
+
67
+
68
+ def process_message(user_id: ObjectId, session_id: ObjectId, message: str) -> str:
69
+ """
70
+ Generate a response using Llama-3.2, log the chat message, and maintain chat history.
71
+
72
+ Args:
73
+ user_id (ObjectId): The ID of the user.
74
+ session_id (ObjectId): The ID of the chat session.
75
+ message (str): The user's input message.
76
+
77
+ Returns:
78
+ str: The generated response from Llama-3.2.
79
+ """
80
+ try:
81
+ logger.info("Processing message with Llama model.")
82
+
83
+ # Retrieve chat history for the session
84
+ chat_history = db.chat_histories.find_one({"user_id": user_id, "session_id": session_id})
85
+ history = chat_history.get("messages", []) if chat_history else []
86
+
87
+ # Combine history into a single context string
88
+ context = "\n".join([f"User: {chat['user_message']}\nAssistant: {chat['assistant_response']}" for chat in history])
89
+ context += f"\nUser: {message}\nAssistant:"
90
+
91
+ # Tokenize the input text
92
+ inputs = llama_tokenizer(context, return_tensors="pt", padding=True, truncation=True, max_length=1024)
93
+ # Move inputs to appropriate device
94
+ inputs = {key: value.to("cuda" if torch.cuda.is_available() else "cpu") for key, value in inputs.items()}
95
+
96
+ # Generate response
97
+ output = llama_model.generate(
98
+ **inputs,
99
+ max_length=300, # Limit the length of the output
100
+ pad_token_id=llama_tokenizer.pad_token_id,
101
+ eos_token_id=llama_tokenizer.eos_token_id,
102
+ temperature=0.7,
103
+ top_p=0.9
104
+ )
105
+
106
+ # Decode the generated tokens to a string
107
+ generated_text = llama_tokenizer.decode(output[0], skip_special_tokens=True)
108
+
109
+ # Extract the assistant's response
110
+ response = generated_text.split("Assistant:")[-1].strip()
111
+
112
+ # Log the chat message in the database
113
+ chat_entry = {
114
+ "user_message": message,
115
+ "assistant_response": response,
116
+ "timestamp": datetime.now(timezone.utc)
117
+ }
118
+ if chat_history:
119
+ # Update existing session
120
+ db.chat_histories.update_one(
121
+ {"user_id": user_id, "session_id": session_id},
122
+ {"$push": {"messages": chat_entry}, "$set": {"updated_at": datetime.now(timezone.utc)}}
123
+ )
124
+ else:
125
+ # Create a new session
126
+ new_chat = {
127
+ "user_id": user_id,
128
+ "session_id": session_id,
129
+ "messages": [chat_entry],
130
+ "created_at": datetime.now(timezone.utc),
131
+ "updated_at": datetime.now(timezone.utc)
132
+ }
133
+ db.chat_histories.insert_one(new_chat)
134
+
135
+ logger.info("Message processed and logged successfully.")
136
+ return response
137
+ except Exception as e:
138
+ logger.error("Error processing message with Llama model", exc_info=True)
139
+ raise RuntimeError("Failed to generate response. Verify the model and input compatibility.")
backend/app/static/css/adminlte.css ADDED
The diff for this file is too large to render. See raw diff
 
backend/app/static/css/adminlte.css.map ADDED
The diff for this file is too large to render. See raw diff
 
backend/app/static/css/adminlte.min.css ADDED
The diff for this file is too large to render. See raw diff
 
backend/app/static/css/adminlte.min.css.map ADDED
The diff for this file is too large to render. See raw diff
 
backend/app/static/css/adminlte.rtl.css ADDED
The diff for this file is too large to render. See raw diff
 
backend/app/static/css/adminlte.rtl.css.map ADDED
The diff for this file is too large to render. See raw diff
 
backend/app/static/css/adminlte.rtl.min.css ADDED
The diff for this file is too large to render. See raw diff
 
backend/app/static/css/adminlte.rtl.min.css.map ADDED
The diff for this file is too large to render. See raw diff
 
backend/app/static/css/all.css ADDED
The diff for this file is too large to render. See raw diff
 
backend/app/static/css/all.min.css ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ /*!
2
+ * Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com
3
+ * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
4
+ * Copyright 2024 Fonticons, Inc.
5
+ */
6
+ .fa{font-family:var(--fa-style-family,"Font Awesome 6 Free");font-weight:var(--fa-style,900)}.fa,.fa-brands,.fa-classic,.fa-regular,.fa-sharp-solid,.fa-solid,.fab,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:var(--fa-display,inline-block);font-style:normal;font-variant:normal;line-height:1;text-rendering:auto}.fa-classic,.fa-regular,.fa-solid,.far,.fas{font-family:"Font Awesome 6 Free"}.fa-brands,.fab{font-family:"Font Awesome 6 Brands"}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{font-size:.625em;line-height:.1em;vertical-align:.225em}.fa-xs{font-size:.75em;line-height:.08333em;vertical-align:.125em}.fa-sm{font-size:.875em;line-height:.07143em;vertical-align:.05357em}.fa-lg{font-size:1.25em;line-height:.05em;vertical-align:-.075em}.fa-xl{font-size:1.5em;line-height:.04167em;vertical-align:-.125em}.fa-2xl{font-size:2em;line-height:.03125em;vertical-align:-.1875em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:var(--fa-li-margin,2.5em);padding-left:0}.fa-ul>li{position:relative}.fa-li{left:calc(var(--fa-li-width, 2em)*-1);position:absolute;text-align:center;width:var(--fa-li-width,2em);line-height:inherit}.fa-border{border-radius:var(--fa-border-radius,.1em);border:var(--fa-border-width,.08em) var(--fa-border-style,solid) var(--fa-border-color,#eee);padding:var(--fa-border-padding,.2em .25em .15em)}.fa-pull-left{float:left;margin-right:var(--fa-pull-margin,.3em)}.fa-pull-right{float:right;margin-left:var(--fa-pull-margin,.3em)}.fa-beat{animation-name:fa-beat;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-bounce{animation-name:fa-bounce;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1))}.fa-fade{animation-name:fa-fade;animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-beat-fade,.fa-fade{animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s)}.fa-beat-fade{animation-name:fa-beat-fade;animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-flip{animation-name:fa-flip;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-shake{animation-name:fa-shake;animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,linear)}.fa-shake,.fa-spin{animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal)}.fa-spin{animation-name:fa-spin;animation-duration:var(--fa-animation-duration,2s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin-reverse{--fa-animation-direction:reverse}.fa-pulse,.fa-spin-pulse{animation-name:fa-spin;animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,steps(8))}@media (prefers-reduced-motion:reduce){.fa-beat,.fa-beat-fade,.fa-bounce,.fa-fade,.fa-flip,.fa-pulse,.fa-shake,.fa-spin,.fa-spin-pulse{animation-delay:-1ms;animation-duration:1ms;animation-iteration-count:1;transition-delay:0s;transition-duration:0s}}@keyframes fa-beat{0%,90%{transform:scale(1)}45%{transform:scale(var(--fa-beat-scale,1.25))}}@keyframes fa-bounce{0%{transform:scale(1) translateY(0)}10%{transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{transform:scale(1) translateY(0)}to{transform:scale(1) translateY(0)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);transform:scale(1)}50%{opacity:1;transform:scale(var(--fa-beat-fade-scale,1.125))}}@keyframes fa-flip{50%{transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@keyframes fa-shake{0%{transform:rotate(-15deg)}4%{transform:rotate(15deg)}8%,24%{transform:rotate(-18deg)}12%,28%{transform:rotate(18deg)}16%{transform:rotate(-22deg)}20%{transform:rotate(22deg)}32%{transform:rotate(-12deg)}36%{transform:rotate(12deg)}40%,to{transform:rotate(0deg)}}@keyframes fa-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.fa-rotate-90{transform:rotate(90deg)}.fa-rotate-180{transform:rotate(180deg)}.fa-rotate-270{transform:rotate(270deg)}.fa-flip-horizontal{transform:scaleX(-1)}.fa-flip-vertical{transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1)}.fa-rotate-by{transform:rotate(var(--fa-rotate-angle,0))}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%;z-index:var(--fa-stack-z-index,auto)}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:var(--fa-inverse,#fff)}
7
+
8
+ .fa-0:before{content:"\30"}.fa-1:before{content:"\31"}.fa-2:before{content:"\32"}.fa-3:before{content:"\33"}.fa-4:before{content:"\34"}.fa-5:before{content:"\35"}.fa-6:before{content:"\36"}.fa-7:before{content:"\37"}.fa-8:before{content:"\38"}.fa-9:before{content:"\39"}.fa-fill-drip:before{content:"\f576"}.fa-arrows-to-circle:before{content:"\e4bd"}.fa-chevron-circle-right:before,.fa-circle-chevron-right:before{content:"\f138"}.fa-at:before{content:"\40"}.fa-trash-alt:before,.fa-trash-can:before{content:"\f2ed"}.fa-text-height:before{content:"\f034"}.fa-user-times:before,.fa-user-xmark:before{content:"\f235"}.fa-stethoscope:before{content:"\f0f1"}.fa-comment-alt:before,.fa-message:before{content:"\f27a"}.fa-info:before{content:"\f129"}.fa-compress-alt:before,.fa-down-left-and-up-right-to-center:before{content:"\f422"}.fa-explosion:before{content:"\e4e9"}.fa-file-alt:before,.fa-file-lines:before,.fa-file-text:before{content:"\f15c"}.fa-wave-square:before{content:"\f83e"}.fa-ring:before{content:"\f70b"}.fa-building-un:before{content:"\e4d9"}.fa-dice-three:before{content:"\f527"}.fa-calendar-alt:before,.fa-calendar-days:before{content:"\f073"}.fa-anchor-circle-check:before{content:"\e4aa"}.fa-building-circle-arrow-right:before{content:"\e4d1"}.fa-volleyball-ball:before,.fa-volleyball:before{content:"\f45f"}.fa-arrows-up-to-line:before{content:"\e4c2"}.fa-sort-desc:before,.fa-sort-down:before{content:"\f0dd"}.fa-circle-minus:before,.fa-minus-circle:before{content:"\f056"}.fa-door-open:before{content:"\f52b"}.fa-right-from-bracket:before,.fa-sign-out-alt:before{content:"\f2f5"}.fa-atom:before{content:"\f5d2"}.fa-soap:before{content:"\e06e"}.fa-heart-music-camera-bolt:before,.fa-icons:before{content:"\f86d"}.fa-microphone-alt-slash:before,.fa-microphone-lines-slash:before{content:"\f539"}.fa-bridge-circle-check:before{content:"\e4c9"}.fa-pump-medical:before{content:"\e06a"}.fa-fingerprint:before{content:"\f577"}.fa-hand-point-right:before{content:"\f0a4"}.fa-magnifying-glass-location:before,.fa-search-location:before{content:"\f689"}.fa-forward-step:before,.fa-step-forward:before{content:"\f051"}.fa-face-smile-beam:before,.fa-smile-beam:before{content:"\f5b8"}.fa-flag-checkered:before{content:"\f11e"}.fa-football-ball:before,.fa-football:before{content:"\f44e"}.fa-school-circle-exclamation:before{content:"\e56c"}.fa-crop:before{content:"\f125"}.fa-angle-double-down:before,.fa-angles-down:before{content:"\f103"}.fa-users-rectangle:before{content:"\e594"}.fa-people-roof:before{content:"\e537"}.fa-people-line:before{content:"\e534"}.fa-beer-mug-empty:before,.fa-beer:before{content:"\f0fc"}.fa-diagram-predecessor:before{content:"\e477"}.fa-arrow-up-long:before,.fa-long-arrow-up:before{content:"\f176"}.fa-burn:before,.fa-fire-flame-simple:before{content:"\f46a"}.fa-male:before,.fa-person:before{content:"\f183"}.fa-laptop:before{content:"\f109"}.fa-file-csv:before{content:"\f6dd"}.fa-menorah:before{content:"\f676"}.fa-truck-plane:before{content:"\e58f"}.fa-record-vinyl:before{content:"\f8d9"}.fa-face-grin-stars:before,.fa-grin-stars:before{content:"\f587"}.fa-bong:before{content:"\f55c"}.fa-pastafarianism:before,.fa-spaghetti-monster-flying:before{content:"\f67b"}.fa-arrow-down-up-across-line:before{content:"\e4af"}.fa-spoon:before,.fa-utensil-spoon:before{content:"\f2e5"}.fa-jar-wheat:before{content:"\e517"}.fa-envelopes-bulk:before,.fa-mail-bulk:before{content:"\f674"}.fa-file-circle-exclamation:before{content:"\e4eb"}.fa-circle-h:before,.fa-hospital-symbol:before{content:"\f47e"}.fa-pager:before{content:"\f815"}.fa-address-book:before,.fa-contact-book:before{content:"\f2b9"}.fa-strikethrough:before{content:"\f0cc"}.fa-k:before{content:"\4b"}.fa-landmark-flag:before{content:"\e51c"}.fa-pencil-alt:before,.fa-pencil:before{content:"\f303"}.fa-backward:before{content:"\f04a"}.fa-caret-right:before{content:"\f0da"}.fa-comments:before{content:"\f086"}.fa-file-clipboard:before,.fa-paste:before{content:"\f0ea"}.fa-code-pull-request:before{content:"\e13c"}.fa-clipboard-list:before{content:"\f46d"}.fa-truck-loading:before,.fa-truck-ramp-box:before{content:"\f4de"}.fa-user-check:before{content:"\f4fc"}.fa-vial-virus:before{content:"\e597"}.fa-sheet-plastic:before{content:"\e571"}.fa-blog:before{content:"\f781"}.fa-user-ninja:before{content:"\f504"}.fa-person-arrow-up-from-line:before{content:"\e539"}.fa-scroll-torah:before,.fa-torah:before{content:"\f6a0"}.fa-broom-ball:before,.fa-quidditch-broom-ball:before,.fa-quidditch:before{content:"\f458"}.fa-toggle-off:before{content:"\f204"}.fa-archive:before,.fa-box-archive:before{content:"\f187"}.fa-person-drowning:before{content:"\e545"}.fa-arrow-down-9-1:before,.fa-sort-numeric-desc:before,.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-face-grin-tongue-squint:before,.fa-grin-tongue-squint:before{content:"\f58a"}.fa-spray-can:before{content:"\f5bd"}.fa-truck-monster:before{content:"\f63b"}.fa-w:before{content:"\57"}.fa-earth-africa:before,.fa-globe-africa:before{content:"\f57c"}.fa-rainbow:before{content:"\f75b"}.fa-circle-notch:before{content:"\f1ce"}.fa-tablet-alt:before,.fa-tablet-screen-button:before{content:"\f3fa"}.fa-paw:before{content:"\f1b0"}.fa-cloud:before{content:"\f0c2"}.fa-trowel-bricks:before{content:"\e58a"}.fa-face-flushed:before,.fa-flushed:before{content:"\f579"}.fa-hospital-user:before{content:"\f80d"}.fa-tent-arrow-left-right:before{content:"\e57f"}.fa-gavel:before,.fa-legal:before{content:"\f0e3"}.fa-binoculars:before{content:"\f1e5"}.fa-microphone-slash:before{content:"\f131"}.fa-box-tissue:before{content:"\e05b"}.fa-motorcycle:before{content:"\f21c"}.fa-bell-concierge:before,.fa-concierge-bell:before{content:"\f562"}.fa-pen-ruler:before,.fa-pencil-ruler:before{content:"\f5ae"}.fa-people-arrows-left-right:before,.fa-people-arrows:before{content:"\e068"}.fa-mars-and-venus-burst:before{content:"\e523"}.fa-caret-square-right:before,.fa-square-caret-right:before{content:"\f152"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-sun-plant-wilt:before{content:"\e57a"}.fa-toilets-portable:before{content:"\e584"}.fa-hockey-puck:before{content:"\f453"}.fa-table:before{content:"\f0ce"}.fa-magnifying-glass-arrow-right:before{content:"\e521"}.fa-digital-tachograph:before,.fa-tachograph-digital:before{content:"\f566"}.fa-users-slash:before{content:"\e073"}.fa-clover:before{content:"\e139"}.fa-mail-reply:before,.fa-reply:before{content:"\f3e5"}.fa-star-and-crescent:before{content:"\f699"}.fa-house-fire:before{content:"\e50c"}.fa-minus-square:before,.fa-square-minus:before{content:"\f146"}.fa-helicopter:before{content:"\f533"}.fa-compass:before{content:"\f14e"}.fa-caret-square-down:before,.fa-square-caret-down:before{content:"\f150"}.fa-file-circle-question:before{content:"\e4ef"}.fa-laptop-code:before{content:"\f5fc"}.fa-swatchbook:before{content:"\f5c3"}.fa-prescription-bottle:before{content:"\f485"}.fa-bars:before,.fa-navicon:before{content:"\f0c9"}.fa-people-group:before{content:"\e533"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-heart-broken:before,.fa-heart-crack:before{content:"\f7a9"}.fa-external-link-square-alt:before,.fa-square-up-right:before{content:"\f360"}.fa-face-kiss-beam:before,.fa-kiss-beam:before{content:"\f597"}.fa-film:before{content:"\f008"}.fa-ruler-horizontal:before{content:"\f547"}.fa-people-robbery:before{content:"\e536"}.fa-lightbulb:before{content:"\f0eb"}.fa-caret-left:before{content:"\f0d9"}.fa-circle-exclamation:before,.fa-exclamation-circle:before{content:"\f06a"}.fa-school-circle-xmark:before{content:"\e56d"}.fa-arrow-right-from-bracket:before,.fa-sign-out:before{content:"\f08b"}.fa-chevron-circle-down:before,.fa-circle-chevron-down:before{content:"\f13a"}.fa-unlock-alt:before,.fa-unlock-keyhole:before{content:"\f13e"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-headphones-alt:before,.fa-headphones-simple:before{content:"\f58f"}.fa-sitemap:before{content:"\f0e8"}.fa-circle-dollar-to-slot:before,.fa-donate:before{content:"\f4b9"}.fa-memory:before{content:"\f538"}.fa-road-spikes:before{content:"\e568"}.fa-fire-burner:before{content:"\e4f1"}.fa-flag:before{content:"\f024"}.fa-hanukiah:before{content:"\f6e6"}.fa-feather:before{content:"\f52d"}.fa-volume-down:before,.fa-volume-low:before{content:"\f027"}.fa-comment-slash:before{content:"\f4b3"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-compress:before{content:"\f066"}.fa-wheat-alt:before,.fa-wheat-awn:before{content:"\e2cd"}.fa-ankh:before{content:"\f644"}.fa-hands-holding-child:before{content:"\e4fa"}.fa-asterisk:before{content:"\2a"}.fa-check-square:before,.fa-square-check:before{content:"\f14a"}.fa-peseta-sign:before{content:"\e221"}.fa-header:before,.fa-heading:before{content:"\f1dc"}.fa-ghost:before{content:"\f6e2"}.fa-list-squares:before,.fa-list:before{content:"\f03a"}.fa-phone-square-alt:before,.fa-square-phone-flip:before{content:"\f87b"}.fa-cart-plus:before{content:"\f217"}.fa-gamepad:before{content:"\f11b"}.fa-circle-dot:before,.fa-dot-circle:before{content:"\f192"}.fa-dizzy:before,.fa-face-dizzy:before{content:"\f567"}.fa-egg:before{content:"\f7fb"}.fa-house-medical-circle-xmark:before{content:"\e513"}.fa-campground:before{content:"\f6bb"}.fa-folder-plus:before{content:"\f65e"}.fa-futbol-ball:before,.fa-futbol:before,.fa-soccer-ball:before{content:"\f1e3"}.fa-paint-brush:before,.fa-paintbrush:before{content:"\f1fc"}.fa-lock:before{content:"\f023"}.fa-gas-pump:before{content:"\f52f"}.fa-hot-tub-person:before,.fa-hot-tub:before{content:"\f593"}.fa-map-location:before,.fa-map-marked:before{content:"\f59f"}.fa-house-flood-water:before{content:"\e50e"}.fa-tree:before{content:"\f1bb"}.fa-bridge-lock:before{content:"\e4cc"}.fa-sack-dollar:before{content:"\f81d"}.fa-edit:before,.fa-pen-to-square:before{content:"\f044"}.fa-car-side:before{content:"\f5e4"}.fa-share-alt:before,.fa-share-nodes:before{content:"\f1e0"}.fa-heart-circle-minus:before{content:"\e4ff"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-microscope:before{content:"\f610"}.fa-sink:before{content:"\e06d"}.fa-bag-shopping:before,.fa-shopping-bag:before{content:"\f290"}.fa-arrow-down-z-a:before,.fa-sort-alpha-desc:before,.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-mitten:before{content:"\f7b5"}.fa-person-rays:before{content:"\e54d"}.fa-users:before{content:"\f0c0"}.fa-eye-slash:before{content:"\f070"}.fa-flask-vial:before{content:"\e4f3"}.fa-hand-paper:before,.fa-hand:before{content:"\f256"}.fa-om:before{content:"\f679"}.fa-worm:before{content:"\e599"}.fa-house-circle-xmark:before{content:"\e50b"}.fa-plug:before{content:"\f1e6"}.fa-chevron-up:before{content:"\f077"}.fa-hand-spock:before{content:"\f259"}.fa-stopwatch:before{content:"\f2f2"}.fa-face-kiss:before,.fa-kiss:before{content:"\f596"}.fa-bridge-circle-xmark:before{content:"\e4cb"}.fa-face-grin-tongue:before,.fa-grin-tongue:before{content:"\f589"}.fa-chess-bishop:before{content:"\f43a"}.fa-face-grin-wink:before,.fa-grin-wink:before{content:"\f58c"}.fa-deaf:before,.fa-deafness:before,.fa-ear-deaf:before,.fa-hard-of-hearing:before{content:"\f2a4"}.fa-road-circle-check:before{content:"\e564"}.fa-dice-five:before{content:"\f523"}.fa-rss-square:before,.fa-square-rss:before{content:"\f143"}.fa-land-mine-on:before{content:"\e51b"}.fa-i-cursor:before{content:"\f246"}.fa-stamp:before{content:"\f5bf"}.fa-stairs:before{content:"\e289"}.fa-i:before{content:"\49"}.fa-hryvnia-sign:before,.fa-hryvnia:before{content:"\f6f2"}.fa-pills:before{content:"\f484"}.fa-face-grin-wide:before,.fa-grin-alt:before{content:"\f581"}.fa-tooth:before{content:"\f5c9"}.fa-v:before{content:"\56"}.fa-bangladeshi-taka-sign:before{content:"\e2e6"}.fa-bicycle:before{content:"\f206"}.fa-rod-asclepius:before,.fa-rod-snake:before,.fa-staff-aesculapius:before,.fa-staff-snake:before{content:"\e579"}.fa-head-side-cough-slash:before{content:"\e062"}.fa-ambulance:before,.fa-truck-medical:before{content:"\f0f9"}.fa-wheat-awn-circle-exclamation:before{content:"\e598"}.fa-snowman:before{content:"\f7d0"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-road-barrier:before{content:"\e562"}.fa-school:before{content:"\f549"}.fa-igloo:before{content:"\f7ae"}.fa-joint:before{content:"\f595"}.fa-angle-right:before{content:"\f105"}.fa-horse:before{content:"\f6f0"}.fa-q:before{content:"\51"}.fa-g:before{content:"\47"}.fa-notes-medical:before{content:"\f481"}.fa-temperature-2:before,.fa-temperature-half:before,.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-dong-sign:before{content:"\e169"}.fa-capsules:before{content:"\f46b"}.fa-poo-bolt:before,.fa-poo-storm:before{content:"\f75a"}.fa-face-frown-open:before,.fa-frown-open:before{content:"\f57a"}.fa-hand-point-up:before{content:"\f0a6"}.fa-money-bill:before{content:"\f0d6"}.fa-bookmark:before{content:"\f02e"}.fa-align-justify:before{content:"\f039"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-helmet-un:before{content:"\e503"}.fa-bullseye:before{content:"\f140"}.fa-bacon:before{content:"\f7e5"}.fa-hand-point-down:before{content:"\f0a7"}.fa-arrow-up-from-bracket:before{content:"\e09a"}.fa-folder-blank:before,.fa-folder:before{content:"\f07b"}.fa-file-medical-alt:before,.fa-file-waveform:before{content:"\f478"}.fa-radiation:before{content:"\f7b9"}.fa-chart-simple:before{content:"\e473"}.fa-mars-stroke:before{content:"\f229"}.fa-vial:before{content:"\f492"}.fa-dashboard:before,.fa-gauge-med:before,.fa-gauge:before,.fa-tachometer-alt-average:before{content:"\f624"}.fa-magic-wand-sparkles:before,.fa-wand-magic-sparkles:before{content:"\e2ca"}.fa-e:before{content:"\45"}.fa-pen-alt:before,.fa-pen-clip:before{content:"\f305"}.fa-bridge-circle-exclamation:before{content:"\e4ca"}.fa-user:before{content:"\f007"}.fa-school-circle-check:before{content:"\e56b"}.fa-dumpster:before{content:"\f793"}.fa-shuttle-van:before,.fa-van-shuttle:before{content:"\f5b6"}.fa-building-user:before{content:"\e4da"}.fa-caret-square-left:before,.fa-square-caret-left:before{content:"\f191"}.fa-highlighter:before{content:"\f591"}.fa-key:before{content:"\f084"}.fa-bullhorn:before{content:"\f0a1"}.fa-globe:before{content:"\f0ac"}.fa-synagogue:before{content:"\f69b"}.fa-person-half-dress:before{content:"\e548"}.fa-road-bridge:before{content:"\e563"}.fa-location-arrow:before{content:"\f124"}.fa-c:before{content:"\43"}.fa-tablet-button:before{content:"\f10a"}.fa-building-lock:before{content:"\e4d6"}.fa-pizza-slice:before{content:"\f818"}.fa-money-bill-wave:before{content:"\f53a"}.fa-area-chart:before,.fa-chart-area:before{content:"\f1fe"}.fa-house-flag:before{content:"\e50d"}.fa-person-circle-minus:before{content:"\e540"}.fa-ban:before,.fa-cancel:before{content:"\f05e"}.fa-camera-rotate:before{content:"\e0d8"}.fa-air-freshener:before,.fa-spray-can-sparkles:before{content:"\f5d0"}.fa-star:before{content:"\f005"}.fa-repeat:before{content:"\f363"}.fa-cross:before{content:"\f654"}.fa-box:before{content:"\f466"}.fa-venus-mars:before{content:"\f228"}.fa-arrow-pointer:before,.fa-mouse-pointer:before{content:"\f245"}.fa-expand-arrows-alt:before,.fa-maximize:before{content:"\f31e"}.fa-charging-station:before{content:"\f5e7"}.fa-shapes:before,.fa-triangle-circle-square:before{content:"\f61f"}.fa-random:before,.fa-shuffle:before{content:"\f074"}.fa-person-running:before,.fa-running:before{content:"\f70c"}.fa-mobile-retro:before{content:"\e527"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-spider:before{content:"\f717"}.fa-hands-bound:before{content:"\e4f9"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-plane-circle-exclamation:before{content:"\e556"}.fa-x-ray:before{content:"\f497"}.fa-spell-check:before{content:"\f891"}.fa-slash:before{content:"\f715"}.fa-computer-mouse:before,.fa-mouse:before{content:"\f8cc"}.fa-arrow-right-to-bracket:before,.fa-sign-in:before{content:"\f090"}.fa-shop-slash:before,.fa-store-alt-slash:before{content:"\e070"}.fa-server:before{content:"\f233"}.fa-virus-covid-slash:before{content:"\e4a9"}.fa-shop-lock:before{content:"\e4a5"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-blender-phone:before{content:"\f6b6"}.fa-building-wheat:before{content:"\e4db"}.fa-person-breastfeeding:before{content:"\e53a"}.fa-right-to-bracket:before,.fa-sign-in-alt:before{content:"\f2f6"}.fa-venus:before{content:"\f221"}.fa-passport:before{content:"\f5ab"}.fa-thumb-tack-slash:before,.fa-thumbtack-slash:before{content:"\e68f"}.fa-heart-pulse:before,.fa-heartbeat:before{content:"\f21e"}.fa-people-carry-box:before,.fa-people-carry:before{content:"\f4ce"}.fa-temperature-high:before{content:"\f769"}.fa-microchip:before{content:"\f2db"}.fa-crown:before{content:"\f521"}.fa-weight-hanging:before{content:"\f5cd"}.fa-xmarks-lines:before{content:"\e59a"}.fa-file-prescription:before{content:"\f572"}.fa-weight-scale:before,.fa-weight:before{content:"\f496"}.fa-user-friends:before,.fa-user-group:before{content:"\f500"}.fa-arrow-up-a-z:before,.fa-sort-alpha-up:before{content:"\f15e"}.fa-chess-knight:before{content:"\f441"}.fa-face-laugh-squint:before,.fa-laugh-squint:before{content:"\f59b"}.fa-wheelchair:before{content:"\f193"}.fa-arrow-circle-up:before,.fa-circle-arrow-up:before{content:"\f0aa"}.fa-toggle-on:before{content:"\f205"}.fa-person-walking:before,.fa-walking:before{content:"\f554"}.fa-l:before{content:"\4c"}.fa-fire:before{content:"\f06d"}.fa-bed-pulse:before,.fa-procedures:before{content:"\f487"}.fa-shuttle-space:before,.fa-space-shuttle:before{content:"\f197"}.fa-face-laugh:before,.fa-laugh:before{content:"\f599"}.fa-folder-open:before{content:"\f07c"}.fa-heart-circle-plus:before{content:"\e500"}.fa-code-fork:before{content:"\e13b"}.fa-city:before{content:"\f64f"}.fa-microphone-alt:before,.fa-microphone-lines:before{content:"\f3c9"}.fa-pepper-hot:before{content:"\f816"}.fa-unlock:before{content:"\f09c"}.fa-colon-sign:before{content:"\e140"}.fa-headset:before{content:"\f590"}.fa-store-slash:before{content:"\e071"}.fa-road-circle-xmark:before{content:"\e566"}.fa-user-minus:before{content:"\f503"}.fa-mars-stroke-up:before,.fa-mars-stroke-v:before{content:"\f22a"}.fa-champagne-glasses:before,.fa-glass-cheers:before{content:"\f79f"}.fa-clipboard:before{content:"\f328"}.fa-house-circle-exclamation:before{content:"\e50a"}.fa-file-arrow-up:before,.fa-file-upload:before{content:"\f574"}.fa-wifi-3:before,.fa-wifi-strong:before,.fa-wifi:before{content:"\f1eb"}.fa-bath:before,.fa-bathtub:before{content:"\f2cd"}.fa-underline:before{content:"\f0cd"}.fa-user-edit:before,.fa-user-pen:before{content:"\f4ff"}.fa-signature:before{content:"\f5b7"}.fa-stroopwafel:before{content:"\f551"}.fa-bold:before{content:"\f032"}.fa-anchor-lock:before{content:"\e4ad"}.fa-building-ngo:before{content:"\e4d7"}.fa-manat-sign:before{content:"\e1d5"}.fa-not-equal:before{content:"\f53e"}.fa-border-style:before,.fa-border-top-left:before{content:"\f853"}.fa-map-location-dot:before,.fa-map-marked-alt:before{content:"\f5a0"}.fa-jedi:before{content:"\f669"}.fa-poll:before,.fa-square-poll-vertical:before{content:"\f681"}.fa-mug-hot:before{content:"\f7b6"}.fa-battery-car:before,.fa-car-battery:before{content:"\f5df"}.fa-gift:before{content:"\f06b"}.fa-dice-two:before{content:"\f528"}.fa-chess-queen:before{content:"\f445"}.fa-glasses:before{content:"\f530"}.fa-chess-board:before{content:"\f43c"}.fa-building-circle-check:before{content:"\e4d2"}.fa-person-chalkboard:before{content:"\e53d"}.fa-mars-stroke-h:before,.fa-mars-stroke-right:before{content:"\f22b"}.fa-hand-back-fist:before,.fa-hand-rock:before{content:"\f255"}.fa-caret-square-up:before,.fa-square-caret-up:before{content:"\f151"}.fa-cloud-showers-water:before{content:"\e4e4"}.fa-bar-chart:before,.fa-chart-bar:before{content:"\f080"}.fa-hands-bubbles:before,.fa-hands-wash:before{content:"\e05e"}.fa-less-than-equal:before{content:"\f537"}.fa-train:before{content:"\f238"}.fa-eye-low-vision:before,.fa-low-vision:before{content:"\f2a8"}.fa-crow:before{content:"\f520"}.fa-sailboat:before{content:"\e445"}.fa-window-restore:before{content:"\f2d2"}.fa-plus-square:before,.fa-square-plus:before{content:"\f0fe"}.fa-torii-gate:before{content:"\f6a1"}.fa-frog:before{content:"\f52e"}.fa-bucket:before{content:"\e4cf"}.fa-image:before{content:"\f03e"}.fa-microphone:before{content:"\f130"}.fa-cow:before{content:"\f6c8"}.fa-caret-up:before{content:"\f0d8"}.fa-screwdriver:before{content:"\f54a"}.fa-folder-closed:before{content:"\e185"}.fa-house-tsunami:before{content:"\e515"}.fa-square-nfi:before{content:"\e576"}.fa-arrow-up-from-ground-water:before{content:"\e4b5"}.fa-glass-martini-alt:before,.fa-martini-glass:before{content:"\f57b"}.fa-rotate-back:before,.fa-rotate-backward:before,.fa-rotate-left:before,.fa-undo-alt:before{content:"\f2ea"}.fa-columns:before,.fa-table-columns:before{content:"\f0db"}.fa-lemon:before{content:"\f094"}.fa-head-side-mask:before{content:"\e063"}.fa-handshake:before{content:"\f2b5"}.fa-gem:before{content:"\f3a5"}.fa-dolly-box:before,.fa-dolly:before{content:"\f472"}.fa-smoking:before{content:"\f48d"}.fa-compress-arrows-alt:before,.fa-minimize:before{content:"\f78c"}.fa-monument:before{content:"\f5a6"}.fa-snowplow:before{content:"\f7d2"}.fa-angle-double-right:before,.fa-angles-right:before{content:"\f101"}.fa-cannabis:before{content:"\f55f"}.fa-circle-play:before,.fa-play-circle:before{content:"\f144"}.fa-tablets:before{content:"\f490"}.fa-ethernet:before{content:"\f796"}.fa-eur:before,.fa-euro-sign:before,.fa-euro:before{content:"\f153"}.fa-chair:before{content:"\f6c0"}.fa-check-circle:before,.fa-circle-check:before{content:"\f058"}.fa-circle-stop:before,.fa-stop-circle:before{content:"\f28d"}.fa-compass-drafting:before,.fa-drafting-compass:before{content:"\f568"}.fa-plate-wheat:before{content:"\e55a"}.fa-icicles:before{content:"\f7ad"}.fa-person-shelter:before{content:"\e54f"}.fa-neuter:before{content:"\f22c"}.fa-id-badge:before{content:"\f2c1"}.fa-marker:before{content:"\f5a1"}.fa-face-laugh-beam:before,.fa-laugh-beam:before{content:"\f59a"}.fa-helicopter-symbol:before{content:"\e502"}.fa-universal-access:before{content:"\f29a"}.fa-chevron-circle-up:before,.fa-circle-chevron-up:before{content:"\f139"}.fa-lari-sign:before{content:"\e1c8"}.fa-volcano:before{content:"\f770"}.fa-person-walking-dashed-line-arrow-right:before{content:"\e553"}.fa-gbp:before,.fa-pound-sign:before,.fa-sterling-sign:before{content:"\f154"}.fa-viruses:before{content:"\e076"}.fa-square-person-confined:before{content:"\e577"}.fa-user-tie:before{content:"\f508"}.fa-arrow-down-long:before,.fa-long-arrow-down:before{content:"\f175"}.fa-tent-arrow-down-to-line:before{content:"\e57e"}.fa-certificate:before{content:"\f0a3"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-suitcase:before{content:"\f0f2"}.fa-person-skating:before,.fa-skating:before{content:"\f7c5"}.fa-filter-circle-dollar:before,.fa-funnel-dollar:before{content:"\f662"}.fa-camera-retro:before{content:"\f083"}.fa-arrow-circle-down:before,.fa-circle-arrow-down:before{content:"\f0ab"}.fa-arrow-right-to-file:before,.fa-file-import:before{content:"\f56f"}.fa-external-link-square:before,.fa-square-arrow-up-right:before{content:"\f14c"}.fa-box-open:before{content:"\f49e"}.fa-scroll:before{content:"\f70e"}.fa-spa:before{content:"\f5bb"}.fa-location-pin-lock:before{content:"\e51f"}.fa-pause:before{content:"\f04c"}.fa-hill-avalanche:before{content:"\e507"}.fa-temperature-0:before,.fa-temperature-empty:before,.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-bomb:before{content:"\f1e2"}.fa-registered:before{content:"\f25d"}.fa-address-card:before,.fa-contact-card:before,.fa-vcard:before{content:"\f2bb"}.fa-balance-scale-right:before,.fa-scale-unbalanced-flip:before{content:"\f516"}.fa-subscript:before{content:"\f12c"}.fa-diamond-turn-right:before,.fa-directions:before{content:"\f5eb"}.fa-burst:before{content:"\e4dc"}.fa-house-laptop:before,.fa-laptop-house:before{content:"\e066"}.fa-face-tired:before,.fa-tired:before{content:"\f5c8"}.fa-money-bills:before{content:"\e1f3"}.fa-smog:before{content:"\f75f"}.fa-crutch:before{content:"\f7f7"}.fa-cloud-arrow-up:before,.fa-cloud-upload-alt:before,.fa-cloud-upload:before{content:"\f0ee"}.fa-palette:before{content:"\f53f"}.fa-arrows-turn-right:before{content:"\e4c0"}.fa-vest:before{content:"\e085"}.fa-ferry:before{content:"\e4ea"}.fa-arrows-down-to-people:before{content:"\e4b9"}.fa-seedling:before,.fa-sprout:before{content:"\f4d8"}.fa-arrows-alt-h:before,.fa-left-right:before{content:"\f337"}.fa-boxes-packing:before{content:"\e4c7"}.fa-arrow-circle-left:before,.fa-circle-arrow-left:before{content:"\f0a8"}.fa-group-arrows-rotate:before{content:"\e4f6"}.fa-bowl-food:before{content:"\e4c6"}.fa-candy-cane:before{content:"\f786"}.fa-arrow-down-wide-short:before,.fa-sort-amount-asc:before,.fa-sort-amount-down:before{content:"\f160"}.fa-cloud-bolt:before,.fa-thunderstorm:before{content:"\f76c"}.fa-remove-format:before,.fa-text-slash:before{content:"\f87d"}.fa-face-smile-wink:before,.fa-smile-wink:before{content:"\f4da"}.fa-file-word:before{content:"\f1c2"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-arrows-h:before,.fa-arrows-left-right:before{content:"\f07e"}.fa-house-lock:before{content:"\e510"}.fa-cloud-arrow-down:before,.fa-cloud-download-alt:before,.fa-cloud-download:before{content:"\f0ed"}.fa-children:before{content:"\e4e1"}.fa-blackboard:before,.fa-chalkboard:before{content:"\f51b"}.fa-user-alt-slash:before,.fa-user-large-slash:before{content:"\f4fa"}.fa-envelope-open:before{content:"\f2b6"}.fa-handshake-alt-slash:before,.fa-handshake-simple-slash:before{content:"\e05f"}.fa-mattress-pillow:before{content:"\e525"}.fa-guarani-sign:before{content:"\e19a"}.fa-arrows-rotate:before,.fa-refresh:before,.fa-sync:before{content:"\f021"}.fa-fire-extinguisher:before{content:"\f134"}.fa-cruzeiro-sign:before{content:"\e152"}.fa-greater-than-equal:before{content:"\f532"}.fa-shield-alt:before,.fa-shield-halved:before{content:"\f3ed"}.fa-atlas:before,.fa-book-atlas:before{content:"\f558"}.fa-virus:before{content:"\e074"}.fa-envelope-circle-check:before{content:"\e4e8"}.fa-layer-group:before{content:"\f5fd"}.fa-arrows-to-dot:before{content:"\e4be"}.fa-archway:before{content:"\f557"}.fa-heart-circle-check:before{content:"\e4fd"}.fa-house-chimney-crack:before,.fa-house-damage:before{content:"\f6f1"}.fa-file-archive:before,.fa-file-zipper:before{content:"\f1c6"}.fa-square:before{content:"\f0c8"}.fa-glass-martini:before,.fa-martini-glass-empty:before{content:"\f000"}.fa-couch:before{content:"\f4b8"}.fa-cedi-sign:before{content:"\e0df"}.fa-italic:before{content:"\f033"}.fa-table-cells-column-lock:before{content:"\e678"}.fa-church:before{content:"\f51d"}.fa-comments-dollar:before{content:"\f653"}.fa-democrat:before{content:"\f747"}.fa-z:before{content:"\5a"}.fa-person-skiing:before,.fa-skiing:before{content:"\f7c9"}.fa-road-lock:before{content:"\e567"}.fa-a:before{content:"\41"}.fa-temperature-arrow-down:before,.fa-temperature-down:before{content:"\e03f"}.fa-feather-alt:before,.fa-feather-pointed:before{content:"\f56b"}.fa-p:before{content:"\50"}.fa-snowflake:before{content:"\f2dc"}.fa-newspaper:before{content:"\f1ea"}.fa-ad:before,.fa-rectangle-ad:before{content:"\f641"}.fa-arrow-circle-right:before,.fa-circle-arrow-right:before{content:"\f0a9"}.fa-filter-circle-xmark:before{content:"\e17b"}.fa-locust:before{content:"\e520"}.fa-sort:before,.fa-unsorted:before{content:"\f0dc"}.fa-list-1-2:before,.fa-list-numeric:before,.fa-list-ol:before{content:"\f0cb"}.fa-person-dress-burst:before{content:"\e544"}.fa-money-check-alt:before,.fa-money-check-dollar:before{content:"\f53d"}.fa-vector-square:before{content:"\f5cb"}.fa-bread-slice:before{content:"\f7ec"}.fa-language:before{content:"\f1ab"}.fa-face-kiss-wink-heart:before,.fa-kiss-wink-heart:before{content:"\f598"}.fa-filter:before{content:"\f0b0"}.fa-question:before{content:"\3f"}.fa-file-signature:before{content:"\f573"}.fa-arrows-alt:before,.fa-up-down-left-right:before{content:"\f0b2"}.fa-house-chimney-user:before{content:"\e065"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-puzzle-piece:before{content:"\f12e"}.fa-money-check:before{content:"\f53c"}.fa-star-half-alt:before,.fa-star-half-stroke:before{content:"\f5c0"}.fa-code:before{content:"\f121"}.fa-glass-whiskey:before,.fa-whiskey-glass:before{content:"\f7a0"}.fa-building-circle-exclamation:before{content:"\e4d3"}.fa-magnifying-glass-chart:before{content:"\e522"}.fa-arrow-up-right-from-square:before,.fa-external-link:before{content:"\f08e"}.fa-cubes-stacked:before{content:"\e4e6"}.fa-krw:before,.fa-won-sign:before,.fa-won:before{content:"\f159"}.fa-virus-covid:before{content:"\e4a8"}.fa-austral-sign:before{content:"\e0a9"}.fa-f:before{content:"\46"}.fa-leaf:before{content:"\f06c"}.fa-road:before{content:"\f018"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-person-circle-plus:before{content:"\e541"}.fa-chart-pie:before,.fa-pie-chart:before{content:"\f200"}.fa-bolt-lightning:before{content:"\e0b7"}.fa-sack-xmark:before{content:"\e56a"}.fa-file-excel:before{content:"\f1c3"}.fa-file-contract:before{content:"\f56c"}.fa-fish-fins:before{content:"\e4f2"}.fa-building-flag:before{content:"\e4d5"}.fa-face-grin-beam:before,.fa-grin-beam:before{content:"\f582"}.fa-object-ungroup:before{content:"\f248"}.fa-poop:before{content:"\f619"}.fa-location-pin:before,.fa-map-marker:before{content:"\f041"}.fa-kaaba:before{content:"\f66b"}.fa-toilet-paper:before{content:"\f71e"}.fa-hard-hat:before,.fa-hat-hard:before,.fa-helmet-safety:before{content:"\f807"}.fa-eject:before{content:"\f052"}.fa-arrow-alt-circle-right:before,.fa-circle-right:before{content:"\f35a"}.fa-plane-circle-check:before{content:"\e555"}.fa-face-rolling-eyes:before,.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-object-group:before{content:"\f247"}.fa-chart-line:before,.fa-line-chart:before{content:"\f201"}.fa-mask-ventilator:before{content:"\e524"}.fa-arrow-right:before{content:"\f061"}.fa-map-signs:before,.fa-signs-post:before{content:"\f277"}.fa-cash-register:before{content:"\f788"}.fa-person-circle-question:before{content:"\e542"}.fa-h:before{content:"\48"}.fa-tarp:before{content:"\e57b"}.fa-screwdriver-wrench:before,.fa-tools:before{content:"\f7d9"}.fa-arrows-to-eye:before{content:"\e4bf"}.fa-plug-circle-bolt:before{content:"\e55b"}.fa-heart:before{content:"\f004"}.fa-mars-and-venus:before{content:"\f224"}.fa-home-user:before,.fa-house-user:before{content:"\e1b0"}.fa-dumpster-fire:before{content:"\f794"}.fa-house-crack:before{content:"\e3b1"}.fa-cocktail:before,.fa-martini-glass-citrus:before{content:"\f561"}.fa-face-surprise:before,.fa-surprise:before{content:"\f5c2"}.fa-bottle-water:before{content:"\e4c5"}.fa-circle-pause:before,.fa-pause-circle:before{content:"\f28b"}.fa-toilet-paper-slash:before{content:"\e072"}.fa-apple-alt:before,.fa-apple-whole:before{content:"\f5d1"}.fa-kitchen-set:before{content:"\e51a"}.fa-r:before{content:"\52"}.fa-temperature-1:before,.fa-temperature-quarter:before,.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-cube:before{content:"\f1b2"}.fa-bitcoin-sign:before{content:"\e0b4"}.fa-shield-dog:before{content:"\e573"}.fa-solar-panel:before{content:"\f5ba"}.fa-lock-open:before{content:"\f3c1"}.fa-elevator:before{content:"\e16d"}.fa-money-bill-transfer:before{content:"\e528"}.fa-money-bill-trend-up:before{content:"\e529"}.fa-house-flood-water-circle-arrow-right:before{content:"\e50f"}.fa-poll-h:before,.fa-square-poll-horizontal:before{content:"\f682"}.fa-circle:before{content:"\f111"}.fa-backward-fast:before,.fa-fast-backward:before{content:"\f049"}.fa-recycle:before{content:"\f1b8"}.fa-user-astronaut:before{content:"\f4fb"}.fa-plane-slash:before{content:"\e069"}.fa-trademark:before{content:"\f25c"}.fa-basketball-ball:before,.fa-basketball:before{content:"\f434"}.fa-satellite-dish:before{content:"\f7c0"}.fa-arrow-alt-circle-up:before,.fa-circle-up:before{content:"\f35b"}.fa-mobile-alt:before,.fa-mobile-screen-button:before{content:"\f3cd"}.fa-volume-high:before,.fa-volume-up:before{content:"\f028"}.fa-users-rays:before{content:"\e593"}.fa-wallet:before{content:"\f555"}.fa-clipboard-check:before{content:"\f46c"}.fa-file-audio:before{content:"\f1c7"}.fa-burger:before,.fa-hamburger:before{content:"\f805"}.fa-wrench:before{content:"\f0ad"}.fa-bugs:before{content:"\e4d0"}.fa-rupee-sign:before,.fa-rupee:before{content:"\f156"}.fa-file-image:before{content:"\f1c5"}.fa-circle-question:before,.fa-question-circle:before{content:"\f059"}.fa-plane-departure:before{content:"\f5b0"}.fa-handshake-slash:before{content:"\e060"}.fa-book-bookmark:before{content:"\e0bb"}.fa-code-branch:before{content:"\f126"}.fa-hat-cowboy:before{content:"\f8c0"}.fa-bridge:before{content:"\e4c8"}.fa-phone-alt:before,.fa-phone-flip:before{content:"\f879"}.fa-truck-front:before{content:"\e2b7"}.fa-cat:before{content:"\f6be"}.fa-anchor-circle-exclamation:before{content:"\e4ab"}.fa-truck-field:before{content:"\e58d"}.fa-route:before{content:"\f4d7"}.fa-clipboard-question:before{content:"\e4e3"}.fa-panorama:before{content:"\e209"}.fa-comment-medical:before{content:"\f7f5"}.fa-teeth-open:before{content:"\f62f"}.fa-file-circle-minus:before{content:"\e4ed"}.fa-tags:before{content:"\f02c"}.fa-wine-glass:before{content:"\f4e3"}.fa-fast-forward:before,.fa-forward-fast:before{content:"\f050"}.fa-face-meh-blank:before,.fa-meh-blank:before{content:"\f5a4"}.fa-parking:before,.fa-square-parking:before{content:"\f540"}.fa-house-signal:before{content:"\e012"}.fa-bars-progress:before,.fa-tasks-alt:before{content:"\f828"}.fa-faucet-drip:before{content:"\e006"}.fa-cart-flatbed:before,.fa-dolly-flatbed:before{content:"\f474"}.fa-ban-smoking:before,.fa-smoking-ban:before{content:"\f54d"}.fa-terminal:before{content:"\f120"}.fa-mobile-button:before{content:"\f10b"}.fa-house-medical-flag:before{content:"\e514"}.fa-basket-shopping:before,.fa-shopping-basket:before{content:"\f291"}.fa-tape:before{content:"\f4db"}.fa-bus-alt:before,.fa-bus-simple:before{content:"\f55e"}.fa-eye:before{content:"\f06e"}.fa-face-sad-cry:before,.fa-sad-cry:before{content:"\f5b3"}.fa-audio-description:before{content:"\f29e"}.fa-person-military-to-person:before{content:"\e54c"}.fa-file-shield:before{content:"\e4f0"}.fa-user-slash:before{content:"\f506"}.fa-pen:before{content:"\f304"}.fa-tower-observation:before{content:"\e586"}.fa-file-code:before{content:"\f1c9"}.fa-signal-5:before,.fa-signal-perfect:before,.fa-signal:before{content:"\f012"}.fa-bus:before{content:"\f207"}.fa-heart-circle-xmark:before{content:"\e501"}.fa-home-lg:before,.fa-house-chimney:before{content:"\e3af"}.fa-window-maximize:before{content:"\f2d0"}.fa-face-frown:before,.fa-frown:before{content:"\f119"}.fa-prescription:before{content:"\f5b1"}.fa-shop:before,.fa-store-alt:before{content:"\f54f"}.fa-floppy-disk:before,.fa-save:before{content:"\f0c7"}.fa-vihara:before{content:"\f6a7"}.fa-balance-scale-left:before,.fa-scale-unbalanced:before{content:"\f515"}.fa-sort-asc:before,.fa-sort-up:before{content:"\f0de"}.fa-comment-dots:before,.fa-commenting:before{content:"\f4ad"}.fa-plant-wilt:before{content:"\e5aa"}.fa-diamond:before{content:"\f219"}.fa-face-grin-squint:before,.fa-grin-squint:before{content:"\f585"}.fa-hand-holding-dollar:before,.fa-hand-holding-usd:before{content:"\f4c0"}.fa-bacterium:before{content:"\e05a"}.fa-hand-pointer:before{content:"\f25a"}.fa-drum-steelpan:before{content:"\f56a"}.fa-hand-scissors:before{content:"\f257"}.fa-hands-praying:before,.fa-praying-hands:before{content:"\f684"}.fa-arrow-right-rotate:before,.fa-arrow-rotate-forward:before,.fa-arrow-rotate-right:before,.fa-redo:before{content:"\f01e"}.fa-biohazard:before{content:"\f780"}.fa-location-crosshairs:before,.fa-location:before{content:"\f601"}.fa-mars-double:before{content:"\f227"}.fa-child-dress:before{content:"\e59c"}.fa-users-between-lines:before{content:"\e591"}.fa-lungs-virus:before{content:"\e067"}.fa-face-grin-tears:before,.fa-grin-tears:before{content:"\f588"}.fa-phone:before{content:"\f095"}.fa-calendar-times:before,.fa-calendar-xmark:before{content:"\f273"}.fa-child-reaching:before{content:"\e59d"}.fa-head-side-virus:before{content:"\e064"}.fa-user-cog:before,.fa-user-gear:before{content:"\f4fe"}.fa-arrow-up-1-9:before,.fa-sort-numeric-up:before{content:"\f163"}.fa-door-closed:before{content:"\f52a"}.fa-shield-virus:before{content:"\e06c"}.fa-dice-six:before{content:"\f526"}.fa-mosquito-net:before{content:"\e52c"}.fa-bridge-water:before{content:"\e4ce"}.fa-person-booth:before{content:"\f756"}.fa-text-width:before{content:"\f035"}.fa-hat-wizard:before{content:"\f6e8"}.fa-pen-fancy:before{content:"\f5ac"}.fa-digging:before,.fa-person-digging:before{content:"\f85e"}.fa-trash:before{content:"\f1f8"}.fa-gauge-simple-med:before,.fa-gauge-simple:before,.fa-tachometer-average:before{content:"\f629"}.fa-book-medical:before{content:"\f7e6"}.fa-poo:before{content:"\f2fe"}.fa-quote-right-alt:before,.fa-quote-right:before{content:"\f10e"}.fa-shirt:before,.fa-t-shirt:before,.fa-tshirt:before{content:"\f553"}.fa-cubes:before{content:"\f1b3"}.fa-divide:before{content:"\f529"}.fa-tenge-sign:before,.fa-tenge:before{content:"\f7d7"}.fa-headphones:before{content:"\f025"}.fa-hands-holding:before{content:"\f4c2"}.fa-hands-clapping:before{content:"\e1a8"}.fa-republican:before{content:"\f75e"}.fa-arrow-left:before{content:"\f060"}.fa-person-circle-xmark:before{content:"\e543"}.fa-ruler:before{content:"\f545"}.fa-align-left:before{content:"\f036"}.fa-dice-d6:before{content:"\f6d1"}.fa-restroom:before{content:"\f7bd"}.fa-j:before{content:"\4a"}.fa-users-viewfinder:before{content:"\e595"}.fa-file-video:before{content:"\f1c8"}.fa-external-link-alt:before,.fa-up-right-from-square:before{content:"\f35d"}.fa-table-cells:before,.fa-th:before{content:"\f00a"}.fa-file-pdf:before{content:"\f1c1"}.fa-bible:before,.fa-book-bible:before{content:"\f647"}.fa-o:before{content:"\4f"}.fa-medkit:before,.fa-suitcase-medical:before{content:"\f0fa"}.fa-user-secret:before{content:"\f21b"}.fa-otter:before{content:"\f700"}.fa-female:before,.fa-person-dress:before{content:"\f182"}.fa-comment-dollar:before{content:"\f651"}.fa-briefcase-clock:before,.fa-business-time:before{content:"\f64a"}.fa-table-cells-large:before,.fa-th-large:before{content:"\f009"}.fa-book-tanakh:before,.fa-tanakh:before{content:"\f827"}.fa-phone-volume:before,.fa-volume-control-phone:before{content:"\f2a0"}.fa-hat-cowboy-side:before{content:"\f8c1"}.fa-clipboard-user:before{content:"\f7f3"}.fa-child:before{content:"\f1ae"}.fa-lira-sign:before{content:"\f195"}.fa-satellite:before{content:"\f7bf"}.fa-plane-lock:before{content:"\e558"}.fa-tag:before{content:"\f02b"}.fa-comment:before{content:"\f075"}.fa-birthday-cake:before,.fa-cake-candles:before,.fa-cake:before{content:"\f1fd"}.fa-envelope:before{content:"\f0e0"}.fa-angle-double-up:before,.fa-angles-up:before{content:"\f102"}.fa-paperclip:before{content:"\f0c6"}.fa-arrow-right-to-city:before{content:"\e4b3"}.fa-ribbon:before{content:"\f4d6"}.fa-lungs:before{content:"\f604"}.fa-arrow-up-9-1:before,.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-litecoin-sign:before{content:"\e1d3"}.fa-border-none:before{content:"\f850"}.fa-circle-nodes:before{content:"\e4e2"}.fa-parachute-box:before{content:"\f4cd"}.fa-indent:before{content:"\f03c"}.fa-truck-field-un:before{content:"\e58e"}.fa-hourglass-empty:before,.fa-hourglass:before{content:"\f254"}.fa-mountain:before{content:"\f6fc"}.fa-user-doctor:before,.fa-user-md:before{content:"\f0f0"}.fa-circle-info:before,.fa-info-circle:before{content:"\f05a"}.fa-cloud-meatball:before{content:"\f73b"}.fa-camera-alt:before,.fa-camera:before{content:"\f030"}.fa-square-virus:before{content:"\e578"}.fa-meteor:before{content:"\f753"}.fa-car-on:before{content:"\e4dd"}.fa-sleigh:before{content:"\f7cc"}.fa-arrow-down-1-9:before,.fa-sort-numeric-asc:before,.fa-sort-numeric-down:before{content:"\f162"}.fa-hand-holding-droplet:before,.fa-hand-holding-water:before{content:"\f4c1"}.fa-water:before{content:"\f773"}.fa-calendar-check:before{content:"\f274"}.fa-braille:before{content:"\f2a1"}.fa-prescription-bottle-alt:before,.fa-prescription-bottle-medical:before{content:"\f486"}.fa-landmark:before{content:"\f66f"}.fa-truck:before{content:"\f0d1"}.fa-crosshairs:before{content:"\f05b"}.fa-person-cane:before{content:"\e53c"}.fa-tent:before{content:"\e57d"}.fa-vest-patches:before{content:"\e086"}.fa-check-double:before{content:"\f560"}.fa-arrow-down-a-z:before,.fa-sort-alpha-asc:before,.fa-sort-alpha-down:before{content:"\f15d"}.fa-money-bill-wheat:before{content:"\e52a"}.fa-cookie:before{content:"\f563"}.fa-arrow-left-rotate:before,.fa-arrow-rotate-back:before,.fa-arrow-rotate-backward:before,.fa-arrow-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-hard-drive:before,.fa-hdd:before{content:"\f0a0"}.fa-face-grin-squint-tears:before,.fa-grin-squint-tears:before{content:"\f586"}.fa-dumbbell:before{content:"\f44b"}.fa-list-alt:before,.fa-rectangle-list:before{content:"\f022"}.fa-tarp-droplet:before{content:"\e57c"}.fa-house-medical-circle-check:before{content:"\e511"}.fa-person-skiing-nordic:before,.fa-skiing-nordic:before{content:"\f7ca"}.fa-calendar-plus:before{content:"\f271"}.fa-plane-arrival:before{content:"\f5af"}.fa-arrow-alt-circle-left:before,.fa-circle-left:before{content:"\f359"}.fa-subway:before,.fa-train-subway:before{content:"\f239"}.fa-chart-gantt:before{content:"\e0e4"}.fa-indian-rupee-sign:before,.fa-indian-rupee:before,.fa-inr:before{content:"\e1bc"}.fa-crop-alt:before,.fa-crop-simple:before{content:"\f565"}.fa-money-bill-1:before,.fa-money-bill-alt:before{content:"\f3d1"}.fa-left-long:before,.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-dna:before{content:"\f471"}.fa-virus-slash:before{content:"\e075"}.fa-minus:before,.fa-subtract:before{content:"\f068"}.fa-chess:before{content:"\f439"}.fa-arrow-left-long:before,.fa-long-arrow-left:before{content:"\f177"}.fa-plug-circle-check:before{content:"\e55c"}.fa-street-view:before{content:"\f21d"}.fa-franc-sign:before{content:"\e18f"}.fa-volume-off:before{content:"\f026"}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before,.fa-hands-american-sign-language-interpreting:before,.fa-hands-asl-interpreting:before{content:"\f2a3"}.fa-cog:before,.fa-gear:before{content:"\f013"}.fa-droplet-slash:before,.fa-tint-slash:before{content:"\f5c7"}.fa-mosque:before{content:"\f678"}.fa-mosquito:before{content:"\e52b"}.fa-star-of-david:before{content:"\f69a"}.fa-person-military-rifle:before{content:"\e54b"}.fa-cart-shopping:before,.fa-shopping-cart:before{content:"\f07a"}.fa-vials:before{content:"\f493"}.fa-plug-circle-plus:before{content:"\e55f"}.fa-place-of-worship:before{content:"\f67f"}.fa-grip-vertical:before{content:"\f58e"}.fa-arrow-turn-up:before,.fa-level-up:before{content:"\f148"}.fa-u:before{content:"\55"}.fa-square-root-alt:before,.fa-square-root-variable:before{content:"\f698"}.fa-clock-four:before,.fa-clock:before{content:"\f017"}.fa-backward-step:before,.fa-step-backward:before{content:"\f048"}.fa-pallet:before{content:"\f482"}.fa-faucet:before{content:"\e005"}.fa-baseball-bat-ball:before{content:"\f432"}.fa-s:before{content:"\53"}.fa-timeline:before{content:"\e29c"}.fa-keyboard:before{content:"\f11c"}.fa-caret-down:before{content:"\f0d7"}.fa-clinic-medical:before,.fa-house-chimney-medical:before{content:"\f7f2"}.fa-temperature-3:before,.fa-temperature-three-quarters:before,.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-mobile-android-alt:before,.fa-mobile-screen:before{content:"\f3cf"}.fa-plane-up:before{content:"\e22d"}.fa-piggy-bank:before{content:"\f4d3"}.fa-battery-3:before,.fa-battery-half:before{content:"\f242"}.fa-mountain-city:before{content:"\e52e"}.fa-coins:before{content:"\f51e"}.fa-khanda:before{content:"\f66d"}.fa-sliders-h:before,.fa-sliders:before{content:"\f1de"}.fa-folder-tree:before{content:"\f802"}.fa-network-wired:before{content:"\f6ff"}.fa-map-pin:before{content:"\f276"}.fa-hamsa:before{content:"\f665"}.fa-cent-sign:before{content:"\e3f5"}.fa-flask:before{content:"\f0c3"}.fa-person-pregnant:before{content:"\e31e"}.fa-wand-sparkles:before{content:"\f72b"}.fa-ellipsis-v:before,.fa-ellipsis-vertical:before{content:"\f142"}.fa-ticket:before{content:"\f145"}.fa-power-off:before{content:"\f011"}.fa-long-arrow-alt-right:before,.fa-right-long:before{content:"\f30b"}.fa-flag-usa:before{content:"\f74d"}.fa-laptop-file:before{content:"\e51d"}.fa-teletype:before,.fa-tty:before{content:"\f1e4"}.fa-diagram-next:before{content:"\e476"}.fa-person-rifle:before{content:"\e54e"}.fa-house-medical-circle-exclamation:before{content:"\e512"}.fa-closed-captioning:before{content:"\f20a"}.fa-hiking:before,.fa-person-hiking:before{content:"\f6ec"}.fa-venus-double:before{content:"\f226"}.fa-images:before{content:"\f302"}.fa-calculator:before{content:"\f1ec"}.fa-people-pulling:before{content:"\e535"}.fa-n:before{content:"\4e"}.fa-cable-car:before,.fa-tram:before{content:"\f7da"}.fa-cloud-rain:before{content:"\f73d"}.fa-building-circle-xmark:before{content:"\e4d4"}.fa-ship:before{content:"\f21a"}.fa-arrows-down-to-line:before{content:"\e4b8"}.fa-download:before{content:"\f019"}.fa-face-grin:before,.fa-grin:before{content:"\f580"}.fa-backspace:before,.fa-delete-left:before{content:"\f55a"}.fa-eye-dropper-empty:before,.fa-eye-dropper:before,.fa-eyedropper:before{content:"\f1fb"}.fa-file-circle-check:before{content:"\e5a0"}.fa-forward:before{content:"\f04e"}.fa-mobile-android:before,.fa-mobile-phone:before,.fa-mobile:before{content:"\f3ce"}.fa-face-meh:before,.fa-meh:before{content:"\f11a"}.fa-align-center:before{content:"\f037"}.fa-book-dead:before,.fa-book-skull:before{content:"\f6b7"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-heart-circle-exclamation:before{content:"\e4fe"}.fa-home-alt:before,.fa-home-lg-alt:before,.fa-home:before,.fa-house:before{content:"\f015"}.fa-calendar-week:before{content:"\f784"}.fa-laptop-medical:before{content:"\f812"}.fa-b:before{content:"\42"}.fa-file-medical:before{content:"\f477"}.fa-dice-one:before{content:"\f525"}.fa-kiwi-bird:before{content:"\f535"}.fa-arrow-right-arrow-left:before,.fa-exchange:before{content:"\f0ec"}.fa-redo-alt:before,.fa-rotate-forward:before,.fa-rotate-right:before{content:"\f2f9"}.fa-cutlery:before,.fa-utensils:before{content:"\f2e7"}.fa-arrow-up-wide-short:before,.fa-sort-amount-up:before{content:"\f161"}.fa-mill-sign:before{content:"\e1ed"}.fa-bowl-rice:before{content:"\e2eb"}.fa-skull:before{content:"\f54c"}.fa-broadcast-tower:before,.fa-tower-broadcast:before{content:"\f519"}.fa-truck-pickup:before{content:"\f63c"}.fa-long-arrow-alt-up:before,.fa-up-long:before{content:"\f30c"}.fa-stop:before{content:"\f04d"}.fa-code-merge:before{content:"\f387"}.fa-upload:before{content:"\f093"}.fa-hurricane:before{content:"\f751"}.fa-mound:before{content:"\e52d"}.fa-toilet-portable:before{content:"\e583"}.fa-compact-disc:before{content:"\f51f"}.fa-file-arrow-down:before,.fa-file-download:before{content:"\f56d"}.fa-caravan:before{content:"\f8ff"}.fa-shield-cat:before{content:"\e572"}.fa-bolt:before,.fa-zap:before{content:"\f0e7"}.fa-glass-water:before{content:"\e4f4"}.fa-oil-well:before{content:"\e532"}.fa-vault:before{content:"\e2c5"}.fa-mars:before{content:"\f222"}.fa-toilet:before{content:"\f7d8"}.fa-plane-circle-xmark:before{content:"\e557"}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen-sign:before,.fa-yen:before{content:"\f157"}.fa-rouble:before,.fa-rub:before,.fa-ruble-sign:before,.fa-ruble:before{content:"\f158"}.fa-sun:before{content:"\f185"}.fa-guitar:before{content:"\f7a6"}.fa-face-laugh-wink:before,.fa-laugh-wink:before{content:"\f59c"}.fa-horse-head:before{content:"\f7ab"}.fa-bore-hole:before{content:"\e4c3"}.fa-industry:before{content:"\f275"}.fa-arrow-alt-circle-down:before,.fa-circle-down:before{content:"\f358"}.fa-arrows-turn-to-dots:before{content:"\e4c1"}.fa-florin-sign:before{content:"\e184"}.fa-arrow-down-short-wide:before,.fa-sort-amount-desc:before,.fa-sort-amount-down-alt:before{content:"\f884"}.fa-less-than:before{content:"\3c"}.fa-angle-down:before{content:"\f107"}.fa-car-tunnel:before{content:"\e4de"}.fa-head-side-cough:before{content:"\e061"}.fa-grip-lines:before{content:"\f7a4"}.fa-thumbs-down:before{content:"\f165"}.fa-user-lock:before{content:"\f502"}.fa-arrow-right-long:before,.fa-long-arrow-right:before{content:"\f178"}.fa-anchor-circle-xmark:before{content:"\e4ac"}.fa-ellipsis-h:before,.fa-ellipsis:before{content:"\f141"}.fa-chess-pawn:before{content:"\f443"}.fa-first-aid:before,.fa-kit-medical:before{content:"\f479"}.fa-person-through-window:before{content:"\e5a9"}.fa-toolbox:before{content:"\f552"}.fa-hands-holding-circle:before{content:"\e4fb"}.fa-bug:before{content:"\f188"}.fa-credit-card-alt:before,.fa-credit-card:before{content:"\f09d"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-hand-holding-hand:before{content:"\e4f7"}.fa-book-open-reader:before,.fa-book-reader:before{content:"\f5da"}.fa-mountain-sun:before{content:"\e52f"}.fa-arrows-left-right-to-line:before{content:"\e4ba"}.fa-dice-d20:before{content:"\f6cf"}.fa-truck-droplet:before{content:"\e58c"}.fa-file-circle-xmark:before{content:"\e5a1"}.fa-temperature-arrow-up:before,.fa-temperature-up:before{content:"\e040"}.fa-medal:before{content:"\f5a2"}.fa-bed:before{content:"\f236"}.fa-h-square:before,.fa-square-h:before{content:"\f0fd"}.fa-podcast:before{content:"\f2ce"}.fa-temperature-4:before,.fa-temperature-full:before,.fa-thermometer-4:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-bell:before{content:"\f0f3"}.fa-superscript:before{content:"\f12b"}.fa-plug-circle-xmark:before{content:"\e560"}.fa-star-of-life:before{content:"\f621"}.fa-phone-slash:before{content:"\f3dd"}.fa-paint-roller:before{content:"\f5aa"}.fa-hands-helping:before,.fa-handshake-angle:before{content:"\f4c4"}.fa-location-dot:before,.fa-map-marker-alt:before{content:"\f3c5"}.fa-file:before{content:"\f15b"}.fa-greater-than:before{content:"\3e"}.fa-person-swimming:before,.fa-swimmer:before{content:"\f5c4"}.fa-arrow-down:before{content:"\f063"}.fa-droplet:before,.fa-tint:before{content:"\f043"}.fa-eraser:before{content:"\f12d"}.fa-earth-america:before,.fa-earth-americas:before,.fa-earth:before,.fa-globe-americas:before{content:"\f57d"}.fa-person-burst:before{content:"\e53b"}.fa-dove:before{content:"\f4ba"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-socks:before{content:"\f696"}.fa-inbox:before{content:"\f01c"}.fa-section:before{content:"\e447"}.fa-gauge-high:before,.fa-tachometer-alt-fast:before,.fa-tachometer-alt:before{content:"\f625"}.fa-envelope-open-text:before{content:"\f658"}.fa-hospital-alt:before,.fa-hospital-wide:before,.fa-hospital:before{content:"\f0f8"}.fa-wine-bottle:before{content:"\f72f"}.fa-chess-rook:before{content:"\f447"}.fa-bars-staggered:before,.fa-reorder:before,.fa-stream:before{content:"\f550"}.fa-dharmachakra:before{content:"\f655"}.fa-hotdog:before{content:"\f80f"}.fa-blind:before,.fa-person-walking-with-cane:before{content:"\f29d"}.fa-drum:before{content:"\f569"}.fa-ice-cream:before{content:"\f810"}.fa-heart-circle-bolt:before{content:"\e4fc"}.fa-fax:before{content:"\f1ac"}.fa-paragraph:before{content:"\f1dd"}.fa-check-to-slot:before,.fa-vote-yea:before{content:"\f772"}.fa-star-half:before{content:"\f089"}.fa-boxes-alt:before,.fa-boxes-stacked:before,.fa-boxes:before{content:"\f468"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-assistive-listening-systems:before,.fa-ear-listen:before{content:"\f2a2"}.fa-tree-city:before{content:"\e587"}.fa-play:before{content:"\f04b"}.fa-font:before{content:"\f031"}.fa-table-cells-row-lock:before{content:"\e67a"}.fa-rupiah-sign:before{content:"\e23d"}.fa-magnifying-glass:before,.fa-search:before{content:"\f002"}.fa-ping-pong-paddle-ball:before,.fa-table-tennis-paddle-ball:before,.fa-table-tennis:before{content:"\f45d"}.fa-diagnoses:before,.fa-person-dots-from-line:before{content:"\f470"}.fa-trash-can-arrow-up:before,.fa-trash-restore-alt:before{content:"\f82a"}.fa-naira-sign:before{content:"\e1f6"}.fa-cart-arrow-down:before{content:"\f218"}.fa-walkie-talkie:before{content:"\f8ef"}.fa-file-edit:before,.fa-file-pen:before{content:"\f31c"}.fa-receipt:before{content:"\f543"}.fa-pen-square:before,.fa-pencil-square:before,.fa-square-pen:before{content:"\f14b"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-person-circle-exclamation:before{content:"\e53f"}.fa-chevron-down:before{content:"\f078"}.fa-battery-5:before,.fa-battery-full:before,.fa-battery:before{content:"\f240"}.fa-skull-crossbones:before{content:"\f714"}.fa-code-compare:before{content:"\e13a"}.fa-list-dots:before,.fa-list-ul:before{content:"\f0ca"}.fa-school-lock:before{content:"\e56f"}.fa-tower-cell:before{content:"\e585"}.fa-down-long:before,.fa-long-arrow-alt-down:before{content:"\f309"}.fa-ranking-star:before{content:"\e561"}.fa-chess-king:before{content:"\f43f"}.fa-person-harassing:before{content:"\e549"}.fa-brazilian-real-sign:before{content:"\e46c"}.fa-landmark-alt:before,.fa-landmark-dome:before{content:"\f752"}.fa-arrow-up:before{content:"\f062"}.fa-television:before,.fa-tv-alt:before,.fa-tv:before{content:"\f26c"}.fa-shrimp:before{content:"\e448"}.fa-list-check:before,.fa-tasks:before{content:"\f0ae"}.fa-jug-detergent:before{content:"\e519"}.fa-circle-user:before,.fa-user-circle:before{content:"\f2bd"}.fa-user-shield:before{content:"\f505"}.fa-wind:before{content:"\f72e"}.fa-car-burst:before,.fa-car-crash:before{content:"\f5e1"}.fa-y:before{content:"\59"}.fa-person-snowboarding:before,.fa-snowboarding:before{content:"\f7ce"}.fa-shipping-fast:before,.fa-truck-fast:before{content:"\f48b"}.fa-fish:before{content:"\f578"}.fa-user-graduate:before{content:"\f501"}.fa-adjust:before,.fa-circle-half-stroke:before{content:"\f042"}.fa-clapperboard:before{content:"\e131"}.fa-circle-radiation:before,.fa-radiation-alt:before{content:"\f7ba"}.fa-baseball-ball:before,.fa-baseball:before{content:"\f433"}.fa-jet-fighter-up:before{content:"\e518"}.fa-diagram-project:before,.fa-project-diagram:before{content:"\f542"}.fa-copy:before{content:"\f0c5"}.fa-volume-mute:before,.fa-volume-times:before,.fa-volume-xmark:before{content:"\f6a9"}.fa-hand-sparkles:before{content:"\e05d"}.fa-grip-horizontal:before,.fa-grip:before{content:"\f58d"}.fa-share-from-square:before,.fa-share-square:before{content:"\f14d"}.fa-child-combatant:before,.fa-child-rifle:before{content:"\e4e0"}.fa-gun:before{content:"\e19b"}.fa-phone-square:before,.fa-square-phone:before{content:"\f098"}.fa-add:before,.fa-plus:before{content:"\2b"}.fa-expand:before{content:"\f065"}.fa-computer:before{content:"\e4e5"}.fa-close:before,.fa-multiply:before,.fa-remove:before,.fa-times:before,.fa-xmark:before{content:"\f00d"}.fa-arrows-up-down-left-right:before,.fa-arrows:before{content:"\f047"}.fa-chalkboard-teacher:before,.fa-chalkboard-user:before{content:"\f51c"}.fa-peso-sign:before{content:"\e222"}.fa-building-shield:before{content:"\e4d8"}.fa-baby:before{content:"\f77c"}.fa-users-line:before{content:"\e592"}.fa-quote-left-alt:before,.fa-quote-left:before{content:"\f10d"}.fa-tractor:before{content:"\f722"}.fa-trash-arrow-up:before,.fa-trash-restore:before{content:"\f829"}.fa-arrow-down-up-lock:before{content:"\e4b0"}.fa-lines-leaning:before{content:"\e51e"}.fa-ruler-combined:before{content:"\f546"}.fa-copyright:before{content:"\f1f9"}.fa-equals:before{content:"\3d"}.fa-blender:before{content:"\f517"}.fa-teeth:before{content:"\f62e"}.fa-ils:before,.fa-shekel-sign:before,.fa-shekel:before,.fa-sheqel-sign:before,.fa-sheqel:before{content:"\f20b"}.fa-map:before{content:"\f279"}.fa-rocket:before{content:"\f135"}.fa-photo-film:before,.fa-photo-video:before{content:"\f87c"}.fa-folder-minus:before{content:"\f65d"}.fa-store:before{content:"\f54e"}.fa-arrow-trend-up:before{content:"\e098"}.fa-plug-circle-minus:before{content:"\e55e"}.fa-sign-hanging:before,.fa-sign:before{content:"\f4d9"}.fa-bezier-curve:before{content:"\f55b"}.fa-bell-slash:before{content:"\f1f6"}.fa-tablet-android:before,.fa-tablet:before{content:"\f3fb"}.fa-school-flag:before{content:"\e56e"}.fa-fill:before{content:"\f575"}.fa-angle-up:before{content:"\f106"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-holly-berry:before{content:"\f7aa"}.fa-chevron-left:before{content:"\f053"}.fa-bacteria:before{content:"\e059"}.fa-hand-lizard:before{content:"\f258"}.fa-notdef:before{content:"\e1fe"}.fa-disease:before{content:"\f7fa"}.fa-briefcase-medical:before{content:"\f469"}.fa-genderless:before{content:"\f22d"}.fa-chevron-right:before{content:"\f054"}.fa-retweet:before{content:"\f079"}.fa-car-alt:before,.fa-car-rear:before{content:"\f5de"}.fa-pump-soap:before{content:"\e06b"}.fa-video-slash:before{content:"\f4e2"}.fa-battery-2:before,.fa-battery-quarter:before{content:"\f243"}.fa-radio:before{content:"\f8d7"}.fa-baby-carriage:before,.fa-carriage-baby:before{content:"\f77d"}.fa-traffic-light:before{content:"\f637"}.fa-thermometer:before{content:"\f491"}.fa-vr-cardboard:before{content:"\f729"}.fa-hand-middle-finger:before{content:"\f806"}.fa-percent:before,.fa-percentage:before{content:"\25"}.fa-truck-moving:before{content:"\f4df"}.fa-glass-water-droplet:before{content:"\e4f5"}.fa-display:before{content:"\e163"}.fa-face-smile:before,.fa-smile:before{content:"\f118"}.fa-thumb-tack:before,.fa-thumbtack:before{content:"\f08d"}.fa-trophy:before{content:"\f091"}.fa-person-praying:before,.fa-pray:before{content:"\f683"}.fa-hammer:before{content:"\f6e3"}.fa-hand-peace:before{content:"\f25b"}.fa-rotate:before,.fa-sync-alt:before{content:"\f2f1"}.fa-spinner:before{content:"\f110"}.fa-robot:before{content:"\f544"}.fa-peace:before{content:"\f67c"}.fa-cogs:before,.fa-gears:before{content:"\f085"}.fa-warehouse:before{content:"\f494"}.fa-arrow-up-right-dots:before{content:"\e4b7"}.fa-splotch:before{content:"\f5bc"}.fa-face-grin-hearts:before,.fa-grin-hearts:before{content:"\f584"}.fa-dice-four:before{content:"\f524"}.fa-sim-card:before{content:"\f7c4"}.fa-transgender-alt:before,.fa-transgender:before{content:"\f225"}.fa-mercury:before{content:"\f223"}.fa-arrow-turn-down:before,.fa-level-down:before{content:"\f149"}.fa-person-falling-burst:before{content:"\e547"}.fa-award:before{content:"\f559"}.fa-ticket-alt:before,.fa-ticket-simple:before{content:"\f3ff"}.fa-building:before{content:"\f1ad"}.fa-angle-double-left:before,.fa-angles-left:before{content:"\f100"}.fa-qrcode:before{content:"\f029"}.fa-clock-rotate-left:before,.fa-history:before{content:"\f1da"}.fa-face-grin-beam-sweat:before,.fa-grin-beam-sweat:before{content:"\f583"}.fa-arrow-right-from-file:before,.fa-file-export:before{content:"\f56e"}.fa-shield-blank:before,.fa-shield:before{content:"\f132"}.fa-arrow-up-short-wide:before,.fa-sort-amount-up-alt:before{content:"\f885"}.fa-house-medical:before{content:"\e3b2"}.fa-golf-ball-tee:before,.fa-golf-ball:before{content:"\f450"}.fa-chevron-circle-left:before,.fa-circle-chevron-left:before{content:"\f137"}.fa-house-chimney-window:before{content:"\e00d"}.fa-pen-nib:before{content:"\f5ad"}.fa-tent-arrow-turn-left:before{content:"\e580"}.fa-tents:before{content:"\e582"}.fa-magic:before,.fa-wand-magic:before{content:"\f0d0"}.fa-dog:before{content:"\f6d3"}.fa-carrot:before{content:"\f787"}.fa-moon:before{content:"\f186"}.fa-wine-glass-alt:before,.fa-wine-glass-empty:before{content:"\f5ce"}.fa-cheese:before{content:"\f7ef"}.fa-yin-yang:before{content:"\f6ad"}.fa-music:before{content:"\f001"}.fa-code-commit:before{content:"\f386"}.fa-temperature-low:before{content:"\f76b"}.fa-biking:before,.fa-person-biking:before{content:"\f84a"}.fa-broom:before{content:"\f51a"}.fa-shield-heart:before{content:"\e574"}.fa-gopuram:before{content:"\f664"}.fa-earth-oceania:before,.fa-globe-oceania:before{content:"\e47b"}.fa-square-xmark:before,.fa-times-square:before,.fa-xmark-square:before{content:"\f2d3"}.fa-hashtag:before{content:"\23"}.fa-expand-alt:before,.fa-up-right-and-down-left-from-center:before{content:"\f424"}.fa-oil-can:before{content:"\f613"}.fa-t:before{content:"\54"}.fa-hippo:before{content:"\f6ed"}.fa-chart-column:before{content:"\e0e3"}.fa-infinity:before{content:"\f534"}.fa-vial-circle-check:before{content:"\e596"}.fa-person-arrow-down-to-line:before{content:"\e538"}.fa-voicemail:before{content:"\f897"}.fa-fan:before{content:"\f863"}.fa-person-walking-luggage:before{content:"\e554"}.fa-arrows-alt-v:before,.fa-up-down:before{content:"\f338"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-calendar:before{content:"\f133"}.fa-trailer:before{content:"\e041"}.fa-bahai:before,.fa-haykal:before{content:"\f666"}.fa-sd-card:before{content:"\f7c2"}.fa-dragon:before{content:"\f6d5"}.fa-shoe-prints:before{content:"\f54b"}.fa-circle-plus:before,.fa-plus-circle:before{content:"\f055"}.fa-face-grin-tongue-wink:before,.fa-grin-tongue-wink:before{content:"\f58b"}.fa-hand-holding:before{content:"\f4bd"}.fa-plug-circle-exclamation:before{content:"\e55d"}.fa-chain-broken:before,.fa-chain-slash:before,.fa-link-slash:before,.fa-unlink:before{content:"\f127"}.fa-clone:before{content:"\f24d"}.fa-person-walking-arrow-loop-left:before{content:"\e551"}.fa-arrow-up-z-a:before,.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-fire-alt:before,.fa-fire-flame-curved:before{content:"\f7e4"}.fa-tornado:before{content:"\f76f"}.fa-file-circle-plus:before{content:"\e494"}.fa-book-quran:before,.fa-quran:before{content:"\f687"}.fa-anchor:before{content:"\f13d"}.fa-border-all:before{content:"\f84c"}.fa-angry:before,.fa-face-angry:before{content:"\f556"}.fa-cookie-bite:before{content:"\f564"}.fa-arrow-trend-down:before{content:"\e097"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-draw-polygon:before{content:"\f5ee"}.fa-balance-scale:before,.fa-scale-balanced:before{content:"\f24e"}.fa-gauge-simple-high:before,.fa-tachometer-fast:before,.fa-tachometer:before{content:"\f62a"}.fa-shower:before{content:"\f2cc"}.fa-desktop-alt:before,.fa-desktop:before{content:"\f390"}.fa-m:before{content:"\4d"}.fa-table-list:before,.fa-th-list:before{content:"\f00b"}.fa-comment-sms:before,.fa-sms:before{content:"\f7cd"}.fa-book:before{content:"\f02d"}.fa-user-plus:before{content:"\f234"}.fa-check:before{content:"\f00c"}.fa-battery-4:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-house-circle-check:before{content:"\e509"}.fa-angle-left:before{content:"\f104"}.fa-diagram-successor:before{content:"\e47a"}.fa-truck-arrow-right:before{content:"\e58b"}.fa-arrows-split-up-and-left:before{content:"\e4bc"}.fa-fist-raised:before,.fa-hand-fist:before{content:"\f6de"}.fa-cloud-moon:before{content:"\f6c3"}.fa-briefcase:before{content:"\f0b1"}.fa-person-falling:before{content:"\e546"}.fa-image-portrait:before,.fa-portrait:before{content:"\f3e0"}.fa-user-tag:before{content:"\f507"}.fa-rug:before{content:"\e569"}.fa-earth-europe:before,.fa-globe-europe:before{content:"\f7a2"}.fa-cart-flatbed-suitcase:before,.fa-luggage-cart:before{content:"\f59d"}.fa-rectangle-times:before,.fa-rectangle-xmark:before,.fa-times-rectangle:before,.fa-window-close:before{content:"\f410"}.fa-baht-sign:before{content:"\e0ac"}.fa-book-open:before{content:"\f518"}.fa-book-journal-whills:before,.fa-journal-whills:before{content:"\f66a"}.fa-handcuffs:before{content:"\e4f8"}.fa-exclamation-triangle:before,.fa-triangle-exclamation:before,.fa-warning:before{content:"\f071"}.fa-database:before{content:"\f1c0"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-bottle-droplet:before{content:"\e4c4"}.fa-mask-face:before{content:"\e1d7"}.fa-hill-rockslide:before{content:"\e508"}.fa-exchange-alt:before,.fa-right-left:before{content:"\f362"}.fa-paper-plane:before{content:"\f1d8"}.fa-road-circle-exclamation:before{content:"\e565"}.fa-dungeon:before{content:"\f6d9"}.fa-align-right:before{content:"\f038"}.fa-money-bill-1-wave:before,.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-life-ring:before{content:"\f1cd"}.fa-hands:before,.fa-sign-language:before,.fa-signing:before{content:"\f2a7"}.fa-calendar-day:before{content:"\f783"}.fa-ladder-water:before,.fa-swimming-pool:before,.fa-water-ladder:before{content:"\f5c5"}.fa-arrows-up-down:before,.fa-arrows-v:before{content:"\f07d"}.fa-face-grimace:before,.fa-grimace:before{content:"\f57f"}.fa-wheelchair-alt:before,.fa-wheelchair-move:before{content:"\e2ce"}.fa-level-down-alt:before,.fa-turn-down:before{content:"\f3be"}.fa-person-walking-arrow-right:before{content:"\e552"}.fa-envelope-square:before,.fa-square-envelope:before{content:"\f199"}.fa-dice:before{content:"\f522"}.fa-bowling-ball:before{content:"\f436"}.fa-brain:before{content:"\f5dc"}.fa-band-aid:before,.fa-bandage:before{content:"\f462"}.fa-calendar-minus:before{content:"\f272"}.fa-circle-xmark:before,.fa-times-circle:before,.fa-xmark-circle:before{content:"\f057"}.fa-gifts:before{content:"\f79c"}.fa-hotel:before{content:"\f594"}.fa-earth-asia:before,.fa-globe-asia:before{content:"\f57e"}.fa-id-card-alt:before,.fa-id-card-clip:before{content:"\f47f"}.fa-magnifying-glass-plus:before,.fa-search-plus:before{content:"\f00e"}.fa-thumbs-up:before{content:"\f164"}.fa-user-clock:before{content:"\f4fd"}.fa-allergies:before,.fa-hand-dots:before{content:"\f461"}.fa-file-invoice:before{content:"\f570"}.fa-window-minimize:before{content:"\f2d1"}.fa-coffee:before,.fa-mug-saucer:before{content:"\f0f4"}.fa-brush:before{content:"\f55d"}.fa-mask:before{content:"\f6fa"}.fa-magnifying-glass-minus:before,.fa-search-minus:before{content:"\f010"}.fa-ruler-vertical:before{content:"\f548"}.fa-user-alt:before,.fa-user-large:before{content:"\f406"}.fa-train-tram:before{content:"\e5b4"}.fa-user-nurse:before{content:"\f82f"}.fa-syringe:before{content:"\f48e"}.fa-cloud-sun:before{content:"\f6c4"}.fa-stopwatch-20:before{content:"\e06f"}.fa-square-full:before{content:"\f45c"}.fa-magnet:before{content:"\f076"}.fa-jar:before{content:"\e516"}.fa-note-sticky:before,.fa-sticky-note:before{content:"\f249"}.fa-bug-slash:before{content:"\e490"}.fa-arrow-up-from-water-pump:before{content:"\e4b6"}.fa-bone:before{content:"\f5d7"}.fa-table-cells-row-unlock:before{content:"\e691"}.fa-user-injured:before{content:"\f728"}.fa-face-sad-tear:before,.fa-sad-tear:before{content:"\f5b4"}.fa-plane:before{content:"\f072"}.fa-tent-arrows-down:before{content:"\e581"}.fa-exclamation:before{content:"\21"}.fa-arrows-spin:before{content:"\e4bb"}.fa-print:before{content:"\f02f"}.fa-try:before,.fa-turkish-lira-sign:before,.fa-turkish-lira:before{content:"\e2bb"}.fa-dollar-sign:before,.fa-dollar:before,.fa-usd:before{content:"\24"}.fa-x:before{content:"\58"}.fa-magnifying-glass-dollar:before,.fa-search-dollar:before{content:"\f688"}.fa-users-cog:before,.fa-users-gear:before{content:"\f509"}.fa-person-military-pointing:before{content:"\e54a"}.fa-bank:before,.fa-building-columns:before,.fa-institution:before,.fa-museum:before,.fa-university:before{content:"\f19c"}.fa-umbrella:before{content:"\f0e9"}.fa-trowel:before{content:"\e589"}.fa-d:before{content:"\44"}.fa-stapler:before{content:"\e5af"}.fa-masks-theater:before,.fa-theater-masks:before{content:"\f630"}.fa-kip-sign:before{content:"\e1c4"}.fa-hand-point-left:before{content:"\f0a5"}.fa-handshake-alt:before,.fa-handshake-simple:before{content:"\f4c6"}.fa-fighter-jet:before,.fa-jet-fighter:before{content:"\f0fb"}.fa-share-alt-square:before,.fa-square-share-nodes:before{content:"\f1e1"}.fa-barcode:before{content:"\f02a"}.fa-plus-minus:before{content:"\e43c"}.fa-video-camera:before,.fa-video:before{content:"\f03d"}.fa-graduation-cap:before,.fa-mortar-board:before{content:"\f19d"}.fa-hand-holding-medical:before{content:"\e05c"}.fa-person-circle-check:before{content:"\e53e"}.fa-level-up-alt:before,.fa-turn-up:before{content:"\f3bf"}
9
+ .fa-sr-only,.fa-sr-only-focusable:not(:focus),.sr-only,.sr-only-focusable:not(:focus){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}:host,:root{--fa-style-family-brands:"Font Awesome 6 Brands";--fa-font-brands:normal 400 1em/1 "Font Awesome 6 Brands"}@font-face{font-family:"Font Awesome 6 Brands";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}.fa-brands,.fab{font-weight:400}.fa-monero:before{content:"\f3d0"}.fa-hooli:before{content:"\f427"}.fa-yelp:before{content:"\f1e9"}.fa-cc-visa:before{content:"\f1f0"}.fa-lastfm:before{content:"\f202"}.fa-shopware:before{content:"\f5b5"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-aws:before{content:"\f375"}.fa-redhat:before{content:"\f7bc"}.fa-yoast:before{content:"\f2b1"}.fa-cloudflare:before{content:"\e07d"}.fa-ups:before{content:"\f7e0"}.fa-pixiv:before{content:"\e640"}.fa-wpexplorer:before{content:"\f2de"}.fa-dyalog:before{content:"\f399"}.fa-bity:before{content:"\f37a"}.fa-stackpath:before{content:"\f842"}.fa-buysellads:before{content:"\f20d"}.fa-first-order:before{content:"\f2b0"}.fa-modx:before{content:"\f285"}.fa-guilded:before{content:"\e07e"}.fa-vnv:before{content:"\f40b"}.fa-js-square:before,.fa-square-js:before{content:"\f3b9"}.fa-microsoft:before{content:"\f3ca"}.fa-qq:before{content:"\f1d6"}.fa-orcid:before{content:"\f8d2"}.fa-java:before{content:"\f4e4"}.fa-invision:before{content:"\f7b0"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-centercode:before{content:"\f380"}.fa-glide-g:before{content:"\f2a6"}.fa-drupal:before{content:"\f1a9"}.fa-jxl:before{content:"\e67b"}.fa-dart-lang:before{content:"\e693"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-unity:before{content:"\e049"}.fa-whmcs:before{content:"\f40d"}.fa-rocketchat:before{content:"\f3e8"}.fa-vk:before{content:"\f189"}.fa-untappd:before{content:"\f405"}.fa-mailchimp:before{content:"\f59e"}.fa-css3-alt:before{content:"\f38b"}.fa-reddit-square:before,.fa-square-reddit:before{content:"\f1a2"}.fa-vimeo-v:before{content:"\f27d"}.fa-contao:before{content:"\f26d"}.fa-square-font-awesome:before{content:"\e5ad"}.fa-deskpro:before{content:"\f38f"}.fa-brave:before{content:"\e63c"}.fa-sistrix:before{content:"\f3ee"}.fa-instagram-square:before,.fa-square-instagram:before{content:"\e055"}.fa-battle-net:before{content:"\f835"}.fa-the-red-yeti:before{content:"\f69d"}.fa-hacker-news-square:before,.fa-square-hacker-news:before{content:"\f3af"}.fa-edge:before{content:"\f282"}.fa-threads:before{content:"\e618"}.fa-napster:before{content:"\f3d2"}.fa-snapchat-square:before,.fa-square-snapchat:before{content:"\f2ad"}.fa-google-plus-g:before{content:"\f0d5"}.fa-artstation:before{content:"\f77a"}.fa-markdown:before{content:"\f60f"}.fa-sourcetree:before{content:"\f7d3"}.fa-google-plus:before{content:"\f2b3"}.fa-diaspora:before{content:"\f791"}.fa-foursquare:before{content:"\f180"}.fa-stack-overflow:before{content:"\f16c"}.fa-github-alt:before{content:"\f113"}.fa-phoenix-squadron:before{content:"\f511"}.fa-pagelines:before{content:"\f18c"}.fa-algolia:before{content:"\f36c"}.fa-red-river:before{content:"\f3e3"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-safari:before{content:"\f267"}.fa-google:before{content:"\f1a0"}.fa-font-awesome-alt:before,.fa-square-font-awesome-stroke:before{content:"\f35c"}.fa-atlassian:before{content:"\f77b"}.fa-linkedin-in:before{content:"\f0e1"}.fa-digital-ocean:before{content:"\f391"}.fa-nimblr:before{content:"\f5a8"}.fa-chromecast:before{content:"\f838"}.fa-evernote:before{content:"\f839"}.fa-hacker-news:before{content:"\f1d4"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-adversal:before{content:"\f36a"}.fa-creative-commons:before{content:"\f25e"}.fa-watchman-monitoring:before{content:"\e087"}.fa-fonticons:before{content:"\f280"}.fa-weixin:before{content:"\f1d7"}.fa-shirtsinbulk:before{content:"\f214"}.fa-codepen:before{content:"\f1cb"}.fa-git-alt:before{content:"\f841"}.fa-lyft:before{content:"\f3c3"}.fa-rev:before{content:"\f5b2"}.fa-windows:before{content:"\f17a"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-square-viadeo:before,.fa-viadeo-square:before{content:"\f2aa"}.fa-meetup:before{content:"\f2e0"}.fa-centos:before{content:"\f789"}.fa-adn:before{content:"\f170"}.fa-cloudsmith:before{content:"\f384"}.fa-opensuse:before{content:"\e62b"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-dribbble-square:before,.fa-square-dribbble:before{content:"\f397"}.fa-codiepie:before{content:"\f284"}.fa-node:before{content:"\f419"}.fa-mix:before{content:"\f3cb"}.fa-steam:before{content:"\f1b6"}.fa-cc-apple-pay:before{content:"\f416"}.fa-scribd:before{content:"\f28a"}.fa-debian:before{content:"\e60b"}.fa-openid:before{content:"\f19b"}.fa-instalod:before{content:"\e081"}.fa-expeditedssl:before{content:"\f23e"}.fa-sellcast:before{content:"\f2da"}.fa-square-twitter:before,.fa-twitter-square:before{content:"\f081"}.fa-r-project:before{content:"\f4f7"}.fa-delicious:before{content:"\f1a5"}.fa-freebsd:before{content:"\f3a4"}.fa-vuejs:before{content:"\f41f"}.fa-accusoft:before{content:"\f369"}.fa-ioxhost:before{content:"\f208"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-app-store:before{content:"\f36f"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-itunes-note:before{content:"\f3b5"}.fa-golang:before{content:"\e40f"}.fa-kickstarter:before,.fa-square-kickstarter:before{content:"\f3bb"}.fa-grav:before{content:"\f2d6"}.fa-weibo:before{content:"\f18a"}.fa-uncharted:before{content:"\e084"}.fa-firstdraft:before{content:"\f3a1"}.fa-square-youtube:before,.fa-youtube-square:before{content:"\f431"}.fa-wikipedia-w:before{content:"\f266"}.fa-rendact:before,.fa-wpressr:before{content:"\f3e4"}.fa-angellist:before{content:"\f209"}.fa-galactic-republic:before{content:"\f50c"}.fa-nfc-directional:before{content:"\e530"}.fa-skype:before{content:"\f17e"}.fa-joget:before{content:"\f3b7"}.fa-fedora:before{content:"\f798"}.fa-stripe-s:before{content:"\f42a"}.fa-meta:before{content:"\e49b"}.fa-laravel:before{content:"\f3bd"}.fa-hotjar:before{content:"\f3b1"}.fa-bluetooth-b:before{content:"\f294"}.fa-square-letterboxd:before{content:"\e62e"}.fa-sticker-mule:before{content:"\f3f7"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-hips:before{content:"\f452"}.fa-behance:before{content:"\f1b4"}.fa-reddit:before{content:"\f1a1"}.fa-discord:before{content:"\f392"}.fa-chrome:before{content:"\f268"}.fa-app-store-ios:before{content:"\f370"}.fa-cc-discover:before{content:"\f1f2"}.fa-wpbeginner:before{content:"\f297"}.fa-confluence:before{content:"\f78d"}.fa-shoelace:before{content:"\e60c"}.fa-mdb:before{content:"\f8ca"}.fa-dochub:before{content:"\f394"}.fa-accessible-icon:before{content:"\f368"}.fa-ebay:before{content:"\f4f4"}.fa-amazon:before{content:"\f270"}.fa-unsplash:before{content:"\e07c"}.fa-yarn:before{content:"\f7e3"}.fa-square-steam:before,.fa-steam-square:before{content:"\f1b7"}.fa-500px:before{content:"\f26e"}.fa-square-vimeo:before,.fa-vimeo-square:before{content:"\f194"}.fa-asymmetrik:before{content:"\f372"}.fa-font-awesome-flag:before,.fa-font-awesome-logo-full:before,.fa-font-awesome:before{content:"\f2b4"}.fa-gratipay:before{content:"\f184"}.fa-apple:before{content:"\f179"}.fa-hive:before{content:"\e07f"}.fa-gitkraken:before{content:"\f3a6"}.fa-keybase:before{content:"\f4f5"}.fa-apple-pay:before{content:"\f415"}.fa-padlet:before{content:"\e4a0"}.fa-amazon-pay:before{content:"\f42c"}.fa-github-square:before,.fa-square-github:before{content:"\f092"}.fa-stumbleupon:before{content:"\f1a4"}.fa-fedex:before{content:"\f797"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-shopify:before{content:"\e057"}.fa-neos:before{content:"\f612"}.fa-square-threads:before{content:"\e619"}.fa-hackerrank:before{content:"\f5f7"}.fa-researchgate:before{content:"\f4f8"}.fa-swift:before{content:"\f8e1"}.fa-angular:before{content:"\f420"}.fa-speakap:before{content:"\f3f3"}.fa-angrycreative:before{content:"\f36e"}.fa-y-combinator:before{content:"\f23b"}.fa-empire:before{content:"\f1d1"}.fa-envira:before{content:"\f299"}.fa-google-scholar:before{content:"\e63b"}.fa-gitlab-square:before,.fa-square-gitlab:before{content:"\e5ae"}.fa-studiovinari:before{content:"\f3f8"}.fa-pied-piper:before{content:"\f2ae"}.fa-wordpress:before{content:"\f19a"}.fa-product-hunt:before{content:"\f288"}.fa-firefox:before{content:"\f269"}.fa-linode:before{content:"\f2b8"}.fa-goodreads:before{content:"\f3a8"}.fa-odnoklassniki-square:before,.fa-square-odnoklassniki:before{content:"\f264"}.fa-jsfiddle:before{content:"\f1cc"}.fa-sith:before{content:"\f512"}.fa-themeisle:before{content:"\f2b2"}.fa-page4:before{content:"\f3d7"}.fa-hashnode:before{content:"\e499"}.fa-react:before{content:"\f41b"}.fa-cc-paypal:before{content:"\f1f4"}.fa-squarespace:before{content:"\f5be"}.fa-cc-stripe:before{content:"\f1f5"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-bitcoin:before{content:"\f379"}.fa-keycdn:before{content:"\f3ba"}.fa-opera:before{content:"\f26a"}.fa-itch-io:before{content:"\f83a"}.fa-umbraco:before{content:"\f8e8"}.fa-galactic-senate:before{content:"\f50d"}.fa-ubuntu:before{content:"\f7df"}.fa-draft2digital:before{content:"\f396"}.fa-stripe:before{content:"\f429"}.fa-houzz:before{content:"\f27c"}.fa-gg:before{content:"\f260"}.fa-dhl:before{content:"\f790"}.fa-pinterest-square:before,.fa-square-pinterest:before{content:"\f0d3"}.fa-xing:before{content:"\f168"}.fa-blackberry:before{content:"\f37b"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-playstation:before{content:"\f3df"}.fa-quinscape:before{content:"\f459"}.fa-less:before{content:"\f41d"}.fa-blogger-b:before{content:"\f37d"}.fa-opencart:before{content:"\f23d"}.fa-vine:before{content:"\f1ca"}.fa-signal-messenger:before{content:"\e663"}.fa-paypal:before{content:"\f1ed"}.fa-gitlab:before{content:"\f296"}.fa-typo3:before{content:"\f42b"}.fa-reddit-alien:before{content:"\f281"}.fa-yahoo:before{content:"\f19e"}.fa-dailymotion:before{content:"\e052"}.fa-affiliatetheme:before{content:"\f36b"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-bootstrap:before{content:"\f836"}.fa-odnoklassniki:before{content:"\f263"}.fa-nfc-symbol:before{content:"\e531"}.fa-mintbit:before{content:"\e62f"}.fa-ethereum:before{content:"\f42e"}.fa-speaker-deck:before{content:"\f83c"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-patreon:before{content:"\f3d9"}.fa-avianex:before{content:"\f374"}.fa-ello:before{content:"\f5f1"}.fa-gofore:before{content:"\f3a7"}.fa-bimobject:before{content:"\f378"}.fa-brave-reverse:before{content:"\e63d"}.fa-facebook-f:before{content:"\f39e"}.fa-google-plus-square:before,.fa-square-google-plus:before{content:"\f0d4"}.fa-web-awesome:before{content:"\e682"}.fa-mandalorian:before{content:"\f50f"}.fa-first-order-alt:before{content:"\f50a"}.fa-osi:before{content:"\f41a"}.fa-google-wallet:before{content:"\f1ee"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-periscope:before{content:"\f3da"}.fa-fulcrum:before{content:"\f50b"}.fa-cloudscale:before{content:"\f383"}.fa-forumbee:before{content:"\f211"}.fa-mizuni:before{content:"\f3cc"}.fa-schlix:before{content:"\f3ea"}.fa-square-xing:before,.fa-xing-square:before{content:"\f169"}.fa-bandcamp:before{content:"\f2d5"}.fa-wpforms:before{content:"\f298"}.fa-cloudversify:before{content:"\f385"}.fa-usps:before{content:"\f7e1"}.fa-megaport:before{content:"\f5a3"}.fa-magento:before{content:"\f3c4"}.fa-spotify:before{content:"\f1bc"}.fa-optin-monster:before{content:"\f23c"}.fa-fly:before{content:"\f417"}.fa-aviato:before{content:"\f421"}.fa-itunes:before{content:"\f3b4"}.fa-cuttlefish:before{content:"\f38c"}.fa-blogger:before{content:"\f37c"}.fa-flickr:before{content:"\f16e"}.fa-viber:before{content:"\f409"}.fa-soundcloud:before{content:"\f1be"}.fa-digg:before{content:"\f1a6"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-letterboxd:before{content:"\e62d"}.fa-symfony:before{content:"\f83d"}.fa-maxcdn:before{content:"\f136"}.fa-etsy:before{content:"\f2d7"}.fa-facebook-messenger:before{content:"\f39f"}.fa-audible:before{content:"\f373"}.fa-think-peaks:before{content:"\f731"}.fa-bilibili:before{content:"\e3d9"}.fa-erlang:before{content:"\f39d"}.fa-x-twitter:before{content:"\e61b"}.fa-cotton-bureau:before{content:"\f89e"}.fa-dashcube:before{content:"\f210"}.fa-42-group:before,.fa-innosoft:before{content:"\e080"}.fa-stack-exchange:before{content:"\f18d"}.fa-elementor:before{content:"\f430"}.fa-pied-piper-square:before,.fa-square-pied-piper:before{content:"\e01e"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-palfed:before{content:"\f3d8"}.fa-superpowers:before{content:"\f2dd"}.fa-resolving:before{content:"\f3e7"}.fa-xbox:before{content:"\f412"}.fa-square-web-awesome-stroke:before{content:"\e684"}.fa-searchengin:before{content:"\f3eb"}.fa-tiktok:before{content:"\e07b"}.fa-facebook-square:before,.fa-square-facebook:before{content:"\f082"}.fa-renren:before{content:"\f18b"}.fa-linux:before{content:"\f17c"}.fa-glide:before{content:"\f2a5"}.fa-linkedin:before{content:"\f08c"}.fa-hubspot:before{content:"\f3b2"}.fa-deploydog:before{content:"\f38e"}.fa-twitch:before{content:"\f1e8"}.fa-flutter:before{content:"\e694"}.fa-ravelry:before{content:"\f2d9"}.fa-mixer:before{content:"\e056"}.fa-lastfm-square:before,.fa-square-lastfm:before{content:"\f203"}.fa-vimeo:before{content:"\f40a"}.fa-mendeley:before{content:"\f7b3"}.fa-uniregistry:before{content:"\f404"}.fa-figma:before{content:"\f799"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-dropbox:before{content:"\f16b"}.fa-instagram:before{content:"\f16d"}.fa-cmplid:before{content:"\e360"}.fa-upwork:before{content:"\e641"}.fa-facebook:before{content:"\f09a"}.fa-gripfire:before{content:"\f3ac"}.fa-jedi-order:before{content:"\f50e"}.fa-uikit:before{content:"\f403"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-phabricator:before{content:"\f3db"}.fa-ussunnah:before{content:"\f407"}.fa-earlybirds:before{content:"\f39a"}.fa-trade-federation:before{content:"\f513"}.fa-autoprefixer:before{content:"\f41c"}.fa-whatsapp:before{content:"\f232"}.fa-square-upwork:before{content:"\e67c"}.fa-slideshare:before{content:"\f1e7"}.fa-google-play:before{content:"\f3ab"}.fa-viadeo:before{content:"\f2a9"}.fa-line:before{content:"\f3c0"}.fa-google-drive:before{content:"\f3aa"}.fa-servicestack:before{content:"\f3ec"}.fa-simplybuilt:before{content:"\f215"}.fa-bitbucket:before{content:"\f171"}.fa-imdb:before{content:"\f2d8"}.fa-deezer:before{content:"\e077"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-jira:before{content:"\f7b1"}.fa-docker:before{content:"\f395"}.fa-screenpal:before{content:"\e570"}.fa-bluetooth:before{content:"\f293"}.fa-gitter:before{content:"\f426"}.fa-d-and-d:before{content:"\f38d"}.fa-microblog:before{content:"\e01a"}.fa-cc-diners-club:before{content:"\f24c"}.fa-gg-circle:before{content:"\f261"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-yandex:before{content:"\f413"}.fa-readme:before{content:"\f4d5"}.fa-html5:before{content:"\f13b"}.fa-sellsy:before{content:"\f213"}.fa-square-web-awesome:before{content:"\e683"}.fa-sass:before{content:"\f41e"}.fa-wirsindhandwerk:before,.fa-wsh:before{content:"\e2d0"}.fa-buromobelexperte:before{content:"\f37f"}.fa-salesforce:before{content:"\f83b"}.fa-octopus-deploy:before{content:"\e082"}.fa-medapps:before{content:"\f3c6"}.fa-ns8:before{content:"\f3d5"}.fa-pinterest-p:before{content:"\f231"}.fa-apper:before{content:"\f371"}.fa-fort-awesome:before{content:"\f286"}.fa-waze:before{content:"\f83f"}.fa-bluesky:before{content:"\e671"}.fa-cc-jcb:before{content:"\f24b"}.fa-snapchat-ghost:before,.fa-snapchat:before{content:"\f2ab"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-rust:before{content:"\e07a"}.fa-wix:before{content:"\f5cf"}.fa-behance-square:before,.fa-square-behance:before{content:"\f1b5"}.fa-supple:before{content:"\f3f9"}.fa-webflow:before{content:"\e65c"}.fa-rebel:before{content:"\f1d0"}.fa-css3:before{content:"\f13c"}.fa-staylinked:before{content:"\f3f5"}.fa-kaggle:before{content:"\f5fa"}.fa-space-awesome:before{content:"\e5ac"}.fa-deviantart:before{content:"\f1bd"}.fa-cpanel:before{content:"\f388"}.fa-goodreads-g:before{content:"\f3a9"}.fa-git-square:before,.fa-square-git:before{content:"\f1d2"}.fa-square-tumblr:before,.fa-tumblr-square:before{content:"\f174"}.fa-trello:before{content:"\f181"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-get-pocket:before{content:"\f265"}.fa-perbyte:before{content:"\e083"}.fa-grunt:before{content:"\f3ad"}.fa-weebly:before{content:"\f5cc"}.fa-connectdevelop:before{content:"\f20e"}.fa-leanpub:before{content:"\f212"}.fa-black-tie:before{content:"\f27e"}.fa-themeco:before{content:"\f5c6"}.fa-python:before{content:"\f3e2"}.fa-android:before{content:"\f17b"}.fa-bots:before{content:"\e340"}.fa-free-code-camp:before{content:"\f2c5"}.fa-hornbill:before{content:"\f592"}.fa-js:before{content:"\f3b8"}.fa-ideal:before{content:"\e013"}.fa-git:before{content:"\f1d3"}.fa-dev:before{content:"\f6cc"}.fa-sketch:before{content:"\f7c6"}.fa-yandex-international:before{content:"\f414"}.fa-cc-amex:before{content:"\f1f3"}.fa-uber:before{content:"\f402"}.fa-github:before{content:"\f09b"}.fa-php:before{content:"\f457"}.fa-alipay:before{content:"\f642"}.fa-youtube:before{content:"\f167"}.fa-skyatlas:before{content:"\f216"}.fa-firefox-browser:before{content:"\e007"}.fa-replyd:before{content:"\f3e6"}.fa-suse:before{content:"\f7d6"}.fa-jenkins:before{content:"\f3b6"}.fa-twitter:before{content:"\f099"}.fa-rockrms:before{content:"\f3e9"}.fa-pinterest:before{content:"\f0d2"}.fa-buffer:before{content:"\f837"}.fa-npm:before{content:"\f3d4"}.fa-yammer:before{content:"\f840"}.fa-btc:before{content:"\f15a"}.fa-dribbble:before{content:"\f17d"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-internet-explorer:before{content:"\f26b"}.fa-stubber:before{content:"\e5c7"}.fa-telegram-plane:before,.fa-telegram:before{content:"\f2c6"}.fa-old-republic:before{content:"\f510"}.fa-odysee:before{content:"\e5c6"}.fa-square-whatsapp:before,.fa-whatsapp-square:before{content:"\f40c"}.fa-node-js:before{content:"\f3d3"}.fa-edge-legacy:before{content:"\e078"}.fa-slack-hash:before,.fa-slack:before{content:"\f198"}.fa-medrt:before{content:"\f3c8"}.fa-usb:before{content:"\f287"}.fa-tumblr:before{content:"\f173"}.fa-vaadin:before{content:"\f408"}.fa-quora:before{content:"\f2c4"}.fa-square-x-twitter:before{content:"\e61a"}.fa-reacteurope:before{content:"\f75d"}.fa-medium-m:before,.fa-medium:before{content:"\f23a"}.fa-amilia:before{content:"\f36d"}.fa-mixcloud:before{content:"\f289"}.fa-flipboard:before{content:"\f44d"}.fa-viacoin:before{content:"\f237"}.fa-critical-role:before{content:"\f6c9"}.fa-sitrox:before{content:"\e44a"}.fa-discourse:before{content:"\f393"}.fa-joomla:before{content:"\f1aa"}.fa-mastodon:before{content:"\f4f6"}.fa-airbnb:before{content:"\f834"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-buy-n-large:before{content:"\f8a6"}.fa-gulp:before{content:"\f3ae"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-strava:before{content:"\f428"}.fa-ember:before{content:"\f423"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-teamspeak:before{content:"\f4f9"}.fa-pushed:before{content:"\f3e1"}.fa-wordpress-simple:before{content:"\f411"}.fa-nutritionix:before{content:"\f3d6"}.fa-wodu:before{content:"\e088"}.fa-google-pay:before{content:"\e079"}.fa-intercom:before{content:"\f7af"}.fa-zhihu:before{content:"\f63f"}.fa-korvue:before{content:"\f42f"}.fa-pix:before{content:"\e43a"}.fa-steam-symbol:before{content:"\f3f6"}:host,:root{--fa-font-regular:normal 400 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype")}.fa-regular,.far{font-weight:400}:host,:root{--fa-style-family-classic:"Font Awesome 6 Free";--fa-font-solid:normal 900 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:900;font-display:block;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}.fa-solid,.fas{font-weight:900}@font-face{font-family:"Font Awesome 5 Brands";font-display:block;font-weight:400;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}@font-face{font-family:"Font Awesome 5 Free";font-display:block;font-weight:900;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}@font-face{font-family:"Font Awesome 5 Free";font-display:block;font-weight:400;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype");unicode-range:u+f003,u+f006,u+f014,u+f016-f017,u+f01a-f01b,u+f01d,u+f022,u+f03e,u+f044,u+f046,u+f05c-f05d,u+f06e,u+f070,u+f087-f088,u+f08a,u+f094,u+f096-f097,u+f09d,u+f0a0,u+f0a2,u+f0a4-f0a7,u+f0c5,u+f0c7,u+f0e5-f0e6,u+f0eb,u+f0f6-f0f8,u+f10c,u+f114-f115,u+f118-f11a,u+f11c-f11d,u+f133,u+f147,u+f14e,u+f150-f152,u+f185-f186,u+f18e,u+f190-f192,u+f196,u+f1c1-f1c9,u+f1d9,u+f1db,u+f1e3,u+f1ea,u+f1f7,u+f1f9,u+f20a,u+f247-f248,u+f24a,u+f24d,u+f255-f25b,u+f25d,u+f271-f274,u+f278,u+f27b,u+f28c,u+f28e,u+f29c,u+f2b5,u+f2b7,u+f2ba,u+f2bc,u+f2be,u+f2c0-f2c1,u+f2c3,u+f2d0,u+f2d2,u+f2d4,u+f2dc}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-v4compatibility.woff2) format("woff2"),url(../webfonts/fa-v4compatibility.ttf) format("truetype");unicode-range:u+f041,u+f047,u+f065-f066,u+f07d-f07e,u+f080,u+f08b,u+f08e,u+f090,u+f09a,u+f0ac,u+f0ae,u+f0b2,u+f0d0,u+f0d6,u+f0e4,u+f0ec,u+f10a-f10b,u+f123,u+f13e,u+f148-f149,u+f14c,u+f156,u+f15e,u+f160-f161,u+f163,u+f175-f178,u+f195,u+f1f8,u+f219,u+f27a}
backend/app/static/css/bootstrap-grid.css ADDED
@@ -0,0 +1,5051 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*!
2
+ * Bootstrap Grid v5.3.3 (https://getbootstrap.com/)
3
+ * Copyright 2011-2024 The Bootstrap Authors
4
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
+ */
6
+ .container,
7
+ .container-fluid,
8
+ .container-xxl,
9
+ .container-xl,
10
+ .container-lg,
11
+ .container-md,
12
+ .container-sm {
13
+ --bs-gutter-x: 1.5rem;
14
+ --bs-gutter-y: 0;
15
+ width: 100%;
16
+ padding-right: calc(var(--bs-gutter-x) * 0.5);
17
+ padding-left: calc(var(--bs-gutter-x) * 0.5);
18
+ margin-right: auto;
19
+ margin-left: auto;
20
+ }
21
+
22
+ @media (min-width: 576px) {
23
+ .container-sm, .container {
24
+ max-width: 540px;
25
+ }
26
+ }
27
+
28
+ @media (min-width: 768px) {
29
+ .container-md, .container-sm, .container {
30
+ max-width: 720px;
31
+ }
32
+ }
33
+
34
+ @media (min-width: 992px) {
35
+ .container-lg, .container-md, .container-sm, .container {
36
+ max-width: 960px;
37
+ }
38
+ }
39
+
40
+ @media (min-width: 1200px) {
41
+ .container-xl, .container-lg, .container-md, .container-sm, .container {
42
+ max-width: 1140px;
43
+ }
44
+ }
45
+
46
+ @media (min-width: 1400px) {
47
+ .container-xxl, .container-xl, .container-lg, .container-md, .container-sm, .container {
48
+ max-width: 1320px;
49
+ }
50
+ }
51
+
52
+ :root {
53
+ --bs-breakpoint-xs: 0;
54
+ --bs-breakpoint-sm: 576px;
55
+ --bs-breakpoint-md: 768px;
56
+ --bs-breakpoint-lg: 992px;
57
+ --bs-breakpoint-xl: 1200px;
58
+ --bs-breakpoint-xxl: 1400px;
59
+ }
60
+
61
+ .row {
62
+ --bs-gutter-x: 1.5rem;
63
+ --bs-gutter-y: 0;
64
+ display: flex;
65
+ flex-wrap: wrap;
66
+ margin-top: calc(-1 * var(--bs-gutter-y));
67
+ margin-right: calc(-0.5 * var(--bs-gutter-x));
68
+ margin-left: calc(-0.5 * var(--bs-gutter-x));
69
+ }
70
+
71
+ .row > * {
72
+ box-sizing: border-box;
73
+ flex-shrink: 0;
74
+ width: 100%;
75
+ max-width: 100%;
76
+ padding-right: calc(var(--bs-gutter-x) * 0.5);
77
+ padding-left: calc(var(--bs-gutter-x) * 0.5);
78
+ margin-top: var(--bs-gutter-y);
79
+ }
80
+
81
+ .col {
82
+ flex: 1 0 0%;
83
+ }
84
+
85
+ .row-cols-auto > * {
86
+ flex: 0 0 auto;
87
+ width: auto;
88
+ }
89
+
90
+ .row-cols-1 > * {
91
+ flex: 0 0 auto;
92
+ width: 100%;
93
+ }
94
+
95
+ .row-cols-2 > * {
96
+ flex: 0 0 auto;
97
+ width: 50%;
98
+ }
99
+
100
+ .row-cols-3 > * {
101
+ flex: 0 0 auto;
102
+ width: 33.33333333%;
103
+ }
104
+
105
+ .row-cols-4 > * {
106
+ flex: 0 0 auto;
107
+ width: 25%;
108
+ }
109
+
110
+ .row-cols-5 > * {
111
+ flex: 0 0 auto;
112
+ width: 20%;
113
+ }
114
+
115
+ .row-cols-6 > * {
116
+ flex: 0 0 auto;
117
+ width: 16.66666667%;
118
+ }
119
+
120
+ .col-auto {
121
+ flex: 0 0 auto;
122
+ width: auto;
123
+ }
124
+
125
+ .col-1 {
126
+ flex: 0 0 auto;
127
+ width: 8.33333333%;
128
+ }
129
+
130
+ .col-2 {
131
+ flex: 0 0 auto;
132
+ width: 16.66666667%;
133
+ }
134
+
135
+ .col-3 {
136
+ flex: 0 0 auto;
137
+ width: 25%;
138
+ }
139
+
140
+ .col-4 {
141
+ flex: 0 0 auto;
142
+ width: 33.33333333%;
143
+ }
144
+
145
+ .col-5 {
146
+ flex: 0 0 auto;
147
+ width: 41.66666667%;
148
+ }
149
+
150
+ .col-6 {
151
+ flex: 0 0 auto;
152
+ width: 50%;
153
+ }
154
+
155
+ .col-7 {
156
+ flex: 0 0 auto;
157
+ width: 58.33333333%;
158
+ }
159
+
160
+ .col-8 {
161
+ flex: 0 0 auto;
162
+ width: 66.66666667%;
163
+ }
164
+
165
+ .col-9 {
166
+ flex: 0 0 auto;
167
+ width: 75%;
168
+ }
169
+
170
+ .col-10 {
171
+ flex: 0 0 auto;
172
+ width: 83.33333333%;
173
+ }
174
+
175
+ .col-11 {
176
+ flex: 0 0 auto;
177
+ width: 91.66666667%;
178
+ }
179
+
180
+ .col-12 {
181
+ flex: 0 0 auto;
182
+ width: 100%;
183
+ }
184
+
185
+ .offset-1 {
186
+ margin-left: 8.33333333%;
187
+ }
188
+
189
+ .offset-2 {
190
+ margin-left: 16.66666667%;
191
+ }
192
+
193
+ .offset-3 {
194
+ margin-left: 25%;
195
+ }
196
+
197
+ .offset-4 {
198
+ margin-left: 33.33333333%;
199
+ }
200
+
201
+ .offset-5 {
202
+ margin-left: 41.66666667%;
203
+ }
204
+
205
+ .offset-6 {
206
+ margin-left: 50%;
207
+ }
208
+
209
+ .offset-7 {
210
+ margin-left: 58.33333333%;
211
+ }
212
+
213
+ .offset-8 {
214
+ margin-left: 66.66666667%;
215
+ }
216
+
217
+ .offset-9 {
218
+ margin-left: 75%;
219
+ }
220
+
221
+ .offset-10 {
222
+ margin-left: 83.33333333%;
223
+ }
224
+
225
+ .offset-11 {
226
+ margin-left: 91.66666667%;
227
+ }
228
+
229
+ .g-0,
230
+ .gx-0 {
231
+ --bs-gutter-x: 0;
232
+ }
233
+
234
+ .g-0,
235
+ .gy-0 {
236
+ --bs-gutter-y: 0;
237
+ }
238
+
239
+ .g-1,
240
+ .gx-1 {
241
+ --bs-gutter-x: 0.25rem;
242
+ }
243
+
244
+ .g-1,
245
+ .gy-1 {
246
+ --bs-gutter-y: 0.25rem;
247
+ }
248
+
249
+ .g-2,
250
+ .gx-2 {
251
+ --bs-gutter-x: 0.5rem;
252
+ }
253
+
254
+ .g-2,
255
+ .gy-2 {
256
+ --bs-gutter-y: 0.5rem;
257
+ }
258
+
259
+ .g-3,
260
+ .gx-3 {
261
+ --bs-gutter-x: 1rem;
262
+ }
263
+
264
+ .g-3,
265
+ .gy-3 {
266
+ --bs-gutter-y: 1rem;
267
+ }
268
+
269
+ .g-4,
270
+ .gx-4 {
271
+ --bs-gutter-x: 1.5rem;
272
+ }
273
+
274
+ .g-4,
275
+ .gy-4 {
276
+ --bs-gutter-y: 1.5rem;
277
+ }
278
+
279
+ .g-5,
280
+ .gx-5 {
281
+ --bs-gutter-x: 3rem;
282
+ }
283
+
284
+ .g-5,
285
+ .gy-5 {
286
+ --bs-gutter-y: 3rem;
287
+ }
288
+
289
+ @media (min-width: 576px) {
290
+ .col-sm {
291
+ flex: 1 0 0%;
292
+ }
293
+
294
+ .row-cols-sm-auto > * {
295
+ flex: 0 0 auto;
296
+ width: auto;
297
+ }
298
+
299
+ .row-cols-sm-1 > * {
300
+ flex: 0 0 auto;
301
+ width: 100%;
302
+ }
303
+
304
+ .row-cols-sm-2 > * {
305
+ flex: 0 0 auto;
306
+ width: 50%;
307
+ }
308
+
309
+ .row-cols-sm-3 > * {
310
+ flex: 0 0 auto;
311
+ width: 33.33333333%;
312
+ }
313
+
314
+ .row-cols-sm-4 > * {
315
+ flex: 0 0 auto;
316
+ width: 25%;
317
+ }
318
+
319
+ .row-cols-sm-5 > * {
320
+ flex: 0 0 auto;
321
+ width: 20%;
322
+ }
323
+
324
+ .row-cols-sm-6 > * {
325
+ flex: 0 0 auto;
326
+ width: 16.66666667%;
327
+ }
328
+
329
+ .col-sm-auto {
330
+ flex: 0 0 auto;
331
+ width: auto;
332
+ }
333
+
334
+ .col-sm-1 {
335
+ flex: 0 0 auto;
336
+ width: 8.33333333%;
337
+ }
338
+
339
+ .col-sm-2 {
340
+ flex: 0 0 auto;
341
+ width: 16.66666667%;
342
+ }
343
+
344
+ .col-sm-3 {
345
+ flex: 0 0 auto;
346
+ width: 25%;
347
+ }
348
+
349
+ .col-sm-4 {
350
+ flex: 0 0 auto;
351
+ width: 33.33333333%;
352
+ }
353
+
354
+ .col-sm-5 {
355
+ flex: 0 0 auto;
356
+ width: 41.66666667%;
357
+ }
358
+
359
+ .col-sm-6 {
360
+ flex: 0 0 auto;
361
+ width: 50%;
362
+ }
363
+
364
+ .col-sm-7 {
365
+ flex: 0 0 auto;
366
+ width: 58.33333333%;
367
+ }
368
+
369
+ .col-sm-8 {
370
+ flex: 0 0 auto;
371
+ width: 66.66666667%;
372
+ }
373
+
374
+ .col-sm-9 {
375
+ flex: 0 0 auto;
376
+ width: 75%;
377
+ }
378
+
379
+ .col-sm-10 {
380
+ flex: 0 0 auto;
381
+ width: 83.33333333%;
382
+ }
383
+
384
+ .col-sm-11 {
385
+ flex: 0 0 auto;
386
+ width: 91.66666667%;
387
+ }
388
+
389
+ .col-sm-12 {
390
+ flex: 0 0 auto;
391
+ width: 100%;
392
+ }
393
+
394
+ .offset-sm-0 {
395
+ margin-left: 0;
396
+ }
397
+
398
+ .offset-sm-1 {
399
+ margin-left: 8.33333333%;
400
+ }
401
+
402
+ .offset-sm-2 {
403
+ margin-left: 16.66666667%;
404
+ }
405
+
406
+ .offset-sm-3 {
407
+ margin-left: 25%;
408
+ }
409
+
410
+ .offset-sm-4 {
411
+ margin-left: 33.33333333%;
412
+ }
413
+
414
+ .offset-sm-5 {
415
+ margin-left: 41.66666667%;
416
+ }
417
+
418
+ .offset-sm-6 {
419
+ margin-left: 50%;
420
+ }
421
+
422
+ .offset-sm-7 {
423
+ margin-left: 58.33333333%;
424
+ }
425
+
426
+ .offset-sm-8 {
427
+ margin-left: 66.66666667%;
428
+ }
429
+
430
+ .offset-sm-9 {
431
+ margin-left: 75%;
432
+ }
433
+
434
+ .offset-sm-10 {
435
+ margin-left: 83.33333333%;
436
+ }
437
+
438
+ .offset-sm-11 {
439
+ margin-left: 91.66666667%;
440
+ }
441
+
442
+ .g-sm-0,
443
+ .gx-sm-0 {
444
+ --bs-gutter-x: 0;
445
+ }
446
+
447
+ .g-sm-0,
448
+ .gy-sm-0 {
449
+ --bs-gutter-y: 0;
450
+ }
451
+
452
+ .g-sm-1,
453
+ .gx-sm-1 {
454
+ --bs-gutter-x: 0.25rem;
455
+ }
456
+
457
+ .g-sm-1,
458
+ .gy-sm-1 {
459
+ --bs-gutter-y: 0.25rem;
460
+ }
461
+
462
+ .g-sm-2,
463
+ .gx-sm-2 {
464
+ --bs-gutter-x: 0.5rem;
465
+ }
466
+
467
+ .g-sm-2,
468
+ .gy-sm-2 {
469
+ --bs-gutter-y: 0.5rem;
470
+ }
471
+
472
+ .g-sm-3,
473
+ .gx-sm-3 {
474
+ --bs-gutter-x: 1rem;
475
+ }
476
+
477
+ .g-sm-3,
478
+ .gy-sm-3 {
479
+ --bs-gutter-y: 1rem;
480
+ }
481
+
482
+ .g-sm-4,
483
+ .gx-sm-4 {
484
+ --bs-gutter-x: 1.5rem;
485
+ }
486
+
487
+ .g-sm-4,
488
+ .gy-sm-4 {
489
+ --bs-gutter-y: 1.5rem;
490
+ }
491
+
492
+ .g-sm-5,
493
+ .gx-sm-5 {
494
+ --bs-gutter-x: 3rem;
495
+ }
496
+
497
+ .g-sm-5,
498
+ .gy-sm-5 {
499
+ --bs-gutter-y: 3rem;
500
+ }
501
+ }
502
+
503
+ @media (min-width: 768px) {
504
+ .col-md {
505
+ flex: 1 0 0%;
506
+ }
507
+
508
+ .row-cols-md-auto > * {
509
+ flex: 0 0 auto;
510
+ width: auto;
511
+ }
512
+
513
+ .row-cols-md-1 > * {
514
+ flex: 0 0 auto;
515
+ width: 100%;
516
+ }
517
+
518
+ .row-cols-md-2 > * {
519
+ flex: 0 0 auto;
520
+ width: 50%;
521
+ }
522
+
523
+ .row-cols-md-3 > * {
524
+ flex: 0 0 auto;
525
+ width: 33.33333333%;
526
+ }
527
+
528
+ .row-cols-md-4 > * {
529
+ flex: 0 0 auto;
530
+ width: 25%;
531
+ }
532
+
533
+ .row-cols-md-5 > * {
534
+ flex: 0 0 auto;
535
+ width: 20%;
536
+ }
537
+
538
+ .row-cols-md-6 > * {
539
+ flex: 0 0 auto;
540
+ width: 16.66666667%;
541
+ }
542
+
543
+ .col-md-auto {
544
+ flex: 0 0 auto;
545
+ width: auto;
546
+ }
547
+
548
+ .col-md-1 {
549
+ flex: 0 0 auto;
550
+ width: 8.33333333%;
551
+ }
552
+
553
+ .col-md-2 {
554
+ flex: 0 0 auto;
555
+ width: 16.66666667%;
556
+ }
557
+
558
+ .col-md-3 {
559
+ flex: 0 0 auto;
560
+ width: 25%;
561
+ }
562
+
563
+ .col-md-4 {
564
+ flex: 0 0 auto;
565
+ width: 33.33333333%;
566
+ }
567
+
568
+ .col-md-5 {
569
+ flex: 0 0 auto;
570
+ width: 41.66666667%;
571
+ }
572
+
573
+ .col-md-6 {
574
+ flex: 0 0 auto;
575
+ width: 50%;
576
+ }
577
+
578
+ .col-md-7 {
579
+ flex: 0 0 auto;
580
+ width: 58.33333333%;
581
+ }
582
+
583
+ .col-md-8 {
584
+ flex: 0 0 auto;
585
+ width: 66.66666667%;
586
+ }
587
+
588
+ .col-md-9 {
589
+ flex: 0 0 auto;
590
+ width: 75%;
591
+ }
592
+
593
+ .col-md-10 {
594
+ flex: 0 0 auto;
595
+ width: 83.33333333%;
596
+ }
597
+
598
+ .col-md-11 {
599
+ flex: 0 0 auto;
600
+ width: 91.66666667%;
601
+ }
602
+
603
+ .col-md-12 {
604
+ flex: 0 0 auto;
605
+ width: 100%;
606
+ }
607
+
608
+ .offset-md-0 {
609
+ margin-left: 0;
610
+ }
611
+
612
+ .offset-md-1 {
613
+ margin-left: 8.33333333%;
614
+ }
615
+
616
+ .offset-md-2 {
617
+ margin-left: 16.66666667%;
618
+ }
619
+
620
+ .offset-md-3 {
621
+ margin-left: 25%;
622
+ }
623
+
624
+ .offset-md-4 {
625
+ margin-left: 33.33333333%;
626
+ }
627
+
628
+ .offset-md-5 {
629
+ margin-left: 41.66666667%;
630
+ }
631
+
632
+ .offset-md-6 {
633
+ margin-left: 50%;
634
+ }
635
+
636
+ .offset-md-7 {
637
+ margin-left: 58.33333333%;
638
+ }
639
+
640
+ .offset-md-8 {
641
+ margin-left: 66.66666667%;
642
+ }
643
+
644
+ .offset-md-9 {
645
+ margin-left: 75%;
646
+ }
647
+
648
+ .offset-md-10 {
649
+ margin-left: 83.33333333%;
650
+ }
651
+
652
+ .offset-md-11 {
653
+ margin-left: 91.66666667%;
654
+ }
655
+
656
+ .g-md-0,
657
+ .gx-md-0 {
658
+ --bs-gutter-x: 0;
659
+ }
660
+
661
+ .g-md-0,
662
+ .gy-md-0 {
663
+ --bs-gutter-y: 0;
664
+ }
665
+
666
+ .g-md-1,
667
+ .gx-md-1 {
668
+ --bs-gutter-x: 0.25rem;
669
+ }
670
+
671
+ .g-md-1,
672
+ .gy-md-1 {
673
+ --bs-gutter-y: 0.25rem;
674
+ }
675
+
676
+ .g-md-2,
677
+ .gx-md-2 {
678
+ --bs-gutter-x: 0.5rem;
679
+ }
680
+
681
+ .g-md-2,
682
+ .gy-md-2 {
683
+ --bs-gutter-y: 0.5rem;
684
+ }
685
+
686
+ .g-md-3,
687
+ .gx-md-3 {
688
+ --bs-gutter-x: 1rem;
689
+ }
690
+
691
+ .g-md-3,
692
+ .gy-md-3 {
693
+ --bs-gutter-y: 1rem;
694
+ }
695
+
696
+ .g-md-4,
697
+ .gx-md-4 {
698
+ --bs-gutter-x: 1.5rem;
699
+ }
700
+
701
+ .g-md-4,
702
+ .gy-md-4 {
703
+ --bs-gutter-y: 1.5rem;
704
+ }
705
+
706
+ .g-md-5,
707
+ .gx-md-5 {
708
+ --bs-gutter-x: 3rem;
709
+ }
710
+
711
+ .g-md-5,
712
+ .gy-md-5 {
713
+ --bs-gutter-y: 3rem;
714
+ }
715
+ }
716
+
717
+ @media (min-width: 992px) {
718
+ .col-lg {
719
+ flex: 1 0 0%;
720
+ }
721
+
722
+ .row-cols-lg-auto > * {
723
+ flex: 0 0 auto;
724
+ width: auto;
725
+ }
726
+
727
+ .row-cols-lg-1 > * {
728
+ flex: 0 0 auto;
729
+ width: 100%;
730
+ }
731
+
732
+ .row-cols-lg-2 > * {
733
+ flex: 0 0 auto;
734
+ width: 50%;
735
+ }
736
+
737
+ .row-cols-lg-3 > * {
738
+ flex: 0 0 auto;
739
+ width: 33.33333333%;
740
+ }
741
+
742
+ .row-cols-lg-4 > * {
743
+ flex: 0 0 auto;
744
+ width: 25%;
745
+ }
746
+
747
+ .row-cols-lg-5 > * {
748
+ flex: 0 0 auto;
749
+ width: 20%;
750
+ }
751
+
752
+ .row-cols-lg-6 > * {
753
+ flex: 0 0 auto;
754
+ width: 16.66666667%;
755
+ }
756
+
757
+ .col-lg-auto {
758
+ flex: 0 0 auto;
759
+ width: auto;
760
+ }
761
+
762
+ .col-lg-1 {
763
+ flex: 0 0 auto;
764
+ width: 8.33333333%;
765
+ }
766
+
767
+ .col-lg-2 {
768
+ flex: 0 0 auto;
769
+ width: 16.66666667%;
770
+ }
771
+
772
+ .col-lg-3 {
773
+ flex: 0 0 auto;
774
+ width: 25%;
775
+ }
776
+
777
+ .col-lg-4 {
778
+ flex: 0 0 auto;
779
+ width: 33.33333333%;
780
+ }
781
+
782
+ .col-lg-5 {
783
+ flex: 0 0 auto;
784
+ width: 41.66666667%;
785
+ }
786
+
787
+ .col-lg-6 {
788
+ flex: 0 0 auto;
789
+ width: 50%;
790
+ }
791
+
792
+ .col-lg-7 {
793
+ flex: 0 0 auto;
794
+ width: 58.33333333%;
795
+ }
796
+
797
+ .col-lg-8 {
798
+ flex: 0 0 auto;
799
+ width: 66.66666667%;
800
+ }
801
+
802
+ .col-lg-9 {
803
+ flex: 0 0 auto;
804
+ width: 75%;
805
+ }
806
+
807
+ .col-lg-10 {
808
+ flex: 0 0 auto;
809
+ width: 83.33333333%;
810
+ }
811
+
812
+ .col-lg-11 {
813
+ flex: 0 0 auto;
814
+ width: 91.66666667%;
815
+ }
816
+
817
+ .col-lg-12 {
818
+ flex: 0 0 auto;
819
+ width: 100%;
820
+ }
821
+
822
+ .offset-lg-0 {
823
+ margin-left: 0;
824
+ }
825
+
826
+ .offset-lg-1 {
827
+ margin-left: 8.33333333%;
828
+ }
829
+
830
+ .offset-lg-2 {
831
+ margin-left: 16.66666667%;
832
+ }
833
+
834
+ .offset-lg-3 {
835
+ margin-left: 25%;
836
+ }
837
+
838
+ .offset-lg-4 {
839
+ margin-left: 33.33333333%;
840
+ }
841
+
842
+ .offset-lg-5 {
843
+ margin-left: 41.66666667%;
844
+ }
845
+
846
+ .offset-lg-6 {
847
+ margin-left: 50%;
848
+ }
849
+
850
+ .offset-lg-7 {
851
+ margin-left: 58.33333333%;
852
+ }
853
+
854
+ .offset-lg-8 {
855
+ margin-left: 66.66666667%;
856
+ }
857
+
858
+ .offset-lg-9 {
859
+ margin-left: 75%;
860
+ }
861
+
862
+ .offset-lg-10 {
863
+ margin-left: 83.33333333%;
864
+ }
865
+
866
+ .offset-lg-11 {
867
+ margin-left: 91.66666667%;
868
+ }
869
+
870
+ .g-lg-0,
871
+ .gx-lg-0 {
872
+ --bs-gutter-x: 0;
873
+ }
874
+
875
+ .g-lg-0,
876
+ .gy-lg-0 {
877
+ --bs-gutter-y: 0;
878
+ }
879
+
880
+ .g-lg-1,
881
+ .gx-lg-1 {
882
+ --bs-gutter-x: 0.25rem;
883
+ }
884
+
885
+ .g-lg-1,
886
+ .gy-lg-1 {
887
+ --bs-gutter-y: 0.25rem;
888
+ }
889
+
890
+ .g-lg-2,
891
+ .gx-lg-2 {
892
+ --bs-gutter-x: 0.5rem;
893
+ }
894
+
895
+ .g-lg-2,
896
+ .gy-lg-2 {
897
+ --bs-gutter-y: 0.5rem;
898
+ }
899
+
900
+ .g-lg-3,
901
+ .gx-lg-3 {
902
+ --bs-gutter-x: 1rem;
903
+ }
904
+
905
+ .g-lg-3,
906
+ .gy-lg-3 {
907
+ --bs-gutter-y: 1rem;
908
+ }
909
+
910
+ .g-lg-4,
911
+ .gx-lg-4 {
912
+ --bs-gutter-x: 1.5rem;
913
+ }
914
+
915
+ .g-lg-4,
916
+ .gy-lg-4 {
917
+ --bs-gutter-y: 1.5rem;
918
+ }
919
+
920
+ .g-lg-5,
921
+ .gx-lg-5 {
922
+ --bs-gutter-x: 3rem;
923
+ }
924
+
925
+ .g-lg-5,
926
+ .gy-lg-5 {
927
+ --bs-gutter-y: 3rem;
928
+ }
929
+ }
930
+
931
+ @media (min-width: 1200px) {
932
+ .col-xl {
933
+ flex: 1 0 0%;
934
+ }
935
+
936
+ .row-cols-xl-auto > * {
937
+ flex: 0 0 auto;
938
+ width: auto;
939
+ }
940
+
941
+ .row-cols-xl-1 > * {
942
+ flex: 0 0 auto;
943
+ width: 100%;
944
+ }
945
+
946
+ .row-cols-xl-2 > * {
947
+ flex: 0 0 auto;
948
+ width: 50%;
949
+ }
950
+
951
+ .row-cols-xl-3 > * {
952
+ flex: 0 0 auto;
953
+ width: 33.33333333%;
954
+ }
955
+
956
+ .row-cols-xl-4 > * {
957
+ flex: 0 0 auto;
958
+ width: 25%;
959
+ }
960
+
961
+ .row-cols-xl-5 > * {
962
+ flex: 0 0 auto;
963
+ width: 20%;
964
+ }
965
+
966
+ .row-cols-xl-6 > * {
967
+ flex: 0 0 auto;
968
+ width: 16.66666667%;
969
+ }
970
+
971
+ .col-xl-auto {
972
+ flex: 0 0 auto;
973
+ width: auto;
974
+ }
975
+
976
+ .col-xl-1 {
977
+ flex: 0 0 auto;
978
+ width: 8.33333333%;
979
+ }
980
+
981
+ .col-xl-2 {
982
+ flex: 0 0 auto;
983
+ width: 16.66666667%;
984
+ }
985
+
986
+ .col-xl-3 {
987
+ flex: 0 0 auto;
988
+ width: 25%;
989
+ }
990
+
991
+ .col-xl-4 {
992
+ flex: 0 0 auto;
993
+ width: 33.33333333%;
994
+ }
995
+
996
+ .col-xl-5 {
997
+ flex: 0 0 auto;
998
+ width: 41.66666667%;
999
+ }
1000
+
1001
+ .col-xl-6 {
1002
+ flex: 0 0 auto;
1003
+ width: 50%;
1004
+ }
1005
+
1006
+ .col-xl-7 {
1007
+ flex: 0 0 auto;
1008
+ width: 58.33333333%;
1009
+ }
1010
+
1011
+ .col-xl-8 {
1012
+ flex: 0 0 auto;
1013
+ width: 66.66666667%;
1014
+ }
1015
+
1016
+ .col-xl-9 {
1017
+ flex: 0 0 auto;
1018
+ width: 75%;
1019
+ }
1020
+
1021
+ .col-xl-10 {
1022
+ flex: 0 0 auto;
1023
+ width: 83.33333333%;
1024
+ }
1025
+
1026
+ .col-xl-11 {
1027
+ flex: 0 0 auto;
1028
+ width: 91.66666667%;
1029
+ }
1030
+
1031
+ .col-xl-12 {
1032
+ flex: 0 0 auto;
1033
+ width: 100%;
1034
+ }
1035
+
1036
+ .offset-xl-0 {
1037
+ margin-left: 0;
1038
+ }
1039
+
1040
+ .offset-xl-1 {
1041
+ margin-left: 8.33333333%;
1042
+ }
1043
+
1044
+ .offset-xl-2 {
1045
+ margin-left: 16.66666667%;
1046
+ }
1047
+
1048
+ .offset-xl-3 {
1049
+ margin-left: 25%;
1050
+ }
1051
+
1052
+ .offset-xl-4 {
1053
+ margin-left: 33.33333333%;
1054
+ }
1055
+
1056
+ .offset-xl-5 {
1057
+ margin-left: 41.66666667%;
1058
+ }
1059
+
1060
+ .offset-xl-6 {
1061
+ margin-left: 50%;
1062
+ }
1063
+
1064
+ .offset-xl-7 {
1065
+ margin-left: 58.33333333%;
1066
+ }
1067
+
1068
+ .offset-xl-8 {
1069
+ margin-left: 66.66666667%;
1070
+ }
1071
+
1072
+ .offset-xl-9 {
1073
+ margin-left: 75%;
1074
+ }
1075
+
1076
+ .offset-xl-10 {
1077
+ margin-left: 83.33333333%;
1078
+ }
1079
+
1080
+ .offset-xl-11 {
1081
+ margin-left: 91.66666667%;
1082
+ }
1083
+
1084
+ .g-xl-0,
1085
+ .gx-xl-0 {
1086
+ --bs-gutter-x: 0;
1087
+ }
1088
+
1089
+ .g-xl-0,
1090
+ .gy-xl-0 {
1091
+ --bs-gutter-y: 0;
1092
+ }
1093
+
1094
+ .g-xl-1,
1095
+ .gx-xl-1 {
1096
+ --bs-gutter-x: 0.25rem;
1097
+ }
1098
+
1099
+ .g-xl-1,
1100
+ .gy-xl-1 {
1101
+ --bs-gutter-y: 0.25rem;
1102
+ }
1103
+
1104
+ .g-xl-2,
1105
+ .gx-xl-2 {
1106
+ --bs-gutter-x: 0.5rem;
1107
+ }
1108
+
1109
+ .g-xl-2,
1110
+ .gy-xl-2 {
1111
+ --bs-gutter-y: 0.5rem;
1112
+ }
1113
+
1114
+ .g-xl-3,
1115
+ .gx-xl-3 {
1116
+ --bs-gutter-x: 1rem;
1117
+ }
1118
+
1119
+ .g-xl-3,
1120
+ .gy-xl-3 {
1121
+ --bs-gutter-y: 1rem;
1122
+ }
1123
+
1124
+ .g-xl-4,
1125
+ .gx-xl-4 {
1126
+ --bs-gutter-x: 1.5rem;
1127
+ }
1128
+
1129
+ .g-xl-4,
1130
+ .gy-xl-4 {
1131
+ --bs-gutter-y: 1.5rem;
1132
+ }
1133
+
1134
+ .g-xl-5,
1135
+ .gx-xl-5 {
1136
+ --bs-gutter-x: 3rem;
1137
+ }
1138
+
1139
+ .g-xl-5,
1140
+ .gy-xl-5 {
1141
+ --bs-gutter-y: 3rem;
1142
+ }
1143
+ }
1144
+
1145
+ @media (min-width: 1400px) {
1146
+ .col-xxl {
1147
+ flex: 1 0 0%;
1148
+ }
1149
+
1150
+ .row-cols-xxl-auto > * {
1151
+ flex: 0 0 auto;
1152
+ width: auto;
1153
+ }
1154
+
1155
+ .row-cols-xxl-1 > * {
1156
+ flex: 0 0 auto;
1157
+ width: 100%;
1158
+ }
1159
+
1160
+ .row-cols-xxl-2 > * {
1161
+ flex: 0 0 auto;
1162
+ width: 50%;
1163
+ }
1164
+
1165
+ .row-cols-xxl-3 > * {
1166
+ flex: 0 0 auto;
1167
+ width: 33.33333333%;
1168
+ }
1169
+
1170
+ .row-cols-xxl-4 > * {
1171
+ flex: 0 0 auto;
1172
+ width: 25%;
1173
+ }
1174
+
1175
+ .row-cols-xxl-5 > * {
1176
+ flex: 0 0 auto;
1177
+ width: 20%;
1178
+ }
1179
+
1180
+ .row-cols-xxl-6 > * {
1181
+ flex: 0 0 auto;
1182
+ width: 16.66666667%;
1183
+ }
1184
+
1185
+ .col-xxl-auto {
1186
+ flex: 0 0 auto;
1187
+ width: auto;
1188
+ }
1189
+
1190
+ .col-xxl-1 {
1191
+ flex: 0 0 auto;
1192
+ width: 8.33333333%;
1193
+ }
1194
+
1195
+ .col-xxl-2 {
1196
+ flex: 0 0 auto;
1197
+ width: 16.66666667%;
1198
+ }
1199
+
1200
+ .col-xxl-3 {
1201
+ flex: 0 0 auto;
1202
+ width: 25%;
1203
+ }
1204
+
1205
+ .col-xxl-4 {
1206
+ flex: 0 0 auto;
1207
+ width: 33.33333333%;
1208
+ }
1209
+
1210
+ .col-xxl-5 {
1211
+ flex: 0 0 auto;
1212
+ width: 41.66666667%;
1213
+ }
1214
+
1215
+ .col-xxl-6 {
1216
+ flex: 0 0 auto;
1217
+ width: 50%;
1218
+ }
1219
+
1220
+ .col-xxl-7 {
1221
+ flex: 0 0 auto;
1222
+ width: 58.33333333%;
1223
+ }
1224
+
1225
+ .col-xxl-8 {
1226
+ flex: 0 0 auto;
1227
+ width: 66.66666667%;
1228
+ }
1229
+
1230
+ .col-xxl-9 {
1231
+ flex: 0 0 auto;
1232
+ width: 75%;
1233
+ }
1234
+
1235
+ .col-xxl-10 {
1236
+ flex: 0 0 auto;
1237
+ width: 83.33333333%;
1238
+ }
1239
+
1240
+ .col-xxl-11 {
1241
+ flex: 0 0 auto;
1242
+ width: 91.66666667%;
1243
+ }
1244
+
1245
+ .col-xxl-12 {
1246
+ flex: 0 0 auto;
1247
+ width: 100%;
1248
+ }
1249
+
1250
+ .offset-xxl-0 {
1251
+ margin-left: 0;
1252
+ }
1253
+
1254
+ .offset-xxl-1 {
1255
+ margin-left: 8.33333333%;
1256
+ }
1257
+
1258
+ .offset-xxl-2 {
1259
+ margin-left: 16.66666667%;
1260
+ }
1261
+
1262
+ .offset-xxl-3 {
1263
+ margin-left: 25%;
1264
+ }
1265
+
1266
+ .offset-xxl-4 {
1267
+ margin-left: 33.33333333%;
1268
+ }
1269
+
1270
+ .offset-xxl-5 {
1271
+ margin-left: 41.66666667%;
1272
+ }
1273
+
1274
+ .offset-xxl-6 {
1275
+ margin-left: 50%;
1276
+ }
1277
+
1278
+ .offset-xxl-7 {
1279
+ margin-left: 58.33333333%;
1280
+ }
1281
+
1282
+ .offset-xxl-8 {
1283
+ margin-left: 66.66666667%;
1284
+ }
1285
+
1286
+ .offset-xxl-9 {
1287
+ margin-left: 75%;
1288
+ }
1289
+
1290
+ .offset-xxl-10 {
1291
+ margin-left: 83.33333333%;
1292
+ }
1293
+
1294
+ .offset-xxl-11 {
1295
+ margin-left: 91.66666667%;
1296
+ }
1297
+
1298
+ .g-xxl-0,
1299
+ .gx-xxl-0 {
1300
+ --bs-gutter-x: 0;
1301
+ }
1302
+
1303
+ .g-xxl-0,
1304
+ .gy-xxl-0 {
1305
+ --bs-gutter-y: 0;
1306
+ }
1307
+
1308
+ .g-xxl-1,
1309
+ .gx-xxl-1 {
1310
+ --bs-gutter-x: 0.25rem;
1311
+ }
1312
+
1313
+ .g-xxl-1,
1314
+ .gy-xxl-1 {
1315
+ --bs-gutter-y: 0.25rem;
1316
+ }
1317
+
1318
+ .g-xxl-2,
1319
+ .gx-xxl-2 {
1320
+ --bs-gutter-x: 0.5rem;
1321
+ }
1322
+
1323
+ .g-xxl-2,
1324
+ .gy-xxl-2 {
1325
+ --bs-gutter-y: 0.5rem;
1326
+ }
1327
+
1328
+ .g-xxl-3,
1329
+ .gx-xxl-3 {
1330
+ --bs-gutter-x: 1rem;
1331
+ }
1332
+
1333
+ .g-xxl-3,
1334
+ .gy-xxl-3 {
1335
+ --bs-gutter-y: 1rem;
1336
+ }
1337
+
1338
+ .g-xxl-4,
1339
+ .gx-xxl-4 {
1340
+ --bs-gutter-x: 1.5rem;
1341
+ }
1342
+
1343
+ .g-xxl-4,
1344
+ .gy-xxl-4 {
1345
+ --bs-gutter-y: 1.5rem;
1346
+ }
1347
+
1348
+ .g-xxl-5,
1349
+ .gx-xxl-5 {
1350
+ --bs-gutter-x: 3rem;
1351
+ }
1352
+
1353
+ .g-xxl-5,
1354
+ .gy-xxl-5 {
1355
+ --bs-gutter-y: 3rem;
1356
+ }
1357
+ }
1358
+
1359
+ .d-inline {
1360
+ display: inline !important;
1361
+ }
1362
+
1363
+ .d-inline-block {
1364
+ display: inline-block !important;
1365
+ }
1366
+
1367
+ .d-block {
1368
+ display: block !important;
1369
+ }
1370
+
1371
+ .d-grid {
1372
+ display: grid !important;
1373
+ }
1374
+
1375
+ .d-inline-grid {
1376
+ display: inline-grid !important;
1377
+ }
1378
+
1379
+ .d-table {
1380
+ display: table !important;
1381
+ }
1382
+
1383
+ .d-table-row {
1384
+ display: table-row !important;
1385
+ }
1386
+
1387
+ .d-table-cell {
1388
+ display: table-cell !important;
1389
+ }
1390
+
1391
+ .d-flex {
1392
+ display: flex !important;
1393
+ }
1394
+
1395
+ .d-inline-flex {
1396
+ display: inline-flex !important;
1397
+ }
1398
+
1399
+ .d-none {
1400
+ display: none !important;
1401
+ }
1402
+
1403
+ .flex-fill {
1404
+ flex: 1 1 auto !important;
1405
+ }
1406
+
1407
+ .flex-row {
1408
+ flex-direction: row !important;
1409
+ }
1410
+
1411
+ .flex-column {
1412
+ flex-direction: column !important;
1413
+ }
1414
+
1415
+ .flex-row-reverse {
1416
+ flex-direction: row-reverse !important;
1417
+ }
1418
+
1419
+ .flex-column-reverse {
1420
+ flex-direction: column-reverse !important;
1421
+ }
1422
+
1423
+ .flex-grow-0 {
1424
+ flex-grow: 0 !important;
1425
+ }
1426
+
1427
+ .flex-grow-1 {
1428
+ flex-grow: 1 !important;
1429
+ }
1430
+
1431
+ .flex-shrink-0 {
1432
+ flex-shrink: 0 !important;
1433
+ }
1434
+
1435
+ .flex-shrink-1 {
1436
+ flex-shrink: 1 !important;
1437
+ }
1438
+
1439
+ .flex-wrap {
1440
+ flex-wrap: wrap !important;
1441
+ }
1442
+
1443
+ .flex-nowrap {
1444
+ flex-wrap: nowrap !important;
1445
+ }
1446
+
1447
+ .flex-wrap-reverse {
1448
+ flex-wrap: wrap-reverse !important;
1449
+ }
1450
+
1451
+ .justify-content-start {
1452
+ justify-content: flex-start !important;
1453
+ }
1454
+
1455
+ .justify-content-end {
1456
+ justify-content: flex-end !important;
1457
+ }
1458
+
1459
+ .justify-content-center {
1460
+ justify-content: center !important;
1461
+ }
1462
+
1463
+ .justify-content-between {
1464
+ justify-content: space-between !important;
1465
+ }
1466
+
1467
+ .justify-content-around {
1468
+ justify-content: space-around !important;
1469
+ }
1470
+
1471
+ .justify-content-evenly {
1472
+ justify-content: space-evenly !important;
1473
+ }
1474
+
1475
+ .align-items-start {
1476
+ align-items: flex-start !important;
1477
+ }
1478
+
1479
+ .align-items-end {
1480
+ align-items: flex-end !important;
1481
+ }
1482
+
1483
+ .align-items-center {
1484
+ align-items: center !important;
1485
+ }
1486
+
1487
+ .align-items-baseline {
1488
+ align-items: baseline !important;
1489
+ }
1490
+
1491
+ .align-items-stretch {
1492
+ align-items: stretch !important;
1493
+ }
1494
+
1495
+ .align-content-start {
1496
+ align-content: flex-start !important;
1497
+ }
1498
+
1499
+ .align-content-end {
1500
+ align-content: flex-end !important;
1501
+ }
1502
+
1503
+ .align-content-center {
1504
+ align-content: center !important;
1505
+ }
1506
+
1507
+ .align-content-between {
1508
+ align-content: space-between !important;
1509
+ }
1510
+
1511
+ .align-content-around {
1512
+ align-content: space-around !important;
1513
+ }
1514
+
1515
+ .align-content-stretch {
1516
+ align-content: stretch !important;
1517
+ }
1518
+
1519
+ .align-self-auto {
1520
+ align-self: auto !important;
1521
+ }
1522
+
1523
+ .align-self-start {
1524
+ align-self: flex-start !important;
1525
+ }
1526
+
1527
+ .align-self-end {
1528
+ align-self: flex-end !important;
1529
+ }
1530
+
1531
+ .align-self-center {
1532
+ align-self: center !important;
1533
+ }
1534
+
1535
+ .align-self-baseline {
1536
+ align-self: baseline !important;
1537
+ }
1538
+
1539
+ .align-self-stretch {
1540
+ align-self: stretch !important;
1541
+ }
1542
+
1543
+ .order-first {
1544
+ order: -1 !important;
1545
+ }
1546
+
1547
+ .order-0 {
1548
+ order: 0 !important;
1549
+ }
1550
+
1551
+ .order-1 {
1552
+ order: 1 !important;
1553
+ }
1554
+
1555
+ .order-2 {
1556
+ order: 2 !important;
1557
+ }
1558
+
1559
+ .order-3 {
1560
+ order: 3 !important;
1561
+ }
1562
+
1563
+ .order-4 {
1564
+ order: 4 !important;
1565
+ }
1566
+
1567
+ .order-5 {
1568
+ order: 5 !important;
1569
+ }
1570
+
1571
+ .order-last {
1572
+ order: 6 !important;
1573
+ }
1574
+
1575
+ .m-0 {
1576
+ margin: 0 !important;
1577
+ }
1578
+
1579
+ .m-1 {
1580
+ margin: 0.25rem !important;
1581
+ }
1582
+
1583
+ .m-2 {
1584
+ margin: 0.5rem !important;
1585
+ }
1586
+
1587
+ .m-3 {
1588
+ margin: 1rem !important;
1589
+ }
1590
+
1591
+ .m-4 {
1592
+ margin: 1.5rem !important;
1593
+ }
1594
+
1595
+ .m-5 {
1596
+ margin: 3rem !important;
1597
+ }
1598
+
1599
+ .m-auto {
1600
+ margin: auto !important;
1601
+ }
1602
+
1603
+ .mx-0 {
1604
+ margin-right: 0 !important;
1605
+ margin-left: 0 !important;
1606
+ }
1607
+
1608
+ .mx-1 {
1609
+ margin-right: 0.25rem !important;
1610
+ margin-left: 0.25rem !important;
1611
+ }
1612
+
1613
+ .mx-2 {
1614
+ margin-right: 0.5rem !important;
1615
+ margin-left: 0.5rem !important;
1616
+ }
1617
+
1618
+ .mx-3 {
1619
+ margin-right: 1rem !important;
1620
+ margin-left: 1rem !important;
1621
+ }
1622
+
1623
+ .mx-4 {
1624
+ margin-right: 1.5rem !important;
1625
+ margin-left: 1.5rem !important;
1626
+ }
1627
+
1628
+ .mx-5 {
1629
+ margin-right: 3rem !important;
1630
+ margin-left: 3rem !important;
1631
+ }
1632
+
1633
+ .mx-auto {
1634
+ margin-right: auto !important;
1635
+ margin-left: auto !important;
1636
+ }
1637
+
1638
+ .my-0 {
1639
+ margin-top: 0 !important;
1640
+ margin-bottom: 0 !important;
1641
+ }
1642
+
1643
+ .my-1 {
1644
+ margin-top: 0.25rem !important;
1645
+ margin-bottom: 0.25rem !important;
1646
+ }
1647
+
1648
+ .my-2 {
1649
+ margin-top: 0.5rem !important;
1650
+ margin-bottom: 0.5rem !important;
1651
+ }
1652
+
1653
+ .my-3 {
1654
+ margin-top: 1rem !important;
1655
+ margin-bottom: 1rem !important;
1656
+ }
1657
+
1658
+ .my-4 {
1659
+ margin-top: 1.5rem !important;
1660
+ margin-bottom: 1.5rem !important;
1661
+ }
1662
+
1663
+ .my-5 {
1664
+ margin-top: 3rem !important;
1665
+ margin-bottom: 3rem !important;
1666
+ }
1667
+
1668
+ .my-auto {
1669
+ margin-top: auto !important;
1670
+ margin-bottom: auto !important;
1671
+ }
1672
+
1673
+ .mt-0 {
1674
+ margin-top: 0 !important;
1675
+ }
1676
+
1677
+ .mt-1 {
1678
+ margin-top: 0.25rem !important;
1679
+ }
1680
+
1681
+ .mt-2 {
1682
+ margin-top: 0.5rem !important;
1683
+ }
1684
+
1685
+ .mt-3 {
1686
+ margin-top: 1rem !important;
1687
+ }
1688
+
1689
+ .mt-4 {
1690
+ margin-top: 1.5rem !important;
1691
+ }
1692
+
1693
+ .mt-5 {
1694
+ margin-top: 3rem !important;
1695
+ }
1696
+
1697
+ .mt-auto {
1698
+ margin-top: auto !important;
1699
+ }
1700
+
1701
+ .me-0 {
1702
+ margin-right: 0 !important;
1703
+ }
1704
+
1705
+ .me-1 {
1706
+ margin-right: 0.25rem !important;
1707
+ }
1708
+
1709
+ .me-2 {
1710
+ margin-right: 0.5rem !important;
1711
+ }
1712
+
1713
+ .me-3 {
1714
+ margin-right: 1rem !important;
1715
+ }
1716
+
1717
+ .me-4 {
1718
+ margin-right: 1.5rem !important;
1719
+ }
1720
+
1721
+ .me-5 {
1722
+ margin-right: 3rem !important;
1723
+ }
1724
+
1725
+ .me-auto {
1726
+ margin-right: auto !important;
1727
+ }
1728
+
1729
+ .mb-0 {
1730
+ margin-bottom: 0 !important;
1731
+ }
1732
+
1733
+ .mb-1 {
1734
+ margin-bottom: 0.25rem !important;
1735
+ }
1736
+
1737
+ .mb-2 {
1738
+ margin-bottom: 0.5rem !important;
1739
+ }
1740
+
1741
+ .mb-3 {
1742
+ margin-bottom: 1rem !important;
1743
+ }
1744
+
1745
+ .mb-4 {
1746
+ margin-bottom: 1.5rem !important;
1747
+ }
1748
+
1749
+ .mb-5 {
1750
+ margin-bottom: 3rem !important;
1751
+ }
1752
+
1753
+ .mb-auto {
1754
+ margin-bottom: auto !important;
1755
+ }
1756
+
1757
+ .ms-0 {
1758
+ margin-left: 0 !important;
1759
+ }
1760
+
1761
+ .ms-1 {
1762
+ margin-left: 0.25rem !important;
1763
+ }
1764
+
1765
+ .ms-2 {
1766
+ margin-left: 0.5rem !important;
1767
+ }
1768
+
1769
+ .ms-3 {
1770
+ margin-left: 1rem !important;
1771
+ }
1772
+
1773
+ .ms-4 {
1774
+ margin-left: 1.5rem !important;
1775
+ }
1776
+
1777
+ .ms-5 {
1778
+ margin-left: 3rem !important;
1779
+ }
1780
+
1781
+ .ms-auto {
1782
+ margin-left: auto !important;
1783
+ }
1784
+
1785
+ .p-0 {
1786
+ padding: 0 !important;
1787
+ }
1788
+
1789
+ .p-1 {
1790
+ padding: 0.25rem !important;
1791
+ }
1792
+
1793
+ .p-2 {
1794
+ padding: 0.5rem !important;
1795
+ }
1796
+
1797
+ .p-3 {
1798
+ padding: 1rem !important;
1799
+ }
1800
+
1801
+ .p-4 {
1802
+ padding: 1.5rem !important;
1803
+ }
1804
+
1805
+ .p-5 {
1806
+ padding: 3rem !important;
1807
+ }
1808
+
1809
+ .px-0 {
1810
+ padding-right: 0 !important;
1811
+ padding-left: 0 !important;
1812
+ }
1813
+
1814
+ .px-1 {
1815
+ padding-right: 0.25rem !important;
1816
+ padding-left: 0.25rem !important;
1817
+ }
1818
+
1819
+ .px-2 {
1820
+ padding-right: 0.5rem !important;
1821
+ padding-left: 0.5rem !important;
1822
+ }
1823
+
1824
+ .px-3 {
1825
+ padding-right: 1rem !important;
1826
+ padding-left: 1rem !important;
1827
+ }
1828
+
1829
+ .px-4 {
1830
+ padding-right: 1.5rem !important;
1831
+ padding-left: 1.5rem !important;
1832
+ }
1833
+
1834
+ .px-5 {
1835
+ padding-right: 3rem !important;
1836
+ padding-left: 3rem !important;
1837
+ }
1838
+
1839
+ .py-0 {
1840
+ padding-top: 0 !important;
1841
+ padding-bottom: 0 !important;
1842
+ }
1843
+
1844
+ .py-1 {
1845
+ padding-top: 0.25rem !important;
1846
+ padding-bottom: 0.25rem !important;
1847
+ }
1848
+
1849
+ .py-2 {
1850
+ padding-top: 0.5rem !important;
1851
+ padding-bottom: 0.5rem !important;
1852
+ }
1853
+
1854
+ .py-3 {
1855
+ padding-top: 1rem !important;
1856
+ padding-bottom: 1rem !important;
1857
+ }
1858
+
1859
+ .py-4 {
1860
+ padding-top: 1.5rem !important;
1861
+ padding-bottom: 1.5rem !important;
1862
+ }
1863
+
1864
+ .py-5 {
1865
+ padding-top: 3rem !important;
1866
+ padding-bottom: 3rem !important;
1867
+ }
1868
+
1869
+ .pt-0 {
1870
+ padding-top: 0 !important;
1871
+ }
1872
+
1873
+ .pt-1 {
1874
+ padding-top: 0.25rem !important;
1875
+ }
1876
+
1877
+ .pt-2 {
1878
+ padding-top: 0.5rem !important;
1879
+ }
1880
+
1881
+ .pt-3 {
1882
+ padding-top: 1rem !important;
1883
+ }
1884
+
1885
+ .pt-4 {
1886
+ padding-top: 1.5rem !important;
1887
+ }
1888
+
1889
+ .pt-5 {
1890
+ padding-top: 3rem !important;
1891
+ }
1892
+
1893
+ .pe-0 {
1894
+ padding-right: 0 !important;
1895
+ }
1896
+
1897
+ .pe-1 {
1898
+ padding-right: 0.25rem !important;
1899
+ }
1900
+
1901
+ .pe-2 {
1902
+ padding-right: 0.5rem !important;
1903
+ }
1904
+
1905
+ .pe-3 {
1906
+ padding-right: 1rem !important;
1907
+ }
1908
+
1909
+ .pe-4 {
1910
+ padding-right: 1.5rem !important;
1911
+ }
1912
+
1913
+ .pe-5 {
1914
+ padding-right: 3rem !important;
1915
+ }
1916
+
1917
+ .pb-0 {
1918
+ padding-bottom: 0 !important;
1919
+ }
1920
+
1921
+ .pb-1 {
1922
+ padding-bottom: 0.25rem !important;
1923
+ }
1924
+
1925
+ .pb-2 {
1926
+ padding-bottom: 0.5rem !important;
1927
+ }
1928
+
1929
+ .pb-3 {
1930
+ padding-bottom: 1rem !important;
1931
+ }
1932
+
1933
+ .pb-4 {
1934
+ padding-bottom: 1.5rem !important;
1935
+ }
1936
+
1937
+ .pb-5 {
1938
+ padding-bottom: 3rem !important;
1939
+ }
1940
+
1941
+ .ps-0 {
1942
+ padding-left: 0 !important;
1943
+ }
1944
+
1945
+ .ps-1 {
1946
+ padding-left: 0.25rem !important;
1947
+ }
1948
+
1949
+ .ps-2 {
1950
+ padding-left: 0.5rem !important;
1951
+ }
1952
+
1953
+ .ps-3 {
1954
+ padding-left: 1rem !important;
1955
+ }
1956
+
1957
+ .ps-4 {
1958
+ padding-left: 1.5rem !important;
1959
+ }
1960
+
1961
+ .ps-5 {
1962
+ padding-left: 3rem !important;
1963
+ }
1964
+
1965
+ @media (min-width: 576px) {
1966
+ .d-sm-inline {
1967
+ display: inline !important;
1968
+ }
1969
+
1970
+ .d-sm-inline-block {
1971
+ display: inline-block !important;
1972
+ }
1973
+
1974
+ .d-sm-block {
1975
+ display: block !important;
1976
+ }
1977
+
1978
+ .d-sm-grid {
1979
+ display: grid !important;
1980
+ }
1981
+
1982
+ .d-sm-inline-grid {
1983
+ display: inline-grid !important;
1984
+ }
1985
+
1986
+ .d-sm-table {
1987
+ display: table !important;
1988
+ }
1989
+
1990
+ .d-sm-table-row {
1991
+ display: table-row !important;
1992
+ }
1993
+
1994
+ .d-sm-table-cell {
1995
+ display: table-cell !important;
1996
+ }
1997
+
1998
+ .d-sm-flex {
1999
+ display: flex !important;
2000
+ }
2001
+
2002
+ .d-sm-inline-flex {
2003
+ display: inline-flex !important;
2004
+ }
2005
+
2006
+ .d-sm-none {
2007
+ display: none !important;
2008
+ }
2009
+
2010
+ .flex-sm-fill {
2011
+ flex: 1 1 auto !important;
2012
+ }
2013
+
2014
+ .flex-sm-row {
2015
+ flex-direction: row !important;
2016
+ }
2017
+
2018
+ .flex-sm-column {
2019
+ flex-direction: column !important;
2020
+ }
2021
+
2022
+ .flex-sm-row-reverse {
2023
+ flex-direction: row-reverse !important;
2024
+ }
2025
+
2026
+ .flex-sm-column-reverse {
2027
+ flex-direction: column-reverse !important;
2028
+ }
2029
+
2030
+ .flex-sm-grow-0 {
2031
+ flex-grow: 0 !important;
2032
+ }
2033
+
2034
+ .flex-sm-grow-1 {
2035
+ flex-grow: 1 !important;
2036
+ }
2037
+
2038
+ .flex-sm-shrink-0 {
2039
+ flex-shrink: 0 !important;
2040
+ }
2041
+
2042
+ .flex-sm-shrink-1 {
2043
+ flex-shrink: 1 !important;
2044
+ }
2045
+
2046
+ .flex-sm-wrap {
2047
+ flex-wrap: wrap !important;
2048
+ }
2049
+
2050
+ .flex-sm-nowrap {
2051
+ flex-wrap: nowrap !important;
2052
+ }
2053
+
2054
+ .flex-sm-wrap-reverse {
2055
+ flex-wrap: wrap-reverse !important;
2056
+ }
2057
+
2058
+ .justify-content-sm-start {
2059
+ justify-content: flex-start !important;
2060
+ }
2061
+
2062
+ .justify-content-sm-end {
2063
+ justify-content: flex-end !important;
2064
+ }
2065
+
2066
+ .justify-content-sm-center {
2067
+ justify-content: center !important;
2068
+ }
2069
+
2070
+ .justify-content-sm-between {
2071
+ justify-content: space-between !important;
2072
+ }
2073
+
2074
+ .justify-content-sm-around {
2075
+ justify-content: space-around !important;
2076
+ }
2077
+
2078
+ .justify-content-sm-evenly {
2079
+ justify-content: space-evenly !important;
2080
+ }
2081
+
2082
+ .align-items-sm-start {
2083
+ align-items: flex-start !important;
2084
+ }
2085
+
2086
+ .align-items-sm-end {
2087
+ align-items: flex-end !important;
2088
+ }
2089
+
2090
+ .align-items-sm-center {
2091
+ align-items: center !important;
2092
+ }
2093
+
2094
+ .align-items-sm-baseline {
2095
+ align-items: baseline !important;
2096
+ }
2097
+
2098
+ .align-items-sm-stretch {
2099
+ align-items: stretch !important;
2100
+ }
2101
+
2102
+ .align-content-sm-start {
2103
+ align-content: flex-start !important;
2104
+ }
2105
+
2106
+ .align-content-sm-end {
2107
+ align-content: flex-end !important;
2108
+ }
2109
+
2110
+ .align-content-sm-center {
2111
+ align-content: center !important;
2112
+ }
2113
+
2114
+ .align-content-sm-between {
2115
+ align-content: space-between !important;
2116
+ }
2117
+
2118
+ .align-content-sm-around {
2119
+ align-content: space-around !important;
2120
+ }
2121
+
2122
+ .align-content-sm-stretch {
2123
+ align-content: stretch !important;
2124
+ }
2125
+
2126
+ .align-self-sm-auto {
2127
+ align-self: auto !important;
2128
+ }
2129
+
2130
+ .align-self-sm-start {
2131
+ align-self: flex-start !important;
2132
+ }
2133
+
2134
+ .align-self-sm-end {
2135
+ align-self: flex-end !important;
2136
+ }
2137
+
2138
+ .align-self-sm-center {
2139
+ align-self: center !important;
2140
+ }
2141
+
2142
+ .align-self-sm-baseline {
2143
+ align-self: baseline !important;
2144
+ }
2145
+
2146
+ .align-self-sm-stretch {
2147
+ align-self: stretch !important;
2148
+ }
2149
+
2150
+ .order-sm-first {
2151
+ order: -1 !important;
2152
+ }
2153
+
2154
+ .order-sm-0 {
2155
+ order: 0 !important;
2156
+ }
2157
+
2158
+ .order-sm-1 {
2159
+ order: 1 !important;
2160
+ }
2161
+
2162
+ .order-sm-2 {
2163
+ order: 2 !important;
2164
+ }
2165
+
2166
+ .order-sm-3 {
2167
+ order: 3 !important;
2168
+ }
2169
+
2170
+ .order-sm-4 {
2171
+ order: 4 !important;
2172
+ }
2173
+
2174
+ .order-sm-5 {
2175
+ order: 5 !important;
2176
+ }
2177
+
2178
+ .order-sm-last {
2179
+ order: 6 !important;
2180
+ }
2181
+
2182
+ .m-sm-0 {
2183
+ margin: 0 !important;
2184
+ }
2185
+
2186
+ .m-sm-1 {
2187
+ margin: 0.25rem !important;
2188
+ }
2189
+
2190
+ .m-sm-2 {
2191
+ margin: 0.5rem !important;
2192
+ }
2193
+
2194
+ .m-sm-3 {
2195
+ margin: 1rem !important;
2196
+ }
2197
+
2198
+ .m-sm-4 {
2199
+ margin: 1.5rem !important;
2200
+ }
2201
+
2202
+ .m-sm-5 {
2203
+ margin: 3rem !important;
2204
+ }
2205
+
2206
+ .m-sm-auto {
2207
+ margin: auto !important;
2208
+ }
2209
+
2210
+ .mx-sm-0 {
2211
+ margin-right: 0 !important;
2212
+ margin-left: 0 !important;
2213
+ }
2214
+
2215
+ .mx-sm-1 {
2216
+ margin-right: 0.25rem !important;
2217
+ margin-left: 0.25rem !important;
2218
+ }
2219
+
2220
+ .mx-sm-2 {
2221
+ margin-right: 0.5rem !important;
2222
+ margin-left: 0.5rem !important;
2223
+ }
2224
+
2225
+ .mx-sm-3 {
2226
+ margin-right: 1rem !important;
2227
+ margin-left: 1rem !important;
2228
+ }
2229
+
2230
+ .mx-sm-4 {
2231
+ margin-right: 1.5rem !important;
2232
+ margin-left: 1.5rem !important;
2233
+ }
2234
+
2235
+ .mx-sm-5 {
2236
+ margin-right: 3rem !important;
2237
+ margin-left: 3rem !important;
2238
+ }
2239
+
2240
+ .mx-sm-auto {
2241
+ margin-right: auto !important;
2242
+ margin-left: auto !important;
2243
+ }
2244
+
2245
+ .my-sm-0 {
2246
+ margin-top: 0 !important;
2247
+ margin-bottom: 0 !important;
2248
+ }
2249
+
2250
+ .my-sm-1 {
2251
+ margin-top: 0.25rem !important;
2252
+ margin-bottom: 0.25rem !important;
2253
+ }
2254
+
2255
+ .my-sm-2 {
2256
+ margin-top: 0.5rem !important;
2257
+ margin-bottom: 0.5rem !important;
2258
+ }
2259
+
2260
+ .my-sm-3 {
2261
+ margin-top: 1rem !important;
2262
+ margin-bottom: 1rem !important;
2263
+ }
2264
+
2265
+ .my-sm-4 {
2266
+ margin-top: 1.5rem !important;
2267
+ margin-bottom: 1.5rem !important;
2268
+ }
2269
+
2270
+ .my-sm-5 {
2271
+ margin-top: 3rem !important;
2272
+ margin-bottom: 3rem !important;
2273
+ }
2274
+
2275
+ .my-sm-auto {
2276
+ margin-top: auto !important;
2277
+ margin-bottom: auto !important;
2278
+ }
2279
+
2280
+ .mt-sm-0 {
2281
+ margin-top: 0 !important;
2282
+ }
2283
+
2284
+ .mt-sm-1 {
2285
+ margin-top: 0.25rem !important;
2286
+ }
2287
+
2288
+ .mt-sm-2 {
2289
+ margin-top: 0.5rem !important;
2290
+ }
2291
+
2292
+ .mt-sm-3 {
2293
+ margin-top: 1rem !important;
2294
+ }
2295
+
2296
+ .mt-sm-4 {
2297
+ margin-top: 1.5rem !important;
2298
+ }
2299
+
2300
+ .mt-sm-5 {
2301
+ margin-top: 3rem !important;
2302
+ }
2303
+
2304
+ .mt-sm-auto {
2305
+ margin-top: auto !important;
2306
+ }
2307
+
2308
+ .me-sm-0 {
2309
+ margin-right: 0 !important;
2310
+ }
2311
+
2312
+ .me-sm-1 {
2313
+ margin-right: 0.25rem !important;
2314
+ }
2315
+
2316
+ .me-sm-2 {
2317
+ margin-right: 0.5rem !important;
2318
+ }
2319
+
2320
+ .me-sm-3 {
2321
+ margin-right: 1rem !important;
2322
+ }
2323
+
2324
+ .me-sm-4 {
2325
+ margin-right: 1.5rem !important;
2326
+ }
2327
+
2328
+ .me-sm-5 {
2329
+ margin-right: 3rem !important;
2330
+ }
2331
+
2332
+ .me-sm-auto {
2333
+ margin-right: auto !important;
2334
+ }
2335
+
2336
+ .mb-sm-0 {
2337
+ margin-bottom: 0 !important;
2338
+ }
2339
+
2340
+ .mb-sm-1 {
2341
+ margin-bottom: 0.25rem !important;
2342
+ }
2343
+
2344
+ .mb-sm-2 {
2345
+ margin-bottom: 0.5rem !important;
2346
+ }
2347
+
2348
+ .mb-sm-3 {
2349
+ margin-bottom: 1rem !important;
2350
+ }
2351
+
2352
+ .mb-sm-4 {
2353
+ margin-bottom: 1.5rem !important;
2354
+ }
2355
+
2356
+ .mb-sm-5 {
2357
+ margin-bottom: 3rem !important;
2358
+ }
2359
+
2360
+ .mb-sm-auto {
2361
+ margin-bottom: auto !important;
2362
+ }
2363
+
2364
+ .ms-sm-0 {
2365
+ margin-left: 0 !important;
2366
+ }
2367
+
2368
+ .ms-sm-1 {
2369
+ margin-left: 0.25rem !important;
2370
+ }
2371
+
2372
+ .ms-sm-2 {
2373
+ margin-left: 0.5rem !important;
2374
+ }
2375
+
2376
+ .ms-sm-3 {
2377
+ margin-left: 1rem !important;
2378
+ }
2379
+
2380
+ .ms-sm-4 {
2381
+ margin-left: 1.5rem !important;
2382
+ }
2383
+
2384
+ .ms-sm-5 {
2385
+ margin-left: 3rem !important;
2386
+ }
2387
+
2388
+ .ms-sm-auto {
2389
+ margin-left: auto !important;
2390
+ }
2391
+
2392
+ .p-sm-0 {
2393
+ padding: 0 !important;
2394
+ }
2395
+
2396
+ .p-sm-1 {
2397
+ padding: 0.25rem !important;
2398
+ }
2399
+
2400
+ .p-sm-2 {
2401
+ padding: 0.5rem !important;
2402
+ }
2403
+
2404
+ .p-sm-3 {
2405
+ padding: 1rem !important;
2406
+ }
2407
+
2408
+ .p-sm-4 {
2409
+ padding: 1.5rem !important;
2410
+ }
2411
+
2412
+ .p-sm-5 {
2413
+ padding: 3rem !important;
2414
+ }
2415
+
2416
+ .px-sm-0 {
2417
+ padding-right: 0 !important;
2418
+ padding-left: 0 !important;
2419
+ }
2420
+
2421
+ .px-sm-1 {
2422
+ padding-right: 0.25rem !important;
2423
+ padding-left: 0.25rem !important;
2424
+ }
2425
+
2426
+ .px-sm-2 {
2427
+ padding-right: 0.5rem !important;
2428
+ padding-left: 0.5rem !important;
2429
+ }
2430
+
2431
+ .px-sm-3 {
2432
+ padding-right: 1rem !important;
2433
+ padding-left: 1rem !important;
2434
+ }
2435
+
2436
+ .px-sm-4 {
2437
+ padding-right: 1.5rem !important;
2438
+ padding-left: 1.5rem !important;
2439
+ }
2440
+
2441
+ .px-sm-5 {
2442
+ padding-right: 3rem !important;
2443
+ padding-left: 3rem !important;
2444
+ }
2445
+
2446
+ .py-sm-0 {
2447
+ padding-top: 0 !important;
2448
+ padding-bottom: 0 !important;
2449
+ }
2450
+
2451
+ .py-sm-1 {
2452
+ padding-top: 0.25rem !important;
2453
+ padding-bottom: 0.25rem !important;
2454
+ }
2455
+
2456
+ .py-sm-2 {
2457
+ padding-top: 0.5rem !important;
2458
+ padding-bottom: 0.5rem !important;
2459
+ }
2460
+
2461
+ .py-sm-3 {
2462
+ padding-top: 1rem !important;
2463
+ padding-bottom: 1rem !important;
2464
+ }
2465
+
2466
+ .py-sm-4 {
2467
+ padding-top: 1.5rem !important;
2468
+ padding-bottom: 1.5rem !important;
2469
+ }
2470
+
2471
+ .py-sm-5 {
2472
+ padding-top: 3rem !important;
2473
+ padding-bottom: 3rem !important;
2474
+ }
2475
+
2476
+ .pt-sm-0 {
2477
+ padding-top: 0 !important;
2478
+ }
2479
+
2480
+ .pt-sm-1 {
2481
+ padding-top: 0.25rem !important;
2482
+ }
2483
+
2484
+ .pt-sm-2 {
2485
+ padding-top: 0.5rem !important;
2486
+ }
2487
+
2488
+ .pt-sm-3 {
2489
+ padding-top: 1rem !important;
2490
+ }
2491
+
2492
+ .pt-sm-4 {
2493
+ padding-top: 1.5rem !important;
2494
+ }
2495
+
2496
+ .pt-sm-5 {
2497
+ padding-top: 3rem !important;
2498
+ }
2499
+
2500
+ .pe-sm-0 {
2501
+ padding-right: 0 !important;
2502
+ }
2503
+
2504
+ .pe-sm-1 {
2505
+ padding-right: 0.25rem !important;
2506
+ }
2507
+
2508
+ .pe-sm-2 {
2509
+ padding-right: 0.5rem !important;
2510
+ }
2511
+
2512
+ .pe-sm-3 {
2513
+ padding-right: 1rem !important;
2514
+ }
2515
+
2516
+ .pe-sm-4 {
2517
+ padding-right: 1.5rem !important;
2518
+ }
2519
+
2520
+ .pe-sm-5 {
2521
+ padding-right: 3rem !important;
2522
+ }
2523
+
2524
+ .pb-sm-0 {
2525
+ padding-bottom: 0 !important;
2526
+ }
2527
+
2528
+ .pb-sm-1 {
2529
+ padding-bottom: 0.25rem !important;
2530
+ }
2531
+
2532
+ .pb-sm-2 {
2533
+ padding-bottom: 0.5rem !important;
2534
+ }
2535
+
2536
+ .pb-sm-3 {
2537
+ padding-bottom: 1rem !important;
2538
+ }
2539
+
2540
+ .pb-sm-4 {
2541
+ padding-bottom: 1.5rem !important;
2542
+ }
2543
+
2544
+ .pb-sm-5 {
2545
+ padding-bottom: 3rem !important;
2546
+ }
2547
+
2548
+ .ps-sm-0 {
2549
+ padding-left: 0 !important;
2550
+ }
2551
+
2552
+ .ps-sm-1 {
2553
+ padding-left: 0.25rem !important;
2554
+ }
2555
+
2556
+ .ps-sm-2 {
2557
+ padding-left: 0.5rem !important;
2558
+ }
2559
+
2560
+ .ps-sm-3 {
2561
+ padding-left: 1rem !important;
2562
+ }
2563
+
2564
+ .ps-sm-4 {
2565
+ padding-left: 1.5rem !important;
2566
+ }
2567
+
2568
+ .ps-sm-5 {
2569
+ padding-left: 3rem !important;
2570
+ }
2571
+ }
2572
+
2573
+ @media (min-width: 768px) {
2574
+ .d-md-inline {
2575
+ display: inline !important;
2576
+ }
2577
+
2578
+ .d-md-inline-block {
2579
+ display: inline-block !important;
2580
+ }
2581
+
2582
+ .d-md-block {
2583
+ display: block !important;
2584
+ }
2585
+
2586
+ .d-md-grid {
2587
+ display: grid !important;
2588
+ }
2589
+
2590
+ .d-md-inline-grid {
2591
+ display: inline-grid !important;
2592
+ }
2593
+
2594
+ .d-md-table {
2595
+ display: table !important;
2596
+ }
2597
+
2598
+ .d-md-table-row {
2599
+ display: table-row !important;
2600
+ }
2601
+
2602
+ .d-md-table-cell {
2603
+ display: table-cell !important;
2604
+ }
2605
+
2606
+ .d-md-flex {
2607
+ display: flex !important;
2608
+ }
2609
+
2610
+ .d-md-inline-flex {
2611
+ display: inline-flex !important;
2612
+ }
2613
+
2614
+ .d-md-none {
2615
+ display: none !important;
2616
+ }
2617
+
2618
+ .flex-md-fill {
2619
+ flex: 1 1 auto !important;
2620
+ }
2621
+
2622
+ .flex-md-row {
2623
+ flex-direction: row !important;
2624
+ }
2625
+
2626
+ .flex-md-column {
2627
+ flex-direction: column !important;
2628
+ }
2629
+
2630
+ .flex-md-row-reverse {
2631
+ flex-direction: row-reverse !important;
2632
+ }
2633
+
2634
+ .flex-md-column-reverse {
2635
+ flex-direction: column-reverse !important;
2636
+ }
2637
+
2638
+ .flex-md-grow-0 {
2639
+ flex-grow: 0 !important;
2640
+ }
2641
+
2642
+ .flex-md-grow-1 {
2643
+ flex-grow: 1 !important;
2644
+ }
2645
+
2646
+ .flex-md-shrink-0 {
2647
+ flex-shrink: 0 !important;
2648
+ }
2649
+
2650
+ .flex-md-shrink-1 {
2651
+ flex-shrink: 1 !important;
2652
+ }
2653
+
2654
+ .flex-md-wrap {
2655
+ flex-wrap: wrap !important;
2656
+ }
2657
+
2658
+ .flex-md-nowrap {
2659
+ flex-wrap: nowrap !important;
2660
+ }
2661
+
2662
+ .flex-md-wrap-reverse {
2663
+ flex-wrap: wrap-reverse !important;
2664
+ }
2665
+
2666
+ .justify-content-md-start {
2667
+ justify-content: flex-start !important;
2668
+ }
2669
+
2670
+ .justify-content-md-end {
2671
+ justify-content: flex-end !important;
2672
+ }
2673
+
2674
+ .justify-content-md-center {
2675
+ justify-content: center !important;
2676
+ }
2677
+
2678
+ .justify-content-md-between {
2679
+ justify-content: space-between !important;
2680
+ }
2681
+
2682
+ .justify-content-md-around {
2683
+ justify-content: space-around !important;
2684
+ }
2685
+
2686
+ .justify-content-md-evenly {
2687
+ justify-content: space-evenly !important;
2688
+ }
2689
+
2690
+ .align-items-md-start {
2691
+ align-items: flex-start !important;
2692
+ }
2693
+
2694
+ .align-items-md-end {
2695
+ align-items: flex-end !important;
2696
+ }
2697
+
2698
+ .align-items-md-center {
2699
+ align-items: center !important;
2700
+ }
2701
+
2702
+ .align-items-md-baseline {
2703
+ align-items: baseline !important;
2704
+ }
2705
+
2706
+ .align-items-md-stretch {
2707
+ align-items: stretch !important;
2708
+ }
2709
+
2710
+ .align-content-md-start {
2711
+ align-content: flex-start !important;
2712
+ }
2713
+
2714
+ .align-content-md-end {
2715
+ align-content: flex-end !important;
2716
+ }
2717
+
2718
+ .align-content-md-center {
2719
+ align-content: center !important;
2720
+ }
2721
+
2722
+ .align-content-md-between {
2723
+ align-content: space-between !important;
2724
+ }
2725
+
2726
+ .align-content-md-around {
2727
+ align-content: space-around !important;
2728
+ }
2729
+
2730
+ .align-content-md-stretch {
2731
+ align-content: stretch !important;
2732
+ }
2733
+
2734
+ .align-self-md-auto {
2735
+ align-self: auto !important;
2736
+ }
2737
+
2738
+ .align-self-md-start {
2739
+ align-self: flex-start !important;
2740
+ }
2741
+
2742
+ .align-self-md-end {
2743
+ align-self: flex-end !important;
2744
+ }
2745
+
2746
+ .align-self-md-center {
2747
+ align-self: center !important;
2748
+ }
2749
+
2750
+ .align-self-md-baseline {
2751
+ align-self: baseline !important;
2752
+ }
2753
+
2754
+ .align-self-md-stretch {
2755
+ align-self: stretch !important;
2756
+ }
2757
+
2758
+ .order-md-first {
2759
+ order: -1 !important;
2760
+ }
2761
+
2762
+ .order-md-0 {
2763
+ order: 0 !important;
2764
+ }
2765
+
2766
+ .order-md-1 {
2767
+ order: 1 !important;
2768
+ }
2769
+
2770
+ .order-md-2 {
2771
+ order: 2 !important;
2772
+ }
2773
+
2774
+ .order-md-3 {
2775
+ order: 3 !important;
2776
+ }
2777
+
2778
+ .order-md-4 {
2779
+ order: 4 !important;
2780
+ }
2781
+
2782
+ .order-md-5 {
2783
+ order: 5 !important;
2784
+ }
2785
+
2786
+ .order-md-last {
2787
+ order: 6 !important;
2788
+ }
2789
+
2790
+ .m-md-0 {
2791
+ margin: 0 !important;
2792
+ }
2793
+
2794
+ .m-md-1 {
2795
+ margin: 0.25rem !important;
2796
+ }
2797
+
2798
+ .m-md-2 {
2799
+ margin: 0.5rem !important;
2800
+ }
2801
+
2802
+ .m-md-3 {
2803
+ margin: 1rem !important;
2804
+ }
2805
+
2806
+ .m-md-4 {
2807
+ margin: 1.5rem !important;
2808
+ }
2809
+
2810
+ .m-md-5 {
2811
+ margin: 3rem !important;
2812
+ }
2813
+
2814
+ .m-md-auto {
2815
+ margin: auto !important;
2816
+ }
2817
+
2818
+ .mx-md-0 {
2819
+ margin-right: 0 !important;
2820
+ margin-left: 0 !important;
2821
+ }
2822
+
2823
+ .mx-md-1 {
2824
+ margin-right: 0.25rem !important;
2825
+ margin-left: 0.25rem !important;
2826
+ }
2827
+
2828
+ .mx-md-2 {
2829
+ margin-right: 0.5rem !important;
2830
+ margin-left: 0.5rem !important;
2831
+ }
2832
+
2833
+ .mx-md-3 {
2834
+ margin-right: 1rem !important;
2835
+ margin-left: 1rem !important;
2836
+ }
2837
+
2838
+ .mx-md-4 {
2839
+ margin-right: 1.5rem !important;
2840
+ margin-left: 1.5rem !important;
2841
+ }
2842
+
2843
+ .mx-md-5 {
2844
+ margin-right: 3rem !important;
2845
+ margin-left: 3rem !important;
2846
+ }
2847
+
2848
+ .mx-md-auto {
2849
+ margin-right: auto !important;
2850
+ margin-left: auto !important;
2851
+ }
2852
+
2853
+ .my-md-0 {
2854
+ margin-top: 0 !important;
2855
+ margin-bottom: 0 !important;
2856
+ }
2857
+
2858
+ .my-md-1 {
2859
+ margin-top: 0.25rem !important;
2860
+ margin-bottom: 0.25rem !important;
2861
+ }
2862
+
2863
+ .my-md-2 {
2864
+ margin-top: 0.5rem !important;
2865
+ margin-bottom: 0.5rem !important;
2866
+ }
2867
+
2868
+ .my-md-3 {
2869
+ margin-top: 1rem !important;
2870
+ margin-bottom: 1rem !important;
2871
+ }
2872
+
2873
+ .my-md-4 {
2874
+ margin-top: 1.5rem !important;
2875
+ margin-bottom: 1.5rem !important;
2876
+ }
2877
+
2878
+ .my-md-5 {
2879
+ margin-top: 3rem !important;
2880
+ margin-bottom: 3rem !important;
2881
+ }
2882
+
2883
+ .my-md-auto {
2884
+ margin-top: auto !important;
2885
+ margin-bottom: auto !important;
2886
+ }
2887
+
2888
+ .mt-md-0 {
2889
+ margin-top: 0 !important;
2890
+ }
2891
+
2892
+ .mt-md-1 {
2893
+ margin-top: 0.25rem !important;
2894
+ }
2895
+
2896
+ .mt-md-2 {
2897
+ margin-top: 0.5rem !important;
2898
+ }
2899
+
2900
+ .mt-md-3 {
2901
+ margin-top: 1rem !important;
2902
+ }
2903
+
2904
+ .mt-md-4 {
2905
+ margin-top: 1.5rem !important;
2906
+ }
2907
+
2908
+ .mt-md-5 {
2909
+ margin-top: 3rem !important;
2910
+ }
2911
+
2912
+ .mt-md-auto {
2913
+ margin-top: auto !important;
2914
+ }
2915
+
2916
+ .me-md-0 {
2917
+ margin-right: 0 !important;
2918
+ }
2919
+
2920
+ .me-md-1 {
2921
+ margin-right: 0.25rem !important;
2922
+ }
2923
+
2924
+ .me-md-2 {
2925
+ margin-right: 0.5rem !important;
2926
+ }
2927
+
2928
+ .me-md-3 {
2929
+ margin-right: 1rem !important;
2930
+ }
2931
+
2932
+ .me-md-4 {
2933
+ margin-right: 1.5rem !important;
2934
+ }
2935
+
2936
+ .me-md-5 {
2937
+ margin-right: 3rem !important;
2938
+ }
2939
+
2940
+ .me-md-auto {
2941
+ margin-right: auto !important;
2942
+ }
2943
+
2944
+ .mb-md-0 {
2945
+ margin-bottom: 0 !important;
2946
+ }
2947
+
2948
+ .mb-md-1 {
2949
+ margin-bottom: 0.25rem !important;
2950
+ }
2951
+
2952
+ .mb-md-2 {
2953
+ margin-bottom: 0.5rem !important;
2954
+ }
2955
+
2956
+ .mb-md-3 {
2957
+ margin-bottom: 1rem !important;
2958
+ }
2959
+
2960
+ .mb-md-4 {
2961
+ margin-bottom: 1.5rem !important;
2962
+ }
2963
+
2964
+ .mb-md-5 {
2965
+ margin-bottom: 3rem !important;
2966
+ }
2967
+
2968
+ .mb-md-auto {
2969
+ margin-bottom: auto !important;
2970
+ }
2971
+
2972
+ .ms-md-0 {
2973
+ margin-left: 0 !important;
2974
+ }
2975
+
2976
+ .ms-md-1 {
2977
+ margin-left: 0.25rem !important;
2978
+ }
2979
+
2980
+ .ms-md-2 {
2981
+ margin-left: 0.5rem !important;
2982
+ }
2983
+
2984
+ .ms-md-3 {
2985
+ margin-left: 1rem !important;
2986
+ }
2987
+
2988
+ .ms-md-4 {
2989
+ margin-left: 1.5rem !important;
2990
+ }
2991
+
2992
+ .ms-md-5 {
2993
+ margin-left: 3rem !important;
2994
+ }
2995
+
2996
+ .ms-md-auto {
2997
+ margin-left: auto !important;
2998
+ }
2999
+
3000
+ .p-md-0 {
3001
+ padding: 0 !important;
3002
+ }
3003
+
3004
+ .p-md-1 {
3005
+ padding: 0.25rem !important;
3006
+ }
3007
+
3008
+ .p-md-2 {
3009
+ padding: 0.5rem !important;
3010
+ }
3011
+
3012
+ .p-md-3 {
3013
+ padding: 1rem !important;
3014
+ }
3015
+
3016
+ .p-md-4 {
3017
+ padding: 1.5rem !important;
3018
+ }
3019
+
3020
+ .p-md-5 {
3021
+ padding: 3rem !important;
3022
+ }
3023
+
3024
+ .px-md-0 {
3025
+ padding-right: 0 !important;
3026
+ padding-left: 0 !important;
3027
+ }
3028
+
3029
+ .px-md-1 {
3030
+ padding-right: 0.25rem !important;
3031
+ padding-left: 0.25rem !important;
3032
+ }
3033
+
3034
+ .px-md-2 {
3035
+ padding-right: 0.5rem !important;
3036
+ padding-left: 0.5rem !important;
3037
+ }
3038
+
3039
+ .px-md-3 {
3040
+ padding-right: 1rem !important;
3041
+ padding-left: 1rem !important;
3042
+ }
3043
+
3044
+ .px-md-4 {
3045
+ padding-right: 1.5rem !important;
3046
+ padding-left: 1.5rem !important;
3047
+ }
3048
+
3049
+ .px-md-5 {
3050
+ padding-right: 3rem !important;
3051
+ padding-left: 3rem !important;
3052
+ }
3053
+
3054
+ .py-md-0 {
3055
+ padding-top: 0 !important;
3056
+ padding-bottom: 0 !important;
3057
+ }
3058
+
3059
+ .py-md-1 {
3060
+ padding-top: 0.25rem !important;
3061
+ padding-bottom: 0.25rem !important;
3062
+ }
3063
+
3064
+ .py-md-2 {
3065
+ padding-top: 0.5rem !important;
3066
+ padding-bottom: 0.5rem !important;
3067
+ }
3068
+
3069
+ .py-md-3 {
3070
+ padding-top: 1rem !important;
3071
+ padding-bottom: 1rem !important;
3072
+ }
3073
+
3074
+ .py-md-4 {
3075
+ padding-top: 1.5rem !important;
3076
+ padding-bottom: 1.5rem !important;
3077
+ }
3078
+
3079
+ .py-md-5 {
3080
+ padding-top: 3rem !important;
3081
+ padding-bottom: 3rem !important;
3082
+ }
3083
+
3084
+ .pt-md-0 {
3085
+ padding-top: 0 !important;
3086
+ }
3087
+
3088
+ .pt-md-1 {
3089
+ padding-top: 0.25rem !important;
3090
+ }
3091
+
3092
+ .pt-md-2 {
3093
+ padding-top: 0.5rem !important;
3094
+ }
3095
+
3096
+ .pt-md-3 {
3097
+ padding-top: 1rem !important;
3098
+ }
3099
+
3100
+ .pt-md-4 {
3101
+ padding-top: 1.5rem !important;
3102
+ }
3103
+
3104
+ .pt-md-5 {
3105
+ padding-top: 3rem !important;
3106
+ }
3107
+
3108
+ .pe-md-0 {
3109
+ padding-right: 0 !important;
3110
+ }
3111
+
3112
+ .pe-md-1 {
3113
+ padding-right: 0.25rem !important;
3114
+ }
3115
+
3116
+ .pe-md-2 {
3117
+ padding-right: 0.5rem !important;
3118
+ }
3119
+
3120
+ .pe-md-3 {
3121
+ padding-right: 1rem !important;
3122
+ }
3123
+
3124
+ .pe-md-4 {
3125
+ padding-right: 1.5rem !important;
3126
+ }
3127
+
3128
+ .pe-md-5 {
3129
+ padding-right: 3rem !important;
3130
+ }
3131
+
3132
+ .pb-md-0 {
3133
+ padding-bottom: 0 !important;
3134
+ }
3135
+
3136
+ .pb-md-1 {
3137
+ padding-bottom: 0.25rem !important;
3138
+ }
3139
+
3140
+ .pb-md-2 {
3141
+ padding-bottom: 0.5rem !important;
3142
+ }
3143
+
3144
+ .pb-md-3 {
3145
+ padding-bottom: 1rem !important;
3146
+ }
3147
+
3148
+ .pb-md-4 {
3149
+ padding-bottom: 1.5rem !important;
3150
+ }
3151
+
3152
+ .pb-md-5 {
3153
+ padding-bottom: 3rem !important;
3154
+ }
3155
+
3156
+ .ps-md-0 {
3157
+ padding-left: 0 !important;
3158
+ }
3159
+
3160
+ .ps-md-1 {
3161
+ padding-left: 0.25rem !important;
3162
+ }
3163
+
3164
+ .ps-md-2 {
3165
+ padding-left: 0.5rem !important;
3166
+ }
3167
+
3168
+ .ps-md-3 {
3169
+ padding-left: 1rem !important;
3170
+ }
3171
+
3172
+ .ps-md-4 {
3173
+ padding-left: 1.5rem !important;
3174
+ }
3175
+
3176
+ .ps-md-5 {
3177
+ padding-left: 3rem !important;
3178
+ }
3179
+ }
3180
+
3181
+ @media (min-width: 992px) {
3182
+ .d-lg-inline {
3183
+ display: inline !important;
3184
+ }
3185
+
3186
+ .d-lg-inline-block {
3187
+ display: inline-block !important;
3188
+ }
3189
+
3190
+ .d-lg-block {
3191
+ display: block !important;
3192
+ }
3193
+
3194
+ .d-lg-grid {
3195
+ display: grid !important;
3196
+ }
3197
+
3198
+ .d-lg-inline-grid {
3199
+ display: inline-grid !important;
3200
+ }
3201
+
3202
+ .d-lg-table {
3203
+ display: table !important;
3204
+ }
3205
+
3206
+ .d-lg-table-row {
3207
+ display: table-row !important;
3208
+ }
3209
+
3210
+ .d-lg-table-cell {
3211
+ display: table-cell !important;
3212
+ }
3213
+
3214
+ .d-lg-flex {
3215
+ display: flex !important;
3216
+ }
3217
+
3218
+ .d-lg-inline-flex {
3219
+ display: inline-flex !important;
3220
+ }
3221
+
3222
+ .d-lg-none {
3223
+ display: none !important;
3224
+ }
3225
+
3226
+ .flex-lg-fill {
3227
+ flex: 1 1 auto !important;
3228
+ }
3229
+
3230
+ .flex-lg-row {
3231
+ flex-direction: row !important;
3232
+ }
3233
+
3234
+ .flex-lg-column {
3235
+ flex-direction: column !important;
3236
+ }
3237
+
3238
+ .flex-lg-row-reverse {
3239
+ flex-direction: row-reverse !important;
3240
+ }
3241
+
3242
+ .flex-lg-column-reverse {
3243
+ flex-direction: column-reverse !important;
3244
+ }
3245
+
3246
+ .flex-lg-grow-0 {
3247
+ flex-grow: 0 !important;
3248
+ }
3249
+
3250
+ .flex-lg-grow-1 {
3251
+ flex-grow: 1 !important;
3252
+ }
3253
+
3254
+ .flex-lg-shrink-0 {
3255
+ flex-shrink: 0 !important;
3256
+ }
3257
+
3258
+ .flex-lg-shrink-1 {
3259
+ flex-shrink: 1 !important;
3260
+ }
3261
+
3262
+ .flex-lg-wrap {
3263
+ flex-wrap: wrap !important;
3264
+ }
3265
+
3266
+ .flex-lg-nowrap {
3267
+ flex-wrap: nowrap !important;
3268
+ }
3269
+
3270
+ .flex-lg-wrap-reverse {
3271
+ flex-wrap: wrap-reverse !important;
3272
+ }
3273
+
3274
+ .justify-content-lg-start {
3275
+ justify-content: flex-start !important;
3276
+ }
3277
+
3278
+ .justify-content-lg-end {
3279
+ justify-content: flex-end !important;
3280
+ }
3281
+
3282
+ .justify-content-lg-center {
3283
+ justify-content: center !important;
3284
+ }
3285
+
3286
+ .justify-content-lg-between {
3287
+ justify-content: space-between !important;
3288
+ }
3289
+
3290
+ .justify-content-lg-around {
3291
+ justify-content: space-around !important;
3292
+ }
3293
+
3294
+ .justify-content-lg-evenly {
3295
+ justify-content: space-evenly !important;
3296
+ }
3297
+
3298
+ .align-items-lg-start {
3299
+ align-items: flex-start !important;
3300
+ }
3301
+
3302
+ .align-items-lg-end {
3303
+ align-items: flex-end !important;
3304
+ }
3305
+
3306
+ .align-items-lg-center {
3307
+ align-items: center !important;
3308
+ }
3309
+
3310
+ .align-items-lg-baseline {
3311
+ align-items: baseline !important;
3312
+ }
3313
+
3314
+ .align-items-lg-stretch {
3315
+ align-items: stretch !important;
3316
+ }
3317
+
3318
+ .align-content-lg-start {
3319
+ align-content: flex-start !important;
3320
+ }
3321
+
3322
+ .align-content-lg-end {
3323
+ align-content: flex-end !important;
3324
+ }
3325
+
3326
+ .align-content-lg-center {
3327
+ align-content: center !important;
3328
+ }
3329
+
3330
+ .align-content-lg-between {
3331
+ align-content: space-between !important;
3332
+ }
3333
+
3334
+ .align-content-lg-around {
3335
+ align-content: space-around !important;
3336
+ }
3337
+
3338
+ .align-content-lg-stretch {
3339
+ align-content: stretch !important;
3340
+ }
3341
+
3342
+ .align-self-lg-auto {
3343
+ align-self: auto !important;
3344
+ }
3345
+
3346
+ .align-self-lg-start {
3347
+ align-self: flex-start !important;
3348
+ }
3349
+
3350
+ .align-self-lg-end {
3351
+ align-self: flex-end !important;
3352
+ }
3353
+
3354
+ .align-self-lg-center {
3355
+ align-self: center !important;
3356
+ }
3357
+
3358
+ .align-self-lg-baseline {
3359
+ align-self: baseline !important;
3360
+ }
3361
+
3362
+ .align-self-lg-stretch {
3363
+ align-self: stretch !important;
3364
+ }
3365
+
3366
+ .order-lg-first {
3367
+ order: -1 !important;
3368
+ }
3369
+
3370
+ .order-lg-0 {
3371
+ order: 0 !important;
3372
+ }
3373
+
3374
+ .order-lg-1 {
3375
+ order: 1 !important;
3376
+ }
3377
+
3378
+ .order-lg-2 {
3379
+ order: 2 !important;
3380
+ }
3381
+
3382
+ .order-lg-3 {
3383
+ order: 3 !important;
3384
+ }
3385
+
3386
+ .order-lg-4 {
3387
+ order: 4 !important;
3388
+ }
3389
+
3390
+ .order-lg-5 {
3391
+ order: 5 !important;
3392
+ }
3393
+
3394
+ .order-lg-last {
3395
+ order: 6 !important;
3396
+ }
3397
+
3398
+ .m-lg-0 {
3399
+ margin: 0 !important;
3400
+ }
3401
+
3402
+ .m-lg-1 {
3403
+ margin: 0.25rem !important;
3404
+ }
3405
+
3406
+ .m-lg-2 {
3407
+ margin: 0.5rem !important;
3408
+ }
3409
+
3410
+ .m-lg-3 {
3411
+ margin: 1rem !important;
3412
+ }
3413
+
3414
+ .m-lg-4 {
3415
+ margin: 1.5rem !important;
3416
+ }
3417
+
3418
+ .m-lg-5 {
3419
+ margin: 3rem !important;
3420
+ }
3421
+
3422
+ .m-lg-auto {
3423
+ margin: auto !important;
3424
+ }
3425
+
3426
+ .mx-lg-0 {
3427
+ margin-right: 0 !important;
3428
+ margin-left: 0 !important;
3429
+ }
3430
+
3431
+ .mx-lg-1 {
3432
+ margin-right: 0.25rem !important;
3433
+ margin-left: 0.25rem !important;
3434
+ }
3435
+
3436
+ .mx-lg-2 {
3437
+ margin-right: 0.5rem !important;
3438
+ margin-left: 0.5rem !important;
3439
+ }
3440
+
3441
+ .mx-lg-3 {
3442
+ margin-right: 1rem !important;
3443
+ margin-left: 1rem !important;
3444
+ }
3445
+
3446
+ .mx-lg-4 {
3447
+ margin-right: 1.5rem !important;
3448
+ margin-left: 1.5rem !important;
3449
+ }
3450
+
3451
+ .mx-lg-5 {
3452
+ margin-right: 3rem !important;
3453
+ margin-left: 3rem !important;
3454
+ }
3455
+
3456
+ .mx-lg-auto {
3457
+ margin-right: auto !important;
3458
+ margin-left: auto !important;
3459
+ }
3460
+
3461
+ .my-lg-0 {
3462
+ margin-top: 0 !important;
3463
+ margin-bottom: 0 !important;
3464
+ }
3465
+
3466
+ .my-lg-1 {
3467
+ margin-top: 0.25rem !important;
3468
+ margin-bottom: 0.25rem !important;
3469
+ }
3470
+
3471
+ .my-lg-2 {
3472
+ margin-top: 0.5rem !important;
3473
+ margin-bottom: 0.5rem !important;
3474
+ }
3475
+
3476
+ .my-lg-3 {
3477
+ margin-top: 1rem !important;
3478
+ margin-bottom: 1rem !important;
3479
+ }
3480
+
3481
+ .my-lg-4 {
3482
+ margin-top: 1.5rem !important;
3483
+ margin-bottom: 1.5rem !important;
3484
+ }
3485
+
3486
+ .my-lg-5 {
3487
+ margin-top: 3rem !important;
3488
+ margin-bottom: 3rem !important;
3489
+ }
3490
+
3491
+ .my-lg-auto {
3492
+ margin-top: auto !important;
3493
+ margin-bottom: auto !important;
3494
+ }
3495
+
3496
+ .mt-lg-0 {
3497
+ margin-top: 0 !important;
3498
+ }
3499
+
3500
+ .mt-lg-1 {
3501
+ margin-top: 0.25rem !important;
3502
+ }
3503
+
3504
+ .mt-lg-2 {
3505
+ margin-top: 0.5rem !important;
3506
+ }
3507
+
3508
+ .mt-lg-3 {
3509
+ margin-top: 1rem !important;
3510
+ }
3511
+
3512
+ .mt-lg-4 {
3513
+ margin-top: 1.5rem !important;
3514
+ }
3515
+
3516
+ .mt-lg-5 {
3517
+ margin-top: 3rem !important;
3518
+ }
3519
+
3520
+ .mt-lg-auto {
3521
+ margin-top: auto !important;
3522
+ }
3523
+
3524
+ .me-lg-0 {
3525
+ margin-right: 0 !important;
3526
+ }
3527
+
3528
+ .me-lg-1 {
3529
+ margin-right: 0.25rem !important;
3530
+ }
3531
+
3532
+ .me-lg-2 {
3533
+ margin-right: 0.5rem !important;
3534
+ }
3535
+
3536
+ .me-lg-3 {
3537
+ margin-right: 1rem !important;
3538
+ }
3539
+
3540
+ .me-lg-4 {
3541
+ margin-right: 1.5rem !important;
3542
+ }
3543
+
3544
+ .me-lg-5 {
3545
+ margin-right: 3rem !important;
3546
+ }
3547
+
3548
+ .me-lg-auto {
3549
+ margin-right: auto !important;
3550
+ }
3551
+
3552
+ .mb-lg-0 {
3553
+ margin-bottom: 0 !important;
3554
+ }
3555
+
3556
+ .mb-lg-1 {
3557
+ margin-bottom: 0.25rem !important;
3558
+ }
3559
+
3560
+ .mb-lg-2 {
3561
+ margin-bottom: 0.5rem !important;
3562
+ }
3563
+
3564
+ .mb-lg-3 {
3565
+ margin-bottom: 1rem !important;
3566
+ }
3567
+
3568
+ .mb-lg-4 {
3569
+ margin-bottom: 1.5rem !important;
3570
+ }
3571
+
3572
+ .mb-lg-5 {
3573
+ margin-bottom: 3rem !important;
3574
+ }
3575
+
3576
+ .mb-lg-auto {
3577
+ margin-bottom: auto !important;
3578
+ }
3579
+
3580
+ .ms-lg-0 {
3581
+ margin-left: 0 !important;
3582
+ }
3583
+
3584
+ .ms-lg-1 {
3585
+ margin-left: 0.25rem !important;
3586
+ }
3587
+
3588
+ .ms-lg-2 {
3589
+ margin-left: 0.5rem !important;
3590
+ }
3591
+
3592
+ .ms-lg-3 {
3593
+ margin-left: 1rem !important;
3594
+ }
3595
+
3596
+ .ms-lg-4 {
3597
+ margin-left: 1.5rem !important;
3598
+ }
3599
+
3600
+ .ms-lg-5 {
3601
+ margin-left: 3rem !important;
3602
+ }
3603
+
3604
+ .ms-lg-auto {
3605
+ margin-left: auto !important;
3606
+ }
3607
+
3608
+ .p-lg-0 {
3609
+ padding: 0 !important;
3610
+ }
3611
+
3612
+ .p-lg-1 {
3613
+ padding: 0.25rem !important;
3614
+ }
3615
+
3616
+ .p-lg-2 {
3617
+ padding: 0.5rem !important;
3618
+ }
3619
+
3620
+ .p-lg-3 {
3621
+ padding: 1rem !important;
3622
+ }
3623
+
3624
+ .p-lg-4 {
3625
+ padding: 1.5rem !important;
3626
+ }
3627
+
3628
+ .p-lg-5 {
3629
+ padding: 3rem !important;
3630
+ }
3631
+
3632
+ .px-lg-0 {
3633
+ padding-right: 0 !important;
3634
+ padding-left: 0 !important;
3635
+ }
3636
+
3637
+ .px-lg-1 {
3638
+ padding-right: 0.25rem !important;
3639
+ padding-left: 0.25rem !important;
3640
+ }
3641
+
3642
+ .px-lg-2 {
3643
+ padding-right: 0.5rem !important;
3644
+ padding-left: 0.5rem !important;
3645
+ }
3646
+
3647
+ .px-lg-3 {
3648
+ padding-right: 1rem !important;
3649
+ padding-left: 1rem !important;
3650
+ }
3651
+
3652
+ .px-lg-4 {
3653
+ padding-right: 1.5rem !important;
3654
+ padding-left: 1.5rem !important;
3655
+ }
3656
+
3657
+ .px-lg-5 {
3658
+ padding-right: 3rem !important;
3659
+ padding-left: 3rem !important;
3660
+ }
3661
+
3662
+ .py-lg-0 {
3663
+ padding-top: 0 !important;
3664
+ padding-bottom: 0 !important;
3665
+ }
3666
+
3667
+ .py-lg-1 {
3668
+ padding-top: 0.25rem !important;
3669
+ padding-bottom: 0.25rem !important;
3670
+ }
3671
+
3672
+ .py-lg-2 {
3673
+ padding-top: 0.5rem !important;
3674
+ padding-bottom: 0.5rem !important;
3675
+ }
3676
+
3677
+ .py-lg-3 {
3678
+ padding-top: 1rem !important;
3679
+ padding-bottom: 1rem !important;
3680
+ }
3681
+
3682
+ .py-lg-4 {
3683
+ padding-top: 1.5rem !important;
3684
+ padding-bottom: 1.5rem !important;
3685
+ }
3686
+
3687
+ .py-lg-5 {
3688
+ padding-top: 3rem !important;
3689
+ padding-bottom: 3rem !important;
3690
+ }
3691
+
3692
+ .pt-lg-0 {
3693
+ padding-top: 0 !important;
3694
+ }
3695
+
3696
+ .pt-lg-1 {
3697
+ padding-top: 0.25rem !important;
3698
+ }
3699
+
3700
+ .pt-lg-2 {
3701
+ padding-top: 0.5rem !important;
3702
+ }
3703
+
3704
+ .pt-lg-3 {
3705
+ padding-top: 1rem !important;
3706
+ }
3707
+
3708
+ .pt-lg-4 {
3709
+ padding-top: 1.5rem !important;
3710
+ }
3711
+
3712
+ .pt-lg-5 {
3713
+ padding-top: 3rem !important;
3714
+ }
3715
+
3716
+ .pe-lg-0 {
3717
+ padding-right: 0 !important;
3718
+ }
3719
+
3720
+ .pe-lg-1 {
3721
+ padding-right: 0.25rem !important;
3722
+ }
3723
+
3724
+ .pe-lg-2 {
3725
+ padding-right: 0.5rem !important;
3726
+ }
3727
+
3728
+ .pe-lg-3 {
3729
+ padding-right: 1rem !important;
3730
+ }
3731
+
3732
+ .pe-lg-4 {
3733
+ padding-right: 1.5rem !important;
3734
+ }
3735
+
3736
+ .pe-lg-5 {
3737
+ padding-right: 3rem !important;
3738
+ }
3739
+
3740
+ .pb-lg-0 {
3741
+ padding-bottom: 0 !important;
3742
+ }
3743
+
3744
+ .pb-lg-1 {
3745
+ padding-bottom: 0.25rem !important;
3746
+ }
3747
+
3748
+ .pb-lg-2 {
3749
+ padding-bottom: 0.5rem !important;
3750
+ }
3751
+
3752
+ .pb-lg-3 {
3753
+ padding-bottom: 1rem !important;
3754
+ }
3755
+
3756
+ .pb-lg-4 {
3757
+ padding-bottom: 1.5rem !important;
3758
+ }
3759
+
3760
+ .pb-lg-5 {
3761
+ padding-bottom: 3rem !important;
3762
+ }
3763
+
3764
+ .ps-lg-0 {
3765
+ padding-left: 0 !important;
3766
+ }
3767
+
3768
+ .ps-lg-1 {
3769
+ padding-left: 0.25rem !important;
3770
+ }
3771
+
3772
+ .ps-lg-2 {
3773
+ padding-left: 0.5rem !important;
3774
+ }
3775
+
3776
+ .ps-lg-3 {
3777
+ padding-left: 1rem !important;
3778
+ }
3779
+
3780
+ .ps-lg-4 {
3781
+ padding-left: 1.5rem !important;
3782
+ }
3783
+
3784
+ .ps-lg-5 {
3785
+ padding-left: 3rem !important;
3786
+ }
3787
+ }
3788
+
3789
+ @media (min-width: 1200px) {
3790
+ .d-xl-inline {
3791
+ display: inline !important;
3792
+ }
3793
+
3794
+ .d-xl-inline-block {
3795
+ display: inline-block !important;
3796
+ }
3797
+
3798
+ .d-xl-block {
3799
+ display: block !important;
3800
+ }
3801
+
3802
+ .d-xl-grid {
3803
+ display: grid !important;
3804
+ }
3805
+
3806
+ .d-xl-inline-grid {
3807
+ display: inline-grid !important;
3808
+ }
3809
+
3810
+ .d-xl-table {
3811
+ display: table !important;
3812
+ }
3813
+
3814
+ .d-xl-table-row {
3815
+ display: table-row !important;
3816
+ }
3817
+
3818
+ .d-xl-table-cell {
3819
+ display: table-cell !important;
3820
+ }
3821
+
3822
+ .d-xl-flex {
3823
+ display: flex !important;
3824
+ }
3825
+
3826
+ .d-xl-inline-flex {
3827
+ display: inline-flex !important;
3828
+ }
3829
+
3830
+ .d-xl-none {
3831
+ display: none !important;
3832
+ }
3833
+
3834
+ .flex-xl-fill {
3835
+ flex: 1 1 auto !important;
3836
+ }
3837
+
3838
+ .flex-xl-row {
3839
+ flex-direction: row !important;
3840
+ }
3841
+
3842
+ .flex-xl-column {
3843
+ flex-direction: column !important;
3844
+ }
3845
+
3846
+ .flex-xl-row-reverse {
3847
+ flex-direction: row-reverse !important;
3848
+ }
3849
+
3850
+ .flex-xl-column-reverse {
3851
+ flex-direction: column-reverse !important;
3852
+ }
3853
+
3854
+ .flex-xl-grow-0 {
3855
+ flex-grow: 0 !important;
3856
+ }
3857
+
3858
+ .flex-xl-grow-1 {
3859
+ flex-grow: 1 !important;
3860
+ }
3861
+
3862
+ .flex-xl-shrink-0 {
3863
+ flex-shrink: 0 !important;
3864
+ }
3865
+
3866
+ .flex-xl-shrink-1 {
3867
+ flex-shrink: 1 !important;
3868
+ }
3869
+
3870
+ .flex-xl-wrap {
3871
+ flex-wrap: wrap !important;
3872
+ }
3873
+
3874
+ .flex-xl-nowrap {
3875
+ flex-wrap: nowrap !important;
3876
+ }
3877
+
3878
+ .flex-xl-wrap-reverse {
3879
+ flex-wrap: wrap-reverse !important;
3880
+ }
3881
+
3882
+ .justify-content-xl-start {
3883
+ justify-content: flex-start !important;
3884
+ }
3885
+
3886
+ .justify-content-xl-end {
3887
+ justify-content: flex-end !important;
3888
+ }
3889
+
3890
+ .justify-content-xl-center {
3891
+ justify-content: center !important;
3892
+ }
3893
+
3894
+ .justify-content-xl-between {
3895
+ justify-content: space-between !important;
3896
+ }
3897
+
3898
+ .justify-content-xl-around {
3899
+ justify-content: space-around !important;
3900
+ }
3901
+
3902
+ .justify-content-xl-evenly {
3903
+ justify-content: space-evenly !important;
3904
+ }
3905
+
3906
+ .align-items-xl-start {
3907
+ align-items: flex-start !important;
3908
+ }
3909
+
3910
+ .align-items-xl-end {
3911
+ align-items: flex-end !important;
3912
+ }
3913
+
3914
+ .align-items-xl-center {
3915
+ align-items: center !important;
3916
+ }
3917
+
3918
+ .align-items-xl-baseline {
3919
+ align-items: baseline !important;
3920
+ }
3921
+
3922
+ .align-items-xl-stretch {
3923
+ align-items: stretch !important;
3924
+ }
3925
+
3926
+ .align-content-xl-start {
3927
+ align-content: flex-start !important;
3928
+ }
3929
+
3930
+ .align-content-xl-end {
3931
+ align-content: flex-end !important;
3932
+ }
3933
+
3934
+ .align-content-xl-center {
3935
+ align-content: center !important;
3936
+ }
3937
+
3938
+ .align-content-xl-between {
3939
+ align-content: space-between !important;
3940
+ }
3941
+
3942
+ .align-content-xl-around {
3943
+ align-content: space-around !important;
3944
+ }
3945
+
3946
+ .align-content-xl-stretch {
3947
+ align-content: stretch !important;
3948
+ }
3949
+
3950
+ .align-self-xl-auto {
3951
+ align-self: auto !important;
3952
+ }
3953
+
3954
+ .align-self-xl-start {
3955
+ align-self: flex-start !important;
3956
+ }
3957
+
3958
+ .align-self-xl-end {
3959
+ align-self: flex-end !important;
3960
+ }
3961
+
3962
+ .align-self-xl-center {
3963
+ align-self: center !important;
3964
+ }
3965
+
3966
+ .align-self-xl-baseline {
3967
+ align-self: baseline !important;
3968
+ }
3969
+
3970
+ .align-self-xl-stretch {
3971
+ align-self: stretch !important;
3972
+ }
3973
+
3974
+ .order-xl-first {
3975
+ order: -1 !important;
3976
+ }
3977
+
3978
+ .order-xl-0 {
3979
+ order: 0 !important;
3980
+ }
3981
+
3982
+ .order-xl-1 {
3983
+ order: 1 !important;
3984
+ }
3985
+
3986
+ .order-xl-2 {
3987
+ order: 2 !important;
3988
+ }
3989
+
3990
+ .order-xl-3 {
3991
+ order: 3 !important;
3992
+ }
3993
+
3994
+ .order-xl-4 {
3995
+ order: 4 !important;
3996
+ }
3997
+
3998
+ .order-xl-5 {
3999
+ order: 5 !important;
4000
+ }
4001
+
4002
+ .order-xl-last {
4003
+ order: 6 !important;
4004
+ }
4005
+
4006
+ .m-xl-0 {
4007
+ margin: 0 !important;
4008
+ }
4009
+
4010
+ .m-xl-1 {
4011
+ margin: 0.25rem !important;
4012
+ }
4013
+
4014
+ .m-xl-2 {
4015
+ margin: 0.5rem !important;
4016
+ }
4017
+
4018
+ .m-xl-3 {
4019
+ margin: 1rem !important;
4020
+ }
4021
+
4022
+ .m-xl-4 {
4023
+ margin: 1.5rem !important;
4024
+ }
4025
+
4026
+ .m-xl-5 {
4027
+ margin: 3rem !important;
4028
+ }
4029
+
4030
+ .m-xl-auto {
4031
+ margin: auto !important;
4032
+ }
4033
+
4034
+ .mx-xl-0 {
4035
+ margin-right: 0 !important;
4036
+ margin-left: 0 !important;
4037
+ }
4038
+
4039
+ .mx-xl-1 {
4040
+ margin-right: 0.25rem !important;
4041
+ margin-left: 0.25rem !important;
4042
+ }
4043
+
4044
+ .mx-xl-2 {
4045
+ margin-right: 0.5rem !important;
4046
+ margin-left: 0.5rem !important;
4047
+ }
4048
+
4049
+ .mx-xl-3 {
4050
+ margin-right: 1rem !important;
4051
+ margin-left: 1rem !important;
4052
+ }
4053
+
4054
+ .mx-xl-4 {
4055
+ margin-right: 1.5rem !important;
4056
+ margin-left: 1.5rem !important;
4057
+ }
4058
+
4059
+ .mx-xl-5 {
4060
+ margin-right: 3rem !important;
4061
+ margin-left: 3rem !important;
4062
+ }
4063
+
4064
+ .mx-xl-auto {
4065
+ margin-right: auto !important;
4066
+ margin-left: auto !important;
4067
+ }
4068
+
4069
+ .my-xl-0 {
4070
+ margin-top: 0 !important;
4071
+ margin-bottom: 0 !important;
4072
+ }
4073
+
4074
+ .my-xl-1 {
4075
+ margin-top: 0.25rem !important;
4076
+ margin-bottom: 0.25rem !important;
4077
+ }
4078
+
4079
+ .my-xl-2 {
4080
+ margin-top: 0.5rem !important;
4081
+ margin-bottom: 0.5rem !important;
4082
+ }
4083
+
4084
+ .my-xl-3 {
4085
+ margin-top: 1rem !important;
4086
+ margin-bottom: 1rem !important;
4087
+ }
4088
+
4089
+ .my-xl-4 {
4090
+ margin-top: 1.5rem !important;
4091
+ margin-bottom: 1.5rem !important;
4092
+ }
4093
+
4094
+ .my-xl-5 {
4095
+ margin-top: 3rem !important;
4096
+ margin-bottom: 3rem !important;
4097
+ }
4098
+
4099
+ .my-xl-auto {
4100
+ margin-top: auto !important;
4101
+ margin-bottom: auto !important;
4102
+ }
4103
+
4104
+ .mt-xl-0 {
4105
+ margin-top: 0 !important;
4106
+ }
4107
+
4108
+ .mt-xl-1 {
4109
+ margin-top: 0.25rem !important;
4110
+ }
4111
+
4112
+ .mt-xl-2 {
4113
+ margin-top: 0.5rem !important;
4114
+ }
4115
+
4116
+ .mt-xl-3 {
4117
+ margin-top: 1rem !important;
4118
+ }
4119
+
4120
+ .mt-xl-4 {
4121
+ margin-top: 1.5rem !important;
4122
+ }
4123
+
4124
+ .mt-xl-5 {
4125
+ margin-top: 3rem !important;
4126
+ }
4127
+
4128
+ .mt-xl-auto {
4129
+ margin-top: auto !important;
4130
+ }
4131
+
4132
+ .me-xl-0 {
4133
+ margin-right: 0 !important;
4134
+ }
4135
+
4136
+ .me-xl-1 {
4137
+ margin-right: 0.25rem !important;
4138
+ }
4139
+
4140
+ .me-xl-2 {
4141
+ margin-right: 0.5rem !important;
4142
+ }
4143
+
4144
+ .me-xl-3 {
4145
+ margin-right: 1rem !important;
4146
+ }
4147
+
4148
+ .me-xl-4 {
4149
+ margin-right: 1.5rem !important;
4150
+ }
4151
+
4152
+ .me-xl-5 {
4153
+ margin-right: 3rem !important;
4154
+ }
4155
+
4156
+ .me-xl-auto {
4157
+ margin-right: auto !important;
4158
+ }
4159
+
4160
+ .mb-xl-0 {
4161
+ margin-bottom: 0 !important;
4162
+ }
4163
+
4164
+ .mb-xl-1 {
4165
+ margin-bottom: 0.25rem !important;
4166
+ }
4167
+
4168
+ .mb-xl-2 {
4169
+ margin-bottom: 0.5rem !important;
4170
+ }
4171
+
4172
+ .mb-xl-3 {
4173
+ margin-bottom: 1rem !important;
4174
+ }
4175
+
4176
+ .mb-xl-4 {
4177
+ margin-bottom: 1.5rem !important;
4178
+ }
4179
+
4180
+ .mb-xl-5 {
4181
+ margin-bottom: 3rem !important;
4182
+ }
4183
+
4184
+ .mb-xl-auto {
4185
+ margin-bottom: auto !important;
4186
+ }
4187
+
4188
+ .ms-xl-0 {
4189
+ margin-left: 0 !important;
4190
+ }
4191
+
4192
+ .ms-xl-1 {
4193
+ margin-left: 0.25rem !important;
4194
+ }
4195
+
4196
+ .ms-xl-2 {
4197
+ margin-left: 0.5rem !important;
4198
+ }
4199
+
4200
+ .ms-xl-3 {
4201
+ margin-left: 1rem !important;
4202
+ }
4203
+
4204
+ .ms-xl-4 {
4205
+ margin-left: 1.5rem !important;
4206
+ }
4207
+
4208
+ .ms-xl-5 {
4209
+ margin-left: 3rem !important;
4210
+ }
4211
+
4212
+ .ms-xl-auto {
4213
+ margin-left: auto !important;
4214
+ }
4215
+
4216
+ .p-xl-0 {
4217
+ padding: 0 !important;
4218
+ }
4219
+
4220
+ .p-xl-1 {
4221
+ padding: 0.25rem !important;
4222
+ }
4223
+
4224
+ .p-xl-2 {
4225
+ padding: 0.5rem !important;
4226
+ }
4227
+
4228
+ .p-xl-3 {
4229
+ padding: 1rem !important;
4230
+ }
4231
+
4232
+ .p-xl-4 {
4233
+ padding: 1.5rem !important;
4234
+ }
4235
+
4236
+ .p-xl-5 {
4237
+ padding: 3rem !important;
4238
+ }
4239
+
4240
+ .px-xl-0 {
4241
+ padding-right: 0 !important;
4242
+ padding-left: 0 !important;
4243
+ }
4244
+
4245
+ .px-xl-1 {
4246
+ padding-right: 0.25rem !important;
4247
+ padding-left: 0.25rem !important;
4248
+ }
4249
+
4250
+ .px-xl-2 {
4251
+ padding-right: 0.5rem !important;
4252
+ padding-left: 0.5rem !important;
4253
+ }
4254
+
4255
+ .px-xl-3 {
4256
+ padding-right: 1rem !important;
4257
+ padding-left: 1rem !important;
4258
+ }
4259
+
4260
+ .px-xl-4 {
4261
+ padding-right: 1.5rem !important;
4262
+ padding-left: 1.5rem !important;
4263
+ }
4264
+
4265
+ .px-xl-5 {
4266
+ padding-right: 3rem !important;
4267
+ padding-left: 3rem !important;
4268
+ }
4269
+
4270
+ .py-xl-0 {
4271
+ padding-top: 0 !important;
4272
+ padding-bottom: 0 !important;
4273
+ }
4274
+
4275
+ .py-xl-1 {
4276
+ padding-top: 0.25rem !important;
4277
+ padding-bottom: 0.25rem !important;
4278
+ }
4279
+
4280
+ .py-xl-2 {
4281
+ padding-top: 0.5rem !important;
4282
+ padding-bottom: 0.5rem !important;
4283
+ }
4284
+
4285
+ .py-xl-3 {
4286
+ padding-top: 1rem !important;
4287
+ padding-bottom: 1rem !important;
4288
+ }
4289
+
4290
+ .py-xl-4 {
4291
+ padding-top: 1.5rem !important;
4292
+ padding-bottom: 1.5rem !important;
4293
+ }
4294
+
4295
+ .py-xl-5 {
4296
+ padding-top: 3rem !important;
4297
+ padding-bottom: 3rem !important;
4298
+ }
4299
+
4300
+ .pt-xl-0 {
4301
+ padding-top: 0 !important;
4302
+ }
4303
+
4304
+ .pt-xl-1 {
4305
+ padding-top: 0.25rem !important;
4306
+ }
4307
+
4308
+ .pt-xl-2 {
4309
+ padding-top: 0.5rem !important;
4310
+ }
4311
+
4312
+ .pt-xl-3 {
4313
+ padding-top: 1rem !important;
4314
+ }
4315
+
4316
+ .pt-xl-4 {
4317
+ padding-top: 1.5rem !important;
4318
+ }
4319
+
4320
+ .pt-xl-5 {
4321
+ padding-top: 3rem !important;
4322
+ }
4323
+
4324
+ .pe-xl-0 {
4325
+ padding-right: 0 !important;
4326
+ }
4327
+
4328
+ .pe-xl-1 {
4329
+ padding-right: 0.25rem !important;
4330
+ }
4331
+
4332
+ .pe-xl-2 {
4333
+ padding-right: 0.5rem !important;
4334
+ }
4335
+
4336
+ .pe-xl-3 {
4337
+ padding-right: 1rem !important;
4338
+ }
4339
+
4340
+ .pe-xl-4 {
4341
+ padding-right: 1.5rem !important;
4342
+ }
4343
+
4344
+ .pe-xl-5 {
4345
+ padding-right: 3rem !important;
4346
+ }
4347
+
4348
+ .pb-xl-0 {
4349
+ padding-bottom: 0 !important;
4350
+ }
4351
+
4352
+ .pb-xl-1 {
4353
+ padding-bottom: 0.25rem !important;
4354
+ }
4355
+
4356
+ .pb-xl-2 {
4357
+ padding-bottom: 0.5rem !important;
4358
+ }
4359
+
4360
+ .pb-xl-3 {
4361
+ padding-bottom: 1rem !important;
4362
+ }
4363
+
4364
+ .pb-xl-4 {
4365
+ padding-bottom: 1.5rem !important;
4366
+ }
4367
+
4368
+ .pb-xl-5 {
4369
+ padding-bottom: 3rem !important;
4370
+ }
4371
+
4372
+ .ps-xl-0 {
4373
+ padding-left: 0 !important;
4374
+ }
4375
+
4376
+ .ps-xl-1 {
4377
+ padding-left: 0.25rem !important;
4378
+ }
4379
+
4380
+ .ps-xl-2 {
4381
+ padding-left: 0.5rem !important;
4382
+ }
4383
+
4384
+ .ps-xl-3 {
4385
+ padding-left: 1rem !important;
4386
+ }
4387
+
4388
+ .ps-xl-4 {
4389
+ padding-left: 1.5rem !important;
4390
+ }
4391
+
4392
+ .ps-xl-5 {
4393
+ padding-left: 3rem !important;
4394
+ }
4395
+ }
4396
+
4397
+ @media (min-width: 1400px) {
4398
+ .d-xxl-inline {
4399
+ display: inline !important;
4400
+ }
4401
+
4402
+ .d-xxl-inline-block {
4403
+ display: inline-block !important;
4404
+ }
4405
+
4406
+ .d-xxl-block {
4407
+ display: block !important;
4408
+ }
4409
+
4410
+ .d-xxl-grid {
4411
+ display: grid !important;
4412
+ }
4413
+
4414
+ .d-xxl-inline-grid {
4415
+ display: inline-grid !important;
4416
+ }
4417
+
4418
+ .d-xxl-table {
4419
+ display: table !important;
4420
+ }
4421
+
4422
+ .d-xxl-table-row {
4423
+ display: table-row !important;
4424
+ }
4425
+
4426
+ .d-xxl-table-cell {
4427
+ display: table-cell !important;
4428
+ }
4429
+
4430
+ .d-xxl-flex {
4431
+ display: flex !important;
4432
+ }
4433
+
4434
+ .d-xxl-inline-flex {
4435
+ display: inline-flex !important;
4436
+ }
4437
+
4438
+ .d-xxl-none {
4439
+ display: none !important;
4440
+ }
4441
+
4442
+ .flex-xxl-fill {
4443
+ flex: 1 1 auto !important;
4444
+ }
4445
+
4446
+ .flex-xxl-row {
4447
+ flex-direction: row !important;
4448
+ }
4449
+
4450
+ .flex-xxl-column {
4451
+ flex-direction: column !important;
4452
+ }
4453
+
4454
+ .flex-xxl-row-reverse {
4455
+ flex-direction: row-reverse !important;
4456
+ }
4457
+
4458
+ .flex-xxl-column-reverse {
4459
+ flex-direction: column-reverse !important;
4460
+ }
4461
+
4462
+ .flex-xxl-grow-0 {
4463
+ flex-grow: 0 !important;
4464
+ }
4465
+
4466
+ .flex-xxl-grow-1 {
4467
+ flex-grow: 1 !important;
4468
+ }
4469
+
4470
+ .flex-xxl-shrink-0 {
4471
+ flex-shrink: 0 !important;
4472
+ }
4473
+
4474
+ .flex-xxl-shrink-1 {
4475
+ flex-shrink: 1 !important;
4476
+ }
4477
+
4478
+ .flex-xxl-wrap {
4479
+ flex-wrap: wrap !important;
4480
+ }
4481
+
4482
+ .flex-xxl-nowrap {
4483
+ flex-wrap: nowrap !important;
4484
+ }
4485
+
4486
+ .flex-xxl-wrap-reverse {
4487
+ flex-wrap: wrap-reverse !important;
4488
+ }
4489
+
4490
+ .justify-content-xxl-start {
4491
+ justify-content: flex-start !important;
4492
+ }
4493
+
4494
+ .justify-content-xxl-end {
4495
+ justify-content: flex-end !important;
4496
+ }
4497
+
4498
+ .justify-content-xxl-center {
4499
+ justify-content: center !important;
4500
+ }
4501
+
4502
+ .justify-content-xxl-between {
4503
+ justify-content: space-between !important;
4504
+ }
4505
+
4506
+ .justify-content-xxl-around {
4507
+ justify-content: space-around !important;
4508
+ }
4509
+
4510
+ .justify-content-xxl-evenly {
4511
+ justify-content: space-evenly !important;
4512
+ }
4513
+
4514
+ .align-items-xxl-start {
4515
+ align-items: flex-start !important;
4516
+ }
4517
+
4518
+ .align-items-xxl-end {
4519
+ align-items: flex-end !important;
4520
+ }
4521
+
4522
+ .align-items-xxl-center {
4523
+ align-items: center !important;
4524
+ }
4525
+
4526
+ .align-items-xxl-baseline {
4527
+ align-items: baseline !important;
4528
+ }
4529
+
4530
+ .align-items-xxl-stretch {
4531
+ align-items: stretch !important;
4532
+ }
4533
+
4534
+ .align-content-xxl-start {
4535
+ align-content: flex-start !important;
4536
+ }
4537
+
4538
+ .align-content-xxl-end {
4539
+ align-content: flex-end !important;
4540
+ }
4541
+
4542
+ .align-content-xxl-center {
4543
+ align-content: center !important;
4544
+ }
4545
+
4546
+ .align-content-xxl-between {
4547
+ align-content: space-between !important;
4548
+ }
4549
+
4550
+ .align-content-xxl-around {
4551
+ align-content: space-around !important;
4552
+ }
4553
+
4554
+ .align-content-xxl-stretch {
4555
+ align-content: stretch !important;
4556
+ }
4557
+
4558
+ .align-self-xxl-auto {
4559
+ align-self: auto !important;
4560
+ }
4561
+
4562
+ .align-self-xxl-start {
4563
+ align-self: flex-start !important;
4564
+ }
4565
+
4566
+ .align-self-xxl-end {
4567
+ align-self: flex-end !important;
4568
+ }
4569
+
4570
+ .align-self-xxl-center {
4571
+ align-self: center !important;
4572
+ }
4573
+
4574
+ .align-self-xxl-baseline {
4575
+ align-self: baseline !important;
4576
+ }
4577
+
4578
+ .align-self-xxl-stretch {
4579
+ align-self: stretch !important;
4580
+ }
4581
+
4582
+ .order-xxl-first {
4583
+ order: -1 !important;
4584
+ }
4585
+
4586
+ .order-xxl-0 {
4587
+ order: 0 !important;
4588
+ }
4589
+
4590
+ .order-xxl-1 {
4591
+ order: 1 !important;
4592
+ }
4593
+
4594
+ .order-xxl-2 {
4595
+ order: 2 !important;
4596
+ }
4597
+
4598
+ .order-xxl-3 {
4599
+ order: 3 !important;
4600
+ }
4601
+
4602
+ .order-xxl-4 {
4603
+ order: 4 !important;
4604
+ }
4605
+
4606
+ .order-xxl-5 {
4607
+ order: 5 !important;
4608
+ }
4609
+
4610
+ .order-xxl-last {
4611
+ order: 6 !important;
4612
+ }
4613
+
4614
+ .m-xxl-0 {
4615
+ margin: 0 !important;
4616
+ }
4617
+
4618
+ .m-xxl-1 {
4619
+ margin: 0.25rem !important;
4620
+ }
4621
+
4622
+ .m-xxl-2 {
4623
+ margin: 0.5rem !important;
4624
+ }
4625
+
4626
+ .m-xxl-3 {
4627
+ margin: 1rem !important;
4628
+ }
4629
+
4630
+ .m-xxl-4 {
4631
+ margin: 1.5rem !important;
4632
+ }
4633
+
4634
+ .m-xxl-5 {
4635
+ margin: 3rem !important;
4636
+ }
4637
+
4638
+ .m-xxl-auto {
4639
+ margin: auto !important;
4640
+ }
4641
+
4642
+ .mx-xxl-0 {
4643
+ margin-right: 0 !important;
4644
+ margin-left: 0 !important;
4645
+ }
4646
+
4647
+ .mx-xxl-1 {
4648
+ margin-right: 0.25rem !important;
4649
+ margin-left: 0.25rem !important;
4650
+ }
4651
+
4652
+ .mx-xxl-2 {
4653
+ margin-right: 0.5rem !important;
4654
+ margin-left: 0.5rem !important;
4655
+ }
4656
+
4657
+ .mx-xxl-3 {
4658
+ margin-right: 1rem !important;
4659
+ margin-left: 1rem !important;
4660
+ }
4661
+
4662
+ .mx-xxl-4 {
4663
+ margin-right: 1.5rem !important;
4664
+ margin-left: 1.5rem !important;
4665
+ }
4666
+
4667
+ .mx-xxl-5 {
4668
+ margin-right: 3rem !important;
4669
+ margin-left: 3rem !important;
4670
+ }
4671
+
4672
+ .mx-xxl-auto {
4673
+ margin-right: auto !important;
4674
+ margin-left: auto !important;
4675
+ }
4676
+
4677
+ .my-xxl-0 {
4678
+ margin-top: 0 !important;
4679
+ margin-bottom: 0 !important;
4680
+ }
4681
+
4682
+ .my-xxl-1 {
4683
+ margin-top: 0.25rem !important;
4684
+ margin-bottom: 0.25rem !important;
4685
+ }
4686
+
4687
+ .my-xxl-2 {
4688
+ margin-top: 0.5rem !important;
4689
+ margin-bottom: 0.5rem !important;
4690
+ }
4691
+
4692
+ .my-xxl-3 {
4693
+ margin-top: 1rem !important;
4694
+ margin-bottom: 1rem !important;
4695
+ }
4696
+
4697
+ .my-xxl-4 {
4698
+ margin-top: 1.5rem !important;
4699
+ margin-bottom: 1.5rem !important;
4700
+ }
4701
+
4702
+ .my-xxl-5 {
4703
+ margin-top: 3rem !important;
4704
+ margin-bottom: 3rem !important;
4705
+ }
4706
+
4707
+ .my-xxl-auto {
4708
+ margin-top: auto !important;
4709
+ margin-bottom: auto !important;
4710
+ }
4711
+
4712
+ .mt-xxl-0 {
4713
+ margin-top: 0 !important;
4714
+ }
4715
+
4716
+ .mt-xxl-1 {
4717
+ margin-top: 0.25rem !important;
4718
+ }
4719
+
4720
+ .mt-xxl-2 {
4721
+ margin-top: 0.5rem !important;
4722
+ }
4723
+
4724
+ .mt-xxl-3 {
4725
+ margin-top: 1rem !important;
4726
+ }
4727
+
4728
+ .mt-xxl-4 {
4729
+ margin-top: 1.5rem !important;
4730
+ }
4731
+
4732
+ .mt-xxl-5 {
4733
+ margin-top: 3rem !important;
4734
+ }
4735
+
4736
+ .mt-xxl-auto {
4737
+ margin-top: auto !important;
4738
+ }
4739
+
4740
+ .me-xxl-0 {
4741
+ margin-right: 0 !important;
4742
+ }
4743
+
4744
+ .me-xxl-1 {
4745
+ margin-right: 0.25rem !important;
4746
+ }
4747
+
4748
+ .me-xxl-2 {
4749
+ margin-right: 0.5rem !important;
4750
+ }
4751
+
4752
+ .me-xxl-3 {
4753
+ margin-right: 1rem !important;
4754
+ }
4755
+
4756
+ .me-xxl-4 {
4757
+ margin-right: 1.5rem !important;
4758
+ }
4759
+
4760
+ .me-xxl-5 {
4761
+ margin-right: 3rem !important;
4762
+ }
4763
+
4764
+ .me-xxl-auto {
4765
+ margin-right: auto !important;
4766
+ }
4767
+
4768
+ .mb-xxl-0 {
4769
+ margin-bottom: 0 !important;
4770
+ }
4771
+
4772
+ .mb-xxl-1 {
4773
+ margin-bottom: 0.25rem !important;
4774
+ }
4775
+
4776
+ .mb-xxl-2 {
4777
+ margin-bottom: 0.5rem !important;
4778
+ }
4779
+
4780
+ .mb-xxl-3 {
4781
+ margin-bottom: 1rem !important;
4782
+ }
4783
+
4784
+ .mb-xxl-4 {
4785
+ margin-bottom: 1.5rem !important;
4786
+ }
4787
+
4788
+ .mb-xxl-5 {
4789
+ margin-bottom: 3rem !important;
4790
+ }
4791
+
4792
+ .mb-xxl-auto {
4793
+ margin-bottom: auto !important;
4794
+ }
4795
+
4796
+ .ms-xxl-0 {
4797
+ margin-left: 0 !important;
4798
+ }
4799
+
4800
+ .ms-xxl-1 {
4801
+ margin-left: 0.25rem !important;
4802
+ }
4803
+
4804
+ .ms-xxl-2 {
4805
+ margin-left: 0.5rem !important;
4806
+ }
4807
+
4808
+ .ms-xxl-3 {
4809
+ margin-left: 1rem !important;
4810
+ }
4811
+
4812
+ .ms-xxl-4 {
4813
+ margin-left: 1.5rem !important;
4814
+ }
4815
+
4816
+ .ms-xxl-5 {
4817
+ margin-left: 3rem !important;
4818
+ }
4819
+
4820
+ .ms-xxl-auto {
4821
+ margin-left: auto !important;
4822
+ }
4823
+
4824
+ .p-xxl-0 {
4825
+ padding: 0 !important;
4826
+ }
4827
+
4828
+ .p-xxl-1 {
4829
+ padding: 0.25rem !important;
4830
+ }
4831
+
4832
+ .p-xxl-2 {
4833
+ padding: 0.5rem !important;
4834
+ }
4835
+
4836
+ .p-xxl-3 {
4837
+ padding: 1rem !important;
4838
+ }
4839
+
4840
+ .p-xxl-4 {
4841
+ padding: 1.5rem !important;
4842
+ }
4843
+
4844
+ .p-xxl-5 {
4845
+ padding: 3rem !important;
4846
+ }
4847
+
4848
+ .px-xxl-0 {
4849
+ padding-right: 0 !important;
4850
+ padding-left: 0 !important;
4851
+ }
4852
+
4853
+ .px-xxl-1 {
4854
+ padding-right: 0.25rem !important;
4855
+ padding-left: 0.25rem !important;
4856
+ }
4857
+
4858
+ .px-xxl-2 {
4859
+ padding-right: 0.5rem !important;
4860
+ padding-left: 0.5rem !important;
4861
+ }
4862
+
4863
+ .px-xxl-3 {
4864
+ padding-right: 1rem !important;
4865
+ padding-left: 1rem !important;
4866
+ }
4867
+
4868
+ .px-xxl-4 {
4869
+ padding-right: 1.5rem !important;
4870
+ padding-left: 1.5rem !important;
4871
+ }
4872
+
4873
+ .px-xxl-5 {
4874
+ padding-right: 3rem !important;
4875
+ padding-left: 3rem !important;
4876
+ }
4877
+
4878
+ .py-xxl-0 {
4879
+ padding-top: 0 !important;
4880
+ padding-bottom: 0 !important;
4881
+ }
4882
+
4883
+ .py-xxl-1 {
4884
+ padding-top: 0.25rem !important;
4885
+ padding-bottom: 0.25rem !important;
4886
+ }
4887
+
4888
+ .py-xxl-2 {
4889
+ padding-top: 0.5rem !important;
4890
+ padding-bottom: 0.5rem !important;
4891
+ }
4892
+
4893
+ .py-xxl-3 {
4894
+ padding-top: 1rem !important;
4895
+ padding-bottom: 1rem !important;
4896
+ }
4897
+
4898
+ .py-xxl-4 {
4899
+ padding-top: 1.5rem !important;
4900
+ padding-bottom: 1.5rem !important;
4901
+ }
4902
+
4903
+ .py-xxl-5 {
4904
+ padding-top: 3rem !important;
4905
+ padding-bottom: 3rem !important;
4906
+ }
4907
+
4908
+ .pt-xxl-0 {
4909
+ padding-top: 0 !important;
4910
+ }
4911
+
4912
+ .pt-xxl-1 {
4913
+ padding-top: 0.25rem !important;
4914
+ }
4915
+
4916
+ .pt-xxl-2 {
4917
+ padding-top: 0.5rem !important;
4918
+ }
4919
+
4920
+ .pt-xxl-3 {
4921
+ padding-top: 1rem !important;
4922
+ }
4923
+
4924
+ .pt-xxl-4 {
4925
+ padding-top: 1.5rem !important;
4926
+ }
4927
+
4928
+ .pt-xxl-5 {
4929
+ padding-top: 3rem !important;
4930
+ }
4931
+
4932
+ .pe-xxl-0 {
4933
+ padding-right: 0 !important;
4934
+ }
4935
+
4936
+ .pe-xxl-1 {
4937
+ padding-right: 0.25rem !important;
4938
+ }
4939
+
4940
+ .pe-xxl-2 {
4941
+ padding-right: 0.5rem !important;
4942
+ }
4943
+
4944
+ .pe-xxl-3 {
4945
+ padding-right: 1rem !important;
4946
+ }
4947
+
4948
+ .pe-xxl-4 {
4949
+ padding-right: 1.5rem !important;
4950
+ }
4951
+
4952
+ .pe-xxl-5 {
4953
+ padding-right: 3rem !important;
4954
+ }
4955
+
4956
+ .pb-xxl-0 {
4957
+ padding-bottom: 0 !important;
4958
+ }
4959
+
4960
+ .pb-xxl-1 {
4961
+ padding-bottom: 0.25rem !important;
4962
+ }
4963
+
4964
+ .pb-xxl-2 {
4965
+ padding-bottom: 0.5rem !important;
4966
+ }
4967
+
4968
+ .pb-xxl-3 {
4969
+ padding-bottom: 1rem !important;
4970
+ }
4971
+
4972
+ .pb-xxl-4 {
4973
+ padding-bottom: 1.5rem !important;
4974
+ }
4975
+
4976
+ .pb-xxl-5 {
4977
+ padding-bottom: 3rem !important;
4978
+ }
4979
+
4980
+ .ps-xxl-0 {
4981
+ padding-left: 0 !important;
4982
+ }
4983
+
4984
+ .ps-xxl-1 {
4985
+ padding-left: 0.25rem !important;
4986
+ }
4987
+
4988
+ .ps-xxl-2 {
4989
+ padding-left: 0.5rem !important;
4990
+ }
4991
+
4992
+ .ps-xxl-3 {
4993
+ padding-left: 1rem !important;
4994
+ }
4995
+
4996
+ .ps-xxl-4 {
4997
+ padding-left: 1.5rem !important;
4998
+ }
4999
+
5000
+ .ps-xxl-5 {
5001
+ padding-left: 3rem !important;
5002
+ }
5003
+ }
5004
+
5005
+ @media print {
5006
+ .d-print-inline {
5007
+ display: inline !important;
5008
+ }
5009
+
5010
+ .d-print-inline-block {
5011
+ display: inline-block !important;
5012
+ }
5013
+
5014
+ .d-print-block {
5015
+ display: block !important;
5016
+ }
5017
+
5018
+ .d-print-grid {
5019
+ display: grid !important;
5020
+ }
5021
+
5022
+ .d-print-inline-grid {
5023
+ display: inline-grid !important;
5024
+ }
5025
+
5026
+ .d-print-table {
5027
+ display: table !important;
5028
+ }
5029
+
5030
+ .d-print-table-row {
5031
+ display: table-row !important;
5032
+ }
5033
+
5034
+ .d-print-table-cell {
5035
+ display: table-cell !important;
5036
+ }
5037
+
5038
+ .d-print-flex {
5039
+ display: flex !important;
5040
+ }
5041
+
5042
+ .d-print-inline-flex {
5043
+ display: inline-flex !important;
5044
+ }
5045
+
5046
+ .d-print-none {
5047
+ display: none !important;
5048
+ }
5049
+ }
5050
+
5051
+ /*# sourceMappingURL=bootstrap-grid.css.map */
backend/app/static/css/bootstrap-grid.css.map ADDED
The diff for this file is too large to render. See raw diff
 
backend/app/static/css/bootstrap-grid.min.css ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ /*!
2
+ * Bootstrap Grid v5.3.3 (https://getbootstrap.com/)
3
+ * Copyright 2011-2024 The Bootstrap Authors
4
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
+ */.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{--bs-gutter-x:1.5rem;--bs-gutter-y:0;width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}@media (min-width:1400px){.container,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{max-width:1320px}}:root{--bs-breakpoint-xs:0;--bs-breakpoint-sm:576px;--bs-breakpoint-md:768px;--bs-breakpoint-lg:992px;--bs-breakpoint-xl:1200px;--bs-breakpoint-xxl:1400px}.row{--bs-gutter-x:1.5rem;--bs-gutter-y:0;display:flex;flex-wrap:wrap;margin-top:calc(-1 * var(--bs-gutter-y));margin-right:calc(-.5 * var(--bs-gutter-x));margin-left:calc(-.5 * var(--bs-gutter-x))}.row>*{box-sizing:border-box;flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-top:var(--bs-gutter-y)}.col{flex:1 0 0%}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.66666667%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.33333333%}.col-2{flex:0 0 auto;width:16.66666667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.33333333%}.col-5{flex:0 0 auto;width:41.66666667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.33333333%}.col-8{flex:0 0 auto;width:66.66666667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.33333333%}.col-11{flex:0 0 auto;width:91.66666667%}.col-12{flex:0 0 auto;width:100%}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}.g-0,.gx-0{--bs-gutter-x:0}.g-0,.gy-0{--bs-gutter-y:0}.g-1,.gx-1{--bs-gutter-x:0.25rem}.g-1,.gy-1{--bs-gutter-y:0.25rem}.g-2,.gx-2{--bs-gutter-x:0.5rem}.g-2,.gy-2{--bs-gutter-y:0.5rem}.g-3,.gx-3{--bs-gutter-x:1rem}.g-3,.gy-3{--bs-gutter-y:1rem}.g-4,.gx-4{--bs-gutter-x:1.5rem}.g-4,.gy-4{--bs-gutter-y:1.5rem}.g-5,.gx-5{--bs-gutter-x:3rem}.g-5,.gy-5{--bs-gutter-y:3rem}@media (min-width:576px){.col-sm{flex:1 0 0%}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.66666667%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.33333333%}.col-sm-2{flex:0 0 auto;width:16.66666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333333%}.col-sm-5{flex:0 0 auto;width:41.66666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.33333333%}.col-sm-8{flex:0 0 auto;width:66.66666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.33333333%}.col-sm-11{flex:0 0 auto;width:91.66666667%}.col-sm-12{flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}.g-sm-0,.gx-sm-0{--bs-gutter-x:0}.g-sm-0,.gy-sm-0{--bs-gutter-y:0}.g-sm-1,.gx-sm-1{--bs-gutter-x:0.25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y:0.25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x:0.5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y:0.5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x:1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y:1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x:1.5rem}.g-sm-4,.gy-sm-4{--bs-gutter-y:1.5rem}.g-sm-5,.gx-sm-5{--bs-gutter-x:3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y:3rem}}@media (min-width:768px){.col-md{flex:1 0 0%}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.66666667%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.33333333%}.col-md-2{flex:0 0 auto;width:16.66666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333333%}.col-md-5{flex:0 0 auto;width:41.66666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.33333333%}.col-md-8{flex:0 0 auto;width:66.66666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333333%}.col-md-11{flex:0 0 auto;width:91.66666667%}.col-md-12{flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}.g-md-0,.gx-md-0{--bs-gutter-x:0}.g-md-0,.gy-md-0{--bs-gutter-y:0}.g-md-1,.gx-md-1{--bs-gutter-x:0.25rem}.g-md-1,.gy-md-1{--bs-gutter-y:0.25rem}.g-md-2,.gx-md-2{--bs-gutter-x:0.5rem}.g-md-2,.gy-md-2{--bs-gutter-y:0.5rem}.g-md-3,.gx-md-3{--bs-gutter-x:1rem}.g-md-3,.gy-md-3{--bs-gutter-y:1rem}.g-md-4,.gx-md-4{--bs-gutter-x:1.5rem}.g-md-4,.gy-md-4{--bs-gutter-y:1.5rem}.g-md-5,.gx-md-5{--bs-gutter-x:3rem}.g-md-5,.gy-md-5{--bs-gutter-y:3rem}}@media (min-width:992px){.col-lg{flex:1 0 0%}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.66666667%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.33333333%}.col-lg-2{flex:0 0 auto;width:16.66666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.33333333%}.col-lg-5{flex:0 0 auto;width:41.66666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.33333333%}.col-lg-8{flex:0 0 auto;width:66.66666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333333%}.col-lg-11{flex:0 0 auto;width:91.66666667%}.col-lg-12{flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}.g-lg-0,.gx-lg-0{--bs-gutter-x:0}.g-lg-0,.gy-lg-0{--bs-gutter-y:0}.g-lg-1,.gx-lg-1{--bs-gutter-x:0.25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y:0.25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x:0.5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y:0.5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x:1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y:1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x:1.5rem}.g-lg-4,.gy-lg-4{--bs-gutter-y:1.5rem}.g-lg-5,.gx-lg-5{--bs-gutter-x:3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y:3rem}}@media (min-width:1200px){.col-xl{flex:1 0 0%}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.66666667%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.33333333%}.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333333%}.col-xl-5{flex:0 0 auto;width:41.66666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.33333333%}.col-xl-8{flex:0 0 auto;width:66.66666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.33333333%}.col-xl-11{flex:0 0 auto;width:91.66666667%}.col-xl-12{flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}.g-xl-0,.gx-xl-0{--bs-gutter-x:0}.g-xl-0,.gy-xl-0{--bs-gutter-y:0}.g-xl-1,.gx-xl-1{--bs-gutter-x:0.25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y:0.25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x:0.5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y:0.5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x:1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y:1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x:1.5rem}.g-xl-4,.gy-xl-4{--bs-gutter-y:1.5rem}.g-xl-5,.gx-xl-5{--bs-gutter-x:3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y:3rem}}@media (min-width:1400px){.col-xxl{flex:1 0 0%}.row-cols-xxl-auto>*{flex:0 0 auto;width:auto}.row-cols-xxl-1>*{flex:0 0 auto;width:100%}.row-cols-xxl-2>*{flex:0 0 auto;width:50%}.row-cols-xxl-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-xxl-4>*{flex:0 0 auto;width:25%}.row-cols-xxl-5>*{flex:0 0 auto;width:20%}.row-cols-xxl-6>*{flex:0 0 auto;width:16.66666667%}.col-xxl-auto{flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;width:8.33333333%}.col-xxl-2{flex:0 0 auto;width:16.66666667%}.col-xxl-3{flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;width:33.33333333%}.col-xxl-5{flex:0 0 auto;width:41.66666667%}.col-xxl-6{flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;width:58.33333333%}.col-xxl-8{flex:0 0 auto;width:66.66666667%}.col-xxl-9{flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;width:83.33333333%}.col-xxl-11{flex:0 0 auto;width:91.66666667%}.col-xxl-12{flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.33333333%}.offset-xxl-2{margin-left:16.66666667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.33333333%}.offset-xxl-5{margin-left:41.66666667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.33333333%}.offset-xxl-8{margin-left:66.66666667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.33333333%}.offset-xxl-11{margin-left:91.66666667%}.g-xxl-0,.gx-xxl-0{--bs-gutter-x:0}.g-xxl-0,.gy-xxl-0{--bs-gutter-y:0}.g-xxl-1,.gx-xxl-1{--bs-gutter-x:0.25rem}.g-xxl-1,.gy-xxl-1{--bs-gutter-y:0.25rem}.g-xxl-2,.gx-xxl-2{--bs-gutter-x:0.5rem}.g-xxl-2,.gy-xxl-2{--bs-gutter-y:0.5rem}.g-xxl-3,.gx-xxl-3{--bs-gutter-x:1rem}.g-xxl-3,.gy-xxl-3{--bs-gutter-y:1rem}.g-xxl-4,.gx-xxl-4{--bs-gutter-x:1.5rem}.g-xxl-4,.gy-xxl-4{--bs-gutter-y:1.5rem}.g-xxl-5,.gx-xxl-5{--bs-gutter-x:3rem}.g-xxl-5,.gy-xxl-5{--bs-gutter-y:3rem}}.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}.flex-fill{flex:1 1 auto!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.justify-content-evenly{justify-content:space-evenly!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-last{order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:1.5rem!important}.m-5{margin:3rem!important}.m-auto{margin:auto!important}.mx-0{margin-right:0!important;margin-left:0!important}.mx-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-3{margin-right:1rem!important;margin-left:1rem!important}.mx-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-5{margin-right:3rem!important;margin-left:3rem!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}.my-0{margin-top:0!important;margin-bottom:0!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:3rem!important}.mt-auto{margin-top:auto!important}.me-0{margin-right:0!important}.me-1{margin-right:.25rem!important}.me-2{margin-right:.5rem!important}.me-3{margin-right:1rem!important}.me-4{margin-right:1.5rem!important}.me-5{margin-right:3rem!important}.me-auto{margin-right:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:3rem!important}.mb-auto{margin-bottom:auto!important}.ms-0{margin-left:0!important}.ms-1{margin-left:.25rem!important}.ms-2{margin-left:.5rem!important}.ms-3{margin-left:1rem!important}.ms-4{margin-left:1.5rem!important}.ms-5{margin-left:3rem!important}.ms-auto{margin-left:auto!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}.p-5{padding:3rem!important}.px-0{padding-right:0!important;padding-left:0!important}.px-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-3{padding-right:1rem!important;padding-left:1rem!important}.px-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-5{padding-right:3rem!important;padding-left:3rem!important}.py-0{padding-top:0!important;padding-bottom:0!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:1.5rem!important}.pt-5{padding-top:3rem!important}.pe-0{padding-right:0!important}.pe-1{padding-right:.25rem!important}.pe-2{padding-right:.5rem!important}.pe-3{padding-right:1rem!important}.pe-4{padding-right:1.5rem!important}.pe-5{padding-right:3rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:1.5rem!important}.pb-5{padding-bottom:3rem!important}.ps-0{padding-left:0!important}.ps-1{padding-left:.25rem!important}.ps-2{padding-left:.5rem!important}.ps-3{padding-left:1rem!important}.ps-4{padding-left:1.5rem!important}.ps-5{padding-left:3rem!important}@media (min-width:576px){.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-grid{display:grid!important}.d-sm-inline-grid{display:inline-grid!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}.d-sm-none{display:none!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.justify-content-sm-evenly{justify-content:space-evenly!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.order-sm-first{order:-1!important}.order-sm-0{order:0!important}.order-sm-1{order:1!important}.order-sm-2{order:2!important}.order-sm-3{order:3!important}.order-sm-4{order:4!important}.order-sm-5{order:5!important}.order-sm-last{order:6!important}.m-sm-0{margin:0!important}.m-sm-1{margin:.25rem!important}.m-sm-2{margin:.5rem!important}.m-sm-3{margin:1rem!important}.m-sm-4{margin:1.5rem!important}.m-sm-5{margin:3rem!important}.m-sm-auto{margin:auto!important}.mx-sm-0{margin-right:0!important;margin-left:0!important}.mx-sm-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-sm-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-sm-3{margin-right:1rem!important;margin-left:1rem!important}.mx-sm-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-sm-5{margin-right:3rem!important;margin-left:3rem!important}.mx-sm-auto{margin-right:auto!important;margin-left:auto!important}.my-sm-0{margin-top:0!important;margin-bottom:0!important}.my-sm-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-sm-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-sm-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-sm-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-sm-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-sm-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:.25rem!important}.mt-sm-2{margin-top:.5rem!important}.mt-sm-3{margin-top:1rem!important}.mt-sm-4{margin-top:1.5rem!important}.mt-sm-5{margin-top:3rem!important}.mt-sm-auto{margin-top:auto!important}.me-sm-0{margin-right:0!important}.me-sm-1{margin-right:.25rem!important}.me-sm-2{margin-right:.5rem!important}.me-sm-3{margin-right:1rem!important}.me-sm-4{margin-right:1.5rem!important}.me-sm-5{margin-right:3rem!important}.me-sm-auto{margin-right:auto!important}.mb-sm-0{margin-bottom:0!important}.mb-sm-1{margin-bottom:.25rem!important}.mb-sm-2{margin-bottom:.5rem!important}.mb-sm-3{margin-bottom:1rem!important}.mb-sm-4{margin-bottom:1.5rem!important}.mb-sm-5{margin-bottom:3rem!important}.mb-sm-auto{margin-bottom:auto!important}.ms-sm-0{margin-left:0!important}.ms-sm-1{margin-left:.25rem!important}.ms-sm-2{margin-left:.5rem!important}.ms-sm-3{margin-left:1rem!important}.ms-sm-4{margin-left:1.5rem!important}.ms-sm-5{margin-left:3rem!important}.ms-sm-auto{margin-left:auto!important}.p-sm-0{padding:0!important}.p-sm-1{padding:.25rem!important}.p-sm-2{padding:.5rem!important}.p-sm-3{padding:1rem!important}.p-sm-4{padding:1.5rem!important}.p-sm-5{padding:3rem!important}.px-sm-0{padding-right:0!important;padding-left:0!important}.px-sm-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-sm-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-sm-3{padding-right:1rem!important;padding-left:1rem!important}.px-sm-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-sm-5{padding-right:3rem!important;padding-left:3rem!important}.py-sm-0{padding-top:0!important;padding-bottom:0!important}.py-sm-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-sm-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-sm-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-sm-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-sm-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:.25rem!important}.pt-sm-2{padding-top:.5rem!important}.pt-sm-3{padding-top:1rem!important}.pt-sm-4{padding-top:1.5rem!important}.pt-sm-5{padding-top:3rem!important}.pe-sm-0{padding-right:0!important}.pe-sm-1{padding-right:.25rem!important}.pe-sm-2{padding-right:.5rem!important}.pe-sm-3{padding-right:1rem!important}.pe-sm-4{padding-right:1.5rem!important}.pe-sm-5{padding-right:3rem!important}.pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:.25rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pb-sm-3{padding-bottom:1rem!important}.pb-sm-4{padding-bottom:1.5rem!important}.pb-sm-5{padding-bottom:3rem!important}.ps-sm-0{padding-left:0!important}.ps-sm-1{padding-left:.25rem!important}.ps-sm-2{padding-left:.5rem!important}.ps-sm-3{padding-left:1rem!important}.ps-sm-4{padding-left:1.5rem!important}.ps-sm-5{padding-left:3rem!important}}@media (min-width:768px){.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-grid{display:grid!important}.d-md-inline-grid{display:inline-grid!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}.d-md-none{display:none!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.justify-content-md-evenly{justify-content:space-evenly!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.order-md-first{order:-1!important}.order-md-0{order:0!important}.order-md-1{order:1!important}.order-md-2{order:2!important}.order-md-3{order:3!important}.order-md-4{order:4!important}.order-md-5{order:5!important}.order-md-last{order:6!important}.m-md-0{margin:0!important}.m-md-1{margin:.25rem!important}.m-md-2{margin:.5rem!important}.m-md-3{margin:1rem!important}.m-md-4{margin:1.5rem!important}.m-md-5{margin:3rem!important}.m-md-auto{margin:auto!important}.mx-md-0{margin-right:0!important;margin-left:0!important}.mx-md-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-md-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-md-3{margin-right:1rem!important;margin-left:1rem!important}.mx-md-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-md-5{margin-right:3rem!important;margin-left:3rem!important}.mx-md-auto{margin-right:auto!important;margin-left:auto!important}.my-md-0{margin-top:0!important;margin-bottom:0!important}.my-md-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-md-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-md-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-md-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-md-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-md-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-md-0{margin-top:0!important}.mt-md-1{margin-top:.25rem!important}.mt-md-2{margin-top:.5rem!important}.mt-md-3{margin-top:1rem!important}.mt-md-4{margin-top:1.5rem!important}.mt-md-5{margin-top:3rem!important}.mt-md-auto{margin-top:auto!important}.me-md-0{margin-right:0!important}.me-md-1{margin-right:.25rem!important}.me-md-2{margin-right:.5rem!important}.me-md-3{margin-right:1rem!important}.me-md-4{margin-right:1.5rem!important}.me-md-5{margin-right:3rem!important}.me-md-auto{margin-right:auto!important}.mb-md-0{margin-bottom:0!important}.mb-md-1{margin-bottom:.25rem!important}.mb-md-2{margin-bottom:.5rem!important}.mb-md-3{margin-bottom:1rem!important}.mb-md-4{margin-bottom:1.5rem!important}.mb-md-5{margin-bottom:3rem!important}.mb-md-auto{margin-bottom:auto!important}.ms-md-0{margin-left:0!important}.ms-md-1{margin-left:.25rem!important}.ms-md-2{margin-left:.5rem!important}.ms-md-3{margin-left:1rem!important}.ms-md-4{margin-left:1.5rem!important}.ms-md-5{margin-left:3rem!important}.ms-md-auto{margin-left:auto!important}.p-md-0{padding:0!important}.p-md-1{padding:.25rem!important}.p-md-2{padding:.5rem!important}.p-md-3{padding:1rem!important}.p-md-4{padding:1.5rem!important}.p-md-5{padding:3rem!important}.px-md-0{padding-right:0!important;padding-left:0!important}.px-md-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-md-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-md-3{padding-right:1rem!important;padding-left:1rem!important}.px-md-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-md-5{padding-right:3rem!important;padding-left:3rem!important}.py-md-0{padding-top:0!important;padding-bottom:0!important}.py-md-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-md-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-md-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-md-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-md-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-md-0{padding-top:0!important}.pt-md-1{padding-top:.25rem!important}.pt-md-2{padding-top:.5rem!important}.pt-md-3{padding-top:1rem!important}.pt-md-4{padding-top:1.5rem!important}.pt-md-5{padding-top:3rem!important}.pe-md-0{padding-right:0!important}.pe-md-1{padding-right:.25rem!important}.pe-md-2{padding-right:.5rem!important}.pe-md-3{padding-right:1rem!important}.pe-md-4{padding-right:1.5rem!important}.pe-md-5{padding-right:3rem!important}.pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:.25rem!important}.pb-md-2{padding-bottom:.5rem!important}.pb-md-3{padding-bottom:1rem!important}.pb-md-4{padding-bottom:1.5rem!important}.pb-md-5{padding-bottom:3rem!important}.ps-md-0{padding-left:0!important}.ps-md-1{padding-left:.25rem!important}.ps-md-2{padding-left:.5rem!important}.ps-md-3{padding-left:1rem!important}.ps-md-4{padding-left:1.5rem!important}.ps-md-5{padding-left:3rem!important}}@media (min-width:992px){.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-grid{display:grid!important}.d-lg-inline-grid{display:inline-grid!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}.d-lg-none{display:none!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.justify-content-lg-evenly{justify-content:space-evenly!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.order-lg-first{order:-1!important}.order-lg-0{order:0!important}.order-lg-1{order:1!important}.order-lg-2{order:2!important}.order-lg-3{order:3!important}.order-lg-4{order:4!important}.order-lg-5{order:5!important}.order-lg-last{order:6!important}.m-lg-0{margin:0!important}.m-lg-1{margin:.25rem!important}.m-lg-2{margin:.5rem!important}.m-lg-3{margin:1rem!important}.m-lg-4{margin:1.5rem!important}.m-lg-5{margin:3rem!important}.m-lg-auto{margin:auto!important}.mx-lg-0{margin-right:0!important;margin-left:0!important}.mx-lg-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-lg-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-lg-3{margin-right:1rem!important;margin-left:1rem!important}.mx-lg-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-lg-5{margin-right:3rem!important;margin-left:3rem!important}.mx-lg-auto{margin-right:auto!important;margin-left:auto!important}.my-lg-0{margin-top:0!important;margin-bottom:0!important}.my-lg-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-lg-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-lg-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-lg-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-lg-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-lg-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:.25rem!important}.mt-lg-2{margin-top:.5rem!important}.mt-lg-3{margin-top:1rem!important}.mt-lg-4{margin-top:1.5rem!important}.mt-lg-5{margin-top:3rem!important}.mt-lg-auto{margin-top:auto!important}.me-lg-0{margin-right:0!important}.me-lg-1{margin-right:.25rem!important}.me-lg-2{margin-right:.5rem!important}.me-lg-3{margin-right:1rem!important}.me-lg-4{margin-right:1.5rem!important}.me-lg-5{margin-right:3rem!important}.me-lg-auto{margin-right:auto!important}.mb-lg-0{margin-bottom:0!important}.mb-lg-1{margin-bottom:.25rem!important}.mb-lg-2{margin-bottom:.5rem!important}.mb-lg-3{margin-bottom:1rem!important}.mb-lg-4{margin-bottom:1.5rem!important}.mb-lg-5{margin-bottom:3rem!important}.mb-lg-auto{margin-bottom:auto!important}.ms-lg-0{margin-left:0!important}.ms-lg-1{margin-left:.25rem!important}.ms-lg-2{margin-left:.5rem!important}.ms-lg-3{margin-left:1rem!important}.ms-lg-4{margin-left:1.5rem!important}.ms-lg-5{margin-left:3rem!important}.ms-lg-auto{margin-left:auto!important}.p-lg-0{padding:0!important}.p-lg-1{padding:.25rem!important}.p-lg-2{padding:.5rem!important}.p-lg-3{padding:1rem!important}.p-lg-4{padding:1.5rem!important}.p-lg-5{padding:3rem!important}.px-lg-0{padding-right:0!important;padding-left:0!important}.px-lg-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-lg-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-lg-3{padding-right:1rem!important;padding-left:1rem!important}.px-lg-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-lg-5{padding-right:3rem!important;padding-left:3rem!important}.py-lg-0{padding-top:0!important;padding-bottom:0!important}.py-lg-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-lg-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-lg-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-lg-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-lg-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:.25rem!important}.pt-lg-2{padding-top:.5rem!important}.pt-lg-3{padding-top:1rem!important}.pt-lg-4{padding-top:1.5rem!important}.pt-lg-5{padding-top:3rem!important}.pe-lg-0{padding-right:0!important}.pe-lg-1{padding-right:.25rem!important}.pe-lg-2{padding-right:.5rem!important}.pe-lg-3{padding-right:1rem!important}.pe-lg-4{padding-right:1.5rem!important}.pe-lg-5{padding-right:3rem!important}.pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:.25rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pb-lg-3{padding-bottom:1rem!important}.pb-lg-4{padding-bottom:1.5rem!important}.pb-lg-5{padding-bottom:3rem!important}.ps-lg-0{padding-left:0!important}.ps-lg-1{padding-left:.25rem!important}.ps-lg-2{padding-left:.5rem!important}.ps-lg-3{padding-left:1rem!important}.ps-lg-4{padding-left:1.5rem!important}.ps-lg-5{padding-left:3rem!important}}@media (min-width:1200px){.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-grid{display:grid!important}.d-xl-inline-grid{display:inline-grid!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}.d-xl-none{display:none!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.justify-content-xl-evenly{justify-content:space-evenly!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.order-xl-first{order:-1!important}.order-xl-0{order:0!important}.order-xl-1{order:1!important}.order-xl-2{order:2!important}.order-xl-3{order:3!important}.order-xl-4{order:4!important}.order-xl-5{order:5!important}.order-xl-last{order:6!important}.m-xl-0{margin:0!important}.m-xl-1{margin:.25rem!important}.m-xl-2{margin:.5rem!important}.m-xl-3{margin:1rem!important}.m-xl-4{margin:1.5rem!important}.m-xl-5{margin:3rem!important}.m-xl-auto{margin:auto!important}.mx-xl-0{margin-right:0!important;margin-left:0!important}.mx-xl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xl-auto{margin-right:auto!important;margin-left:auto!important}.my-xl-0{margin-top:0!important;margin-bottom:0!important}.my-xl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:.25rem!important}.mt-xl-2{margin-top:.5rem!important}.mt-xl-3{margin-top:1rem!important}.mt-xl-4{margin-top:1.5rem!important}.mt-xl-5{margin-top:3rem!important}.mt-xl-auto{margin-top:auto!important}.me-xl-0{margin-right:0!important}.me-xl-1{margin-right:.25rem!important}.me-xl-2{margin-right:.5rem!important}.me-xl-3{margin-right:1rem!important}.me-xl-4{margin-right:1.5rem!important}.me-xl-5{margin-right:3rem!important}.me-xl-auto{margin-right:auto!important}.mb-xl-0{margin-bottom:0!important}.mb-xl-1{margin-bottom:.25rem!important}.mb-xl-2{margin-bottom:.5rem!important}.mb-xl-3{margin-bottom:1rem!important}.mb-xl-4{margin-bottom:1.5rem!important}.mb-xl-5{margin-bottom:3rem!important}.mb-xl-auto{margin-bottom:auto!important}.ms-xl-0{margin-left:0!important}.ms-xl-1{margin-left:.25rem!important}.ms-xl-2{margin-left:.5rem!important}.ms-xl-3{margin-left:1rem!important}.ms-xl-4{margin-left:1.5rem!important}.ms-xl-5{margin-left:3rem!important}.ms-xl-auto{margin-left:auto!important}.p-xl-0{padding:0!important}.p-xl-1{padding:.25rem!important}.p-xl-2{padding:.5rem!important}.p-xl-3{padding:1rem!important}.p-xl-4{padding:1.5rem!important}.p-xl-5{padding:3rem!important}.px-xl-0{padding-right:0!important;padding-left:0!important}.px-xl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xl-0{padding-top:0!important;padding-bottom:0!important}.py-xl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:.25rem!important}.pt-xl-2{padding-top:.5rem!important}.pt-xl-3{padding-top:1rem!important}.pt-xl-4{padding-top:1.5rem!important}.pt-xl-5{padding-top:3rem!important}.pe-xl-0{padding-right:0!important}.pe-xl-1{padding-right:.25rem!important}.pe-xl-2{padding-right:.5rem!important}.pe-xl-3{padding-right:1rem!important}.pe-xl-4{padding-right:1.5rem!important}.pe-xl-5{padding-right:3rem!important}.pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:.25rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pb-xl-3{padding-bottom:1rem!important}.pb-xl-4{padding-bottom:1.5rem!important}.pb-xl-5{padding-bottom:3rem!important}.ps-xl-0{padding-left:0!important}.ps-xl-1{padding-left:.25rem!important}.ps-xl-2{padding-left:.5rem!important}.ps-xl-3{padding-left:1rem!important}.ps-xl-4{padding-left:1.5rem!important}.ps-xl-5{padding-left:3rem!important}}@media (min-width:1400px){.d-xxl-inline{display:inline!important}.d-xxl-inline-block{display:inline-block!important}.d-xxl-block{display:block!important}.d-xxl-grid{display:grid!important}.d-xxl-inline-grid{display:inline-grid!important}.d-xxl-table{display:table!important}.d-xxl-table-row{display:table-row!important}.d-xxl-table-cell{display:table-cell!important}.d-xxl-flex{display:flex!important}.d-xxl-inline-flex{display:inline-flex!important}.d-xxl-none{display:none!important}.flex-xxl-fill{flex:1 1 auto!important}.flex-xxl-row{flex-direction:row!important}.flex-xxl-column{flex-direction:column!important}.flex-xxl-row-reverse{flex-direction:row-reverse!important}.flex-xxl-column-reverse{flex-direction:column-reverse!important}.flex-xxl-grow-0{flex-grow:0!important}.flex-xxl-grow-1{flex-grow:1!important}.flex-xxl-shrink-0{flex-shrink:0!important}.flex-xxl-shrink-1{flex-shrink:1!important}.flex-xxl-wrap{flex-wrap:wrap!important}.flex-xxl-nowrap{flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xxl-start{justify-content:flex-start!important}.justify-content-xxl-end{justify-content:flex-end!important}.justify-content-xxl-center{justify-content:center!important}.justify-content-xxl-between{justify-content:space-between!important}.justify-content-xxl-around{justify-content:space-around!important}.justify-content-xxl-evenly{justify-content:space-evenly!important}.align-items-xxl-start{align-items:flex-start!important}.align-items-xxl-end{align-items:flex-end!important}.align-items-xxl-center{align-items:center!important}.align-items-xxl-baseline{align-items:baseline!important}.align-items-xxl-stretch{align-items:stretch!important}.align-content-xxl-start{align-content:flex-start!important}.align-content-xxl-end{align-content:flex-end!important}.align-content-xxl-center{align-content:center!important}.align-content-xxl-between{align-content:space-between!important}.align-content-xxl-around{align-content:space-around!important}.align-content-xxl-stretch{align-content:stretch!important}.align-self-xxl-auto{align-self:auto!important}.align-self-xxl-start{align-self:flex-start!important}.align-self-xxl-end{align-self:flex-end!important}.align-self-xxl-center{align-self:center!important}.align-self-xxl-baseline{align-self:baseline!important}.align-self-xxl-stretch{align-self:stretch!important}.order-xxl-first{order:-1!important}.order-xxl-0{order:0!important}.order-xxl-1{order:1!important}.order-xxl-2{order:2!important}.order-xxl-3{order:3!important}.order-xxl-4{order:4!important}.order-xxl-5{order:5!important}.order-xxl-last{order:6!important}.m-xxl-0{margin:0!important}.m-xxl-1{margin:.25rem!important}.m-xxl-2{margin:.5rem!important}.m-xxl-3{margin:1rem!important}.m-xxl-4{margin:1.5rem!important}.m-xxl-5{margin:3rem!important}.m-xxl-auto{margin:auto!important}.mx-xxl-0{margin-right:0!important;margin-left:0!important}.mx-xxl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xxl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xxl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xxl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xxl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xxl-auto{margin-right:auto!important;margin-left:auto!important}.my-xxl-0{margin-top:0!important;margin-bottom:0!important}.my-xxl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xxl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xxl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xxl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xxl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xxl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xxl-0{margin-top:0!important}.mt-xxl-1{margin-top:.25rem!important}.mt-xxl-2{margin-top:.5rem!important}.mt-xxl-3{margin-top:1rem!important}.mt-xxl-4{margin-top:1.5rem!important}.mt-xxl-5{margin-top:3rem!important}.mt-xxl-auto{margin-top:auto!important}.me-xxl-0{margin-right:0!important}.me-xxl-1{margin-right:.25rem!important}.me-xxl-2{margin-right:.5rem!important}.me-xxl-3{margin-right:1rem!important}.me-xxl-4{margin-right:1.5rem!important}.me-xxl-5{margin-right:3rem!important}.me-xxl-auto{margin-right:auto!important}.mb-xxl-0{margin-bottom:0!important}.mb-xxl-1{margin-bottom:.25rem!important}.mb-xxl-2{margin-bottom:.5rem!important}.mb-xxl-3{margin-bottom:1rem!important}.mb-xxl-4{margin-bottom:1.5rem!important}.mb-xxl-5{margin-bottom:3rem!important}.mb-xxl-auto{margin-bottom:auto!important}.ms-xxl-0{margin-left:0!important}.ms-xxl-1{margin-left:.25rem!important}.ms-xxl-2{margin-left:.5rem!important}.ms-xxl-3{margin-left:1rem!important}.ms-xxl-4{margin-left:1.5rem!important}.ms-xxl-5{margin-left:3rem!important}.ms-xxl-auto{margin-left:auto!important}.p-xxl-0{padding:0!important}.p-xxl-1{padding:.25rem!important}.p-xxl-2{padding:.5rem!important}.p-xxl-3{padding:1rem!important}.p-xxl-4{padding:1.5rem!important}.p-xxl-5{padding:3rem!important}.px-xxl-0{padding-right:0!important;padding-left:0!important}.px-xxl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xxl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xxl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xxl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xxl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xxl-0{padding-top:0!important;padding-bottom:0!important}.py-xxl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xxl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xxl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xxl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xxl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xxl-0{padding-top:0!important}.pt-xxl-1{padding-top:.25rem!important}.pt-xxl-2{padding-top:.5rem!important}.pt-xxl-3{padding-top:1rem!important}.pt-xxl-4{padding-top:1.5rem!important}.pt-xxl-5{padding-top:3rem!important}.pe-xxl-0{padding-right:0!important}.pe-xxl-1{padding-right:.25rem!important}.pe-xxl-2{padding-right:.5rem!important}.pe-xxl-3{padding-right:1rem!important}.pe-xxl-4{padding-right:1.5rem!important}.pe-xxl-5{padding-right:3rem!important}.pb-xxl-0{padding-bottom:0!important}.pb-xxl-1{padding-bottom:.25rem!important}.pb-xxl-2{padding-bottom:.5rem!important}.pb-xxl-3{padding-bottom:1rem!important}.pb-xxl-4{padding-bottom:1.5rem!important}.pb-xxl-5{padding-bottom:3rem!important}.ps-xxl-0{padding-left:0!important}.ps-xxl-1{padding-left:.25rem!important}.ps-xxl-2{padding-left:.5rem!important}.ps-xxl-3{padding-left:1rem!important}.ps-xxl-4{padding-left:1.5rem!important}.ps-xxl-5{padding-left:3rem!important}}@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}}
6
+ /*# sourceMappingURL=bootstrap-grid.min.css.map */
backend/app/static/css/bootstrap-grid.min.css.map ADDED
The diff for this file is too large to render. See raw diff
 
backend/app/static/css/bootstrap-grid.rtl.css ADDED
@@ -0,0 +1,5051 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*!
2
+ * Bootstrap Grid v5.3.3 (https://getbootstrap.com/)
3
+ * Copyright 2011-2024 The Bootstrap Authors
4
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
+ */
6
+ .container,
7
+ .container-fluid,
8
+ .container-xxl,
9
+ .container-xl,
10
+ .container-lg,
11
+ .container-md,
12
+ .container-sm {
13
+ --bs-gutter-x: 1.5rem;
14
+ --bs-gutter-y: 0;
15
+ width: 100%;
16
+ padding-left: calc(var(--bs-gutter-x) * 0.5);
17
+ padding-right: calc(var(--bs-gutter-x) * 0.5);
18
+ margin-left: auto;
19
+ margin-right: auto;
20
+ }
21
+
22
+ @media (min-width: 576px) {
23
+ .container-sm, .container {
24
+ max-width: 540px;
25
+ }
26
+ }
27
+
28
+ @media (min-width: 768px) {
29
+ .container-md, .container-sm, .container {
30
+ max-width: 720px;
31
+ }
32
+ }
33
+
34
+ @media (min-width: 992px) {
35
+ .container-lg, .container-md, .container-sm, .container {
36
+ max-width: 960px;
37
+ }
38
+ }
39
+
40
+ @media (min-width: 1200px) {
41
+ .container-xl, .container-lg, .container-md, .container-sm, .container {
42
+ max-width: 1140px;
43
+ }
44
+ }
45
+
46
+ @media (min-width: 1400px) {
47
+ .container-xxl, .container-xl, .container-lg, .container-md, .container-sm, .container {
48
+ max-width: 1320px;
49
+ }
50
+ }
51
+
52
+ :root {
53
+ --bs-breakpoint-xs: 0;
54
+ --bs-breakpoint-sm: 576px;
55
+ --bs-breakpoint-md: 768px;
56
+ --bs-breakpoint-lg: 992px;
57
+ --bs-breakpoint-xl: 1200px;
58
+ --bs-breakpoint-xxl: 1400px;
59
+ }
60
+
61
+ .row {
62
+ --bs-gutter-x: 1.5rem;
63
+ --bs-gutter-y: 0;
64
+ display: flex;
65
+ flex-wrap: wrap;
66
+ margin-top: calc(-1 * var(--bs-gutter-y));
67
+ margin-left: calc(-0.5 * var(--bs-gutter-x));
68
+ margin-right: calc(-0.5 * var(--bs-gutter-x));
69
+ }
70
+
71
+ .row > * {
72
+ box-sizing: border-box;
73
+ flex-shrink: 0;
74
+ width: 100%;
75
+ max-width: 100%;
76
+ padding-left: calc(var(--bs-gutter-x) * 0.5);
77
+ padding-right: calc(var(--bs-gutter-x) * 0.5);
78
+ margin-top: var(--bs-gutter-y);
79
+ }
80
+
81
+ .col {
82
+ flex: 1 0 0%;
83
+ }
84
+
85
+ .row-cols-auto > * {
86
+ flex: 0 0 auto;
87
+ width: auto;
88
+ }
89
+
90
+ .row-cols-1 > * {
91
+ flex: 0 0 auto;
92
+ width: 100%;
93
+ }
94
+
95
+ .row-cols-2 > * {
96
+ flex: 0 0 auto;
97
+ width: 50%;
98
+ }
99
+
100
+ .row-cols-3 > * {
101
+ flex: 0 0 auto;
102
+ width: 33.33333333%;
103
+ }
104
+
105
+ .row-cols-4 > * {
106
+ flex: 0 0 auto;
107
+ width: 25%;
108
+ }
109
+
110
+ .row-cols-5 > * {
111
+ flex: 0 0 auto;
112
+ width: 20%;
113
+ }
114
+
115
+ .row-cols-6 > * {
116
+ flex: 0 0 auto;
117
+ width: 16.66666667%;
118
+ }
119
+
120
+ .col-auto {
121
+ flex: 0 0 auto;
122
+ width: auto;
123
+ }
124
+
125
+ .col-1 {
126
+ flex: 0 0 auto;
127
+ width: 8.33333333%;
128
+ }
129
+
130
+ .col-2 {
131
+ flex: 0 0 auto;
132
+ width: 16.66666667%;
133
+ }
134
+
135
+ .col-3 {
136
+ flex: 0 0 auto;
137
+ width: 25%;
138
+ }
139
+
140
+ .col-4 {
141
+ flex: 0 0 auto;
142
+ width: 33.33333333%;
143
+ }
144
+
145
+ .col-5 {
146
+ flex: 0 0 auto;
147
+ width: 41.66666667%;
148
+ }
149
+
150
+ .col-6 {
151
+ flex: 0 0 auto;
152
+ width: 50%;
153
+ }
154
+
155
+ .col-7 {
156
+ flex: 0 0 auto;
157
+ width: 58.33333333%;
158
+ }
159
+
160
+ .col-8 {
161
+ flex: 0 0 auto;
162
+ width: 66.66666667%;
163
+ }
164
+
165
+ .col-9 {
166
+ flex: 0 0 auto;
167
+ width: 75%;
168
+ }
169
+
170
+ .col-10 {
171
+ flex: 0 0 auto;
172
+ width: 83.33333333%;
173
+ }
174
+
175
+ .col-11 {
176
+ flex: 0 0 auto;
177
+ width: 91.66666667%;
178
+ }
179
+
180
+ .col-12 {
181
+ flex: 0 0 auto;
182
+ width: 100%;
183
+ }
184
+
185
+ .offset-1 {
186
+ margin-right: 8.33333333%;
187
+ }
188
+
189
+ .offset-2 {
190
+ margin-right: 16.66666667%;
191
+ }
192
+
193
+ .offset-3 {
194
+ margin-right: 25%;
195
+ }
196
+
197
+ .offset-4 {
198
+ margin-right: 33.33333333%;
199
+ }
200
+
201
+ .offset-5 {
202
+ margin-right: 41.66666667%;
203
+ }
204
+
205
+ .offset-6 {
206
+ margin-right: 50%;
207
+ }
208
+
209
+ .offset-7 {
210
+ margin-right: 58.33333333%;
211
+ }
212
+
213
+ .offset-8 {
214
+ margin-right: 66.66666667%;
215
+ }
216
+
217
+ .offset-9 {
218
+ margin-right: 75%;
219
+ }
220
+
221
+ .offset-10 {
222
+ margin-right: 83.33333333%;
223
+ }
224
+
225
+ .offset-11 {
226
+ margin-right: 91.66666667%;
227
+ }
228
+
229
+ .g-0,
230
+ .gx-0 {
231
+ --bs-gutter-x: 0;
232
+ }
233
+
234
+ .g-0,
235
+ .gy-0 {
236
+ --bs-gutter-y: 0;
237
+ }
238
+
239
+ .g-1,
240
+ .gx-1 {
241
+ --bs-gutter-x: 0.25rem;
242
+ }
243
+
244
+ .g-1,
245
+ .gy-1 {
246
+ --bs-gutter-y: 0.25rem;
247
+ }
248
+
249
+ .g-2,
250
+ .gx-2 {
251
+ --bs-gutter-x: 0.5rem;
252
+ }
253
+
254
+ .g-2,
255
+ .gy-2 {
256
+ --bs-gutter-y: 0.5rem;
257
+ }
258
+
259
+ .g-3,
260
+ .gx-3 {
261
+ --bs-gutter-x: 1rem;
262
+ }
263
+
264
+ .g-3,
265
+ .gy-3 {
266
+ --bs-gutter-y: 1rem;
267
+ }
268
+
269
+ .g-4,
270
+ .gx-4 {
271
+ --bs-gutter-x: 1.5rem;
272
+ }
273
+
274
+ .g-4,
275
+ .gy-4 {
276
+ --bs-gutter-y: 1.5rem;
277
+ }
278
+
279
+ .g-5,
280
+ .gx-5 {
281
+ --bs-gutter-x: 3rem;
282
+ }
283
+
284
+ .g-5,
285
+ .gy-5 {
286
+ --bs-gutter-y: 3rem;
287
+ }
288
+
289
+ @media (min-width: 576px) {
290
+ .col-sm {
291
+ flex: 1 0 0%;
292
+ }
293
+
294
+ .row-cols-sm-auto > * {
295
+ flex: 0 0 auto;
296
+ width: auto;
297
+ }
298
+
299
+ .row-cols-sm-1 > * {
300
+ flex: 0 0 auto;
301
+ width: 100%;
302
+ }
303
+
304
+ .row-cols-sm-2 > * {
305
+ flex: 0 0 auto;
306
+ width: 50%;
307
+ }
308
+
309
+ .row-cols-sm-3 > * {
310
+ flex: 0 0 auto;
311
+ width: 33.33333333%;
312
+ }
313
+
314
+ .row-cols-sm-4 > * {
315
+ flex: 0 0 auto;
316
+ width: 25%;
317
+ }
318
+
319
+ .row-cols-sm-5 > * {
320
+ flex: 0 0 auto;
321
+ width: 20%;
322
+ }
323
+
324
+ .row-cols-sm-6 > * {
325
+ flex: 0 0 auto;
326
+ width: 16.66666667%;
327
+ }
328
+
329
+ .col-sm-auto {
330
+ flex: 0 0 auto;
331
+ width: auto;
332
+ }
333
+
334
+ .col-sm-1 {
335
+ flex: 0 0 auto;
336
+ width: 8.33333333%;
337
+ }
338
+
339
+ .col-sm-2 {
340
+ flex: 0 0 auto;
341
+ width: 16.66666667%;
342
+ }
343
+
344
+ .col-sm-3 {
345
+ flex: 0 0 auto;
346
+ width: 25%;
347
+ }
348
+
349
+ .col-sm-4 {
350
+ flex: 0 0 auto;
351
+ width: 33.33333333%;
352
+ }
353
+
354
+ .col-sm-5 {
355
+ flex: 0 0 auto;
356
+ width: 41.66666667%;
357
+ }
358
+
359
+ .col-sm-6 {
360
+ flex: 0 0 auto;
361
+ width: 50%;
362
+ }
363
+
364
+ .col-sm-7 {
365
+ flex: 0 0 auto;
366
+ width: 58.33333333%;
367
+ }
368
+
369
+ .col-sm-8 {
370
+ flex: 0 0 auto;
371
+ width: 66.66666667%;
372
+ }
373
+
374
+ .col-sm-9 {
375
+ flex: 0 0 auto;
376
+ width: 75%;
377
+ }
378
+
379
+ .col-sm-10 {
380
+ flex: 0 0 auto;
381
+ width: 83.33333333%;
382
+ }
383
+
384
+ .col-sm-11 {
385
+ flex: 0 0 auto;
386
+ width: 91.66666667%;
387
+ }
388
+
389
+ .col-sm-12 {
390
+ flex: 0 0 auto;
391
+ width: 100%;
392
+ }
393
+
394
+ .offset-sm-0 {
395
+ margin-right: 0;
396
+ }
397
+
398
+ .offset-sm-1 {
399
+ margin-right: 8.33333333%;
400
+ }
401
+
402
+ .offset-sm-2 {
403
+ margin-right: 16.66666667%;
404
+ }
405
+
406
+ .offset-sm-3 {
407
+ margin-right: 25%;
408
+ }
409
+
410
+ .offset-sm-4 {
411
+ margin-right: 33.33333333%;
412
+ }
413
+
414
+ .offset-sm-5 {
415
+ margin-right: 41.66666667%;
416
+ }
417
+
418
+ .offset-sm-6 {
419
+ margin-right: 50%;
420
+ }
421
+
422
+ .offset-sm-7 {
423
+ margin-right: 58.33333333%;
424
+ }
425
+
426
+ .offset-sm-8 {
427
+ margin-right: 66.66666667%;
428
+ }
429
+
430
+ .offset-sm-9 {
431
+ margin-right: 75%;
432
+ }
433
+
434
+ .offset-sm-10 {
435
+ margin-right: 83.33333333%;
436
+ }
437
+
438
+ .offset-sm-11 {
439
+ margin-right: 91.66666667%;
440
+ }
441
+
442
+ .g-sm-0,
443
+ .gx-sm-0 {
444
+ --bs-gutter-x: 0;
445
+ }
446
+
447
+ .g-sm-0,
448
+ .gy-sm-0 {
449
+ --bs-gutter-y: 0;
450
+ }
451
+
452
+ .g-sm-1,
453
+ .gx-sm-1 {
454
+ --bs-gutter-x: 0.25rem;
455
+ }
456
+
457
+ .g-sm-1,
458
+ .gy-sm-1 {
459
+ --bs-gutter-y: 0.25rem;
460
+ }
461
+
462
+ .g-sm-2,
463
+ .gx-sm-2 {
464
+ --bs-gutter-x: 0.5rem;
465
+ }
466
+
467
+ .g-sm-2,
468
+ .gy-sm-2 {
469
+ --bs-gutter-y: 0.5rem;
470
+ }
471
+
472
+ .g-sm-3,
473
+ .gx-sm-3 {
474
+ --bs-gutter-x: 1rem;
475
+ }
476
+
477
+ .g-sm-3,
478
+ .gy-sm-3 {
479
+ --bs-gutter-y: 1rem;
480
+ }
481
+
482
+ .g-sm-4,
483
+ .gx-sm-4 {
484
+ --bs-gutter-x: 1.5rem;
485
+ }
486
+
487
+ .g-sm-4,
488
+ .gy-sm-4 {
489
+ --bs-gutter-y: 1.5rem;
490
+ }
491
+
492
+ .g-sm-5,
493
+ .gx-sm-5 {
494
+ --bs-gutter-x: 3rem;
495
+ }
496
+
497
+ .g-sm-5,
498
+ .gy-sm-5 {
499
+ --bs-gutter-y: 3rem;
500
+ }
501
+ }
502
+
503
+ @media (min-width: 768px) {
504
+ .col-md {
505
+ flex: 1 0 0%;
506
+ }
507
+
508
+ .row-cols-md-auto > * {
509
+ flex: 0 0 auto;
510
+ width: auto;
511
+ }
512
+
513
+ .row-cols-md-1 > * {
514
+ flex: 0 0 auto;
515
+ width: 100%;
516
+ }
517
+
518
+ .row-cols-md-2 > * {
519
+ flex: 0 0 auto;
520
+ width: 50%;
521
+ }
522
+
523
+ .row-cols-md-3 > * {
524
+ flex: 0 0 auto;
525
+ width: 33.33333333%;
526
+ }
527
+
528
+ .row-cols-md-4 > * {
529
+ flex: 0 0 auto;
530
+ width: 25%;
531
+ }
532
+
533
+ .row-cols-md-5 > * {
534
+ flex: 0 0 auto;
535
+ width: 20%;
536
+ }
537
+
538
+ .row-cols-md-6 > * {
539
+ flex: 0 0 auto;
540
+ width: 16.66666667%;
541
+ }
542
+
543
+ .col-md-auto {
544
+ flex: 0 0 auto;
545
+ width: auto;
546
+ }
547
+
548
+ .col-md-1 {
549
+ flex: 0 0 auto;
550
+ width: 8.33333333%;
551
+ }
552
+
553
+ .col-md-2 {
554
+ flex: 0 0 auto;
555
+ width: 16.66666667%;
556
+ }
557
+
558
+ .col-md-3 {
559
+ flex: 0 0 auto;
560
+ width: 25%;
561
+ }
562
+
563
+ .col-md-4 {
564
+ flex: 0 0 auto;
565
+ width: 33.33333333%;
566
+ }
567
+
568
+ .col-md-5 {
569
+ flex: 0 0 auto;
570
+ width: 41.66666667%;
571
+ }
572
+
573
+ .col-md-6 {
574
+ flex: 0 0 auto;
575
+ width: 50%;
576
+ }
577
+
578
+ .col-md-7 {
579
+ flex: 0 0 auto;
580
+ width: 58.33333333%;
581
+ }
582
+
583
+ .col-md-8 {
584
+ flex: 0 0 auto;
585
+ width: 66.66666667%;
586
+ }
587
+
588
+ .col-md-9 {
589
+ flex: 0 0 auto;
590
+ width: 75%;
591
+ }
592
+
593
+ .col-md-10 {
594
+ flex: 0 0 auto;
595
+ width: 83.33333333%;
596
+ }
597
+
598
+ .col-md-11 {
599
+ flex: 0 0 auto;
600
+ width: 91.66666667%;
601
+ }
602
+
603
+ .col-md-12 {
604
+ flex: 0 0 auto;
605
+ width: 100%;
606
+ }
607
+
608
+ .offset-md-0 {
609
+ margin-right: 0;
610
+ }
611
+
612
+ .offset-md-1 {
613
+ margin-right: 8.33333333%;
614
+ }
615
+
616
+ .offset-md-2 {
617
+ margin-right: 16.66666667%;
618
+ }
619
+
620
+ .offset-md-3 {
621
+ margin-right: 25%;
622
+ }
623
+
624
+ .offset-md-4 {
625
+ margin-right: 33.33333333%;
626
+ }
627
+
628
+ .offset-md-5 {
629
+ margin-right: 41.66666667%;
630
+ }
631
+
632
+ .offset-md-6 {
633
+ margin-right: 50%;
634
+ }
635
+
636
+ .offset-md-7 {
637
+ margin-right: 58.33333333%;
638
+ }
639
+
640
+ .offset-md-8 {
641
+ margin-right: 66.66666667%;
642
+ }
643
+
644
+ .offset-md-9 {
645
+ margin-right: 75%;
646
+ }
647
+
648
+ .offset-md-10 {
649
+ margin-right: 83.33333333%;
650
+ }
651
+
652
+ .offset-md-11 {
653
+ margin-right: 91.66666667%;
654
+ }
655
+
656
+ .g-md-0,
657
+ .gx-md-0 {
658
+ --bs-gutter-x: 0;
659
+ }
660
+
661
+ .g-md-0,
662
+ .gy-md-0 {
663
+ --bs-gutter-y: 0;
664
+ }
665
+
666
+ .g-md-1,
667
+ .gx-md-1 {
668
+ --bs-gutter-x: 0.25rem;
669
+ }
670
+
671
+ .g-md-1,
672
+ .gy-md-1 {
673
+ --bs-gutter-y: 0.25rem;
674
+ }
675
+
676
+ .g-md-2,
677
+ .gx-md-2 {
678
+ --bs-gutter-x: 0.5rem;
679
+ }
680
+
681
+ .g-md-2,
682
+ .gy-md-2 {
683
+ --bs-gutter-y: 0.5rem;
684
+ }
685
+
686
+ .g-md-3,
687
+ .gx-md-3 {
688
+ --bs-gutter-x: 1rem;
689
+ }
690
+
691
+ .g-md-3,
692
+ .gy-md-3 {
693
+ --bs-gutter-y: 1rem;
694
+ }
695
+
696
+ .g-md-4,
697
+ .gx-md-4 {
698
+ --bs-gutter-x: 1.5rem;
699
+ }
700
+
701
+ .g-md-4,
702
+ .gy-md-4 {
703
+ --bs-gutter-y: 1.5rem;
704
+ }
705
+
706
+ .g-md-5,
707
+ .gx-md-5 {
708
+ --bs-gutter-x: 3rem;
709
+ }
710
+
711
+ .g-md-5,
712
+ .gy-md-5 {
713
+ --bs-gutter-y: 3rem;
714
+ }
715
+ }
716
+
717
+ @media (min-width: 992px) {
718
+ .col-lg {
719
+ flex: 1 0 0%;
720
+ }
721
+
722
+ .row-cols-lg-auto > * {
723
+ flex: 0 0 auto;
724
+ width: auto;
725
+ }
726
+
727
+ .row-cols-lg-1 > * {
728
+ flex: 0 0 auto;
729
+ width: 100%;
730
+ }
731
+
732
+ .row-cols-lg-2 > * {
733
+ flex: 0 0 auto;
734
+ width: 50%;
735
+ }
736
+
737
+ .row-cols-lg-3 > * {
738
+ flex: 0 0 auto;
739
+ width: 33.33333333%;
740
+ }
741
+
742
+ .row-cols-lg-4 > * {
743
+ flex: 0 0 auto;
744
+ width: 25%;
745
+ }
746
+
747
+ .row-cols-lg-5 > * {
748
+ flex: 0 0 auto;
749
+ width: 20%;
750
+ }
751
+
752
+ .row-cols-lg-6 > * {
753
+ flex: 0 0 auto;
754
+ width: 16.66666667%;
755
+ }
756
+
757
+ .col-lg-auto {
758
+ flex: 0 0 auto;
759
+ width: auto;
760
+ }
761
+
762
+ .col-lg-1 {
763
+ flex: 0 0 auto;
764
+ width: 8.33333333%;
765
+ }
766
+
767
+ .col-lg-2 {
768
+ flex: 0 0 auto;
769
+ width: 16.66666667%;
770
+ }
771
+
772
+ .col-lg-3 {
773
+ flex: 0 0 auto;
774
+ width: 25%;
775
+ }
776
+
777
+ .col-lg-4 {
778
+ flex: 0 0 auto;
779
+ width: 33.33333333%;
780
+ }
781
+
782
+ .col-lg-5 {
783
+ flex: 0 0 auto;
784
+ width: 41.66666667%;
785
+ }
786
+
787
+ .col-lg-6 {
788
+ flex: 0 0 auto;
789
+ width: 50%;
790
+ }
791
+
792
+ .col-lg-7 {
793
+ flex: 0 0 auto;
794
+ width: 58.33333333%;
795
+ }
796
+
797
+ .col-lg-8 {
798
+ flex: 0 0 auto;
799
+ width: 66.66666667%;
800
+ }
801
+
802
+ .col-lg-9 {
803
+ flex: 0 0 auto;
804
+ width: 75%;
805
+ }
806
+
807
+ .col-lg-10 {
808
+ flex: 0 0 auto;
809
+ width: 83.33333333%;
810
+ }
811
+
812
+ .col-lg-11 {
813
+ flex: 0 0 auto;
814
+ width: 91.66666667%;
815
+ }
816
+
817
+ .col-lg-12 {
818
+ flex: 0 0 auto;
819
+ width: 100%;
820
+ }
821
+
822
+ .offset-lg-0 {
823
+ margin-right: 0;
824
+ }
825
+
826
+ .offset-lg-1 {
827
+ margin-right: 8.33333333%;
828
+ }
829
+
830
+ .offset-lg-2 {
831
+ margin-right: 16.66666667%;
832
+ }
833
+
834
+ .offset-lg-3 {
835
+ margin-right: 25%;
836
+ }
837
+
838
+ .offset-lg-4 {
839
+ margin-right: 33.33333333%;
840
+ }
841
+
842
+ .offset-lg-5 {
843
+ margin-right: 41.66666667%;
844
+ }
845
+
846
+ .offset-lg-6 {
847
+ margin-right: 50%;
848
+ }
849
+
850
+ .offset-lg-7 {
851
+ margin-right: 58.33333333%;
852
+ }
853
+
854
+ .offset-lg-8 {
855
+ margin-right: 66.66666667%;
856
+ }
857
+
858
+ .offset-lg-9 {
859
+ margin-right: 75%;
860
+ }
861
+
862
+ .offset-lg-10 {
863
+ margin-right: 83.33333333%;
864
+ }
865
+
866
+ .offset-lg-11 {
867
+ margin-right: 91.66666667%;
868
+ }
869
+
870
+ .g-lg-0,
871
+ .gx-lg-0 {
872
+ --bs-gutter-x: 0;
873
+ }
874
+
875
+ .g-lg-0,
876
+ .gy-lg-0 {
877
+ --bs-gutter-y: 0;
878
+ }
879
+
880
+ .g-lg-1,
881
+ .gx-lg-1 {
882
+ --bs-gutter-x: 0.25rem;
883
+ }
884
+
885
+ .g-lg-1,
886
+ .gy-lg-1 {
887
+ --bs-gutter-y: 0.25rem;
888
+ }
889
+
890
+ .g-lg-2,
891
+ .gx-lg-2 {
892
+ --bs-gutter-x: 0.5rem;
893
+ }
894
+
895
+ .g-lg-2,
896
+ .gy-lg-2 {
897
+ --bs-gutter-y: 0.5rem;
898
+ }
899
+
900
+ .g-lg-3,
901
+ .gx-lg-3 {
902
+ --bs-gutter-x: 1rem;
903
+ }
904
+
905
+ .g-lg-3,
906
+ .gy-lg-3 {
907
+ --bs-gutter-y: 1rem;
908
+ }
909
+
910
+ .g-lg-4,
911
+ .gx-lg-4 {
912
+ --bs-gutter-x: 1.5rem;
913
+ }
914
+
915
+ .g-lg-4,
916
+ .gy-lg-4 {
917
+ --bs-gutter-y: 1.5rem;
918
+ }
919
+
920
+ .g-lg-5,
921
+ .gx-lg-5 {
922
+ --bs-gutter-x: 3rem;
923
+ }
924
+
925
+ .g-lg-5,
926
+ .gy-lg-5 {
927
+ --bs-gutter-y: 3rem;
928
+ }
929
+ }
930
+
931
+ @media (min-width: 1200px) {
932
+ .col-xl {
933
+ flex: 1 0 0%;
934
+ }
935
+
936
+ .row-cols-xl-auto > * {
937
+ flex: 0 0 auto;
938
+ width: auto;
939
+ }
940
+
941
+ .row-cols-xl-1 > * {
942
+ flex: 0 0 auto;
943
+ width: 100%;
944
+ }
945
+
946
+ .row-cols-xl-2 > * {
947
+ flex: 0 0 auto;
948
+ width: 50%;
949
+ }
950
+
951
+ .row-cols-xl-3 > * {
952
+ flex: 0 0 auto;
953
+ width: 33.33333333%;
954
+ }
955
+
956
+ .row-cols-xl-4 > * {
957
+ flex: 0 0 auto;
958
+ width: 25%;
959
+ }
960
+
961
+ .row-cols-xl-5 > * {
962
+ flex: 0 0 auto;
963
+ width: 20%;
964
+ }
965
+
966
+ .row-cols-xl-6 > * {
967
+ flex: 0 0 auto;
968
+ width: 16.66666667%;
969
+ }
970
+
971
+ .col-xl-auto {
972
+ flex: 0 0 auto;
973
+ width: auto;
974
+ }
975
+
976
+ .col-xl-1 {
977
+ flex: 0 0 auto;
978
+ width: 8.33333333%;
979
+ }
980
+
981
+ .col-xl-2 {
982
+ flex: 0 0 auto;
983
+ width: 16.66666667%;
984
+ }
985
+
986
+ .col-xl-3 {
987
+ flex: 0 0 auto;
988
+ width: 25%;
989
+ }
990
+
991
+ .col-xl-4 {
992
+ flex: 0 0 auto;
993
+ width: 33.33333333%;
994
+ }
995
+
996
+ .col-xl-5 {
997
+ flex: 0 0 auto;
998
+ width: 41.66666667%;
999
+ }
1000
+
1001
+ .col-xl-6 {
1002
+ flex: 0 0 auto;
1003
+ width: 50%;
1004
+ }
1005
+
1006
+ .col-xl-7 {
1007
+ flex: 0 0 auto;
1008
+ width: 58.33333333%;
1009
+ }
1010
+
1011
+ .col-xl-8 {
1012
+ flex: 0 0 auto;
1013
+ width: 66.66666667%;
1014
+ }
1015
+
1016
+ .col-xl-9 {
1017
+ flex: 0 0 auto;
1018
+ width: 75%;
1019
+ }
1020
+
1021
+ .col-xl-10 {
1022
+ flex: 0 0 auto;
1023
+ width: 83.33333333%;
1024
+ }
1025
+
1026
+ .col-xl-11 {
1027
+ flex: 0 0 auto;
1028
+ width: 91.66666667%;
1029
+ }
1030
+
1031
+ .col-xl-12 {
1032
+ flex: 0 0 auto;
1033
+ width: 100%;
1034
+ }
1035
+
1036
+ .offset-xl-0 {
1037
+ margin-right: 0;
1038
+ }
1039
+
1040
+ .offset-xl-1 {
1041
+ margin-right: 8.33333333%;
1042
+ }
1043
+
1044
+ .offset-xl-2 {
1045
+ margin-right: 16.66666667%;
1046
+ }
1047
+
1048
+ .offset-xl-3 {
1049
+ margin-right: 25%;
1050
+ }
1051
+
1052
+ .offset-xl-4 {
1053
+ margin-right: 33.33333333%;
1054
+ }
1055
+
1056
+ .offset-xl-5 {
1057
+ margin-right: 41.66666667%;
1058
+ }
1059
+
1060
+ .offset-xl-6 {
1061
+ margin-right: 50%;
1062
+ }
1063
+
1064
+ .offset-xl-7 {
1065
+ margin-right: 58.33333333%;
1066
+ }
1067
+
1068
+ .offset-xl-8 {
1069
+ margin-right: 66.66666667%;
1070
+ }
1071
+
1072
+ .offset-xl-9 {
1073
+ margin-right: 75%;
1074
+ }
1075
+
1076
+ .offset-xl-10 {
1077
+ margin-right: 83.33333333%;
1078
+ }
1079
+
1080
+ .offset-xl-11 {
1081
+ margin-right: 91.66666667%;
1082
+ }
1083
+
1084
+ .g-xl-0,
1085
+ .gx-xl-0 {
1086
+ --bs-gutter-x: 0;
1087
+ }
1088
+
1089
+ .g-xl-0,
1090
+ .gy-xl-0 {
1091
+ --bs-gutter-y: 0;
1092
+ }
1093
+
1094
+ .g-xl-1,
1095
+ .gx-xl-1 {
1096
+ --bs-gutter-x: 0.25rem;
1097
+ }
1098
+
1099
+ .g-xl-1,
1100
+ .gy-xl-1 {
1101
+ --bs-gutter-y: 0.25rem;
1102
+ }
1103
+
1104
+ .g-xl-2,
1105
+ .gx-xl-2 {
1106
+ --bs-gutter-x: 0.5rem;
1107
+ }
1108
+
1109
+ .g-xl-2,
1110
+ .gy-xl-2 {
1111
+ --bs-gutter-y: 0.5rem;
1112
+ }
1113
+
1114
+ .g-xl-3,
1115
+ .gx-xl-3 {
1116
+ --bs-gutter-x: 1rem;
1117
+ }
1118
+
1119
+ .g-xl-3,
1120
+ .gy-xl-3 {
1121
+ --bs-gutter-y: 1rem;
1122
+ }
1123
+
1124
+ .g-xl-4,
1125
+ .gx-xl-4 {
1126
+ --bs-gutter-x: 1.5rem;
1127
+ }
1128
+
1129
+ .g-xl-4,
1130
+ .gy-xl-4 {
1131
+ --bs-gutter-y: 1.5rem;
1132
+ }
1133
+
1134
+ .g-xl-5,
1135
+ .gx-xl-5 {
1136
+ --bs-gutter-x: 3rem;
1137
+ }
1138
+
1139
+ .g-xl-5,
1140
+ .gy-xl-5 {
1141
+ --bs-gutter-y: 3rem;
1142
+ }
1143
+ }
1144
+
1145
+ @media (min-width: 1400px) {
1146
+ .col-xxl {
1147
+ flex: 1 0 0%;
1148
+ }
1149
+
1150
+ .row-cols-xxl-auto > * {
1151
+ flex: 0 0 auto;
1152
+ width: auto;
1153
+ }
1154
+
1155
+ .row-cols-xxl-1 > * {
1156
+ flex: 0 0 auto;
1157
+ width: 100%;
1158
+ }
1159
+
1160
+ .row-cols-xxl-2 > * {
1161
+ flex: 0 0 auto;
1162
+ width: 50%;
1163
+ }
1164
+
1165
+ .row-cols-xxl-3 > * {
1166
+ flex: 0 0 auto;
1167
+ width: 33.33333333%;
1168
+ }
1169
+
1170
+ .row-cols-xxl-4 > * {
1171
+ flex: 0 0 auto;
1172
+ width: 25%;
1173
+ }
1174
+
1175
+ .row-cols-xxl-5 > * {
1176
+ flex: 0 0 auto;
1177
+ width: 20%;
1178
+ }
1179
+
1180
+ .row-cols-xxl-6 > * {
1181
+ flex: 0 0 auto;
1182
+ width: 16.66666667%;
1183
+ }
1184
+
1185
+ .col-xxl-auto {
1186
+ flex: 0 0 auto;
1187
+ width: auto;
1188
+ }
1189
+
1190
+ .col-xxl-1 {
1191
+ flex: 0 0 auto;
1192
+ width: 8.33333333%;
1193
+ }
1194
+
1195
+ .col-xxl-2 {
1196
+ flex: 0 0 auto;
1197
+ width: 16.66666667%;
1198
+ }
1199
+
1200
+ .col-xxl-3 {
1201
+ flex: 0 0 auto;
1202
+ width: 25%;
1203
+ }
1204
+
1205
+ .col-xxl-4 {
1206
+ flex: 0 0 auto;
1207
+ width: 33.33333333%;
1208
+ }
1209
+
1210
+ .col-xxl-5 {
1211
+ flex: 0 0 auto;
1212
+ width: 41.66666667%;
1213
+ }
1214
+
1215
+ .col-xxl-6 {
1216
+ flex: 0 0 auto;
1217
+ width: 50%;
1218
+ }
1219
+
1220
+ .col-xxl-7 {
1221
+ flex: 0 0 auto;
1222
+ width: 58.33333333%;
1223
+ }
1224
+
1225
+ .col-xxl-8 {
1226
+ flex: 0 0 auto;
1227
+ width: 66.66666667%;
1228
+ }
1229
+
1230
+ .col-xxl-9 {
1231
+ flex: 0 0 auto;
1232
+ width: 75%;
1233
+ }
1234
+
1235
+ .col-xxl-10 {
1236
+ flex: 0 0 auto;
1237
+ width: 83.33333333%;
1238
+ }
1239
+
1240
+ .col-xxl-11 {
1241
+ flex: 0 0 auto;
1242
+ width: 91.66666667%;
1243
+ }
1244
+
1245
+ .col-xxl-12 {
1246
+ flex: 0 0 auto;
1247
+ width: 100%;
1248
+ }
1249
+
1250
+ .offset-xxl-0 {
1251
+ margin-right: 0;
1252
+ }
1253
+
1254
+ .offset-xxl-1 {
1255
+ margin-right: 8.33333333%;
1256
+ }
1257
+
1258
+ .offset-xxl-2 {
1259
+ margin-right: 16.66666667%;
1260
+ }
1261
+
1262
+ .offset-xxl-3 {
1263
+ margin-right: 25%;
1264
+ }
1265
+
1266
+ .offset-xxl-4 {
1267
+ margin-right: 33.33333333%;
1268
+ }
1269
+
1270
+ .offset-xxl-5 {
1271
+ margin-right: 41.66666667%;
1272
+ }
1273
+
1274
+ .offset-xxl-6 {
1275
+ margin-right: 50%;
1276
+ }
1277
+
1278
+ .offset-xxl-7 {
1279
+ margin-right: 58.33333333%;
1280
+ }
1281
+
1282
+ .offset-xxl-8 {
1283
+ margin-right: 66.66666667%;
1284
+ }
1285
+
1286
+ .offset-xxl-9 {
1287
+ margin-right: 75%;
1288
+ }
1289
+
1290
+ .offset-xxl-10 {
1291
+ margin-right: 83.33333333%;
1292
+ }
1293
+
1294
+ .offset-xxl-11 {
1295
+ margin-right: 91.66666667%;
1296
+ }
1297
+
1298
+ .g-xxl-0,
1299
+ .gx-xxl-0 {
1300
+ --bs-gutter-x: 0;
1301
+ }
1302
+
1303
+ .g-xxl-0,
1304
+ .gy-xxl-0 {
1305
+ --bs-gutter-y: 0;
1306
+ }
1307
+
1308
+ .g-xxl-1,
1309
+ .gx-xxl-1 {
1310
+ --bs-gutter-x: 0.25rem;
1311
+ }
1312
+
1313
+ .g-xxl-1,
1314
+ .gy-xxl-1 {
1315
+ --bs-gutter-y: 0.25rem;
1316
+ }
1317
+
1318
+ .g-xxl-2,
1319
+ .gx-xxl-2 {
1320
+ --bs-gutter-x: 0.5rem;
1321
+ }
1322
+
1323
+ .g-xxl-2,
1324
+ .gy-xxl-2 {
1325
+ --bs-gutter-y: 0.5rem;
1326
+ }
1327
+
1328
+ .g-xxl-3,
1329
+ .gx-xxl-3 {
1330
+ --bs-gutter-x: 1rem;
1331
+ }
1332
+
1333
+ .g-xxl-3,
1334
+ .gy-xxl-3 {
1335
+ --bs-gutter-y: 1rem;
1336
+ }
1337
+
1338
+ .g-xxl-4,
1339
+ .gx-xxl-4 {
1340
+ --bs-gutter-x: 1.5rem;
1341
+ }
1342
+
1343
+ .g-xxl-4,
1344
+ .gy-xxl-4 {
1345
+ --bs-gutter-y: 1.5rem;
1346
+ }
1347
+
1348
+ .g-xxl-5,
1349
+ .gx-xxl-5 {
1350
+ --bs-gutter-x: 3rem;
1351
+ }
1352
+
1353
+ .g-xxl-5,
1354
+ .gy-xxl-5 {
1355
+ --bs-gutter-y: 3rem;
1356
+ }
1357
+ }
1358
+
1359
+ .d-inline {
1360
+ display: inline !important;
1361
+ }
1362
+
1363
+ .d-inline-block {
1364
+ display: inline-block !important;
1365
+ }
1366
+
1367
+ .d-block {
1368
+ display: block !important;
1369
+ }
1370
+
1371
+ .d-grid {
1372
+ display: grid !important;
1373
+ }
1374
+
1375
+ .d-inline-grid {
1376
+ display: inline-grid !important;
1377
+ }
1378
+
1379
+ .d-table {
1380
+ display: table !important;
1381
+ }
1382
+
1383
+ .d-table-row {
1384
+ display: table-row !important;
1385
+ }
1386
+
1387
+ .d-table-cell {
1388
+ display: table-cell !important;
1389
+ }
1390
+
1391
+ .d-flex {
1392
+ display: flex !important;
1393
+ }
1394
+
1395
+ .d-inline-flex {
1396
+ display: inline-flex !important;
1397
+ }
1398
+
1399
+ .d-none {
1400
+ display: none !important;
1401
+ }
1402
+
1403
+ .flex-fill {
1404
+ flex: 1 1 auto !important;
1405
+ }
1406
+
1407
+ .flex-row {
1408
+ flex-direction: row !important;
1409
+ }
1410
+
1411
+ .flex-column {
1412
+ flex-direction: column !important;
1413
+ }
1414
+
1415
+ .flex-row-reverse {
1416
+ flex-direction: row-reverse !important;
1417
+ }
1418
+
1419
+ .flex-column-reverse {
1420
+ flex-direction: column-reverse !important;
1421
+ }
1422
+
1423
+ .flex-grow-0 {
1424
+ flex-grow: 0 !important;
1425
+ }
1426
+
1427
+ .flex-grow-1 {
1428
+ flex-grow: 1 !important;
1429
+ }
1430
+
1431
+ .flex-shrink-0 {
1432
+ flex-shrink: 0 !important;
1433
+ }
1434
+
1435
+ .flex-shrink-1 {
1436
+ flex-shrink: 1 !important;
1437
+ }
1438
+
1439
+ .flex-wrap {
1440
+ flex-wrap: wrap !important;
1441
+ }
1442
+
1443
+ .flex-nowrap {
1444
+ flex-wrap: nowrap !important;
1445
+ }
1446
+
1447
+ .flex-wrap-reverse {
1448
+ flex-wrap: wrap-reverse !important;
1449
+ }
1450
+
1451
+ .justify-content-start {
1452
+ justify-content: flex-start !important;
1453
+ }
1454
+
1455
+ .justify-content-end {
1456
+ justify-content: flex-end !important;
1457
+ }
1458
+
1459
+ .justify-content-center {
1460
+ justify-content: center !important;
1461
+ }
1462
+
1463
+ .justify-content-between {
1464
+ justify-content: space-between !important;
1465
+ }
1466
+
1467
+ .justify-content-around {
1468
+ justify-content: space-around !important;
1469
+ }
1470
+
1471
+ .justify-content-evenly {
1472
+ justify-content: space-evenly !important;
1473
+ }
1474
+
1475
+ .align-items-start {
1476
+ align-items: flex-start !important;
1477
+ }
1478
+
1479
+ .align-items-end {
1480
+ align-items: flex-end !important;
1481
+ }
1482
+
1483
+ .align-items-center {
1484
+ align-items: center !important;
1485
+ }
1486
+
1487
+ .align-items-baseline {
1488
+ align-items: baseline !important;
1489
+ }
1490
+
1491
+ .align-items-stretch {
1492
+ align-items: stretch !important;
1493
+ }
1494
+
1495
+ .align-content-start {
1496
+ align-content: flex-start !important;
1497
+ }
1498
+
1499
+ .align-content-end {
1500
+ align-content: flex-end !important;
1501
+ }
1502
+
1503
+ .align-content-center {
1504
+ align-content: center !important;
1505
+ }
1506
+
1507
+ .align-content-between {
1508
+ align-content: space-between !important;
1509
+ }
1510
+
1511
+ .align-content-around {
1512
+ align-content: space-around !important;
1513
+ }
1514
+
1515
+ .align-content-stretch {
1516
+ align-content: stretch !important;
1517
+ }
1518
+
1519
+ .align-self-auto {
1520
+ align-self: auto !important;
1521
+ }
1522
+
1523
+ .align-self-start {
1524
+ align-self: flex-start !important;
1525
+ }
1526
+
1527
+ .align-self-end {
1528
+ align-self: flex-end !important;
1529
+ }
1530
+
1531
+ .align-self-center {
1532
+ align-self: center !important;
1533
+ }
1534
+
1535
+ .align-self-baseline {
1536
+ align-self: baseline !important;
1537
+ }
1538
+
1539
+ .align-self-stretch {
1540
+ align-self: stretch !important;
1541
+ }
1542
+
1543
+ .order-first {
1544
+ order: -1 !important;
1545
+ }
1546
+
1547
+ .order-0 {
1548
+ order: 0 !important;
1549
+ }
1550
+
1551
+ .order-1 {
1552
+ order: 1 !important;
1553
+ }
1554
+
1555
+ .order-2 {
1556
+ order: 2 !important;
1557
+ }
1558
+
1559
+ .order-3 {
1560
+ order: 3 !important;
1561
+ }
1562
+
1563
+ .order-4 {
1564
+ order: 4 !important;
1565
+ }
1566
+
1567
+ .order-5 {
1568
+ order: 5 !important;
1569
+ }
1570
+
1571
+ .order-last {
1572
+ order: 6 !important;
1573
+ }
1574
+
1575
+ .m-0 {
1576
+ margin: 0 !important;
1577
+ }
1578
+
1579
+ .m-1 {
1580
+ margin: 0.25rem !important;
1581
+ }
1582
+
1583
+ .m-2 {
1584
+ margin: 0.5rem !important;
1585
+ }
1586
+
1587
+ .m-3 {
1588
+ margin: 1rem !important;
1589
+ }
1590
+
1591
+ .m-4 {
1592
+ margin: 1.5rem !important;
1593
+ }
1594
+
1595
+ .m-5 {
1596
+ margin: 3rem !important;
1597
+ }
1598
+
1599
+ .m-auto {
1600
+ margin: auto !important;
1601
+ }
1602
+
1603
+ .mx-0 {
1604
+ margin-left: 0 !important;
1605
+ margin-right: 0 !important;
1606
+ }
1607
+
1608
+ .mx-1 {
1609
+ margin-left: 0.25rem !important;
1610
+ margin-right: 0.25rem !important;
1611
+ }
1612
+
1613
+ .mx-2 {
1614
+ margin-left: 0.5rem !important;
1615
+ margin-right: 0.5rem !important;
1616
+ }
1617
+
1618
+ .mx-3 {
1619
+ margin-left: 1rem !important;
1620
+ margin-right: 1rem !important;
1621
+ }
1622
+
1623
+ .mx-4 {
1624
+ margin-left: 1.5rem !important;
1625
+ margin-right: 1.5rem !important;
1626
+ }
1627
+
1628
+ .mx-5 {
1629
+ margin-left: 3rem !important;
1630
+ margin-right: 3rem !important;
1631
+ }
1632
+
1633
+ .mx-auto {
1634
+ margin-left: auto !important;
1635
+ margin-right: auto !important;
1636
+ }
1637
+
1638
+ .my-0 {
1639
+ margin-top: 0 !important;
1640
+ margin-bottom: 0 !important;
1641
+ }
1642
+
1643
+ .my-1 {
1644
+ margin-top: 0.25rem !important;
1645
+ margin-bottom: 0.25rem !important;
1646
+ }
1647
+
1648
+ .my-2 {
1649
+ margin-top: 0.5rem !important;
1650
+ margin-bottom: 0.5rem !important;
1651
+ }
1652
+
1653
+ .my-3 {
1654
+ margin-top: 1rem !important;
1655
+ margin-bottom: 1rem !important;
1656
+ }
1657
+
1658
+ .my-4 {
1659
+ margin-top: 1.5rem !important;
1660
+ margin-bottom: 1.5rem !important;
1661
+ }
1662
+
1663
+ .my-5 {
1664
+ margin-top: 3rem !important;
1665
+ margin-bottom: 3rem !important;
1666
+ }
1667
+
1668
+ .my-auto {
1669
+ margin-top: auto !important;
1670
+ margin-bottom: auto !important;
1671
+ }
1672
+
1673
+ .mt-0 {
1674
+ margin-top: 0 !important;
1675
+ }
1676
+
1677
+ .mt-1 {
1678
+ margin-top: 0.25rem !important;
1679
+ }
1680
+
1681
+ .mt-2 {
1682
+ margin-top: 0.5rem !important;
1683
+ }
1684
+
1685
+ .mt-3 {
1686
+ margin-top: 1rem !important;
1687
+ }
1688
+
1689
+ .mt-4 {
1690
+ margin-top: 1.5rem !important;
1691
+ }
1692
+
1693
+ .mt-5 {
1694
+ margin-top: 3rem !important;
1695
+ }
1696
+
1697
+ .mt-auto {
1698
+ margin-top: auto !important;
1699
+ }
1700
+
1701
+ .me-0 {
1702
+ margin-left: 0 !important;
1703
+ }
1704
+
1705
+ .me-1 {
1706
+ margin-left: 0.25rem !important;
1707
+ }
1708
+
1709
+ .me-2 {
1710
+ margin-left: 0.5rem !important;
1711
+ }
1712
+
1713
+ .me-3 {
1714
+ margin-left: 1rem !important;
1715
+ }
1716
+
1717
+ .me-4 {
1718
+ margin-left: 1.5rem !important;
1719
+ }
1720
+
1721
+ .me-5 {
1722
+ margin-left: 3rem !important;
1723
+ }
1724
+
1725
+ .me-auto {
1726
+ margin-left: auto !important;
1727
+ }
1728
+
1729
+ .mb-0 {
1730
+ margin-bottom: 0 !important;
1731
+ }
1732
+
1733
+ .mb-1 {
1734
+ margin-bottom: 0.25rem !important;
1735
+ }
1736
+
1737
+ .mb-2 {
1738
+ margin-bottom: 0.5rem !important;
1739
+ }
1740
+
1741
+ .mb-3 {
1742
+ margin-bottom: 1rem !important;
1743
+ }
1744
+
1745
+ .mb-4 {
1746
+ margin-bottom: 1.5rem !important;
1747
+ }
1748
+
1749
+ .mb-5 {
1750
+ margin-bottom: 3rem !important;
1751
+ }
1752
+
1753
+ .mb-auto {
1754
+ margin-bottom: auto !important;
1755
+ }
1756
+
1757
+ .ms-0 {
1758
+ margin-right: 0 !important;
1759
+ }
1760
+
1761
+ .ms-1 {
1762
+ margin-right: 0.25rem !important;
1763
+ }
1764
+
1765
+ .ms-2 {
1766
+ margin-right: 0.5rem !important;
1767
+ }
1768
+
1769
+ .ms-3 {
1770
+ margin-right: 1rem !important;
1771
+ }
1772
+
1773
+ .ms-4 {
1774
+ margin-right: 1.5rem !important;
1775
+ }
1776
+
1777
+ .ms-5 {
1778
+ margin-right: 3rem !important;
1779
+ }
1780
+
1781
+ .ms-auto {
1782
+ margin-right: auto !important;
1783
+ }
1784
+
1785
+ .p-0 {
1786
+ padding: 0 !important;
1787
+ }
1788
+
1789
+ .p-1 {
1790
+ padding: 0.25rem !important;
1791
+ }
1792
+
1793
+ .p-2 {
1794
+ padding: 0.5rem !important;
1795
+ }
1796
+
1797
+ .p-3 {
1798
+ padding: 1rem !important;
1799
+ }
1800
+
1801
+ .p-4 {
1802
+ padding: 1.5rem !important;
1803
+ }
1804
+
1805
+ .p-5 {
1806
+ padding: 3rem !important;
1807
+ }
1808
+
1809
+ .px-0 {
1810
+ padding-left: 0 !important;
1811
+ padding-right: 0 !important;
1812
+ }
1813
+
1814
+ .px-1 {
1815
+ padding-left: 0.25rem !important;
1816
+ padding-right: 0.25rem !important;
1817
+ }
1818
+
1819
+ .px-2 {
1820
+ padding-left: 0.5rem !important;
1821
+ padding-right: 0.5rem !important;
1822
+ }
1823
+
1824
+ .px-3 {
1825
+ padding-left: 1rem !important;
1826
+ padding-right: 1rem !important;
1827
+ }
1828
+
1829
+ .px-4 {
1830
+ padding-left: 1.5rem !important;
1831
+ padding-right: 1.5rem !important;
1832
+ }
1833
+
1834
+ .px-5 {
1835
+ padding-left: 3rem !important;
1836
+ padding-right: 3rem !important;
1837
+ }
1838
+
1839
+ .py-0 {
1840
+ padding-top: 0 !important;
1841
+ padding-bottom: 0 !important;
1842
+ }
1843
+
1844
+ .py-1 {
1845
+ padding-top: 0.25rem !important;
1846
+ padding-bottom: 0.25rem !important;
1847
+ }
1848
+
1849
+ .py-2 {
1850
+ padding-top: 0.5rem !important;
1851
+ padding-bottom: 0.5rem !important;
1852
+ }
1853
+
1854
+ .py-3 {
1855
+ padding-top: 1rem !important;
1856
+ padding-bottom: 1rem !important;
1857
+ }
1858
+
1859
+ .py-4 {
1860
+ padding-top: 1.5rem !important;
1861
+ padding-bottom: 1.5rem !important;
1862
+ }
1863
+
1864
+ .py-5 {
1865
+ padding-top: 3rem !important;
1866
+ padding-bottom: 3rem !important;
1867
+ }
1868
+
1869
+ .pt-0 {
1870
+ padding-top: 0 !important;
1871
+ }
1872
+
1873
+ .pt-1 {
1874
+ padding-top: 0.25rem !important;
1875
+ }
1876
+
1877
+ .pt-2 {
1878
+ padding-top: 0.5rem !important;
1879
+ }
1880
+
1881
+ .pt-3 {
1882
+ padding-top: 1rem !important;
1883
+ }
1884
+
1885
+ .pt-4 {
1886
+ padding-top: 1.5rem !important;
1887
+ }
1888
+
1889
+ .pt-5 {
1890
+ padding-top: 3rem !important;
1891
+ }
1892
+
1893
+ .pe-0 {
1894
+ padding-left: 0 !important;
1895
+ }
1896
+
1897
+ .pe-1 {
1898
+ padding-left: 0.25rem !important;
1899
+ }
1900
+
1901
+ .pe-2 {
1902
+ padding-left: 0.5rem !important;
1903
+ }
1904
+
1905
+ .pe-3 {
1906
+ padding-left: 1rem !important;
1907
+ }
1908
+
1909
+ .pe-4 {
1910
+ padding-left: 1.5rem !important;
1911
+ }
1912
+
1913
+ .pe-5 {
1914
+ padding-left: 3rem !important;
1915
+ }
1916
+
1917
+ .pb-0 {
1918
+ padding-bottom: 0 !important;
1919
+ }
1920
+
1921
+ .pb-1 {
1922
+ padding-bottom: 0.25rem !important;
1923
+ }
1924
+
1925
+ .pb-2 {
1926
+ padding-bottom: 0.5rem !important;
1927
+ }
1928
+
1929
+ .pb-3 {
1930
+ padding-bottom: 1rem !important;
1931
+ }
1932
+
1933
+ .pb-4 {
1934
+ padding-bottom: 1.5rem !important;
1935
+ }
1936
+
1937
+ .pb-5 {
1938
+ padding-bottom: 3rem !important;
1939
+ }
1940
+
1941
+ .ps-0 {
1942
+ padding-right: 0 !important;
1943
+ }
1944
+
1945
+ .ps-1 {
1946
+ padding-right: 0.25rem !important;
1947
+ }
1948
+
1949
+ .ps-2 {
1950
+ padding-right: 0.5rem !important;
1951
+ }
1952
+
1953
+ .ps-3 {
1954
+ padding-right: 1rem !important;
1955
+ }
1956
+
1957
+ .ps-4 {
1958
+ padding-right: 1.5rem !important;
1959
+ }
1960
+
1961
+ .ps-5 {
1962
+ padding-right: 3rem !important;
1963
+ }
1964
+
1965
+ @media (min-width: 576px) {
1966
+ .d-sm-inline {
1967
+ display: inline !important;
1968
+ }
1969
+
1970
+ .d-sm-inline-block {
1971
+ display: inline-block !important;
1972
+ }
1973
+
1974
+ .d-sm-block {
1975
+ display: block !important;
1976
+ }
1977
+
1978
+ .d-sm-grid {
1979
+ display: grid !important;
1980
+ }
1981
+
1982
+ .d-sm-inline-grid {
1983
+ display: inline-grid !important;
1984
+ }
1985
+
1986
+ .d-sm-table {
1987
+ display: table !important;
1988
+ }
1989
+
1990
+ .d-sm-table-row {
1991
+ display: table-row !important;
1992
+ }
1993
+
1994
+ .d-sm-table-cell {
1995
+ display: table-cell !important;
1996
+ }
1997
+
1998
+ .d-sm-flex {
1999
+ display: flex !important;
2000
+ }
2001
+
2002
+ .d-sm-inline-flex {
2003
+ display: inline-flex !important;
2004
+ }
2005
+
2006
+ .d-sm-none {
2007
+ display: none !important;
2008
+ }
2009
+
2010
+ .flex-sm-fill {
2011
+ flex: 1 1 auto !important;
2012
+ }
2013
+
2014
+ .flex-sm-row {
2015
+ flex-direction: row !important;
2016
+ }
2017
+
2018
+ .flex-sm-column {
2019
+ flex-direction: column !important;
2020
+ }
2021
+
2022
+ .flex-sm-row-reverse {
2023
+ flex-direction: row-reverse !important;
2024
+ }
2025
+
2026
+ .flex-sm-column-reverse {
2027
+ flex-direction: column-reverse !important;
2028
+ }
2029
+
2030
+ .flex-sm-grow-0 {
2031
+ flex-grow: 0 !important;
2032
+ }
2033
+
2034
+ .flex-sm-grow-1 {
2035
+ flex-grow: 1 !important;
2036
+ }
2037
+
2038
+ .flex-sm-shrink-0 {
2039
+ flex-shrink: 0 !important;
2040
+ }
2041
+
2042
+ .flex-sm-shrink-1 {
2043
+ flex-shrink: 1 !important;
2044
+ }
2045
+
2046
+ .flex-sm-wrap {
2047
+ flex-wrap: wrap !important;
2048
+ }
2049
+
2050
+ .flex-sm-nowrap {
2051
+ flex-wrap: nowrap !important;
2052
+ }
2053
+
2054
+ .flex-sm-wrap-reverse {
2055
+ flex-wrap: wrap-reverse !important;
2056
+ }
2057
+
2058
+ .justify-content-sm-start {
2059
+ justify-content: flex-start !important;
2060
+ }
2061
+
2062
+ .justify-content-sm-end {
2063
+ justify-content: flex-end !important;
2064
+ }
2065
+
2066
+ .justify-content-sm-center {
2067
+ justify-content: center !important;
2068
+ }
2069
+
2070
+ .justify-content-sm-between {
2071
+ justify-content: space-between !important;
2072
+ }
2073
+
2074
+ .justify-content-sm-around {
2075
+ justify-content: space-around !important;
2076
+ }
2077
+
2078
+ .justify-content-sm-evenly {
2079
+ justify-content: space-evenly !important;
2080
+ }
2081
+
2082
+ .align-items-sm-start {
2083
+ align-items: flex-start !important;
2084
+ }
2085
+
2086
+ .align-items-sm-end {
2087
+ align-items: flex-end !important;
2088
+ }
2089
+
2090
+ .align-items-sm-center {
2091
+ align-items: center !important;
2092
+ }
2093
+
2094
+ .align-items-sm-baseline {
2095
+ align-items: baseline !important;
2096
+ }
2097
+
2098
+ .align-items-sm-stretch {
2099
+ align-items: stretch !important;
2100
+ }
2101
+
2102
+ .align-content-sm-start {
2103
+ align-content: flex-start !important;
2104
+ }
2105
+
2106
+ .align-content-sm-end {
2107
+ align-content: flex-end !important;
2108
+ }
2109
+
2110
+ .align-content-sm-center {
2111
+ align-content: center !important;
2112
+ }
2113
+
2114
+ .align-content-sm-between {
2115
+ align-content: space-between !important;
2116
+ }
2117
+
2118
+ .align-content-sm-around {
2119
+ align-content: space-around !important;
2120
+ }
2121
+
2122
+ .align-content-sm-stretch {
2123
+ align-content: stretch !important;
2124
+ }
2125
+
2126
+ .align-self-sm-auto {
2127
+ align-self: auto !important;
2128
+ }
2129
+
2130
+ .align-self-sm-start {
2131
+ align-self: flex-start !important;
2132
+ }
2133
+
2134
+ .align-self-sm-end {
2135
+ align-self: flex-end !important;
2136
+ }
2137
+
2138
+ .align-self-sm-center {
2139
+ align-self: center !important;
2140
+ }
2141
+
2142
+ .align-self-sm-baseline {
2143
+ align-self: baseline !important;
2144
+ }
2145
+
2146
+ .align-self-sm-stretch {
2147
+ align-self: stretch !important;
2148
+ }
2149
+
2150
+ .order-sm-first {
2151
+ order: -1 !important;
2152
+ }
2153
+
2154
+ .order-sm-0 {
2155
+ order: 0 !important;
2156
+ }
2157
+
2158
+ .order-sm-1 {
2159
+ order: 1 !important;
2160
+ }
2161
+
2162
+ .order-sm-2 {
2163
+ order: 2 !important;
2164
+ }
2165
+
2166
+ .order-sm-3 {
2167
+ order: 3 !important;
2168
+ }
2169
+
2170
+ .order-sm-4 {
2171
+ order: 4 !important;
2172
+ }
2173
+
2174
+ .order-sm-5 {
2175
+ order: 5 !important;
2176
+ }
2177
+
2178
+ .order-sm-last {
2179
+ order: 6 !important;
2180
+ }
2181
+
2182
+ .m-sm-0 {
2183
+ margin: 0 !important;
2184
+ }
2185
+
2186
+ .m-sm-1 {
2187
+ margin: 0.25rem !important;
2188
+ }
2189
+
2190
+ .m-sm-2 {
2191
+ margin: 0.5rem !important;
2192
+ }
2193
+
2194
+ .m-sm-3 {
2195
+ margin: 1rem !important;
2196
+ }
2197
+
2198
+ .m-sm-4 {
2199
+ margin: 1.5rem !important;
2200
+ }
2201
+
2202
+ .m-sm-5 {
2203
+ margin: 3rem !important;
2204
+ }
2205
+
2206
+ .m-sm-auto {
2207
+ margin: auto !important;
2208
+ }
2209
+
2210
+ .mx-sm-0 {
2211
+ margin-left: 0 !important;
2212
+ margin-right: 0 !important;
2213
+ }
2214
+
2215
+ .mx-sm-1 {
2216
+ margin-left: 0.25rem !important;
2217
+ margin-right: 0.25rem !important;
2218
+ }
2219
+
2220
+ .mx-sm-2 {
2221
+ margin-left: 0.5rem !important;
2222
+ margin-right: 0.5rem !important;
2223
+ }
2224
+
2225
+ .mx-sm-3 {
2226
+ margin-left: 1rem !important;
2227
+ margin-right: 1rem !important;
2228
+ }
2229
+
2230
+ .mx-sm-4 {
2231
+ margin-left: 1.5rem !important;
2232
+ margin-right: 1.5rem !important;
2233
+ }
2234
+
2235
+ .mx-sm-5 {
2236
+ margin-left: 3rem !important;
2237
+ margin-right: 3rem !important;
2238
+ }
2239
+
2240
+ .mx-sm-auto {
2241
+ margin-left: auto !important;
2242
+ margin-right: auto !important;
2243
+ }
2244
+
2245
+ .my-sm-0 {
2246
+ margin-top: 0 !important;
2247
+ margin-bottom: 0 !important;
2248
+ }
2249
+
2250
+ .my-sm-1 {
2251
+ margin-top: 0.25rem !important;
2252
+ margin-bottom: 0.25rem !important;
2253
+ }
2254
+
2255
+ .my-sm-2 {
2256
+ margin-top: 0.5rem !important;
2257
+ margin-bottom: 0.5rem !important;
2258
+ }
2259
+
2260
+ .my-sm-3 {
2261
+ margin-top: 1rem !important;
2262
+ margin-bottom: 1rem !important;
2263
+ }
2264
+
2265
+ .my-sm-4 {
2266
+ margin-top: 1.5rem !important;
2267
+ margin-bottom: 1.5rem !important;
2268
+ }
2269
+
2270
+ .my-sm-5 {
2271
+ margin-top: 3rem !important;
2272
+ margin-bottom: 3rem !important;
2273
+ }
2274
+
2275
+ .my-sm-auto {
2276
+ margin-top: auto !important;
2277
+ margin-bottom: auto !important;
2278
+ }
2279
+
2280
+ .mt-sm-0 {
2281
+ margin-top: 0 !important;
2282
+ }
2283
+
2284
+ .mt-sm-1 {
2285
+ margin-top: 0.25rem !important;
2286
+ }
2287
+
2288
+ .mt-sm-2 {
2289
+ margin-top: 0.5rem !important;
2290
+ }
2291
+
2292
+ .mt-sm-3 {
2293
+ margin-top: 1rem !important;
2294
+ }
2295
+
2296
+ .mt-sm-4 {
2297
+ margin-top: 1.5rem !important;
2298
+ }
2299
+
2300
+ .mt-sm-5 {
2301
+ margin-top: 3rem !important;
2302
+ }
2303
+
2304
+ .mt-sm-auto {
2305
+ margin-top: auto !important;
2306
+ }
2307
+
2308
+ .me-sm-0 {
2309
+ margin-left: 0 !important;
2310
+ }
2311
+
2312
+ .me-sm-1 {
2313
+ margin-left: 0.25rem !important;
2314
+ }
2315
+
2316
+ .me-sm-2 {
2317
+ margin-left: 0.5rem !important;
2318
+ }
2319
+
2320
+ .me-sm-3 {
2321
+ margin-left: 1rem !important;
2322
+ }
2323
+
2324
+ .me-sm-4 {
2325
+ margin-left: 1.5rem !important;
2326
+ }
2327
+
2328
+ .me-sm-5 {
2329
+ margin-left: 3rem !important;
2330
+ }
2331
+
2332
+ .me-sm-auto {
2333
+ margin-left: auto !important;
2334
+ }
2335
+
2336
+ .mb-sm-0 {
2337
+ margin-bottom: 0 !important;
2338
+ }
2339
+
2340
+ .mb-sm-1 {
2341
+ margin-bottom: 0.25rem !important;
2342
+ }
2343
+
2344
+ .mb-sm-2 {
2345
+ margin-bottom: 0.5rem !important;
2346
+ }
2347
+
2348
+ .mb-sm-3 {
2349
+ margin-bottom: 1rem !important;
2350
+ }
2351
+
2352
+ .mb-sm-4 {
2353
+ margin-bottom: 1.5rem !important;
2354
+ }
2355
+
2356
+ .mb-sm-5 {
2357
+ margin-bottom: 3rem !important;
2358
+ }
2359
+
2360
+ .mb-sm-auto {
2361
+ margin-bottom: auto !important;
2362
+ }
2363
+
2364
+ .ms-sm-0 {
2365
+ margin-right: 0 !important;
2366
+ }
2367
+
2368
+ .ms-sm-1 {
2369
+ margin-right: 0.25rem !important;
2370
+ }
2371
+
2372
+ .ms-sm-2 {
2373
+ margin-right: 0.5rem !important;
2374
+ }
2375
+
2376
+ .ms-sm-3 {
2377
+ margin-right: 1rem !important;
2378
+ }
2379
+
2380
+ .ms-sm-4 {
2381
+ margin-right: 1.5rem !important;
2382
+ }
2383
+
2384
+ .ms-sm-5 {
2385
+ margin-right: 3rem !important;
2386
+ }
2387
+
2388
+ .ms-sm-auto {
2389
+ margin-right: auto !important;
2390
+ }
2391
+
2392
+ .p-sm-0 {
2393
+ padding: 0 !important;
2394
+ }
2395
+
2396
+ .p-sm-1 {
2397
+ padding: 0.25rem !important;
2398
+ }
2399
+
2400
+ .p-sm-2 {
2401
+ padding: 0.5rem !important;
2402
+ }
2403
+
2404
+ .p-sm-3 {
2405
+ padding: 1rem !important;
2406
+ }
2407
+
2408
+ .p-sm-4 {
2409
+ padding: 1.5rem !important;
2410
+ }
2411
+
2412
+ .p-sm-5 {
2413
+ padding: 3rem !important;
2414
+ }
2415
+
2416
+ .px-sm-0 {
2417
+ padding-left: 0 !important;
2418
+ padding-right: 0 !important;
2419
+ }
2420
+
2421
+ .px-sm-1 {
2422
+ padding-left: 0.25rem !important;
2423
+ padding-right: 0.25rem !important;
2424
+ }
2425
+
2426
+ .px-sm-2 {
2427
+ padding-left: 0.5rem !important;
2428
+ padding-right: 0.5rem !important;
2429
+ }
2430
+
2431
+ .px-sm-3 {
2432
+ padding-left: 1rem !important;
2433
+ padding-right: 1rem !important;
2434
+ }
2435
+
2436
+ .px-sm-4 {
2437
+ padding-left: 1.5rem !important;
2438
+ padding-right: 1.5rem !important;
2439
+ }
2440
+
2441
+ .px-sm-5 {
2442
+ padding-left: 3rem !important;
2443
+ padding-right: 3rem !important;
2444
+ }
2445
+
2446
+ .py-sm-0 {
2447
+ padding-top: 0 !important;
2448
+ padding-bottom: 0 !important;
2449
+ }
2450
+
2451
+ .py-sm-1 {
2452
+ padding-top: 0.25rem !important;
2453
+ padding-bottom: 0.25rem !important;
2454
+ }
2455
+
2456
+ .py-sm-2 {
2457
+ padding-top: 0.5rem !important;
2458
+ padding-bottom: 0.5rem !important;
2459
+ }
2460
+
2461
+ .py-sm-3 {
2462
+ padding-top: 1rem !important;
2463
+ padding-bottom: 1rem !important;
2464
+ }
2465
+
2466
+ .py-sm-4 {
2467
+ padding-top: 1.5rem !important;
2468
+ padding-bottom: 1.5rem !important;
2469
+ }
2470
+
2471
+ .py-sm-5 {
2472
+ padding-top: 3rem !important;
2473
+ padding-bottom: 3rem !important;
2474
+ }
2475
+
2476
+ .pt-sm-0 {
2477
+ padding-top: 0 !important;
2478
+ }
2479
+
2480
+ .pt-sm-1 {
2481
+ padding-top: 0.25rem !important;
2482
+ }
2483
+
2484
+ .pt-sm-2 {
2485
+ padding-top: 0.5rem !important;
2486
+ }
2487
+
2488
+ .pt-sm-3 {
2489
+ padding-top: 1rem !important;
2490
+ }
2491
+
2492
+ .pt-sm-4 {
2493
+ padding-top: 1.5rem !important;
2494
+ }
2495
+
2496
+ .pt-sm-5 {
2497
+ padding-top: 3rem !important;
2498
+ }
2499
+
2500
+ .pe-sm-0 {
2501
+ padding-left: 0 !important;
2502
+ }
2503
+
2504
+ .pe-sm-1 {
2505
+ padding-left: 0.25rem !important;
2506
+ }
2507
+
2508
+ .pe-sm-2 {
2509
+ padding-left: 0.5rem !important;
2510
+ }
2511
+
2512
+ .pe-sm-3 {
2513
+ padding-left: 1rem !important;
2514
+ }
2515
+
2516
+ .pe-sm-4 {
2517
+ padding-left: 1.5rem !important;
2518
+ }
2519
+
2520
+ .pe-sm-5 {
2521
+ padding-left: 3rem !important;
2522
+ }
2523
+
2524
+ .pb-sm-0 {
2525
+ padding-bottom: 0 !important;
2526
+ }
2527
+
2528
+ .pb-sm-1 {
2529
+ padding-bottom: 0.25rem !important;
2530
+ }
2531
+
2532
+ .pb-sm-2 {
2533
+ padding-bottom: 0.5rem !important;
2534
+ }
2535
+
2536
+ .pb-sm-3 {
2537
+ padding-bottom: 1rem !important;
2538
+ }
2539
+
2540
+ .pb-sm-4 {
2541
+ padding-bottom: 1.5rem !important;
2542
+ }
2543
+
2544
+ .pb-sm-5 {
2545
+ padding-bottom: 3rem !important;
2546
+ }
2547
+
2548
+ .ps-sm-0 {
2549
+ padding-right: 0 !important;
2550
+ }
2551
+
2552
+ .ps-sm-1 {
2553
+ padding-right: 0.25rem !important;
2554
+ }
2555
+
2556
+ .ps-sm-2 {
2557
+ padding-right: 0.5rem !important;
2558
+ }
2559
+
2560
+ .ps-sm-3 {
2561
+ padding-right: 1rem !important;
2562
+ }
2563
+
2564
+ .ps-sm-4 {
2565
+ padding-right: 1.5rem !important;
2566
+ }
2567
+
2568
+ .ps-sm-5 {
2569
+ padding-right: 3rem !important;
2570
+ }
2571
+ }
2572
+
2573
+ @media (min-width: 768px) {
2574
+ .d-md-inline {
2575
+ display: inline !important;
2576
+ }
2577
+
2578
+ .d-md-inline-block {
2579
+ display: inline-block !important;
2580
+ }
2581
+
2582
+ .d-md-block {
2583
+ display: block !important;
2584
+ }
2585
+
2586
+ .d-md-grid {
2587
+ display: grid !important;
2588
+ }
2589
+
2590
+ .d-md-inline-grid {
2591
+ display: inline-grid !important;
2592
+ }
2593
+
2594
+ .d-md-table {
2595
+ display: table !important;
2596
+ }
2597
+
2598
+ .d-md-table-row {
2599
+ display: table-row !important;
2600
+ }
2601
+
2602
+ .d-md-table-cell {
2603
+ display: table-cell !important;
2604
+ }
2605
+
2606
+ .d-md-flex {
2607
+ display: flex !important;
2608
+ }
2609
+
2610
+ .d-md-inline-flex {
2611
+ display: inline-flex !important;
2612
+ }
2613
+
2614
+ .d-md-none {
2615
+ display: none !important;
2616
+ }
2617
+
2618
+ .flex-md-fill {
2619
+ flex: 1 1 auto !important;
2620
+ }
2621
+
2622
+ .flex-md-row {
2623
+ flex-direction: row !important;
2624
+ }
2625
+
2626
+ .flex-md-column {
2627
+ flex-direction: column !important;
2628
+ }
2629
+
2630
+ .flex-md-row-reverse {
2631
+ flex-direction: row-reverse !important;
2632
+ }
2633
+
2634
+ .flex-md-column-reverse {
2635
+ flex-direction: column-reverse !important;
2636
+ }
2637
+
2638
+ .flex-md-grow-0 {
2639
+ flex-grow: 0 !important;
2640
+ }
2641
+
2642
+ .flex-md-grow-1 {
2643
+ flex-grow: 1 !important;
2644
+ }
2645
+
2646
+ .flex-md-shrink-0 {
2647
+ flex-shrink: 0 !important;
2648
+ }
2649
+
2650
+ .flex-md-shrink-1 {
2651
+ flex-shrink: 1 !important;
2652
+ }
2653
+
2654
+ .flex-md-wrap {
2655
+ flex-wrap: wrap !important;
2656
+ }
2657
+
2658
+ .flex-md-nowrap {
2659
+ flex-wrap: nowrap !important;
2660
+ }
2661
+
2662
+ .flex-md-wrap-reverse {
2663
+ flex-wrap: wrap-reverse !important;
2664
+ }
2665
+
2666
+ .justify-content-md-start {
2667
+ justify-content: flex-start !important;
2668
+ }
2669
+
2670
+ .justify-content-md-end {
2671
+ justify-content: flex-end !important;
2672
+ }
2673
+
2674
+ .justify-content-md-center {
2675
+ justify-content: center !important;
2676
+ }
2677
+
2678
+ .justify-content-md-between {
2679
+ justify-content: space-between !important;
2680
+ }
2681
+
2682
+ .justify-content-md-around {
2683
+ justify-content: space-around !important;
2684
+ }
2685
+
2686
+ .justify-content-md-evenly {
2687
+ justify-content: space-evenly !important;
2688
+ }
2689
+
2690
+ .align-items-md-start {
2691
+ align-items: flex-start !important;
2692
+ }
2693
+
2694
+ .align-items-md-end {
2695
+ align-items: flex-end !important;
2696
+ }
2697
+
2698
+ .align-items-md-center {
2699
+ align-items: center !important;
2700
+ }
2701
+
2702
+ .align-items-md-baseline {
2703
+ align-items: baseline !important;
2704
+ }
2705
+
2706
+ .align-items-md-stretch {
2707
+ align-items: stretch !important;
2708
+ }
2709
+
2710
+ .align-content-md-start {
2711
+ align-content: flex-start !important;
2712
+ }
2713
+
2714
+ .align-content-md-end {
2715
+ align-content: flex-end !important;
2716
+ }
2717
+
2718
+ .align-content-md-center {
2719
+ align-content: center !important;
2720
+ }
2721
+
2722
+ .align-content-md-between {
2723
+ align-content: space-between !important;
2724
+ }
2725
+
2726
+ .align-content-md-around {
2727
+ align-content: space-around !important;
2728
+ }
2729
+
2730
+ .align-content-md-stretch {
2731
+ align-content: stretch !important;
2732
+ }
2733
+
2734
+ .align-self-md-auto {
2735
+ align-self: auto !important;
2736
+ }
2737
+
2738
+ .align-self-md-start {
2739
+ align-self: flex-start !important;
2740
+ }
2741
+
2742
+ .align-self-md-end {
2743
+ align-self: flex-end !important;
2744
+ }
2745
+
2746
+ .align-self-md-center {
2747
+ align-self: center !important;
2748
+ }
2749
+
2750
+ .align-self-md-baseline {
2751
+ align-self: baseline !important;
2752
+ }
2753
+
2754
+ .align-self-md-stretch {
2755
+ align-self: stretch !important;
2756
+ }
2757
+
2758
+ .order-md-first {
2759
+ order: -1 !important;
2760
+ }
2761
+
2762
+ .order-md-0 {
2763
+ order: 0 !important;
2764
+ }
2765
+
2766
+ .order-md-1 {
2767
+ order: 1 !important;
2768
+ }
2769
+
2770
+ .order-md-2 {
2771
+ order: 2 !important;
2772
+ }
2773
+
2774
+ .order-md-3 {
2775
+ order: 3 !important;
2776
+ }
2777
+
2778
+ .order-md-4 {
2779
+ order: 4 !important;
2780
+ }
2781
+
2782
+ .order-md-5 {
2783
+ order: 5 !important;
2784
+ }
2785
+
2786
+ .order-md-last {
2787
+ order: 6 !important;
2788
+ }
2789
+
2790
+ .m-md-0 {
2791
+ margin: 0 !important;
2792
+ }
2793
+
2794
+ .m-md-1 {
2795
+ margin: 0.25rem !important;
2796
+ }
2797
+
2798
+ .m-md-2 {
2799
+ margin: 0.5rem !important;
2800
+ }
2801
+
2802
+ .m-md-3 {
2803
+ margin: 1rem !important;
2804
+ }
2805
+
2806
+ .m-md-4 {
2807
+ margin: 1.5rem !important;
2808
+ }
2809
+
2810
+ .m-md-5 {
2811
+ margin: 3rem !important;
2812
+ }
2813
+
2814
+ .m-md-auto {
2815
+ margin: auto !important;
2816
+ }
2817
+
2818
+ .mx-md-0 {
2819
+ margin-left: 0 !important;
2820
+ margin-right: 0 !important;
2821
+ }
2822
+
2823
+ .mx-md-1 {
2824
+ margin-left: 0.25rem !important;
2825
+ margin-right: 0.25rem !important;
2826
+ }
2827
+
2828
+ .mx-md-2 {
2829
+ margin-left: 0.5rem !important;
2830
+ margin-right: 0.5rem !important;
2831
+ }
2832
+
2833
+ .mx-md-3 {
2834
+ margin-left: 1rem !important;
2835
+ margin-right: 1rem !important;
2836
+ }
2837
+
2838
+ .mx-md-4 {
2839
+ margin-left: 1.5rem !important;
2840
+ margin-right: 1.5rem !important;
2841
+ }
2842
+
2843
+ .mx-md-5 {
2844
+ margin-left: 3rem !important;
2845
+ margin-right: 3rem !important;
2846
+ }
2847
+
2848
+ .mx-md-auto {
2849
+ margin-left: auto !important;
2850
+ margin-right: auto !important;
2851
+ }
2852
+
2853
+ .my-md-0 {
2854
+ margin-top: 0 !important;
2855
+ margin-bottom: 0 !important;
2856
+ }
2857
+
2858
+ .my-md-1 {
2859
+ margin-top: 0.25rem !important;
2860
+ margin-bottom: 0.25rem !important;
2861
+ }
2862
+
2863
+ .my-md-2 {
2864
+ margin-top: 0.5rem !important;
2865
+ margin-bottom: 0.5rem !important;
2866
+ }
2867
+
2868
+ .my-md-3 {
2869
+ margin-top: 1rem !important;
2870
+ margin-bottom: 1rem !important;
2871
+ }
2872
+
2873
+ .my-md-4 {
2874
+ margin-top: 1.5rem !important;
2875
+ margin-bottom: 1.5rem !important;
2876
+ }
2877
+
2878
+ .my-md-5 {
2879
+ margin-top: 3rem !important;
2880
+ margin-bottom: 3rem !important;
2881
+ }
2882
+
2883
+ .my-md-auto {
2884
+ margin-top: auto !important;
2885
+ margin-bottom: auto !important;
2886
+ }
2887
+
2888
+ .mt-md-0 {
2889
+ margin-top: 0 !important;
2890
+ }
2891
+
2892
+ .mt-md-1 {
2893
+ margin-top: 0.25rem !important;
2894
+ }
2895
+
2896
+ .mt-md-2 {
2897
+ margin-top: 0.5rem !important;
2898
+ }
2899
+
2900
+ .mt-md-3 {
2901
+ margin-top: 1rem !important;
2902
+ }
2903
+
2904
+ .mt-md-4 {
2905
+ margin-top: 1.5rem !important;
2906
+ }
2907
+
2908
+ .mt-md-5 {
2909
+ margin-top: 3rem !important;
2910
+ }
2911
+
2912
+ .mt-md-auto {
2913
+ margin-top: auto !important;
2914
+ }
2915
+
2916
+ .me-md-0 {
2917
+ margin-left: 0 !important;
2918
+ }
2919
+
2920
+ .me-md-1 {
2921
+ margin-left: 0.25rem !important;
2922
+ }
2923
+
2924
+ .me-md-2 {
2925
+ margin-left: 0.5rem !important;
2926
+ }
2927
+
2928
+ .me-md-3 {
2929
+ margin-left: 1rem !important;
2930
+ }
2931
+
2932
+ .me-md-4 {
2933
+ margin-left: 1.5rem !important;
2934
+ }
2935
+
2936
+ .me-md-5 {
2937
+ margin-left: 3rem !important;
2938
+ }
2939
+
2940
+ .me-md-auto {
2941
+ margin-left: auto !important;
2942
+ }
2943
+
2944
+ .mb-md-0 {
2945
+ margin-bottom: 0 !important;
2946
+ }
2947
+
2948
+ .mb-md-1 {
2949
+ margin-bottom: 0.25rem !important;
2950
+ }
2951
+
2952
+ .mb-md-2 {
2953
+ margin-bottom: 0.5rem !important;
2954
+ }
2955
+
2956
+ .mb-md-3 {
2957
+ margin-bottom: 1rem !important;
2958
+ }
2959
+
2960
+ .mb-md-4 {
2961
+ margin-bottom: 1.5rem !important;
2962
+ }
2963
+
2964
+ .mb-md-5 {
2965
+ margin-bottom: 3rem !important;
2966
+ }
2967
+
2968
+ .mb-md-auto {
2969
+ margin-bottom: auto !important;
2970
+ }
2971
+
2972
+ .ms-md-0 {
2973
+ margin-right: 0 !important;
2974
+ }
2975
+
2976
+ .ms-md-1 {
2977
+ margin-right: 0.25rem !important;
2978
+ }
2979
+
2980
+ .ms-md-2 {
2981
+ margin-right: 0.5rem !important;
2982
+ }
2983
+
2984
+ .ms-md-3 {
2985
+ margin-right: 1rem !important;
2986
+ }
2987
+
2988
+ .ms-md-4 {
2989
+ margin-right: 1.5rem !important;
2990
+ }
2991
+
2992
+ .ms-md-5 {
2993
+ margin-right: 3rem !important;
2994
+ }
2995
+
2996
+ .ms-md-auto {
2997
+ margin-right: auto !important;
2998
+ }
2999
+
3000
+ .p-md-0 {
3001
+ padding: 0 !important;
3002
+ }
3003
+
3004
+ .p-md-1 {
3005
+ padding: 0.25rem !important;
3006
+ }
3007
+
3008
+ .p-md-2 {
3009
+ padding: 0.5rem !important;
3010
+ }
3011
+
3012
+ .p-md-3 {
3013
+ padding: 1rem !important;
3014
+ }
3015
+
3016
+ .p-md-4 {
3017
+ padding: 1.5rem !important;
3018
+ }
3019
+
3020
+ .p-md-5 {
3021
+ padding: 3rem !important;
3022
+ }
3023
+
3024
+ .px-md-0 {
3025
+ padding-left: 0 !important;
3026
+ padding-right: 0 !important;
3027
+ }
3028
+
3029
+ .px-md-1 {
3030
+ padding-left: 0.25rem !important;
3031
+ padding-right: 0.25rem !important;
3032
+ }
3033
+
3034
+ .px-md-2 {
3035
+ padding-left: 0.5rem !important;
3036
+ padding-right: 0.5rem !important;
3037
+ }
3038
+
3039
+ .px-md-3 {
3040
+ padding-left: 1rem !important;
3041
+ padding-right: 1rem !important;
3042
+ }
3043
+
3044
+ .px-md-4 {
3045
+ padding-left: 1.5rem !important;
3046
+ padding-right: 1.5rem !important;
3047
+ }
3048
+
3049
+ .px-md-5 {
3050
+ padding-left: 3rem !important;
3051
+ padding-right: 3rem !important;
3052
+ }
3053
+
3054
+ .py-md-0 {
3055
+ padding-top: 0 !important;
3056
+ padding-bottom: 0 !important;
3057
+ }
3058
+
3059
+ .py-md-1 {
3060
+ padding-top: 0.25rem !important;
3061
+ padding-bottom: 0.25rem !important;
3062
+ }
3063
+
3064
+ .py-md-2 {
3065
+ padding-top: 0.5rem !important;
3066
+ padding-bottom: 0.5rem !important;
3067
+ }
3068
+
3069
+ .py-md-3 {
3070
+ padding-top: 1rem !important;
3071
+ padding-bottom: 1rem !important;
3072
+ }
3073
+
3074
+ .py-md-4 {
3075
+ padding-top: 1.5rem !important;
3076
+ padding-bottom: 1.5rem !important;
3077
+ }
3078
+
3079
+ .py-md-5 {
3080
+ padding-top: 3rem !important;
3081
+ padding-bottom: 3rem !important;
3082
+ }
3083
+
3084
+ .pt-md-0 {
3085
+ padding-top: 0 !important;
3086
+ }
3087
+
3088
+ .pt-md-1 {
3089
+ padding-top: 0.25rem !important;
3090
+ }
3091
+
3092
+ .pt-md-2 {
3093
+ padding-top: 0.5rem !important;
3094
+ }
3095
+
3096
+ .pt-md-3 {
3097
+ padding-top: 1rem !important;
3098
+ }
3099
+
3100
+ .pt-md-4 {
3101
+ padding-top: 1.5rem !important;
3102
+ }
3103
+
3104
+ .pt-md-5 {
3105
+ padding-top: 3rem !important;
3106
+ }
3107
+
3108
+ .pe-md-0 {
3109
+ padding-left: 0 !important;
3110
+ }
3111
+
3112
+ .pe-md-1 {
3113
+ padding-left: 0.25rem !important;
3114
+ }
3115
+
3116
+ .pe-md-2 {
3117
+ padding-left: 0.5rem !important;
3118
+ }
3119
+
3120
+ .pe-md-3 {
3121
+ padding-left: 1rem !important;
3122
+ }
3123
+
3124
+ .pe-md-4 {
3125
+ padding-left: 1.5rem !important;
3126
+ }
3127
+
3128
+ .pe-md-5 {
3129
+ padding-left: 3rem !important;
3130
+ }
3131
+
3132
+ .pb-md-0 {
3133
+ padding-bottom: 0 !important;
3134
+ }
3135
+
3136
+ .pb-md-1 {
3137
+ padding-bottom: 0.25rem !important;
3138
+ }
3139
+
3140
+ .pb-md-2 {
3141
+ padding-bottom: 0.5rem !important;
3142
+ }
3143
+
3144
+ .pb-md-3 {
3145
+ padding-bottom: 1rem !important;
3146
+ }
3147
+
3148
+ .pb-md-4 {
3149
+ padding-bottom: 1.5rem !important;
3150
+ }
3151
+
3152
+ .pb-md-5 {
3153
+ padding-bottom: 3rem !important;
3154
+ }
3155
+
3156
+ .ps-md-0 {
3157
+ padding-right: 0 !important;
3158
+ }
3159
+
3160
+ .ps-md-1 {
3161
+ padding-right: 0.25rem !important;
3162
+ }
3163
+
3164
+ .ps-md-2 {
3165
+ padding-right: 0.5rem !important;
3166
+ }
3167
+
3168
+ .ps-md-3 {
3169
+ padding-right: 1rem !important;
3170
+ }
3171
+
3172
+ .ps-md-4 {
3173
+ padding-right: 1.5rem !important;
3174
+ }
3175
+
3176
+ .ps-md-5 {
3177
+ padding-right: 3rem !important;
3178
+ }
3179
+ }
3180
+
3181
+ @media (min-width: 992px) {
3182
+ .d-lg-inline {
3183
+ display: inline !important;
3184
+ }
3185
+
3186
+ .d-lg-inline-block {
3187
+ display: inline-block !important;
3188
+ }
3189
+
3190
+ .d-lg-block {
3191
+ display: block !important;
3192
+ }
3193
+
3194
+ .d-lg-grid {
3195
+ display: grid !important;
3196
+ }
3197
+
3198
+ .d-lg-inline-grid {
3199
+ display: inline-grid !important;
3200
+ }
3201
+
3202
+ .d-lg-table {
3203
+ display: table !important;
3204
+ }
3205
+
3206
+ .d-lg-table-row {
3207
+ display: table-row !important;
3208
+ }
3209
+
3210
+ .d-lg-table-cell {
3211
+ display: table-cell !important;
3212
+ }
3213
+
3214
+ .d-lg-flex {
3215
+ display: flex !important;
3216
+ }
3217
+
3218
+ .d-lg-inline-flex {
3219
+ display: inline-flex !important;
3220
+ }
3221
+
3222
+ .d-lg-none {
3223
+ display: none !important;
3224
+ }
3225
+
3226
+ .flex-lg-fill {
3227
+ flex: 1 1 auto !important;
3228
+ }
3229
+
3230
+ .flex-lg-row {
3231
+ flex-direction: row !important;
3232
+ }
3233
+
3234
+ .flex-lg-column {
3235
+ flex-direction: column !important;
3236
+ }
3237
+
3238
+ .flex-lg-row-reverse {
3239
+ flex-direction: row-reverse !important;
3240
+ }
3241
+
3242
+ .flex-lg-column-reverse {
3243
+ flex-direction: column-reverse !important;
3244
+ }
3245
+
3246
+ .flex-lg-grow-0 {
3247
+ flex-grow: 0 !important;
3248
+ }
3249
+
3250
+ .flex-lg-grow-1 {
3251
+ flex-grow: 1 !important;
3252
+ }
3253
+
3254
+ .flex-lg-shrink-0 {
3255
+ flex-shrink: 0 !important;
3256
+ }
3257
+
3258
+ .flex-lg-shrink-1 {
3259
+ flex-shrink: 1 !important;
3260
+ }
3261
+
3262
+ .flex-lg-wrap {
3263
+ flex-wrap: wrap !important;
3264
+ }
3265
+
3266
+ .flex-lg-nowrap {
3267
+ flex-wrap: nowrap !important;
3268
+ }
3269
+
3270
+ .flex-lg-wrap-reverse {
3271
+ flex-wrap: wrap-reverse !important;
3272
+ }
3273
+
3274
+ .justify-content-lg-start {
3275
+ justify-content: flex-start !important;
3276
+ }
3277
+
3278
+ .justify-content-lg-end {
3279
+ justify-content: flex-end !important;
3280
+ }
3281
+
3282
+ .justify-content-lg-center {
3283
+ justify-content: center !important;
3284
+ }
3285
+
3286
+ .justify-content-lg-between {
3287
+ justify-content: space-between !important;
3288
+ }
3289
+
3290
+ .justify-content-lg-around {
3291
+ justify-content: space-around !important;
3292
+ }
3293
+
3294
+ .justify-content-lg-evenly {
3295
+ justify-content: space-evenly !important;
3296
+ }
3297
+
3298
+ .align-items-lg-start {
3299
+ align-items: flex-start !important;
3300
+ }
3301
+
3302
+ .align-items-lg-end {
3303
+ align-items: flex-end !important;
3304
+ }
3305
+
3306
+ .align-items-lg-center {
3307
+ align-items: center !important;
3308
+ }
3309
+
3310
+ .align-items-lg-baseline {
3311
+ align-items: baseline !important;
3312
+ }
3313
+
3314
+ .align-items-lg-stretch {
3315
+ align-items: stretch !important;
3316
+ }
3317
+
3318
+ .align-content-lg-start {
3319
+ align-content: flex-start !important;
3320
+ }
3321
+
3322
+ .align-content-lg-end {
3323
+ align-content: flex-end !important;
3324
+ }
3325
+
3326
+ .align-content-lg-center {
3327
+ align-content: center !important;
3328
+ }
3329
+
3330
+ .align-content-lg-between {
3331
+ align-content: space-between !important;
3332
+ }
3333
+
3334
+ .align-content-lg-around {
3335
+ align-content: space-around !important;
3336
+ }
3337
+
3338
+ .align-content-lg-stretch {
3339
+ align-content: stretch !important;
3340
+ }
3341
+
3342
+ .align-self-lg-auto {
3343
+ align-self: auto !important;
3344
+ }
3345
+
3346
+ .align-self-lg-start {
3347
+ align-self: flex-start !important;
3348
+ }
3349
+
3350
+ .align-self-lg-end {
3351
+ align-self: flex-end !important;
3352
+ }
3353
+
3354
+ .align-self-lg-center {
3355
+ align-self: center !important;
3356
+ }
3357
+
3358
+ .align-self-lg-baseline {
3359
+ align-self: baseline !important;
3360
+ }
3361
+
3362
+ .align-self-lg-stretch {
3363
+ align-self: stretch !important;
3364
+ }
3365
+
3366
+ .order-lg-first {
3367
+ order: -1 !important;
3368
+ }
3369
+
3370
+ .order-lg-0 {
3371
+ order: 0 !important;
3372
+ }
3373
+
3374
+ .order-lg-1 {
3375
+ order: 1 !important;
3376
+ }
3377
+
3378
+ .order-lg-2 {
3379
+ order: 2 !important;
3380
+ }
3381
+
3382
+ .order-lg-3 {
3383
+ order: 3 !important;
3384
+ }
3385
+
3386
+ .order-lg-4 {
3387
+ order: 4 !important;
3388
+ }
3389
+
3390
+ .order-lg-5 {
3391
+ order: 5 !important;
3392
+ }
3393
+
3394
+ .order-lg-last {
3395
+ order: 6 !important;
3396
+ }
3397
+
3398
+ .m-lg-0 {
3399
+ margin: 0 !important;
3400
+ }
3401
+
3402
+ .m-lg-1 {
3403
+ margin: 0.25rem !important;
3404
+ }
3405
+
3406
+ .m-lg-2 {
3407
+ margin: 0.5rem !important;
3408
+ }
3409
+
3410
+ .m-lg-3 {
3411
+ margin: 1rem !important;
3412
+ }
3413
+
3414
+ .m-lg-4 {
3415
+ margin: 1.5rem !important;
3416
+ }
3417
+
3418
+ .m-lg-5 {
3419
+ margin: 3rem !important;
3420
+ }
3421
+
3422
+ .m-lg-auto {
3423
+ margin: auto !important;
3424
+ }
3425
+
3426
+ .mx-lg-0 {
3427
+ margin-left: 0 !important;
3428
+ margin-right: 0 !important;
3429
+ }
3430
+
3431
+ .mx-lg-1 {
3432
+ margin-left: 0.25rem !important;
3433
+ margin-right: 0.25rem !important;
3434
+ }
3435
+
3436
+ .mx-lg-2 {
3437
+ margin-left: 0.5rem !important;
3438
+ margin-right: 0.5rem !important;
3439
+ }
3440
+
3441
+ .mx-lg-3 {
3442
+ margin-left: 1rem !important;
3443
+ margin-right: 1rem !important;
3444
+ }
3445
+
3446
+ .mx-lg-4 {
3447
+ margin-left: 1.5rem !important;
3448
+ margin-right: 1.5rem !important;
3449
+ }
3450
+
3451
+ .mx-lg-5 {
3452
+ margin-left: 3rem !important;
3453
+ margin-right: 3rem !important;
3454
+ }
3455
+
3456
+ .mx-lg-auto {
3457
+ margin-left: auto !important;
3458
+ margin-right: auto !important;
3459
+ }
3460
+
3461
+ .my-lg-0 {
3462
+ margin-top: 0 !important;
3463
+ margin-bottom: 0 !important;
3464
+ }
3465
+
3466
+ .my-lg-1 {
3467
+ margin-top: 0.25rem !important;
3468
+ margin-bottom: 0.25rem !important;
3469
+ }
3470
+
3471
+ .my-lg-2 {
3472
+ margin-top: 0.5rem !important;
3473
+ margin-bottom: 0.5rem !important;
3474
+ }
3475
+
3476
+ .my-lg-3 {
3477
+ margin-top: 1rem !important;
3478
+ margin-bottom: 1rem !important;
3479
+ }
3480
+
3481
+ .my-lg-4 {
3482
+ margin-top: 1.5rem !important;
3483
+ margin-bottom: 1.5rem !important;
3484
+ }
3485
+
3486
+ .my-lg-5 {
3487
+ margin-top: 3rem !important;
3488
+ margin-bottom: 3rem !important;
3489
+ }
3490
+
3491
+ .my-lg-auto {
3492
+ margin-top: auto !important;
3493
+ margin-bottom: auto !important;
3494
+ }
3495
+
3496
+ .mt-lg-0 {
3497
+ margin-top: 0 !important;
3498
+ }
3499
+
3500
+ .mt-lg-1 {
3501
+ margin-top: 0.25rem !important;
3502
+ }
3503
+
3504
+ .mt-lg-2 {
3505
+ margin-top: 0.5rem !important;
3506
+ }
3507
+
3508
+ .mt-lg-3 {
3509
+ margin-top: 1rem !important;
3510
+ }
3511
+
3512
+ .mt-lg-4 {
3513
+ margin-top: 1.5rem !important;
3514
+ }
3515
+
3516
+ .mt-lg-5 {
3517
+ margin-top: 3rem !important;
3518
+ }
3519
+
3520
+ .mt-lg-auto {
3521
+ margin-top: auto !important;
3522
+ }
3523
+
3524
+ .me-lg-0 {
3525
+ margin-left: 0 !important;
3526
+ }
3527
+
3528
+ .me-lg-1 {
3529
+ margin-left: 0.25rem !important;
3530
+ }
3531
+
3532
+ .me-lg-2 {
3533
+ margin-left: 0.5rem !important;
3534
+ }
3535
+
3536
+ .me-lg-3 {
3537
+ margin-left: 1rem !important;
3538
+ }
3539
+
3540
+ .me-lg-4 {
3541
+ margin-left: 1.5rem !important;
3542
+ }
3543
+
3544
+ .me-lg-5 {
3545
+ margin-left: 3rem !important;
3546
+ }
3547
+
3548
+ .me-lg-auto {
3549
+ margin-left: auto !important;
3550
+ }
3551
+
3552
+ .mb-lg-0 {
3553
+ margin-bottom: 0 !important;
3554
+ }
3555
+
3556
+ .mb-lg-1 {
3557
+ margin-bottom: 0.25rem !important;
3558
+ }
3559
+
3560
+ .mb-lg-2 {
3561
+ margin-bottom: 0.5rem !important;
3562
+ }
3563
+
3564
+ .mb-lg-3 {
3565
+ margin-bottom: 1rem !important;
3566
+ }
3567
+
3568
+ .mb-lg-4 {
3569
+ margin-bottom: 1.5rem !important;
3570
+ }
3571
+
3572
+ .mb-lg-5 {
3573
+ margin-bottom: 3rem !important;
3574
+ }
3575
+
3576
+ .mb-lg-auto {
3577
+ margin-bottom: auto !important;
3578
+ }
3579
+
3580
+ .ms-lg-0 {
3581
+ margin-right: 0 !important;
3582
+ }
3583
+
3584
+ .ms-lg-1 {
3585
+ margin-right: 0.25rem !important;
3586
+ }
3587
+
3588
+ .ms-lg-2 {
3589
+ margin-right: 0.5rem !important;
3590
+ }
3591
+
3592
+ .ms-lg-3 {
3593
+ margin-right: 1rem !important;
3594
+ }
3595
+
3596
+ .ms-lg-4 {
3597
+ margin-right: 1.5rem !important;
3598
+ }
3599
+
3600
+ .ms-lg-5 {
3601
+ margin-right: 3rem !important;
3602
+ }
3603
+
3604
+ .ms-lg-auto {
3605
+ margin-right: auto !important;
3606
+ }
3607
+
3608
+ .p-lg-0 {
3609
+ padding: 0 !important;
3610
+ }
3611
+
3612
+ .p-lg-1 {
3613
+ padding: 0.25rem !important;
3614
+ }
3615
+
3616
+ .p-lg-2 {
3617
+ padding: 0.5rem !important;
3618
+ }
3619
+
3620
+ .p-lg-3 {
3621
+ padding: 1rem !important;
3622
+ }
3623
+
3624
+ .p-lg-4 {
3625
+ padding: 1.5rem !important;
3626
+ }
3627
+
3628
+ .p-lg-5 {
3629
+ padding: 3rem !important;
3630
+ }
3631
+
3632
+ .px-lg-0 {
3633
+ padding-left: 0 !important;
3634
+ padding-right: 0 !important;
3635
+ }
3636
+
3637
+ .px-lg-1 {
3638
+ padding-left: 0.25rem !important;
3639
+ padding-right: 0.25rem !important;
3640
+ }
3641
+
3642
+ .px-lg-2 {
3643
+ padding-left: 0.5rem !important;
3644
+ padding-right: 0.5rem !important;
3645
+ }
3646
+
3647
+ .px-lg-3 {
3648
+ padding-left: 1rem !important;
3649
+ padding-right: 1rem !important;
3650
+ }
3651
+
3652
+ .px-lg-4 {
3653
+ padding-left: 1.5rem !important;
3654
+ padding-right: 1.5rem !important;
3655
+ }
3656
+
3657
+ .px-lg-5 {
3658
+ padding-left: 3rem !important;
3659
+ padding-right: 3rem !important;
3660
+ }
3661
+
3662
+ .py-lg-0 {
3663
+ padding-top: 0 !important;
3664
+ padding-bottom: 0 !important;
3665
+ }
3666
+
3667
+ .py-lg-1 {
3668
+ padding-top: 0.25rem !important;
3669
+ padding-bottom: 0.25rem !important;
3670
+ }
3671
+
3672
+ .py-lg-2 {
3673
+ padding-top: 0.5rem !important;
3674
+ padding-bottom: 0.5rem !important;
3675
+ }
3676
+
3677
+ .py-lg-3 {
3678
+ padding-top: 1rem !important;
3679
+ padding-bottom: 1rem !important;
3680
+ }
3681
+
3682
+ .py-lg-4 {
3683
+ padding-top: 1.5rem !important;
3684
+ padding-bottom: 1.5rem !important;
3685
+ }
3686
+
3687
+ .py-lg-5 {
3688
+ padding-top: 3rem !important;
3689
+ padding-bottom: 3rem !important;
3690
+ }
3691
+
3692
+ .pt-lg-0 {
3693
+ padding-top: 0 !important;
3694
+ }
3695
+
3696
+ .pt-lg-1 {
3697
+ padding-top: 0.25rem !important;
3698
+ }
3699
+
3700
+ .pt-lg-2 {
3701
+ padding-top: 0.5rem !important;
3702
+ }
3703
+
3704
+ .pt-lg-3 {
3705
+ padding-top: 1rem !important;
3706
+ }
3707
+
3708
+ .pt-lg-4 {
3709
+ padding-top: 1.5rem !important;
3710
+ }
3711
+
3712
+ .pt-lg-5 {
3713
+ padding-top: 3rem !important;
3714
+ }
3715
+
3716
+ .pe-lg-0 {
3717
+ padding-left: 0 !important;
3718
+ }
3719
+
3720
+ .pe-lg-1 {
3721
+ padding-left: 0.25rem !important;
3722
+ }
3723
+
3724
+ .pe-lg-2 {
3725
+ padding-left: 0.5rem !important;
3726
+ }
3727
+
3728
+ .pe-lg-3 {
3729
+ padding-left: 1rem !important;
3730
+ }
3731
+
3732
+ .pe-lg-4 {
3733
+ padding-left: 1.5rem !important;
3734
+ }
3735
+
3736
+ .pe-lg-5 {
3737
+ padding-left: 3rem !important;
3738
+ }
3739
+
3740
+ .pb-lg-0 {
3741
+ padding-bottom: 0 !important;
3742
+ }
3743
+
3744
+ .pb-lg-1 {
3745
+ padding-bottom: 0.25rem !important;
3746
+ }
3747
+
3748
+ .pb-lg-2 {
3749
+ padding-bottom: 0.5rem !important;
3750
+ }
3751
+
3752
+ .pb-lg-3 {
3753
+ padding-bottom: 1rem !important;
3754
+ }
3755
+
3756
+ .pb-lg-4 {
3757
+ padding-bottom: 1.5rem !important;
3758
+ }
3759
+
3760
+ .pb-lg-5 {
3761
+ padding-bottom: 3rem !important;
3762
+ }
3763
+
3764
+ .ps-lg-0 {
3765
+ padding-right: 0 !important;
3766
+ }
3767
+
3768
+ .ps-lg-1 {
3769
+ padding-right: 0.25rem !important;
3770
+ }
3771
+
3772
+ .ps-lg-2 {
3773
+ padding-right: 0.5rem !important;
3774
+ }
3775
+
3776
+ .ps-lg-3 {
3777
+ padding-right: 1rem !important;
3778
+ }
3779
+
3780
+ .ps-lg-4 {
3781
+ padding-right: 1.5rem !important;
3782
+ }
3783
+
3784
+ .ps-lg-5 {
3785
+ padding-right: 3rem !important;
3786
+ }
3787
+ }
3788
+
3789
+ @media (min-width: 1200px) {
3790
+ .d-xl-inline {
3791
+ display: inline !important;
3792
+ }
3793
+
3794
+ .d-xl-inline-block {
3795
+ display: inline-block !important;
3796
+ }
3797
+
3798
+ .d-xl-block {
3799
+ display: block !important;
3800
+ }
3801
+
3802
+ .d-xl-grid {
3803
+ display: grid !important;
3804
+ }
3805
+
3806
+ .d-xl-inline-grid {
3807
+ display: inline-grid !important;
3808
+ }
3809
+
3810
+ .d-xl-table {
3811
+ display: table !important;
3812
+ }
3813
+
3814
+ .d-xl-table-row {
3815
+ display: table-row !important;
3816
+ }
3817
+
3818
+ .d-xl-table-cell {
3819
+ display: table-cell !important;
3820
+ }
3821
+
3822
+ .d-xl-flex {
3823
+ display: flex !important;
3824
+ }
3825
+
3826
+ .d-xl-inline-flex {
3827
+ display: inline-flex !important;
3828
+ }
3829
+
3830
+ .d-xl-none {
3831
+ display: none !important;
3832
+ }
3833
+
3834
+ .flex-xl-fill {
3835
+ flex: 1 1 auto !important;
3836
+ }
3837
+
3838
+ .flex-xl-row {
3839
+ flex-direction: row !important;
3840
+ }
3841
+
3842
+ .flex-xl-column {
3843
+ flex-direction: column !important;
3844
+ }
3845
+
3846
+ .flex-xl-row-reverse {
3847
+ flex-direction: row-reverse !important;
3848
+ }
3849
+
3850
+ .flex-xl-column-reverse {
3851
+ flex-direction: column-reverse !important;
3852
+ }
3853
+
3854
+ .flex-xl-grow-0 {
3855
+ flex-grow: 0 !important;
3856
+ }
3857
+
3858
+ .flex-xl-grow-1 {
3859
+ flex-grow: 1 !important;
3860
+ }
3861
+
3862
+ .flex-xl-shrink-0 {
3863
+ flex-shrink: 0 !important;
3864
+ }
3865
+
3866
+ .flex-xl-shrink-1 {
3867
+ flex-shrink: 1 !important;
3868
+ }
3869
+
3870
+ .flex-xl-wrap {
3871
+ flex-wrap: wrap !important;
3872
+ }
3873
+
3874
+ .flex-xl-nowrap {
3875
+ flex-wrap: nowrap !important;
3876
+ }
3877
+
3878
+ .flex-xl-wrap-reverse {
3879
+ flex-wrap: wrap-reverse !important;
3880
+ }
3881
+
3882
+ .justify-content-xl-start {
3883
+ justify-content: flex-start !important;
3884
+ }
3885
+
3886
+ .justify-content-xl-end {
3887
+ justify-content: flex-end !important;
3888
+ }
3889
+
3890
+ .justify-content-xl-center {
3891
+ justify-content: center !important;
3892
+ }
3893
+
3894
+ .justify-content-xl-between {
3895
+ justify-content: space-between !important;
3896
+ }
3897
+
3898
+ .justify-content-xl-around {
3899
+ justify-content: space-around !important;
3900
+ }
3901
+
3902
+ .justify-content-xl-evenly {
3903
+ justify-content: space-evenly !important;
3904
+ }
3905
+
3906
+ .align-items-xl-start {
3907
+ align-items: flex-start !important;
3908
+ }
3909
+
3910
+ .align-items-xl-end {
3911
+ align-items: flex-end !important;
3912
+ }
3913
+
3914
+ .align-items-xl-center {
3915
+ align-items: center !important;
3916
+ }
3917
+
3918
+ .align-items-xl-baseline {
3919
+ align-items: baseline !important;
3920
+ }
3921
+
3922
+ .align-items-xl-stretch {
3923
+ align-items: stretch !important;
3924
+ }
3925
+
3926
+ .align-content-xl-start {
3927
+ align-content: flex-start !important;
3928
+ }
3929
+
3930
+ .align-content-xl-end {
3931
+ align-content: flex-end !important;
3932
+ }
3933
+
3934
+ .align-content-xl-center {
3935
+ align-content: center !important;
3936
+ }
3937
+
3938
+ .align-content-xl-between {
3939
+ align-content: space-between !important;
3940
+ }
3941
+
3942
+ .align-content-xl-around {
3943
+ align-content: space-around !important;
3944
+ }
3945
+
3946
+ .align-content-xl-stretch {
3947
+ align-content: stretch !important;
3948
+ }
3949
+
3950
+ .align-self-xl-auto {
3951
+ align-self: auto !important;
3952
+ }
3953
+
3954
+ .align-self-xl-start {
3955
+ align-self: flex-start !important;
3956
+ }
3957
+
3958
+ .align-self-xl-end {
3959
+ align-self: flex-end !important;
3960
+ }
3961
+
3962
+ .align-self-xl-center {
3963
+ align-self: center !important;
3964
+ }
3965
+
3966
+ .align-self-xl-baseline {
3967
+ align-self: baseline !important;
3968
+ }
3969
+
3970
+ .align-self-xl-stretch {
3971
+ align-self: stretch !important;
3972
+ }
3973
+
3974
+ .order-xl-first {
3975
+ order: -1 !important;
3976
+ }
3977
+
3978
+ .order-xl-0 {
3979
+ order: 0 !important;
3980
+ }
3981
+
3982
+ .order-xl-1 {
3983
+ order: 1 !important;
3984
+ }
3985
+
3986
+ .order-xl-2 {
3987
+ order: 2 !important;
3988
+ }
3989
+
3990
+ .order-xl-3 {
3991
+ order: 3 !important;
3992
+ }
3993
+
3994
+ .order-xl-4 {
3995
+ order: 4 !important;
3996
+ }
3997
+
3998
+ .order-xl-5 {
3999
+ order: 5 !important;
4000
+ }
4001
+
4002
+ .order-xl-last {
4003
+ order: 6 !important;
4004
+ }
4005
+
4006
+ .m-xl-0 {
4007
+ margin: 0 !important;
4008
+ }
4009
+
4010
+ .m-xl-1 {
4011
+ margin: 0.25rem !important;
4012
+ }
4013
+
4014
+ .m-xl-2 {
4015
+ margin: 0.5rem !important;
4016
+ }
4017
+
4018
+ .m-xl-3 {
4019
+ margin: 1rem !important;
4020
+ }
4021
+
4022
+ .m-xl-4 {
4023
+ margin: 1.5rem !important;
4024
+ }
4025
+
4026
+ .m-xl-5 {
4027
+ margin: 3rem !important;
4028
+ }
4029
+
4030
+ .m-xl-auto {
4031
+ margin: auto !important;
4032
+ }
4033
+
4034
+ .mx-xl-0 {
4035
+ margin-left: 0 !important;
4036
+ margin-right: 0 !important;
4037
+ }
4038
+
4039
+ .mx-xl-1 {
4040
+ margin-left: 0.25rem !important;
4041
+ margin-right: 0.25rem !important;
4042
+ }
4043
+
4044
+ .mx-xl-2 {
4045
+ margin-left: 0.5rem !important;
4046
+ margin-right: 0.5rem !important;
4047
+ }
4048
+
4049
+ .mx-xl-3 {
4050
+ margin-left: 1rem !important;
4051
+ margin-right: 1rem !important;
4052
+ }
4053
+
4054
+ .mx-xl-4 {
4055
+ margin-left: 1.5rem !important;
4056
+ margin-right: 1.5rem !important;
4057
+ }
4058
+
4059
+ .mx-xl-5 {
4060
+ margin-left: 3rem !important;
4061
+ margin-right: 3rem !important;
4062
+ }
4063
+
4064
+ .mx-xl-auto {
4065
+ margin-left: auto !important;
4066
+ margin-right: auto !important;
4067
+ }
4068
+
4069
+ .my-xl-0 {
4070
+ margin-top: 0 !important;
4071
+ margin-bottom: 0 !important;
4072
+ }
4073
+
4074
+ .my-xl-1 {
4075
+ margin-top: 0.25rem !important;
4076
+ margin-bottom: 0.25rem !important;
4077
+ }
4078
+
4079
+ .my-xl-2 {
4080
+ margin-top: 0.5rem !important;
4081
+ margin-bottom: 0.5rem !important;
4082
+ }
4083
+
4084
+ .my-xl-3 {
4085
+ margin-top: 1rem !important;
4086
+ margin-bottom: 1rem !important;
4087
+ }
4088
+
4089
+ .my-xl-4 {
4090
+ margin-top: 1.5rem !important;
4091
+ margin-bottom: 1.5rem !important;
4092
+ }
4093
+
4094
+ .my-xl-5 {
4095
+ margin-top: 3rem !important;
4096
+ margin-bottom: 3rem !important;
4097
+ }
4098
+
4099
+ .my-xl-auto {
4100
+ margin-top: auto !important;
4101
+ margin-bottom: auto !important;
4102
+ }
4103
+
4104
+ .mt-xl-0 {
4105
+ margin-top: 0 !important;
4106
+ }
4107
+
4108
+ .mt-xl-1 {
4109
+ margin-top: 0.25rem !important;
4110
+ }
4111
+
4112
+ .mt-xl-2 {
4113
+ margin-top: 0.5rem !important;
4114
+ }
4115
+
4116
+ .mt-xl-3 {
4117
+ margin-top: 1rem !important;
4118
+ }
4119
+
4120
+ .mt-xl-4 {
4121
+ margin-top: 1.5rem !important;
4122
+ }
4123
+
4124
+ .mt-xl-5 {
4125
+ margin-top: 3rem !important;
4126
+ }
4127
+
4128
+ .mt-xl-auto {
4129
+ margin-top: auto !important;
4130
+ }
4131
+
4132
+ .me-xl-0 {
4133
+ margin-left: 0 !important;
4134
+ }
4135
+
4136
+ .me-xl-1 {
4137
+ margin-left: 0.25rem !important;
4138
+ }
4139
+
4140
+ .me-xl-2 {
4141
+ margin-left: 0.5rem !important;
4142
+ }
4143
+
4144
+ .me-xl-3 {
4145
+ margin-left: 1rem !important;
4146
+ }
4147
+
4148
+ .me-xl-4 {
4149
+ margin-left: 1.5rem !important;
4150
+ }
4151
+
4152
+ .me-xl-5 {
4153
+ margin-left: 3rem !important;
4154
+ }
4155
+
4156
+ .me-xl-auto {
4157
+ margin-left: auto !important;
4158
+ }
4159
+
4160
+ .mb-xl-0 {
4161
+ margin-bottom: 0 !important;
4162
+ }
4163
+
4164
+ .mb-xl-1 {
4165
+ margin-bottom: 0.25rem !important;
4166
+ }
4167
+
4168
+ .mb-xl-2 {
4169
+ margin-bottom: 0.5rem !important;
4170
+ }
4171
+
4172
+ .mb-xl-3 {
4173
+ margin-bottom: 1rem !important;
4174
+ }
4175
+
4176
+ .mb-xl-4 {
4177
+ margin-bottom: 1.5rem !important;
4178
+ }
4179
+
4180
+ .mb-xl-5 {
4181
+ margin-bottom: 3rem !important;
4182
+ }
4183
+
4184
+ .mb-xl-auto {
4185
+ margin-bottom: auto !important;
4186
+ }
4187
+
4188
+ .ms-xl-0 {
4189
+ margin-right: 0 !important;
4190
+ }
4191
+
4192
+ .ms-xl-1 {
4193
+ margin-right: 0.25rem !important;
4194
+ }
4195
+
4196
+ .ms-xl-2 {
4197
+ margin-right: 0.5rem !important;
4198
+ }
4199
+
4200
+ .ms-xl-3 {
4201
+ margin-right: 1rem !important;
4202
+ }
4203
+
4204
+ .ms-xl-4 {
4205
+ margin-right: 1.5rem !important;
4206
+ }
4207
+
4208
+ .ms-xl-5 {
4209
+ margin-right: 3rem !important;
4210
+ }
4211
+
4212
+ .ms-xl-auto {
4213
+ margin-right: auto !important;
4214
+ }
4215
+
4216
+ .p-xl-0 {
4217
+ padding: 0 !important;
4218
+ }
4219
+
4220
+ .p-xl-1 {
4221
+ padding: 0.25rem !important;
4222
+ }
4223
+
4224
+ .p-xl-2 {
4225
+ padding: 0.5rem !important;
4226
+ }
4227
+
4228
+ .p-xl-3 {
4229
+ padding: 1rem !important;
4230
+ }
4231
+
4232
+ .p-xl-4 {
4233
+ padding: 1.5rem !important;
4234
+ }
4235
+
4236
+ .p-xl-5 {
4237
+ padding: 3rem !important;
4238
+ }
4239
+
4240
+ .px-xl-0 {
4241
+ padding-left: 0 !important;
4242
+ padding-right: 0 !important;
4243
+ }
4244
+
4245
+ .px-xl-1 {
4246
+ padding-left: 0.25rem !important;
4247
+ padding-right: 0.25rem !important;
4248
+ }
4249
+
4250
+ .px-xl-2 {
4251
+ padding-left: 0.5rem !important;
4252
+ padding-right: 0.5rem !important;
4253
+ }
4254
+
4255
+ .px-xl-3 {
4256
+ padding-left: 1rem !important;
4257
+ padding-right: 1rem !important;
4258
+ }
4259
+
4260
+ .px-xl-4 {
4261
+ padding-left: 1.5rem !important;
4262
+ padding-right: 1.5rem !important;
4263
+ }
4264
+
4265
+ .px-xl-5 {
4266
+ padding-left: 3rem !important;
4267
+ padding-right: 3rem !important;
4268
+ }
4269
+
4270
+ .py-xl-0 {
4271
+ padding-top: 0 !important;
4272
+ padding-bottom: 0 !important;
4273
+ }
4274
+
4275
+ .py-xl-1 {
4276
+ padding-top: 0.25rem !important;
4277
+ padding-bottom: 0.25rem !important;
4278
+ }
4279
+
4280
+ .py-xl-2 {
4281
+ padding-top: 0.5rem !important;
4282
+ padding-bottom: 0.5rem !important;
4283
+ }
4284
+
4285
+ .py-xl-3 {
4286
+ padding-top: 1rem !important;
4287
+ padding-bottom: 1rem !important;
4288
+ }
4289
+
4290
+ .py-xl-4 {
4291
+ padding-top: 1.5rem !important;
4292
+ padding-bottom: 1.5rem !important;
4293
+ }
4294
+
4295
+ .py-xl-5 {
4296
+ padding-top: 3rem !important;
4297
+ padding-bottom: 3rem !important;
4298
+ }
4299
+
4300
+ .pt-xl-0 {
4301
+ padding-top: 0 !important;
4302
+ }
4303
+
4304
+ .pt-xl-1 {
4305
+ padding-top: 0.25rem !important;
4306
+ }
4307
+
4308
+ .pt-xl-2 {
4309
+ padding-top: 0.5rem !important;
4310
+ }
4311
+
4312
+ .pt-xl-3 {
4313
+ padding-top: 1rem !important;
4314
+ }
4315
+
4316
+ .pt-xl-4 {
4317
+ padding-top: 1.5rem !important;
4318
+ }
4319
+
4320
+ .pt-xl-5 {
4321
+ padding-top: 3rem !important;
4322
+ }
4323
+
4324
+ .pe-xl-0 {
4325
+ padding-left: 0 !important;
4326
+ }
4327
+
4328
+ .pe-xl-1 {
4329
+ padding-left: 0.25rem !important;
4330
+ }
4331
+
4332
+ .pe-xl-2 {
4333
+ padding-left: 0.5rem !important;
4334
+ }
4335
+
4336
+ .pe-xl-3 {
4337
+ padding-left: 1rem !important;
4338
+ }
4339
+
4340
+ .pe-xl-4 {
4341
+ padding-left: 1.5rem !important;
4342
+ }
4343
+
4344
+ .pe-xl-5 {
4345
+ padding-left: 3rem !important;
4346
+ }
4347
+
4348
+ .pb-xl-0 {
4349
+ padding-bottom: 0 !important;
4350
+ }
4351
+
4352
+ .pb-xl-1 {
4353
+ padding-bottom: 0.25rem !important;
4354
+ }
4355
+
4356
+ .pb-xl-2 {
4357
+ padding-bottom: 0.5rem !important;
4358
+ }
4359
+
4360
+ .pb-xl-3 {
4361
+ padding-bottom: 1rem !important;
4362
+ }
4363
+
4364
+ .pb-xl-4 {
4365
+ padding-bottom: 1.5rem !important;
4366
+ }
4367
+
4368
+ .pb-xl-5 {
4369
+ padding-bottom: 3rem !important;
4370
+ }
4371
+
4372
+ .ps-xl-0 {
4373
+ padding-right: 0 !important;
4374
+ }
4375
+
4376
+ .ps-xl-1 {
4377
+ padding-right: 0.25rem !important;
4378
+ }
4379
+
4380
+ .ps-xl-2 {
4381
+ padding-right: 0.5rem !important;
4382
+ }
4383
+
4384
+ .ps-xl-3 {
4385
+ padding-right: 1rem !important;
4386
+ }
4387
+
4388
+ .ps-xl-4 {
4389
+ padding-right: 1.5rem !important;
4390
+ }
4391
+
4392
+ .ps-xl-5 {
4393
+ padding-right: 3rem !important;
4394
+ }
4395
+ }
4396
+
4397
+ @media (min-width: 1400px) {
4398
+ .d-xxl-inline {
4399
+ display: inline !important;
4400
+ }
4401
+
4402
+ .d-xxl-inline-block {
4403
+ display: inline-block !important;
4404
+ }
4405
+
4406
+ .d-xxl-block {
4407
+ display: block !important;
4408
+ }
4409
+
4410
+ .d-xxl-grid {
4411
+ display: grid !important;
4412
+ }
4413
+
4414
+ .d-xxl-inline-grid {
4415
+ display: inline-grid !important;
4416
+ }
4417
+
4418
+ .d-xxl-table {
4419
+ display: table !important;
4420
+ }
4421
+
4422
+ .d-xxl-table-row {
4423
+ display: table-row !important;
4424
+ }
4425
+
4426
+ .d-xxl-table-cell {
4427
+ display: table-cell !important;
4428
+ }
4429
+
4430
+ .d-xxl-flex {
4431
+ display: flex !important;
4432
+ }
4433
+
4434
+ .d-xxl-inline-flex {
4435
+ display: inline-flex !important;
4436
+ }
4437
+
4438
+ .d-xxl-none {
4439
+ display: none !important;
4440
+ }
4441
+
4442
+ .flex-xxl-fill {
4443
+ flex: 1 1 auto !important;
4444
+ }
4445
+
4446
+ .flex-xxl-row {
4447
+ flex-direction: row !important;
4448
+ }
4449
+
4450
+ .flex-xxl-column {
4451
+ flex-direction: column !important;
4452
+ }
4453
+
4454
+ .flex-xxl-row-reverse {
4455
+ flex-direction: row-reverse !important;
4456
+ }
4457
+
4458
+ .flex-xxl-column-reverse {
4459
+ flex-direction: column-reverse !important;
4460
+ }
4461
+
4462
+ .flex-xxl-grow-0 {
4463
+ flex-grow: 0 !important;
4464
+ }
4465
+
4466
+ .flex-xxl-grow-1 {
4467
+ flex-grow: 1 !important;
4468
+ }
4469
+
4470
+ .flex-xxl-shrink-0 {
4471
+ flex-shrink: 0 !important;
4472
+ }
4473
+
4474
+ .flex-xxl-shrink-1 {
4475
+ flex-shrink: 1 !important;
4476
+ }
4477
+
4478
+ .flex-xxl-wrap {
4479
+ flex-wrap: wrap !important;
4480
+ }
4481
+
4482
+ .flex-xxl-nowrap {
4483
+ flex-wrap: nowrap !important;
4484
+ }
4485
+
4486
+ .flex-xxl-wrap-reverse {
4487
+ flex-wrap: wrap-reverse !important;
4488
+ }
4489
+
4490
+ .justify-content-xxl-start {
4491
+ justify-content: flex-start !important;
4492
+ }
4493
+
4494
+ .justify-content-xxl-end {
4495
+ justify-content: flex-end !important;
4496
+ }
4497
+
4498
+ .justify-content-xxl-center {
4499
+ justify-content: center !important;
4500
+ }
4501
+
4502
+ .justify-content-xxl-between {
4503
+ justify-content: space-between !important;
4504
+ }
4505
+
4506
+ .justify-content-xxl-around {
4507
+ justify-content: space-around !important;
4508
+ }
4509
+
4510
+ .justify-content-xxl-evenly {
4511
+ justify-content: space-evenly !important;
4512
+ }
4513
+
4514
+ .align-items-xxl-start {
4515
+ align-items: flex-start !important;
4516
+ }
4517
+
4518
+ .align-items-xxl-end {
4519
+ align-items: flex-end !important;
4520
+ }
4521
+
4522
+ .align-items-xxl-center {
4523
+ align-items: center !important;
4524
+ }
4525
+
4526
+ .align-items-xxl-baseline {
4527
+ align-items: baseline !important;
4528
+ }
4529
+
4530
+ .align-items-xxl-stretch {
4531
+ align-items: stretch !important;
4532
+ }
4533
+
4534
+ .align-content-xxl-start {
4535
+ align-content: flex-start !important;
4536
+ }
4537
+
4538
+ .align-content-xxl-end {
4539
+ align-content: flex-end !important;
4540
+ }
4541
+
4542
+ .align-content-xxl-center {
4543
+ align-content: center !important;
4544
+ }
4545
+
4546
+ .align-content-xxl-between {
4547
+ align-content: space-between !important;
4548
+ }
4549
+
4550
+ .align-content-xxl-around {
4551
+ align-content: space-around !important;
4552
+ }
4553
+
4554
+ .align-content-xxl-stretch {
4555
+ align-content: stretch !important;
4556
+ }
4557
+
4558
+ .align-self-xxl-auto {
4559
+ align-self: auto !important;
4560
+ }
4561
+
4562
+ .align-self-xxl-start {
4563
+ align-self: flex-start !important;
4564
+ }
4565
+
4566
+ .align-self-xxl-end {
4567
+ align-self: flex-end !important;
4568
+ }
4569
+
4570
+ .align-self-xxl-center {
4571
+ align-self: center !important;
4572
+ }
4573
+
4574
+ .align-self-xxl-baseline {
4575
+ align-self: baseline !important;
4576
+ }
4577
+
4578
+ .align-self-xxl-stretch {
4579
+ align-self: stretch !important;
4580
+ }
4581
+
4582
+ .order-xxl-first {
4583
+ order: -1 !important;
4584
+ }
4585
+
4586
+ .order-xxl-0 {
4587
+ order: 0 !important;
4588
+ }
4589
+
4590
+ .order-xxl-1 {
4591
+ order: 1 !important;
4592
+ }
4593
+
4594
+ .order-xxl-2 {
4595
+ order: 2 !important;
4596
+ }
4597
+
4598
+ .order-xxl-3 {
4599
+ order: 3 !important;
4600
+ }
4601
+
4602
+ .order-xxl-4 {
4603
+ order: 4 !important;
4604
+ }
4605
+
4606
+ .order-xxl-5 {
4607
+ order: 5 !important;
4608
+ }
4609
+
4610
+ .order-xxl-last {
4611
+ order: 6 !important;
4612
+ }
4613
+
4614
+ .m-xxl-0 {
4615
+ margin: 0 !important;
4616
+ }
4617
+
4618
+ .m-xxl-1 {
4619
+ margin: 0.25rem !important;
4620
+ }
4621
+
4622
+ .m-xxl-2 {
4623
+ margin: 0.5rem !important;
4624
+ }
4625
+
4626
+ .m-xxl-3 {
4627
+ margin: 1rem !important;
4628
+ }
4629
+
4630
+ .m-xxl-4 {
4631
+ margin: 1.5rem !important;
4632
+ }
4633
+
4634
+ .m-xxl-5 {
4635
+ margin: 3rem !important;
4636
+ }
4637
+
4638
+ .m-xxl-auto {
4639
+ margin: auto !important;
4640
+ }
4641
+
4642
+ .mx-xxl-0 {
4643
+ margin-left: 0 !important;
4644
+ margin-right: 0 !important;
4645
+ }
4646
+
4647
+ .mx-xxl-1 {
4648
+ margin-left: 0.25rem !important;
4649
+ margin-right: 0.25rem !important;
4650
+ }
4651
+
4652
+ .mx-xxl-2 {
4653
+ margin-left: 0.5rem !important;
4654
+ margin-right: 0.5rem !important;
4655
+ }
4656
+
4657
+ .mx-xxl-3 {
4658
+ margin-left: 1rem !important;
4659
+ margin-right: 1rem !important;
4660
+ }
4661
+
4662
+ .mx-xxl-4 {
4663
+ margin-left: 1.5rem !important;
4664
+ margin-right: 1.5rem !important;
4665
+ }
4666
+
4667
+ .mx-xxl-5 {
4668
+ margin-left: 3rem !important;
4669
+ margin-right: 3rem !important;
4670
+ }
4671
+
4672
+ .mx-xxl-auto {
4673
+ margin-left: auto !important;
4674
+ margin-right: auto !important;
4675
+ }
4676
+
4677
+ .my-xxl-0 {
4678
+ margin-top: 0 !important;
4679
+ margin-bottom: 0 !important;
4680
+ }
4681
+
4682
+ .my-xxl-1 {
4683
+ margin-top: 0.25rem !important;
4684
+ margin-bottom: 0.25rem !important;
4685
+ }
4686
+
4687
+ .my-xxl-2 {
4688
+ margin-top: 0.5rem !important;
4689
+ margin-bottom: 0.5rem !important;
4690
+ }
4691
+
4692
+ .my-xxl-3 {
4693
+ margin-top: 1rem !important;
4694
+ margin-bottom: 1rem !important;
4695
+ }
4696
+
4697
+ .my-xxl-4 {
4698
+ margin-top: 1.5rem !important;
4699
+ margin-bottom: 1.5rem !important;
4700
+ }
4701
+
4702
+ .my-xxl-5 {
4703
+ margin-top: 3rem !important;
4704
+ margin-bottom: 3rem !important;
4705
+ }
4706
+
4707
+ .my-xxl-auto {
4708
+ margin-top: auto !important;
4709
+ margin-bottom: auto !important;
4710
+ }
4711
+
4712
+ .mt-xxl-0 {
4713
+ margin-top: 0 !important;
4714
+ }
4715
+
4716
+ .mt-xxl-1 {
4717
+ margin-top: 0.25rem !important;
4718
+ }
4719
+
4720
+ .mt-xxl-2 {
4721
+ margin-top: 0.5rem !important;
4722
+ }
4723
+
4724
+ .mt-xxl-3 {
4725
+ margin-top: 1rem !important;
4726
+ }
4727
+
4728
+ .mt-xxl-4 {
4729
+ margin-top: 1.5rem !important;
4730
+ }
4731
+
4732
+ .mt-xxl-5 {
4733
+ margin-top: 3rem !important;
4734
+ }
4735
+
4736
+ .mt-xxl-auto {
4737
+ margin-top: auto !important;
4738
+ }
4739
+
4740
+ .me-xxl-0 {
4741
+ margin-left: 0 !important;
4742
+ }
4743
+
4744
+ .me-xxl-1 {
4745
+ margin-left: 0.25rem !important;
4746
+ }
4747
+
4748
+ .me-xxl-2 {
4749
+ margin-left: 0.5rem !important;
4750
+ }
4751
+
4752
+ .me-xxl-3 {
4753
+ margin-left: 1rem !important;
4754
+ }
4755
+
4756
+ .me-xxl-4 {
4757
+ margin-left: 1.5rem !important;
4758
+ }
4759
+
4760
+ .me-xxl-5 {
4761
+ margin-left: 3rem !important;
4762
+ }
4763
+
4764
+ .me-xxl-auto {
4765
+ margin-left: auto !important;
4766
+ }
4767
+
4768
+ .mb-xxl-0 {
4769
+ margin-bottom: 0 !important;
4770
+ }
4771
+
4772
+ .mb-xxl-1 {
4773
+ margin-bottom: 0.25rem !important;
4774
+ }
4775
+
4776
+ .mb-xxl-2 {
4777
+ margin-bottom: 0.5rem !important;
4778
+ }
4779
+
4780
+ .mb-xxl-3 {
4781
+ margin-bottom: 1rem !important;
4782
+ }
4783
+
4784
+ .mb-xxl-4 {
4785
+ margin-bottom: 1.5rem !important;
4786
+ }
4787
+
4788
+ .mb-xxl-5 {
4789
+ margin-bottom: 3rem !important;
4790
+ }
4791
+
4792
+ .mb-xxl-auto {
4793
+ margin-bottom: auto !important;
4794
+ }
4795
+
4796
+ .ms-xxl-0 {
4797
+ margin-right: 0 !important;
4798
+ }
4799
+
4800
+ .ms-xxl-1 {
4801
+ margin-right: 0.25rem !important;
4802
+ }
4803
+
4804
+ .ms-xxl-2 {
4805
+ margin-right: 0.5rem !important;
4806
+ }
4807
+
4808
+ .ms-xxl-3 {
4809
+ margin-right: 1rem !important;
4810
+ }
4811
+
4812
+ .ms-xxl-4 {
4813
+ margin-right: 1.5rem !important;
4814
+ }
4815
+
4816
+ .ms-xxl-5 {
4817
+ margin-right: 3rem !important;
4818
+ }
4819
+
4820
+ .ms-xxl-auto {
4821
+ margin-right: auto !important;
4822
+ }
4823
+
4824
+ .p-xxl-0 {
4825
+ padding: 0 !important;
4826
+ }
4827
+
4828
+ .p-xxl-1 {
4829
+ padding: 0.25rem !important;
4830
+ }
4831
+
4832
+ .p-xxl-2 {
4833
+ padding: 0.5rem !important;
4834
+ }
4835
+
4836
+ .p-xxl-3 {
4837
+ padding: 1rem !important;
4838
+ }
4839
+
4840
+ .p-xxl-4 {
4841
+ padding: 1.5rem !important;
4842
+ }
4843
+
4844
+ .p-xxl-5 {
4845
+ padding: 3rem !important;
4846
+ }
4847
+
4848
+ .px-xxl-0 {
4849
+ padding-left: 0 !important;
4850
+ padding-right: 0 !important;
4851
+ }
4852
+
4853
+ .px-xxl-1 {
4854
+ padding-left: 0.25rem !important;
4855
+ padding-right: 0.25rem !important;
4856
+ }
4857
+
4858
+ .px-xxl-2 {
4859
+ padding-left: 0.5rem !important;
4860
+ padding-right: 0.5rem !important;
4861
+ }
4862
+
4863
+ .px-xxl-3 {
4864
+ padding-left: 1rem !important;
4865
+ padding-right: 1rem !important;
4866
+ }
4867
+
4868
+ .px-xxl-4 {
4869
+ padding-left: 1.5rem !important;
4870
+ padding-right: 1.5rem !important;
4871
+ }
4872
+
4873
+ .px-xxl-5 {
4874
+ padding-left: 3rem !important;
4875
+ padding-right: 3rem !important;
4876
+ }
4877
+
4878
+ .py-xxl-0 {
4879
+ padding-top: 0 !important;
4880
+ padding-bottom: 0 !important;
4881
+ }
4882
+
4883
+ .py-xxl-1 {
4884
+ padding-top: 0.25rem !important;
4885
+ padding-bottom: 0.25rem !important;
4886
+ }
4887
+
4888
+ .py-xxl-2 {
4889
+ padding-top: 0.5rem !important;
4890
+ padding-bottom: 0.5rem !important;
4891
+ }
4892
+
4893
+ .py-xxl-3 {
4894
+ padding-top: 1rem !important;
4895
+ padding-bottom: 1rem !important;
4896
+ }
4897
+
4898
+ .py-xxl-4 {
4899
+ padding-top: 1.5rem !important;
4900
+ padding-bottom: 1.5rem !important;
4901
+ }
4902
+
4903
+ .py-xxl-5 {
4904
+ padding-top: 3rem !important;
4905
+ padding-bottom: 3rem !important;
4906
+ }
4907
+
4908
+ .pt-xxl-0 {
4909
+ padding-top: 0 !important;
4910
+ }
4911
+
4912
+ .pt-xxl-1 {
4913
+ padding-top: 0.25rem !important;
4914
+ }
4915
+
4916
+ .pt-xxl-2 {
4917
+ padding-top: 0.5rem !important;
4918
+ }
4919
+
4920
+ .pt-xxl-3 {
4921
+ padding-top: 1rem !important;
4922
+ }
4923
+
4924
+ .pt-xxl-4 {
4925
+ padding-top: 1.5rem !important;
4926
+ }
4927
+
4928
+ .pt-xxl-5 {
4929
+ padding-top: 3rem !important;
4930
+ }
4931
+
4932
+ .pe-xxl-0 {
4933
+ padding-left: 0 !important;
4934
+ }
4935
+
4936
+ .pe-xxl-1 {
4937
+ padding-left: 0.25rem !important;
4938
+ }
4939
+
4940
+ .pe-xxl-2 {
4941
+ padding-left: 0.5rem !important;
4942
+ }
4943
+
4944
+ .pe-xxl-3 {
4945
+ padding-left: 1rem !important;
4946
+ }
4947
+
4948
+ .pe-xxl-4 {
4949
+ padding-left: 1.5rem !important;
4950
+ }
4951
+
4952
+ .pe-xxl-5 {
4953
+ padding-left: 3rem !important;
4954
+ }
4955
+
4956
+ .pb-xxl-0 {
4957
+ padding-bottom: 0 !important;
4958
+ }
4959
+
4960
+ .pb-xxl-1 {
4961
+ padding-bottom: 0.25rem !important;
4962
+ }
4963
+
4964
+ .pb-xxl-2 {
4965
+ padding-bottom: 0.5rem !important;
4966
+ }
4967
+
4968
+ .pb-xxl-3 {
4969
+ padding-bottom: 1rem !important;
4970
+ }
4971
+
4972
+ .pb-xxl-4 {
4973
+ padding-bottom: 1.5rem !important;
4974
+ }
4975
+
4976
+ .pb-xxl-5 {
4977
+ padding-bottom: 3rem !important;
4978
+ }
4979
+
4980
+ .ps-xxl-0 {
4981
+ padding-right: 0 !important;
4982
+ }
4983
+
4984
+ .ps-xxl-1 {
4985
+ padding-right: 0.25rem !important;
4986
+ }
4987
+
4988
+ .ps-xxl-2 {
4989
+ padding-right: 0.5rem !important;
4990
+ }
4991
+
4992
+ .ps-xxl-3 {
4993
+ padding-right: 1rem !important;
4994
+ }
4995
+
4996
+ .ps-xxl-4 {
4997
+ padding-right: 1.5rem !important;
4998
+ }
4999
+
5000
+ .ps-xxl-5 {
5001
+ padding-right: 3rem !important;
5002
+ }
5003
+ }
5004
+
5005
+ @media print {
5006
+ .d-print-inline {
5007
+ display: inline !important;
5008
+ }
5009
+
5010
+ .d-print-inline-block {
5011
+ display: inline-block !important;
5012
+ }
5013
+
5014
+ .d-print-block {
5015
+ display: block !important;
5016
+ }
5017
+
5018
+ .d-print-grid {
5019
+ display: grid !important;
5020
+ }
5021
+
5022
+ .d-print-inline-grid {
5023
+ display: inline-grid !important;
5024
+ }
5025
+
5026
+ .d-print-table {
5027
+ display: table !important;
5028
+ }
5029
+
5030
+ .d-print-table-row {
5031
+ display: table-row !important;
5032
+ }
5033
+
5034
+ .d-print-table-cell {
5035
+ display: table-cell !important;
5036
+ }
5037
+
5038
+ .d-print-flex {
5039
+ display: flex !important;
5040
+ }
5041
+
5042
+ .d-print-inline-flex {
5043
+ display: inline-flex !important;
5044
+ }
5045
+
5046
+ .d-print-none {
5047
+ display: none !important;
5048
+ }
5049
+ }
5050
+
5051
+ /*# sourceMappingURL=bootstrap-grid.rtl.css.map */
backend/app/static/css/bootstrap-grid.rtl.css.map ADDED
The diff for this file is too large to render. See raw diff
 
backend/app/static/css/bootstrap-grid.rtl.min.css ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ /*!
2
+ * Bootstrap Grid v5.3.3 (https://getbootstrap.com/)
3
+ * Copyright 2011-2024 The Bootstrap Authors
4
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
+ */.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{--bs-gutter-x:1.5rem;--bs-gutter-y:0;width:100%;padding-left:calc(var(--bs-gutter-x) * .5);padding-right:calc(var(--bs-gutter-x) * .5);margin-left:auto;margin-right:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}@media (min-width:1400px){.container,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{max-width:1320px}}:root{--bs-breakpoint-xs:0;--bs-breakpoint-sm:576px;--bs-breakpoint-md:768px;--bs-breakpoint-lg:992px;--bs-breakpoint-xl:1200px;--bs-breakpoint-xxl:1400px}.row{--bs-gutter-x:1.5rem;--bs-gutter-y:0;display:flex;flex-wrap:wrap;margin-top:calc(-1 * var(--bs-gutter-y));margin-left:calc(-.5 * var(--bs-gutter-x));margin-right:calc(-.5 * var(--bs-gutter-x))}.row>*{box-sizing:border-box;flex-shrink:0;width:100%;max-width:100%;padding-left:calc(var(--bs-gutter-x) * .5);padding-right:calc(var(--bs-gutter-x) * .5);margin-top:var(--bs-gutter-y)}.col{flex:1 0 0%}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.66666667%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.33333333%}.col-2{flex:0 0 auto;width:16.66666667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.33333333%}.col-5{flex:0 0 auto;width:41.66666667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.33333333%}.col-8{flex:0 0 auto;width:66.66666667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.33333333%}.col-11{flex:0 0 auto;width:91.66666667%}.col-12{flex:0 0 auto;width:100%}.offset-1{margin-right:8.33333333%}.offset-2{margin-right:16.66666667%}.offset-3{margin-right:25%}.offset-4{margin-right:33.33333333%}.offset-5{margin-right:41.66666667%}.offset-6{margin-right:50%}.offset-7{margin-right:58.33333333%}.offset-8{margin-right:66.66666667%}.offset-9{margin-right:75%}.offset-10{margin-right:83.33333333%}.offset-11{margin-right:91.66666667%}.g-0,.gx-0{--bs-gutter-x:0}.g-0,.gy-0{--bs-gutter-y:0}.g-1,.gx-1{--bs-gutter-x:0.25rem}.g-1,.gy-1{--bs-gutter-y:0.25rem}.g-2,.gx-2{--bs-gutter-x:0.5rem}.g-2,.gy-2{--bs-gutter-y:0.5rem}.g-3,.gx-3{--bs-gutter-x:1rem}.g-3,.gy-3{--bs-gutter-y:1rem}.g-4,.gx-4{--bs-gutter-x:1.5rem}.g-4,.gy-4{--bs-gutter-y:1.5rem}.g-5,.gx-5{--bs-gutter-x:3rem}.g-5,.gy-5{--bs-gutter-y:3rem}@media (min-width:576px){.col-sm{flex:1 0 0%}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.66666667%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.33333333%}.col-sm-2{flex:0 0 auto;width:16.66666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333333%}.col-sm-5{flex:0 0 auto;width:41.66666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.33333333%}.col-sm-8{flex:0 0 auto;width:66.66666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.33333333%}.col-sm-11{flex:0 0 auto;width:91.66666667%}.col-sm-12{flex:0 0 auto;width:100%}.offset-sm-0{margin-right:0}.offset-sm-1{margin-right:8.33333333%}.offset-sm-2{margin-right:16.66666667%}.offset-sm-3{margin-right:25%}.offset-sm-4{margin-right:33.33333333%}.offset-sm-5{margin-right:41.66666667%}.offset-sm-6{margin-right:50%}.offset-sm-7{margin-right:58.33333333%}.offset-sm-8{margin-right:66.66666667%}.offset-sm-9{margin-right:75%}.offset-sm-10{margin-right:83.33333333%}.offset-sm-11{margin-right:91.66666667%}.g-sm-0,.gx-sm-0{--bs-gutter-x:0}.g-sm-0,.gy-sm-0{--bs-gutter-y:0}.g-sm-1,.gx-sm-1{--bs-gutter-x:0.25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y:0.25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x:0.5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y:0.5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x:1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y:1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x:1.5rem}.g-sm-4,.gy-sm-4{--bs-gutter-y:1.5rem}.g-sm-5,.gx-sm-5{--bs-gutter-x:3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y:3rem}}@media (min-width:768px){.col-md{flex:1 0 0%}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.66666667%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.33333333%}.col-md-2{flex:0 0 auto;width:16.66666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333333%}.col-md-5{flex:0 0 auto;width:41.66666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.33333333%}.col-md-8{flex:0 0 auto;width:66.66666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333333%}.col-md-11{flex:0 0 auto;width:91.66666667%}.col-md-12{flex:0 0 auto;width:100%}.offset-md-0{margin-right:0}.offset-md-1{margin-right:8.33333333%}.offset-md-2{margin-right:16.66666667%}.offset-md-3{margin-right:25%}.offset-md-4{margin-right:33.33333333%}.offset-md-5{margin-right:41.66666667%}.offset-md-6{margin-right:50%}.offset-md-7{margin-right:58.33333333%}.offset-md-8{margin-right:66.66666667%}.offset-md-9{margin-right:75%}.offset-md-10{margin-right:83.33333333%}.offset-md-11{margin-right:91.66666667%}.g-md-0,.gx-md-0{--bs-gutter-x:0}.g-md-0,.gy-md-0{--bs-gutter-y:0}.g-md-1,.gx-md-1{--bs-gutter-x:0.25rem}.g-md-1,.gy-md-1{--bs-gutter-y:0.25rem}.g-md-2,.gx-md-2{--bs-gutter-x:0.5rem}.g-md-2,.gy-md-2{--bs-gutter-y:0.5rem}.g-md-3,.gx-md-3{--bs-gutter-x:1rem}.g-md-3,.gy-md-3{--bs-gutter-y:1rem}.g-md-4,.gx-md-4{--bs-gutter-x:1.5rem}.g-md-4,.gy-md-4{--bs-gutter-y:1.5rem}.g-md-5,.gx-md-5{--bs-gutter-x:3rem}.g-md-5,.gy-md-5{--bs-gutter-y:3rem}}@media (min-width:992px){.col-lg{flex:1 0 0%}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.66666667%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.33333333%}.col-lg-2{flex:0 0 auto;width:16.66666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.33333333%}.col-lg-5{flex:0 0 auto;width:41.66666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.33333333%}.col-lg-8{flex:0 0 auto;width:66.66666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333333%}.col-lg-11{flex:0 0 auto;width:91.66666667%}.col-lg-12{flex:0 0 auto;width:100%}.offset-lg-0{margin-right:0}.offset-lg-1{margin-right:8.33333333%}.offset-lg-2{margin-right:16.66666667%}.offset-lg-3{margin-right:25%}.offset-lg-4{margin-right:33.33333333%}.offset-lg-5{margin-right:41.66666667%}.offset-lg-6{margin-right:50%}.offset-lg-7{margin-right:58.33333333%}.offset-lg-8{margin-right:66.66666667%}.offset-lg-9{margin-right:75%}.offset-lg-10{margin-right:83.33333333%}.offset-lg-11{margin-right:91.66666667%}.g-lg-0,.gx-lg-0{--bs-gutter-x:0}.g-lg-0,.gy-lg-0{--bs-gutter-y:0}.g-lg-1,.gx-lg-1{--bs-gutter-x:0.25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y:0.25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x:0.5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y:0.5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x:1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y:1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x:1.5rem}.g-lg-4,.gy-lg-4{--bs-gutter-y:1.5rem}.g-lg-5,.gx-lg-5{--bs-gutter-x:3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y:3rem}}@media (min-width:1200px){.col-xl{flex:1 0 0%}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.66666667%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.33333333%}.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333333%}.col-xl-5{flex:0 0 auto;width:41.66666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.33333333%}.col-xl-8{flex:0 0 auto;width:66.66666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.33333333%}.col-xl-11{flex:0 0 auto;width:91.66666667%}.col-xl-12{flex:0 0 auto;width:100%}.offset-xl-0{margin-right:0}.offset-xl-1{margin-right:8.33333333%}.offset-xl-2{margin-right:16.66666667%}.offset-xl-3{margin-right:25%}.offset-xl-4{margin-right:33.33333333%}.offset-xl-5{margin-right:41.66666667%}.offset-xl-6{margin-right:50%}.offset-xl-7{margin-right:58.33333333%}.offset-xl-8{margin-right:66.66666667%}.offset-xl-9{margin-right:75%}.offset-xl-10{margin-right:83.33333333%}.offset-xl-11{margin-right:91.66666667%}.g-xl-0,.gx-xl-0{--bs-gutter-x:0}.g-xl-0,.gy-xl-0{--bs-gutter-y:0}.g-xl-1,.gx-xl-1{--bs-gutter-x:0.25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y:0.25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x:0.5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y:0.5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x:1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y:1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x:1.5rem}.g-xl-4,.gy-xl-4{--bs-gutter-y:1.5rem}.g-xl-5,.gx-xl-5{--bs-gutter-x:3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y:3rem}}@media (min-width:1400px){.col-xxl{flex:1 0 0%}.row-cols-xxl-auto>*{flex:0 0 auto;width:auto}.row-cols-xxl-1>*{flex:0 0 auto;width:100%}.row-cols-xxl-2>*{flex:0 0 auto;width:50%}.row-cols-xxl-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-xxl-4>*{flex:0 0 auto;width:25%}.row-cols-xxl-5>*{flex:0 0 auto;width:20%}.row-cols-xxl-6>*{flex:0 0 auto;width:16.66666667%}.col-xxl-auto{flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;width:8.33333333%}.col-xxl-2{flex:0 0 auto;width:16.66666667%}.col-xxl-3{flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;width:33.33333333%}.col-xxl-5{flex:0 0 auto;width:41.66666667%}.col-xxl-6{flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;width:58.33333333%}.col-xxl-8{flex:0 0 auto;width:66.66666667%}.col-xxl-9{flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;width:83.33333333%}.col-xxl-11{flex:0 0 auto;width:91.66666667%}.col-xxl-12{flex:0 0 auto;width:100%}.offset-xxl-0{margin-right:0}.offset-xxl-1{margin-right:8.33333333%}.offset-xxl-2{margin-right:16.66666667%}.offset-xxl-3{margin-right:25%}.offset-xxl-4{margin-right:33.33333333%}.offset-xxl-5{margin-right:41.66666667%}.offset-xxl-6{margin-right:50%}.offset-xxl-7{margin-right:58.33333333%}.offset-xxl-8{margin-right:66.66666667%}.offset-xxl-9{margin-right:75%}.offset-xxl-10{margin-right:83.33333333%}.offset-xxl-11{margin-right:91.66666667%}.g-xxl-0,.gx-xxl-0{--bs-gutter-x:0}.g-xxl-0,.gy-xxl-0{--bs-gutter-y:0}.g-xxl-1,.gx-xxl-1{--bs-gutter-x:0.25rem}.g-xxl-1,.gy-xxl-1{--bs-gutter-y:0.25rem}.g-xxl-2,.gx-xxl-2{--bs-gutter-x:0.5rem}.g-xxl-2,.gy-xxl-2{--bs-gutter-y:0.5rem}.g-xxl-3,.gx-xxl-3{--bs-gutter-x:1rem}.g-xxl-3,.gy-xxl-3{--bs-gutter-y:1rem}.g-xxl-4,.gx-xxl-4{--bs-gutter-x:1.5rem}.g-xxl-4,.gy-xxl-4{--bs-gutter-y:1.5rem}.g-xxl-5,.gx-xxl-5{--bs-gutter-x:3rem}.g-xxl-5,.gy-xxl-5{--bs-gutter-y:3rem}}.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}.flex-fill{flex:1 1 auto!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.justify-content-evenly{justify-content:space-evenly!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-last{order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:1.5rem!important}.m-5{margin:3rem!important}.m-auto{margin:auto!important}.mx-0{margin-left:0!important;margin-right:0!important}.mx-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-3{margin-left:1rem!important;margin-right:1rem!important}.mx-4{margin-left:1.5rem!important;margin-right:1.5rem!important}.mx-5{margin-left:3rem!important;margin-right:3rem!important}.mx-auto{margin-left:auto!important;margin-right:auto!important}.my-0{margin-top:0!important;margin-bottom:0!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:3rem!important}.mt-auto{margin-top:auto!important}.me-0{margin-left:0!important}.me-1{margin-left:.25rem!important}.me-2{margin-left:.5rem!important}.me-3{margin-left:1rem!important}.me-4{margin-left:1.5rem!important}.me-5{margin-left:3rem!important}.me-auto{margin-left:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:3rem!important}.mb-auto{margin-bottom:auto!important}.ms-0{margin-right:0!important}.ms-1{margin-right:.25rem!important}.ms-2{margin-right:.5rem!important}.ms-3{margin-right:1rem!important}.ms-4{margin-right:1.5rem!important}.ms-5{margin-right:3rem!important}.ms-auto{margin-right:auto!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}.p-5{padding:3rem!important}.px-0{padding-left:0!important;padding-right:0!important}.px-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-3{padding-left:1rem!important;padding-right:1rem!important}.px-4{padding-left:1.5rem!important;padding-right:1.5rem!important}.px-5{padding-left:3rem!important;padding-right:3rem!important}.py-0{padding-top:0!important;padding-bottom:0!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:1.5rem!important}.pt-5{padding-top:3rem!important}.pe-0{padding-left:0!important}.pe-1{padding-left:.25rem!important}.pe-2{padding-left:.5rem!important}.pe-3{padding-left:1rem!important}.pe-4{padding-left:1.5rem!important}.pe-5{padding-left:3rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:1.5rem!important}.pb-5{padding-bottom:3rem!important}.ps-0{padding-right:0!important}.ps-1{padding-right:.25rem!important}.ps-2{padding-right:.5rem!important}.ps-3{padding-right:1rem!important}.ps-4{padding-right:1.5rem!important}.ps-5{padding-right:3rem!important}@media (min-width:576px){.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-grid{display:grid!important}.d-sm-inline-grid{display:inline-grid!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}.d-sm-none{display:none!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.justify-content-sm-evenly{justify-content:space-evenly!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.order-sm-first{order:-1!important}.order-sm-0{order:0!important}.order-sm-1{order:1!important}.order-sm-2{order:2!important}.order-sm-3{order:3!important}.order-sm-4{order:4!important}.order-sm-5{order:5!important}.order-sm-last{order:6!important}.m-sm-0{margin:0!important}.m-sm-1{margin:.25rem!important}.m-sm-2{margin:.5rem!important}.m-sm-3{margin:1rem!important}.m-sm-4{margin:1.5rem!important}.m-sm-5{margin:3rem!important}.m-sm-auto{margin:auto!important}.mx-sm-0{margin-left:0!important;margin-right:0!important}.mx-sm-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-sm-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-sm-3{margin-left:1rem!important;margin-right:1rem!important}.mx-sm-4{margin-left:1.5rem!important;margin-right:1.5rem!important}.mx-sm-5{margin-left:3rem!important;margin-right:3rem!important}.mx-sm-auto{margin-left:auto!important;margin-right:auto!important}.my-sm-0{margin-top:0!important;margin-bottom:0!important}.my-sm-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-sm-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-sm-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-sm-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-sm-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-sm-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:.25rem!important}.mt-sm-2{margin-top:.5rem!important}.mt-sm-3{margin-top:1rem!important}.mt-sm-4{margin-top:1.5rem!important}.mt-sm-5{margin-top:3rem!important}.mt-sm-auto{margin-top:auto!important}.me-sm-0{margin-left:0!important}.me-sm-1{margin-left:.25rem!important}.me-sm-2{margin-left:.5rem!important}.me-sm-3{margin-left:1rem!important}.me-sm-4{margin-left:1.5rem!important}.me-sm-5{margin-left:3rem!important}.me-sm-auto{margin-left:auto!important}.mb-sm-0{margin-bottom:0!important}.mb-sm-1{margin-bottom:.25rem!important}.mb-sm-2{margin-bottom:.5rem!important}.mb-sm-3{margin-bottom:1rem!important}.mb-sm-4{margin-bottom:1.5rem!important}.mb-sm-5{margin-bottom:3rem!important}.mb-sm-auto{margin-bottom:auto!important}.ms-sm-0{margin-right:0!important}.ms-sm-1{margin-right:.25rem!important}.ms-sm-2{margin-right:.5rem!important}.ms-sm-3{margin-right:1rem!important}.ms-sm-4{margin-right:1.5rem!important}.ms-sm-5{margin-right:3rem!important}.ms-sm-auto{margin-right:auto!important}.p-sm-0{padding:0!important}.p-sm-1{padding:.25rem!important}.p-sm-2{padding:.5rem!important}.p-sm-3{padding:1rem!important}.p-sm-4{padding:1.5rem!important}.p-sm-5{padding:3rem!important}.px-sm-0{padding-left:0!important;padding-right:0!important}.px-sm-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-sm-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-sm-3{padding-left:1rem!important;padding-right:1rem!important}.px-sm-4{padding-left:1.5rem!important;padding-right:1.5rem!important}.px-sm-5{padding-left:3rem!important;padding-right:3rem!important}.py-sm-0{padding-top:0!important;padding-bottom:0!important}.py-sm-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-sm-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-sm-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-sm-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-sm-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:.25rem!important}.pt-sm-2{padding-top:.5rem!important}.pt-sm-3{padding-top:1rem!important}.pt-sm-4{padding-top:1.5rem!important}.pt-sm-5{padding-top:3rem!important}.pe-sm-0{padding-left:0!important}.pe-sm-1{padding-left:.25rem!important}.pe-sm-2{padding-left:.5rem!important}.pe-sm-3{padding-left:1rem!important}.pe-sm-4{padding-left:1.5rem!important}.pe-sm-5{padding-left:3rem!important}.pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:.25rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pb-sm-3{padding-bottom:1rem!important}.pb-sm-4{padding-bottom:1.5rem!important}.pb-sm-5{padding-bottom:3rem!important}.ps-sm-0{padding-right:0!important}.ps-sm-1{padding-right:.25rem!important}.ps-sm-2{padding-right:.5rem!important}.ps-sm-3{padding-right:1rem!important}.ps-sm-4{padding-right:1.5rem!important}.ps-sm-5{padding-right:3rem!important}}@media (min-width:768px){.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-grid{display:grid!important}.d-md-inline-grid{display:inline-grid!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}.d-md-none{display:none!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.justify-content-md-evenly{justify-content:space-evenly!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.order-md-first{order:-1!important}.order-md-0{order:0!important}.order-md-1{order:1!important}.order-md-2{order:2!important}.order-md-3{order:3!important}.order-md-4{order:4!important}.order-md-5{order:5!important}.order-md-last{order:6!important}.m-md-0{margin:0!important}.m-md-1{margin:.25rem!important}.m-md-2{margin:.5rem!important}.m-md-3{margin:1rem!important}.m-md-4{margin:1.5rem!important}.m-md-5{margin:3rem!important}.m-md-auto{margin:auto!important}.mx-md-0{margin-left:0!important;margin-right:0!important}.mx-md-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-md-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-md-3{margin-left:1rem!important;margin-right:1rem!important}.mx-md-4{margin-left:1.5rem!important;margin-right:1.5rem!important}.mx-md-5{margin-left:3rem!important;margin-right:3rem!important}.mx-md-auto{margin-left:auto!important;margin-right:auto!important}.my-md-0{margin-top:0!important;margin-bottom:0!important}.my-md-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-md-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-md-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-md-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-md-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-md-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-md-0{margin-top:0!important}.mt-md-1{margin-top:.25rem!important}.mt-md-2{margin-top:.5rem!important}.mt-md-3{margin-top:1rem!important}.mt-md-4{margin-top:1.5rem!important}.mt-md-5{margin-top:3rem!important}.mt-md-auto{margin-top:auto!important}.me-md-0{margin-left:0!important}.me-md-1{margin-left:.25rem!important}.me-md-2{margin-left:.5rem!important}.me-md-3{margin-left:1rem!important}.me-md-4{margin-left:1.5rem!important}.me-md-5{margin-left:3rem!important}.me-md-auto{margin-left:auto!important}.mb-md-0{margin-bottom:0!important}.mb-md-1{margin-bottom:.25rem!important}.mb-md-2{margin-bottom:.5rem!important}.mb-md-3{margin-bottom:1rem!important}.mb-md-4{margin-bottom:1.5rem!important}.mb-md-5{margin-bottom:3rem!important}.mb-md-auto{margin-bottom:auto!important}.ms-md-0{margin-right:0!important}.ms-md-1{margin-right:.25rem!important}.ms-md-2{margin-right:.5rem!important}.ms-md-3{margin-right:1rem!important}.ms-md-4{margin-right:1.5rem!important}.ms-md-5{margin-right:3rem!important}.ms-md-auto{margin-right:auto!important}.p-md-0{padding:0!important}.p-md-1{padding:.25rem!important}.p-md-2{padding:.5rem!important}.p-md-3{padding:1rem!important}.p-md-4{padding:1.5rem!important}.p-md-5{padding:3rem!important}.px-md-0{padding-left:0!important;padding-right:0!important}.px-md-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-md-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-md-3{padding-left:1rem!important;padding-right:1rem!important}.px-md-4{padding-left:1.5rem!important;padding-right:1.5rem!important}.px-md-5{padding-left:3rem!important;padding-right:3rem!important}.py-md-0{padding-top:0!important;padding-bottom:0!important}.py-md-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-md-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-md-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-md-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-md-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-md-0{padding-top:0!important}.pt-md-1{padding-top:.25rem!important}.pt-md-2{padding-top:.5rem!important}.pt-md-3{padding-top:1rem!important}.pt-md-4{padding-top:1.5rem!important}.pt-md-5{padding-top:3rem!important}.pe-md-0{padding-left:0!important}.pe-md-1{padding-left:.25rem!important}.pe-md-2{padding-left:.5rem!important}.pe-md-3{padding-left:1rem!important}.pe-md-4{padding-left:1.5rem!important}.pe-md-5{padding-left:3rem!important}.pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:.25rem!important}.pb-md-2{padding-bottom:.5rem!important}.pb-md-3{padding-bottom:1rem!important}.pb-md-4{padding-bottom:1.5rem!important}.pb-md-5{padding-bottom:3rem!important}.ps-md-0{padding-right:0!important}.ps-md-1{padding-right:.25rem!important}.ps-md-2{padding-right:.5rem!important}.ps-md-3{padding-right:1rem!important}.ps-md-4{padding-right:1.5rem!important}.ps-md-5{padding-right:3rem!important}}@media (min-width:992px){.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-grid{display:grid!important}.d-lg-inline-grid{display:inline-grid!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}.d-lg-none{display:none!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.justify-content-lg-evenly{justify-content:space-evenly!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.order-lg-first{order:-1!important}.order-lg-0{order:0!important}.order-lg-1{order:1!important}.order-lg-2{order:2!important}.order-lg-3{order:3!important}.order-lg-4{order:4!important}.order-lg-5{order:5!important}.order-lg-last{order:6!important}.m-lg-0{margin:0!important}.m-lg-1{margin:.25rem!important}.m-lg-2{margin:.5rem!important}.m-lg-3{margin:1rem!important}.m-lg-4{margin:1.5rem!important}.m-lg-5{margin:3rem!important}.m-lg-auto{margin:auto!important}.mx-lg-0{margin-left:0!important;margin-right:0!important}.mx-lg-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-lg-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-lg-3{margin-left:1rem!important;margin-right:1rem!important}.mx-lg-4{margin-left:1.5rem!important;margin-right:1.5rem!important}.mx-lg-5{margin-left:3rem!important;margin-right:3rem!important}.mx-lg-auto{margin-left:auto!important;margin-right:auto!important}.my-lg-0{margin-top:0!important;margin-bottom:0!important}.my-lg-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-lg-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-lg-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-lg-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-lg-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-lg-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:.25rem!important}.mt-lg-2{margin-top:.5rem!important}.mt-lg-3{margin-top:1rem!important}.mt-lg-4{margin-top:1.5rem!important}.mt-lg-5{margin-top:3rem!important}.mt-lg-auto{margin-top:auto!important}.me-lg-0{margin-left:0!important}.me-lg-1{margin-left:.25rem!important}.me-lg-2{margin-left:.5rem!important}.me-lg-3{margin-left:1rem!important}.me-lg-4{margin-left:1.5rem!important}.me-lg-5{margin-left:3rem!important}.me-lg-auto{margin-left:auto!important}.mb-lg-0{margin-bottom:0!important}.mb-lg-1{margin-bottom:.25rem!important}.mb-lg-2{margin-bottom:.5rem!important}.mb-lg-3{margin-bottom:1rem!important}.mb-lg-4{margin-bottom:1.5rem!important}.mb-lg-5{margin-bottom:3rem!important}.mb-lg-auto{margin-bottom:auto!important}.ms-lg-0{margin-right:0!important}.ms-lg-1{margin-right:.25rem!important}.ms-lg-2{margin-right:.5rem!important}.ms-lg-3{margin-right:1rem!important}.ms-lg-4{margin-right:1.5rem!important}.ms-lg-5{margin-right:3rem!important}.ms-lg-auto{margin-right:auto!important}.p-lg-0{padding:0!important}.p-lg-1{padding:.25rem!important}.p-lg-2{padding:.5rem!important}.p-lg-3{padding:1rem!important}.p-lg-4{padding:1.5rem!important}.p-lg-5{padding:3rem!important}.px-lg-0{padding-left:0!important;padding-right:0!important}.px-lg-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-lg-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-lg-3{padding-left:1rem!important;padding-right:1rem!important}.px-lg-4{padding-left:1.5rem!important;padding-right:1.5rem!important}.px-lg-5{padding-left:3rem!important;padding-right:3rem!important}.py-lg-0{padding-top:0!important;padding-bottom:0!important}.py-lg-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-lg-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-lg-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-lg-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-lg-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:.25rem!important}.pt-lg-2{padding-top:.5rem!important}.pt-lg-3{padding-top:1rem!important}.pt-lg-4{padding-top:1.5rem!important}.pt-lg-5{padding-top:3rem!important}.pe-lg-0{padding-left:0!important}.pe-lg-1{padding-left:.25rem!important}.pe-lg-2{padding-left:.5rem!important}.pe-lg-3{padding-left:1rem!important}.pe-lg-4{padding-left:1.5rem!important}.pe-lg-5{padding-left:3rem!important}.pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:.25rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pb-lg-3{padding-bottom:1rem!important}.pb-lg-4{padding-bottom:1.5rem!important}.pb-lg-5{padding-bottom:3rem!important}.ps-lg-0{padding-right:0!important}.ps-lg-1{padding-right:.25rem!important}.ps-lg-2{padding-right:.5rem!important}.ps-lg-3{padding-right:1rem!important}.ps-lg-4{padding-right:1.5rem!important}.ps-lg-5{padding-right:3rem!important}}@media (min-width:1200px){.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-grid{display:grid!important}.d-xl-inline-grid{display:inline-grid!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}.d-xl-none{display:none!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.justify-content-xl-evenly{justify-content:space-evenly!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.order-xl-first{order:-1!important}.order-xl-0{order:0!important}.order-xl-1{order:1!important}.order-xl-2{order:2!important}.order-xl-3{order:3!important}.order-xl-4{order:4!important}.order-xl-5{order:5!important}.order-xl-last{order:6!important}.m-xl-0{margin:0!important}.m-xl-1{margin:.25rem!important}.m-xl-2{margin:.5rem!important}.m-xl-3{margin:1rem!important}.m-xl-4{margin:1.5rem!important}.m-xl-5{margin:3rem!important}.m-xl-auto{margin:auto!important}.mx-xl-0{margin-left:0!important;margin-right:0!important}.mx-xl-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-xl-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-xl-3{margin-left:1rem!important;margin-right:1rem!important}.mx-xl-4{margin-left:1.5rem!important;margin-right:1.5rem!important}.mx-xl-5{margin-left:3rem!important;margin-right:3rem!important}.mx-xl-auto{margin-left:auto!important;margin-right:auto!important}.my-xl-0{margin-top:0!important;margin-bottom:0!important}.my-xl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:.25rem!important}.mt-xl-2{margin-top:.5rem!important}.mt-xl-3{margin-top:1rem!important}.mt-xl-4{margin-top:1.5rem!important}.mt-xl-5{margin-top:3rem!important}.mt-xl-auto{margin-top:auto!important}.me-xl-0{margin-left:0!important}.me-xl-1{margin-left:.25rem!important}.me-xl-2{margin-left:.5rem!important}.me-xl-3{margin-left:1rem!important}.me-xl-4{margin-left:1.5rem!important}.me-xl-5{margin-left:3rem!important}.me-xl-auto{margin-left:auto!important}.mb-xl-0{margin-bottom:0!important}.mb-xl-1{margin-bottom:.25rem!important}.mb-xl-2{margin-bottom:.5rem!important}.mb-xl-3{margin-bottom:1rem!important}.mb-xl-4{margin-bottom:1.5rem!important}.mb-xl-5{margin-bottom:3rem!important}.mb-xl-auto{margin-bottom:auto!important}.ms-xl-0{margin-right:0!important}.ms-xl-1{margin-right:.25rem!important}.ms-xl-2{margin-right:.5rem!important}.ms-xl-3{margin-right:1rem!important}.ms-xl-4{margin-right:1.5rem!important}.ms-xl-5{margin-right:3rem!important}.ms-xl-auto{margin-right:auto!important}.p-xl-0{padding:0!important}.p-xl-1{padding:.25rem!important}.p-xl-2{padding:.5rem!important}.p-xl-3{padding:1rem!important}.p-xl-4{padding:1.5rem!important}.p-xl-5{padding:3rem!important}.px-xl-0{padding-left:0!important;padding-right:0!important}.px-xl-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-xl-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-xl-3{padding-left:1rem!important;padding-right:1rem!important}.px-xl-4{padding-left:1.5rem!important;padding-right:1.5rem!important}.px-xl-5{padding-left:3rem!important;padding-right:3rem!important}.py-xl-0{padding-top:0!important;padding-bottom:0!important}.py-xl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:.25rem!important}.pt-xl-2{padding-top:.5rem!important}.pt-xl-3{padding-top:1rem!important}.pt-xl-4{padding-top:1.5rem!important}.pt-xl-5{padding-top:3rem!important}.pe-xl-0{padding-left:0!important}.pe-xl-1{padding-left:.25rem!important}.pe-xl-2{padding-left:.5rem!important}.pe-xl-3{padding-left:1rem!important}.pe-xl-4{padding-left:1.5rem!important}.pe-xl-5{padding-left:3rem!important}.pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:.25rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pb-xl-3{padding-bottom:1rem!important}.pb-xl-4{padding-bottom:1.5rem!important}.pb-xl-5{padding-bottom:3rem!important}.ps-xl-0{padding-right:0!important}.ps-xl-1{padding-right:.25rem!important}.ps-xl-2{padding-right:.5rem!important}.ps-xl-3{padding-right:1rem!important}.ps-xl-4{padding-right:1.5rem!important}.ps-xl-5{padding-right:3rem!important}}@media (min-width:1400px){.d-xxl-inline{display:inline!important}.d-xxl-inline-block{display:inline-block!important}.d-xxl-block{display:block!important}.d-xxl-grid{display:grid!important}.d-xxl-inline-grid{display:inline-grid!important}.d-xxl-table{display:table!important}.d-xxl-table-row{display:table-row!important}.d-xxl-table-cell{display:table-cell!important}.d-xxl-flex{display:flex!important}.d-xxl-inline-flex{display:inline-flex!important}.d-xxl-none{display:none!important}.flex-xxl-fill{flex:1 1 auto!important}.flex-xxl-row{flex-direction:row!important}.flex-xxl-column{flex-direction:column!important}.flex-xxl-row-reverse{flex-direction:row-reverse!important}.flex-xxl-column-reverse{flex-direction:column-reverse!important}.flex-xxl-grow-0{flex-grow:0!important}.flex-xxl-grow-1{flex-grow:1!important}.flex-xxl-shrink-0{flex-shrink:0!important}.flex-xxl-shrink-1{flex-shrink:1!important}.flex-xxl-wrap{flex-wrap:wrap!important}.flex-xxl-nowrap{flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xxl-start{justify-content:flex-start!important}.justify-content-xxl-end{justify-content:flex-end!important}.justify-content-xxl-center{justify-content:center!important}.justify-content-xxl-between{justify-content:space-between!important}.justify-content-xxl-around{justify-content:space-around!important}.justify-content-xxl-evenly{justify-content:space-evenly!important}.align-items-xxl-start{align-items:flex-start!important}.align-items-xxl-end{align-items:flex-end!important}.align-items-xxl-center{align-items:center!important}.align-items-xxl-baseline{align-items:baseline!important}.align-items-xxl-stretch{align-items:stretch!important}.align-content-xxl-start{align-content:flex-start!important}.align-content-xxl-end{align-content:flex-end!important}.align-content-xxl-center{align-content:center!important}.align-content-xxl-between{align-content:space-between!important}.align-content-xxl-around{align-content:space-around!important}.align-content-xxl-stretch{align-content:stretch!important}.align-self-xxl-auto{align-self:auto!important}.align-self-xxl-start{align-self:flex-start!important}.align-self-xxl-end{align-self:flex-end!important}.align-self-xxl-center{align-self:center!important}.align-self-xxl-baseline{align-self:baseline!important}.align-self-xxl-stretch{align-self:stretch!important}.order-xxl-first{order:-1!important}.order-xxl-0{order:0!important}.order-xxl-1{order:1!important}.order-xxl-2{order:2!important}.order-xxl-3{order:3!important}.order-xxl-4{order:4!important}.order-xxl-5{order:5!important}.order-xxl-last{order:6!important}.m-xxl-0{margin:0!important}.m-xxl-1{margin:.25rem!important}.m-xxl-2{margin:.5rem!important}.m-xxl-3{margin:1rem!important}.m-xxl-4{margin:1.5rem!important}.m-xxl-5{margin:3rem!important}.m-xxl-auto{margin:auto!important}.mx-xxl-0{margin-left:0!important;margin-right:0!important}.mx-xxl-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-xxl-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-xxl-3{margin-left:1rem!important;margin-right:1rem!important}.mx-xxl-4{margin-left:1.5rem!important;margin-right:1.5rem!important}.mx-xxl-5{margin-left:3rem!important;margin-right:3rem!important}.mx-xxl-auto{margin-left:auto!important;margin-right:auto!important}.my-xxl-0{margin-top:0!important;margin-bottom:0!important}.my-xxl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xxl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xxl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xxl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xxl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xxl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xxl-0{margin-top:0!important}.mt-xxl-1{margin-top:.25rem!important}.mt-xxl-2{margin-top:.5rem!important}.mt-xxl-3{margin-top:1rem!important}.mt-xxl-4{margin-top:1.5rem!important}.mt-xxl-5{margin-top:3rem!important}.mt-xxl-auto{margin-top:auto!important}.me-xxl-0{margin-left:0!important}.me-xxl-1{margin-left:.25rem!important}.me-xxl-2{margin-left:.5rem!important}.me-xxl-3{margin-left:1rem!important}.me-xxl-4{margin-left:1.5rem!important}.me-xxl-5{margin-left:3rem!important}.me-xxl-auto{margin-left:auto!important}.mb-xxl-0{margin-bottom:0!important}.mb-xxl-1{margin-bottom:.25rem!important}.mb-xxl-2{margin-bottom:.5rem!important}.mb-xxl-3{margin-bottom:1rem!important}.mb-xxl-4{margin-bottom:1.5rem!important}.mb-xxl-5{margin-bottom:3rem!important}.mb-xxl-auto{margin-bottom:auto!important}.ms-xxl-0{margin-right:0!important}.ms-xxl-1{margin-right:.25rem!important}.ms-xxl-2{margin-right:.5rem!important}.ms-xxl-3{margin-right:1rem!important}.ms-xxl-4{margin-right:1.5rem!important}.ms-xxl-5{margin-right:3rem!important}.ms-xxl-auto{margin-right:auto!important}.p-xxl-0{padding:0!important}.p-xxl-1{padding:.25rem!important}.p-xxl-2{padding:.5rem!important}.p-xxl-3{padding:1rem!important}.p-xxl-4{padding:1.5rem!important}.p-xxl-5{padding:3rem!important}.px-xxl-0{padding-left:0!important;padding-right:0!important}.px-xxl-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-xxl-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-xxl-3{padding-left:1rem!important;padding-right:1rem!important}.px-xxl-4{padding-left:1.5rem!important;padding-right:1.5rem!important}.px-xxl-5{padding-left:3rem!important;padding-right:3rem!important}.py-xxl-0{padding-top:0!important;padding-bottom:0!important}.py-xxl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xxl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xxl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xxl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xxl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xxl-0{padding-top:0!important}.pt-xxl-1{padding-top:.25rem!important}.pt-xxl-2{padding-top:.5rem!important}.pt-xxl-3{padding-top:1rem!important}.pt-xxl-4{padding-top:1.5rem!important}.pt-xxl-5{padding-top:3rem!important}.pe-xxl-0{padding-left:0!important}.pe-xxl-1{padding-left:.25rem!important}.pe-xxl-2{padding-left:.5rem!important}.pe-xxl-3{padding-left:1rem!important}.pe-xxl-4{padding-left:1.5rem!important}.pe-xxl-5{padding-left:3rem!important}.pb-xxl-0{padding-bottom:0!important}.pb-xxl-1{padding-bottom:.25rem!important}.pb-xxl-2{padding-bottom:.5rem!important}.pb-xxl-3{padding-bottom:1rem!important}.pb-xxl-4{padding-bottom:1.5rem!important}.pb-xxl-5{padding-bottom:3rem!important}.ps-xxl-0{padding-right:0!important}.ps-xxl-1{padding-right:.25rem!important}.ps-xxl-2{padding-right:.5rem!important}.ps-xxl-3{padding-right:1rem!important}.ps-xxl-4{padding-right:1.5rem!important}.ps-xxl-5{padding-right:3rem!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}}
6
+ /*# sourceMappingURL=bootstrap-grid.rtl.min.css.map */
backend/app/static/css/bootstrap-grid.rtl.min.css.map ADDED
The diff for this file is too large to render. See raw diff
 
backend/app/static/css/bootstrap-reboot.css ADDED
@@ -0,0 +1,609 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*!
2
+ * Bootstrap Reboot v5.3.3 (https://getbootstrap.com/)
3
+ * Copyright 2011-2024 The Bootstrap Authors
4
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
+ */
6
+ :root,
7
+ [data-bs-theme=light] {
8
+ --bs-blue: #0d6efd;
9
+ --bs-indigo: #6610f2;
10
+ --bs-purple: #6f42c1;
11
+ --bs-pink: #d63384;
12
+ --bs-red: #dc3545;
13
+ --bs-orange: #fd7e14;
14
+ --bs-yellow: #ffc107;
15
+ --bs-green: #198754;
16
+ --bs-teal: #20c997;
17
+ --bs-cyan: #0dcaf0;
18
+ --bs-black: #000;
19
+ --bs-white: #fff;
20
+ --bs-gray: #6c757d;
21
+ --bs-gray-dark: #343a40;
22
+ --bs-gray-100: #f8f9fa;
23
+ --bs-gray-200: #e9ecef;
24
+ --bs-gray-300: #dee2e6;
25
+ --bs-gray-400: #ced4da;
26
+ --bs-gray-500: #adb5bd;
27
+ --bs-gray-600: #6c757d;
28
+ --bs-gray-700: #495057;
29
+ --bs-gray-800: #343a40;
30
+ --bs-gray-900: #212529;
31
+ --bs-primary: #0d6efd;
32
+ --bs-secondary: #6c757d;
33
+ --bs-success: #198754;
34
+ --bs-info: #0dcaf0;
35
+ --bs-warning: #ffc107;
36
+ --bs-danger: #dc3545;
37
+ --bs-light: #f8f9fa;
38
+ --bs-dark: #212529;
39
+ --bs-primary-rgb: 13, 110, 253;
40
+ --bs-secondary-rgb: 108, 117, 125;
41
+ --bs-success-rgb: 25, 135, 84;
42
+ --bs-info-rgb: 13, 202, 240;
43
+ --bs-warning-rgb: 255, 193, 7;
44
+ --bs-danger-rgb: 220, 53, 69;
45
+ --bs-light-rgb: 248, 249, 250;
46
+ --bs-dark-rgb: 33, 37, 41;
47
+ --bs-primary-text-emphasis: #052c65;
48
+ --bs-secondary-text-emphasis: #2b2f32;
49
+ --bs-success-text-emphasis: #0a3622;
50
+ --bs-info-text-emphasis: #055160;
51
+ --bs-warning-text-emphasis: #664d03;
52
+ --bs-danger-text-emphasis: #58151c;
53
+ --bs-light-text-emphasis: #495057;
54
+ --bs-dark-text-emphasis: #495057;
55
+ --bs-primary-bg-subtle: #cfe2ff;
56
+ --bs-secondary-bg-subtle: #e2e3e5;
57
+ --bs-success-bg-subtle: #d1e7dd;
58
+ --bs-info-bg-subtle: #cff4fc;
59
+ --bs-warning-bg-subtle: #fff3cd;
60
+ --bs-danger-bg-subtle: #f8d7da;
61
+ --bs-light-bg-subtle: #fcfcfd;
62
+ --bs-dark-bg-subtle: #ced4da;
63
+ --bs-primary-border-subtle: #9ec5fe;
64
+ --bs-secondary-border-subtle: #c4c8cb;
65
+ --bs-success-border-subtle: #a3cfbb;
66
+ --bs-info-border-subtle: #9eeaf9;
67
+ --bs-warning-border-subtle: #ffe69c;
68
+ --bs-danger-border-subtle: #f1aeb5;
69
+ --bs-light-border-subtle: #e9ecef;
70
+ --bs-dark-border-subtle: #adb5bd;
71
+ --bs-white-rgb: 255, 255, 255;
72
+ --bs-black-rgb: 0, 0, 0;
73
+ --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";
74
+ --bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
75
+ --bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));
76
+ --bs-body-font-family: var(--bs-font-sans-serif);
77
+ --bs-body-font-size: 1rem;
78
+ --bs-body-font-weight: 400;
79
+ --bs-body-line-height: 1.5;
80
+ --bs-body-color: #212529;
81
+ --bs-body-color-rgb: 33, 37, 41;
82
+ --bs-body-bg: #fff;
83
+ --bs-body-bg-rgb: 255, 255, 255;
84
+ --bs-emphasis-color: #000;
85
+ --bs-emphasis-color-rgb: 0, 0, 0;
86
+ --bs-secondary-color: rgba(33, 37, 41, 0.75);
87
+ --bs-secondary-color-rgb: 33, 37, 41;
88
+ --bs-secondary-bg: #e9ecef;
89
+ --bs-secondary-bg-rgb: 233, 236, 239;
90
+ --bs-tertiary-color: rgba(33, 37, 41, 0.5);
91
+ --bs-tertiary-color-rgb: 33, 37, 41;
92
+ --bs-tertiary-bg: #f8f9fa;
93
+ --bs-tertiary-bg-rgb: 248, 249, 250;
94
+ --bs-heading-color: inherit;
95
+ --bs-link-color: #0d6efd;
96
+ --bs-link-color-rgb: 13, 110, 253;
97
+ --bs-link-decoration: underline;
98
+ --bs-link-hover-color: #0a58ca;
99
+ --bs-link-hover-color-rgb: 10, 88, 202;
100
+ --bs-code-color: #d63384;
101
+ --bs-highlight-color: #212529;
102
+ --bs-highlight-bg: #fff3cd;
103
+ --bs-border-width: 1px;
104
+ --bs-border-style: solid;
105
+ --bs-border-color: #dee2e6;
106
+ --bs-border-color-translucent: rgba(0, 0, 0, 0.175);
107
+ --bs-border-radius: 0.375rem;
108
+ --bs-border-radius-sm: 0.25rem;
109
+ --bs-border-radius-lg: 0.5rem;
110
+ --bs-border-radius-xl: 1rem;
111
+ --bs-border-radius-xxl: 2rem;
112
+ --bs-border-radius-2xl: var(--bs-border-radius-xxl);
113
+ --bs-border-radius-pill: 50rem;
114
+ --bs-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
115
+ --bs-box-shadow-sm: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
116
+ --bs-box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, 0.175);
117
+ --bs-box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, 0.075);
118
+ --bs-focus-ring-width: 0.25rem;
119
+ --bs-focus-ring-opacity: 0.25;
120
+ --bs-focus-ring-color: rgba(13, 110, 253, 0.25);
121
+ --bs-form-valid-color: #198754;
122
+ --bs-form-valid-border-color: #198754;
123
+ --bs-form-invalid-color: #dc3545;
124
+ --bs-form-invalid-border-color: #dc3545;
125
+ }
126
+
127
+ [data-bs-theme=dark] {
128
+ color-scheme: dark;
129
+ --bs-body-color: #dee2e6;
130
+ --bs-body-color-rgb: 222, 226, 230;
131
+ --bs-body-bg: #212529;
132
+ --bs-body-bg-rgb: 33, 37, 41;
133
+ --bs-emphasis-color: #fff;
134
+ --bs-emphasis-color-rgb: 255, 255, 255;
135
+ --bs-secondary-color: rgba(222, 226, 230, 0.75);
136
+ --bs-secondary-color-rgb: 222, 226, 230;
137
+ --bs-secondary-bg: #343a40;
138
+ --bs-secondary-bg-rgb: 52, 58, 64;
139
+ --bs-tertiary-color: rgba(222, 226, 230, 0.5);
140
+ --bs-tertiary-color-rgb: 222, 226, 230;
141
+ --bs-tertiary-bg: #2b3035;
142
+ --bs-tertiary-bg-rgb: 43, 48, 53;
143
+ --bs-primary-text-emphasis: #6ea8fe;
144
+ --bs-secondary-text-emphasis: #a7acb1;
145
+ --bs-success-text-emphasis: #75b798;
146
+ --bs-info-text-emphasis: #6edff6;
147
+ --bs-warning-text-emphasis: #ffda6a;
148
+ --bs-danger-text-emphasis: #ea868f;
149
+ --bs-light-text-emphasis: #f8f9fa;
150
+ --bs-dark-text-emphasis: #dee2e6;
151
+ --bs-primary-bg-subtle: #031633;
152
+ --bs-secondary-bg-subtle: #161719;
153
+ --bs-success-bg-subtle: #051b11;
154
+ --bs-info-bg-subtle: #032830;
155
+ --bs-warning-bg-subtle: #332701;
156
+ --bs-danger-bg-subtle: #2c0b0e;
157
+ --bs-light-bg-subtle: #343a40;
158
+ --bs-dark-bg-subtle: #1a1d20;
159
+ --bs-primary-border-subtle: #084298;
160
+ --bs-secondary-border-subtle: #41464b;
161
+ --bs-success-border-subtle: #0f5132;
162
+ --bs-info-border-subtle: #087990;
163
+ --bs-warning-border-subtle: #997404;
164
+ --bs-danger-border-subtle: #842029;
165
+ --bs-light-border-subtle: #495057;
166
+ --bs-dark-border-subtle: #343a40;
167
+ --bs-heading-color: inherit;
168
+ --bs-link-color: #6ea8fe;
169
+ --bs-link-hover-color: #8bb9fe;
170
+ --bs-link-color-rgb: 110, 168, 254;
171
+ --bs-link-hover-color-rgb: 139, 185, 254;
172
+ --bs-code-color: #e685b5;
173
+ --bs-highlight-color: #dee2e6;
174
+ --bs-highlight-bg: #664d03;
175
+ --bs-border-color: #495057;
176
+ --bs-border-color-translucent: rgba(255, 255, 255, 0.15);
177
+ --bs-form-valid-color: #75b798;
178
+ --bs-form-valid-border-color: #75b798;
179
+ --bs-form-invalid-color: #ea868f;
180
+ --bs-form-invalid-border-color: #ea868f;
181
+ }
182
+
183
+ *,
184
+ *::before,
185
+ *::after {
186
+ box-sizing: border-box;
187
+ }
188
+
189
+ @media (prefers-reduced-motion: no-preference) {
190
+ :root {
191
+ scroll-behavior: smooth;
192
+ }
193
+ }
194
+
195
+ body {
196
+ margin: 0;
197
+ font-family: var(--bs-body-font-family);
198
+ font-size: var(--bs-body-font-size);
199
+ font-weight: var(--bs-body-font-weight);
200
+ line-height: var(--bs-body-line-height);
201
+ color: var(--bs-body-color);
202
+ text-align: var(--bs-body-text-align);
203
+ background-color: var(--bs-body-bg);
204
+ -webkit-text-size-adjust: 100%;
205
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
206
+ }
207
+
208
+ hr {
209
+ margin: 1rem 0;
210
+ color: inherit;
211
+ border: 0;
212
+ border-top: var(--bs-border-width) solid;
213
+ opacity: 0.25;
214
+ }
215
+
216
+ h6, h5, h4, h3, h2, h1 {
217
+ margin-top: 0;
218
+ margin-bottom: 0.5rem;
219
+ font-weight: 500;
220
+ line-height: 1.2;
221
+ color: var(--bs-heading-color);
222
+ }
223
+
224
+ h1 {
225
+ font-size: calc(1.375rem + 1.5vw);
226
+ }
227
+
228
+ @media (min-width: 1200px) {
229
+ h1 {
230
+ font-size: 2.5rem;
231
+ }
232
+ }
233
+
234
+ h2 {
235
+ font-size: calc(1.325rem + 0.9vw);
236
+ }
237
+
238
+ @media (min-width: 1200px) {
239
+ h2 {
240
+ font-size: 2rem;
241
+ }
242
+ }
243
+
244
+ h3 {
245
+ font-size: calc(1.3rem + 0.6vw);
246
+ }
247
+
248
+ @media (min-width: 1200px) {
249
+ h3 {
250
+ font-size: 1.75rem;
251
+ }
252
+ }
253
+
254
+ h4 {
255
+ font-size: calc(1.275rem + 0.3vw);
256
+ }
257
+
258
+ @media (min-width: 1200px) {
259
+ h4 {
260
+ font-size: 1.5rem;
261
+ }
262
+ }
263
+
264
+ h5 {
265
+ font-size: 1.25rem;
266
+ }
267
+
268
+ h6 {
269
+ font-size: 1rem;
270
+ }
271
+
272
+ p {
273
+ margin-top: 0;
274
+ margin-bottom: 1rem;
275
+ }
276
+
277
+ abbr[title] {
278
+ -webkit-text-decoration: underline dotted;
279
+ text-decoration: underline dotted;
280
+ cursor: help;
281
+ -webkit-text-decoration-skip-ink: none;
282
+ text-decoration-skip-ink: none;
283
+ }
284
+
285
+ address {
286
+ margin-bottom: 1rem;
287
+ font-style: normal;
288
+ line-height: inherit;
289
+ }
290
+
291
+ ol,
292
+ ul {
293
+ padding-left: 2rem;
294
+ }
295
+
296
+ ol,
297
+ ul,
298
+ dl {
299
+ margin-top: 0;
300
+ margin-bottom: 1rem;
301
+ }
302
+
303
+ ol ol,
304
+ ul ul,
305
+ ol ul,
306
+ ul ol {
307
+ margin-bottom: 0;
308
+ }
309
+
310
+ dt {
311
+ font-weight: 700;
312
+ }
313
+
314
+ dd {
315
+ margin-bottom: 0.5rem;
316
+ margin-left: 0;
317
+ }
318
+
319
+ blockquote {
320
+ margin: 0 0 1rem;
321
+ }
322
+
323
+ b,
324
+ strong {
325
+ font-weight: bolder;
326
+ }
327
+
328
+ small {
329
+ font-size: 0.875em;
330
+ }
331
+
332
+ mark {
333
+ padding: 0.1875em;
334
+ color: var(--bs-highlight-color);
335
+ background-color: var(--bs-highlight-bg);
336
+ }
337
+
338
+ sub,
339
+ sup {
340
+ position: relative;
341
+ font-size: 0.75em;
342
+ line-height: 0;
343
+ vertical-align: baseline;
344
+ }
345
+
346
+ sub {
347
+ bottom: -0.25em;
348
+ }
349
+
350
+ sup {
351
+ top: -0.5em;
352
+ }
353
+
354
+ a {
355
+ color: rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 1));
356
+ text-decoration: underline;
357
+ }
358
+
359
+ a:hover {
360
+ --bs-link-color-rgb: var(--bs-link-hover-color-rgb);
361
+ }
362
+
363
+ a:not([href]):not([class]), a:not([href]):not([class]):hover {
364
+ color: inherit;
365
+ text-decoration: none;
366
+ }
367
+
368
+ pre,
369
+ code,
370
+ kbd,
371
+ samp {
372
+ font-family: var(--bs-font-monospace);
373
+ font-size: 1em;
374
+ }
375
+
376
+ pre {
377
+ display: block;
378
+ margin-top: 0;
379
+ margin-bottom: 1rem;
380
+ overflow: auto;
381
+ font-size: 0.875em;
382
+ }
383
+
384
+ pre code {
385
+ font-size: inherit;
386
+ color: inherit;
387
+ word-break: normal;
388
+ }
389
+
390
+ code {
391
+ font-size: 0.875em;
392
+ color: var(--bs-code-color);
393
+ word-wrap: break-word;
394
+ }
395
+
396
+ a > code {
397
+ color: inherit;
398
+ }
399
+
400
+ kbd {
401
+ padding: 0.1875rem 0.375rem;
402
+ font-size: 0.875em;
403
+ color: var(--bs-body-bg);
404
+ background-color: var(--bs-body-color);
405
+ border-radius: 0.25rem;
406
+ }
407
+
408
+ kbd kbd {
409
+ padding: 0;
410
+ font-size: 1em;
411
+ }
412
+
413
+ figure {
414
+ margin: 0 0 1rem;
415
+ }
416
+
417
+ img,
418
+ svg {
419
+ vertical-align: middle;
420
+ }
421
+
422
+ table {
423
+ caption-side: bottom;
424
+ border-collapse: collapse;
425
+ }
426
+
427
+ caption {
428
+ padding-top: 0.5rem;
429
+ padding-bottom: 0.5rem;
430
+ color: var(--bs-secondary-color);
431
+ text-align: left;
432
+ }
433
+
434
+ th {
435
+ text-align: inherit;
436
+ text-align: -webkit-match-parent;
437
+ }
438
+
439
+ thead,
440
+ tbody,
441
+ tfoot,
442
+ tr,
443
+ td,
444
+ th {
445
+ border-color: inherit;
446
+ border-style: solid;
447
+ border-width: 0;
448
+ }
449
+
450
+ label {
451
+ display: inline-block;
452
+ }
453
+
454
+ button {
455
+ border-radius: 0;
456
+ }
457
+
458
+ button:focus:not(:focus-visible) {
459
+ outline: 0;
460
+ }
461
+
462
+ input,
463
+ button,
464
+ select,
465
+ optgroup,
466
+ textarea {
467
+ margin: 0;
468
+ font-family: inherit;
469
+ font-size: inherit;
470
+ line-height: inherit;
471
+ }
472
+
473
+ button,
474
+ select {
475
+ text-transform: none;
476
+ }
477
+
478
+ [role=button] {
479
+ cursor: pointer;
480
+ }
481
+
482
+ select {
483
+ word-wrap: normal;
484
+ }
485
+
486
+ select:disabled {
487
+ opacity: 1;
488
+ }
489
+
490
+ [list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator {
491
+ display: none !important;
492
+ }
493
+
494
+ button,
495
+ [type=button],
496
+ [type=reset],
497
+ [type=submit] {
498
+ -webkit-appearance: button;
499
+ }
500
+
501
+ button:not(:disabled),
502
+ [type=button]:not(:disabled),
503
+ [type=reset]:not(:disabled),
504
+ [type=submit]:not(:disabled) {
505
+ cursor: pointer;
506
+ }
507
+
508
+ ::-moz-focus-inner {
509
+ padding: 0;
510
+ border-style: none;
511
+ }
512
+
513
+ textarea {
514
+ resize: vertical;
515
+ }
516
+
517
+ fieldset {
518
+ min-width: 0;
519
+ padding: 0;
520
+ margin: 0;
521
+ border: 0;
522
+ }
523
+
524
+ legend {
525
+ float: left;
526
+ width: 100%;
527
+ padding: 0;
528
+ margin-bottom: 0.5rem;
529
+ font-size: calc(1.275rem + 0.3vw);
530
+ line-height: inherit;
531
+ }
532
+
533
+ @media (min-width: 1200px) {
534
+ legend {
535
+ font-size: 1.5rem;
536
+ }
537
+ }
538
+
539
+ legend + * {
540
+ clear: left;
541
+ }
542
+
543
+ ::-webkit-datetime-edit-fields-wrapper,
544
+ ::-webkit-datetime-edit-text,
545
+ ::-webkit-datetime-edit-minute,
546
+ ::-webkit-datetime-edit-hour-field,
547
+ ::-webkit-datetime-edit-day-field,
548
+ ::-webkit-datetime-edit-month-field,
549
+ ::-webkit-datetime-edit-year-field {
550
+ padding: 0;
551
+ }
552
+
553
+ ::-webkit-inner-spin-button {
554
+ height: auto;
555
+ }
556
+
557
+ [type=search] {
558
+ -webkit-appearance: textfield;
559
+ outline-offset: -2px;
560
+ }
561
+
562
+ /* rtl:raw:
563
+ [type="tel"],
564
+ [type="url"],
565
+ [type="email"],
566
+ [type="number"] {
567
+ direction: ltr;
568
+ }
569
+ */
570
+ ::-webkit-search-decoration {
571
+ -webkit-appearance: none;
572
+ }
573
+
574
+ ::-webkit-color-swatch-wrapper {
575
+ padding: 0;
576
+ }
577
+
578
+ ::-webkit-file-upload-button {
579
+ font: inherit;
580
+ -webkit-appearance: button;
581
+ }
582
+
583
+ ::file-selector-button {
584
+ font: inherit;
585
+ -webkit-appearance: button;
586
+ }
587
+
588
+ output {
589
+ display: inline-block;
590
+ }
591
+
592
+ iframe {
593
+ border: 0;
594
+ }
595
+
596
+ summary {
597
+ display: list-item;
598
+ cursor: pointer;
599
+ }
600
+
601
+ progress {
602
+ vertical-align: baseline;
603
+ }
604
+
605
+ [hidden] {
606
+ display: none !important;
607
+ }
608
+
609
+ /*# sourceMappingURL=bootstrap-reboot.css.map */
backend/app/static/css/bootstrap-reboot.css.map ADDED
The diff for this file is too large to render. See raw diff
 
backend/app/static/css/bootstrap-reboot.min.css ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ /*!
2
+ * Bootstrap Reboot v5.3.3 (https://getbootstrap.com/)
3
+ * Copyright 2011-2024 The Bootstrap Authors
4
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
+ */: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-color:#212529;--bs-highlight-bg:#fff3cd;--bs-border-width:1px;--bs-border-style:solid;--bs-border-color:#dee2e6;--bs-border-color-translucent:rgba(0, 0, 0, 0.175);--bs-border-radius:0.375rem;--bs-border-radius-sm:0.25rem;--bs-border-radius-lg:0.5rem;--bs-border-radius-xl:1rem;--bs-border-radius-xxl:2rem;--bs-border-radius-2xl:var(--bs-border-radius-xxl);--bs-border-radius-pill:50rem;--bs-box-shadow:0 0.5rem 1rem rgba(0, 0, 0, 0.15);--bs-box-shadow-sm:0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);--bs-box-shadow-lg:0 1rem 3rem rgba(0, 0, 0, 0.175);--bs-box-shadow-inset:inset 0 1px 2px rgba(0, 0, 0, 0.075);--bs-focus-ring-width:0.25rem;--bs-focus-ring-opacity:0.25;--bs-focus-ring-color:rgba(13, 110, 253, 0.25);--bs-form-valid-color:#198754;--bs-form-valid-border-color:#198754;--bs-form-invalid-color:#dc3545;--bs-form-invalid-border-color:#dc3545}[data-bs-theme=dark]{color-scheme:dark;--bs-body-color:#dee2e6;--bs-body-color-rgb:222,226,230;--bs-body-bg:#212529;--bs-body-bg-rgb:33,37,41;--bs-emphasis-color:#fff;--bs-emphasis-color-rgb:255,255,255;--bs-secondary-color:rgba(222, 226, 230, 0.75);--bs-secondary-color-rgb:222,226,230;--bs-secondary-bg:#343a40;--bs-secondary-bg-rgb:52,58,64;--bs-tertiary-color:rgba(222, 226, 230, 0.5);--bs-tertiary-color-rgb:222,226,230;--bs-tertiary-bg:#2b3035;--bs-tertiary-bg-rgb:43,48,53;--bs-primary-text-emphasis:#6ea8fe;--bs-secondary-text-emphasis:#a7acb1;--bs-success-text-emphasis:#75b798;--bs-info-text-emphasis:#6edff6;--bs-warning-text-emphasis:#ffda6a;--bs-danger-text-emphasis:#ea868f;--bs-light-text-emphasis:#f8f9fa;--bs-dark-text-emphasis:#dee2e6;--bs-primary-bg-subtle:#031633;--bs-secondary-bg-subtle:#161719;--bs-success-bg-subtle:#051b11;--bs-info-bg-subtle:#032830;--bs-warning-bg-subtle:#332701;--bs-danger-bg-subtle:#2c0b0e;--bs-light-bg-subtle:#343a40;--bs-dark-bg-subtle:#1a1d20;--bs-primary-border-subtle:#084298;--bs-secondary-border-subtle:#41464b;--bs-success-border-subtle:#0f5132;--bs-info-border-subtle:#087990;--bs-warning-border-subtle:#997404;--bs-danger-border-subtle:#842029;--bs-light-border-subtle:#495057;--bs-dark-border-subtle:#343a40;--bs-heading-color:inherit;--bs-link-color:#6ea8fe;--bs-link-hover-color:#8bb9fe;--bs-link-color-rgb:110,168,254;--bs-link-hover-color-rgb:139,185,254;--bs-code-color:#e685b5;--bs-highlight-color:#dee2e6;--bs-highlight-bg:#664d03;--bs-border-color:#495057;--bs-border-color-translucent:rgba(255, 255, 255, 0.15);--bs-form-valid-color:#75b798;--bs-form-valid-border-color:#75b798;--bs-form-invalid-color:#ea868f;--bs-form-invalid-border-color:#ea868f}*,::after,::before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}hr{margin:1rem 0;color:inherit;border:0;border-top:var(--bs-border-width) solid;opacity:.25}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2;color:var(--bs-heading-color)}h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width:1200px){h1{font-size:2.5rem}}h2{font-size:calc(1.325rem + .9vw)}@media (min-width:1200px){h2{font-size:2rem}}h3{font-size:calc(1.3rem + .6vw)}@media (min-width:1200px){h3{font-size:1.75rem}}h4{font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){h4{font-size:1.5rem}}h5{font-size:1.25rem}h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:.875em}mark{padding:.1875em;color:var(--bs-highlight-color);background-color:var(--bs-highlight-bg)}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity,1));text-decoration:underline}a:hover{--bs-link-color-rgb:var(--bs-link-hover-color-rgb)}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:var(--bs-font-monospace);font-size:1em}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:var(--bs-code-color);word-wrap:break-word}a>code{color:inherit}kbd{padding:.1875rem .375rem;font-size:.875em;color:var(--bs-body-bg);background-color:var(--bs-body-color);border-radius:.25rem}kbd kbd{padding:0;font-size:1em}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-secondary-color);text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator{display:none!important}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}::file-selector-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}
6
+ /*# sourceMappingURL=bootstrap-reboot.min.css.map */
backend/app/static/css/bootstrap-reboot.min.css.map ADDED
@@ -0,0 +1 @@
 
 
1
+ {"version":3,"sources":["../../scss/mixins/_banner.scss","../../scss/_root.scss","dist/css/bootstrap-reboot.css","../../scss/vendor/_rfs.scss","../../scss/mixins/_color-mode.scss","../../scss/_reboot.scss","../../scss/mixins/_border-radius.scss"],"names":[],"mappings":"AACE;;;;ACDF,MCMA,sBDGI,UAAA,QAAA,YAAA,QAAA,YAAA,QAAA,UAAA,QAAA,SAAA,QAAA,YAAA,QAAA,YAAA,QAAA,WAAA,QAAA,UAAA,QAAA,UAAA,QAAA,WAAA,KAAA,WAAA,KAAA,UAAA,QAAA,eAAA,QAIA,cAAA,QAAA,cAAA,QAAA,cAAA,QAAA,cAAA,QAAA,cAAA,QAAA,cAAA,QAAA,cAAA,QAAA,cAAA,QAAA,cAAA,QAIA,aAAA,QAAA,eAAA,QAAA,aAAA,QAAA,UAAA,QAAA,aAAA,QAAA,YAAA,QAAA,WAAA,QAAA,UAAA,QAIA,iBAAA,EAAA,CAAA,GAAA,CAAA,IAAA,mBAAA,GAAA,CAAA,GAAA,CAAA,IAAA,iBAAA,EAAA,CAAA,GAAA,CAAA,GAAA,cAAA,EAAA,CAAA,GAAA,CAAA,IAAA,iBAAA,GAAA,CAAA,GAAA,CAAA,EAAA,gBAAA,GAAA,CAAA,EAAA,CAAA,GAAA,eAAA,GAAA,CAAA,GAAA,CAAA,IAAA,cAAA,EAAA,CAAA,EAAA,CAAA,GAIA,2BAAA,QAAA,6BAAA,QAAA,2BAAA,QAAA,wBAAA,QAAA,2BAAA,QAAA,0BAAA,QAAA,yBAAA,QAAA,wBAAA,QAIA,uBAAA,QAAA,yBAAA,QAAA,uBAAA,QAAA,oBAAA,QAAA,uBAAA,QAAA,sBAAA,QAAA,qBAAA,QAAA,oBAAA,QAIA,2BAAA,QAAA,6BAAA,QAAA,2BAAA,QAAA,wBAAA,QAAA,2BAAA,QAAA,0BAAA,QAAA,yBAAA,QAAA,wBAAA,QAGF,eAAA,GAAA,CAAA,GAAA,CAAA,IACA,eAAA,CAAA,CAAA,CAAA,CAAA,EAMA,qBAAA,SAAA,CAAA,aAAA,CAAA,UAAA,CAAA,MAAA,CAAA,gBAAA,CAAA,WAAA,CAAA,iBAAA,CAAA,KAAA,CAAA,UAAA,CAAA,mBAAA,CAAA,gBAAA,CAAA,iBAAA,CAAA,mBACA,oBAAA,cAAA,CAAA,KAAA,CAAA,MAAA,CAAA,QAAA,CAAA,iBAAA,CAAA,aAAA,CAAA,UACA,cAAA,2EAOA,sBAAA,0BE2OI,oBAAA,KFzOJ,sBAAA,IACA,sBAAA,IAKA,gBAAA,QACA,oBAAA,EAAA,CAAA,EAAA,CAAA,GACA,aAAA,KACA,iBAAA,GAAA,CAAA,GAAA,CAAA,IAEA,oBAAA,KACA,wBAAA,CAAA,CAAA,CAAA,CAAA,EAEA,qBAAA,uBACA,yBAAA,EAAA,CAAA,EAAA,CAAA,GACA,kBAAA,QACA,sBAAA,GAAA,CAAA,GAAA,CAAA,IAEA,oBAAA,sBACA,wBAAA,EAAA,CAAA,EAAA,CAAA,GACA,iBAAA,QACA,qBAAA,GAAA,CAAA,GAAA,CAAA,IAGA,mBAAA,QAEA,gBAAA,QACA,oBAAA,EAAA,CAAA,GAAA,CAAA,IACA,qBAAA,UAEA,sBAAA,QACA,0BAAA,EAAA,CAAA,EAAA,CAAA,IAMA,gBAAA,QACA,qBAAA,QACA,kBAAA,QAGA,kBAAA,IACA,kBAAA,MACA,kBAAA,QACA,8BAAA,qBAEA,mBAAA,SACA,sBAAA,QACA,sBAAA,OACA,sBAAA,KACA,uBAAA,KACA,uBAAA,4BACA,wBAAA,MAGA,gBAAA,EAAA,OAAA,KAAA,oBACA,mBAAA,EAAA,SAAA,QAAA,qBACA,mBAAA,EAAA,KAAA,KAAA,qBACA,sBAAA,MAAA,EAAA,IAAA,IAAA,qBAIA,sBAAA,QACA,wBAAA,KACA,sBAAA,yBAIA,sBAAA,QACA,6BAAA,QACA,wBAAA,QACA,+BAAA,QGhHE,qBHsHA,aAAA,KAGA,gBAAA,QACA,oBAAA,GAAA,CAAA,GAAA,CAAA,IACA,aAAA,QACA,iBAAA,EAAA,CAAA,EAAA,CAAA,GAEA,oBAAA,KACA,wBAAA,GAAA,CAAA,GAAA,CAAA,IAEA,qBAAA,0BACA,yBAAA,GAAA,CAAA,GAAA,CAAA,IACA,kBAAA,QACA,sBAAA,EAAA,CAAA,EAAA,CAAA,GAEA,oBAAA,yBACA,wBAAA,GAAA,CAAA,GAAA,CAAA,IACA,iBAAA,QACA,qBAAA,EAAA,CAAA,EAAA,CAAA,GAGE,2BAAA,QAAA,6BAAA,QAAA,2BAAA,QAAA,wBAAA,QAAA,2BAAA,QAAA,0BAAA,QAAA,yBAAA,QAAA,wBAAA,QAIA,uBAAA,QAAA,yBAAA,QAAA,uBAAA,QAAA,oBAAA,QAAA,uBAAA,QAAA,sBAAA,QAAA,qBAAA,QAAA,oBAAA,QAIA,2BAAA,QAAA,6BAAA,QAAA,2BAAA,QAAA,wBAAA,QAAA,2BAAA,QAAA,0BAAA,QAAA,yBAAA,QAAA,wBAAA,QAGF,mBAAA,QAEA,gBAAA,QACA,sBAAA,QACA,oBAAA,GAAA,CAAA,GAAA,CAAA,IACA,0BAAA,GAAA,CAAA,GAAA,CAAA,IAEA,gBAAA,QACA,qBAAA,QACA,kBAAA,QAEA,kBAAA,QACA,8BAAA,0BAEA,sBAAA,QACA,6BAAA,QACA,wBAAA,QACA,+BAAA,QIxKJ,EHyKA,QADA,SGrKE,WAAA,WAeE,8CANJ,MAOM,gBAAA,QAcN,KACE,OAAA,EACA,YAAA,2BF6OI,UAAA,yBE3OJ,YAAA,2BACA,YAAA,2BACA,MAAA,qBACA,WAAA,0BACA,iBAAA,kBACA,yBAAA,KACA,4BAAA,YASF,GACE,OAAA,KAAA,EACA,MAAA,QACA,OAAA,EACA,WAAA,uBAAA,MACA,QAAA,IAUF,GAAA,GAAA,GAAA,GAAA,GAAA,GACE,WAAA,EACA,cAAA,MAGA,YAAA,IACA,YAAA,IACA,MAAA,wBAGF,GFuMQ,UAAA,uBA5JJ,0BE3CJ,GF8MQ,UAAA,QEzMR,GFkMQ,UAAA,sBA5JJ,0BEtCJ,GFyMQ,UAAA,MEpMR,GF6LQ,UAAA,oBA5JJ,0BEjCJ,GFoMQ,UAAA,SE/LR,GFwLQ,UAAA,sBA5JJ,0BE5BJ,GF+LQ,UAAA,QE1LR,GF+KM,UAAA,QE1KN,GF0KM,UAAA,KE/JN,EACE,WAAA,EACA,cAAA,KAUF,YACE,wBAAA,UAAA,OAAA,gBAAA,UAAA,OACA,OAAA,KACA,iCAAA,KAAA,yBAAA,KAMF,QACE,cAAA,KACA,WAAA,OACA,YAAA,QAMF,GHiIA,GG/HE,aAAA,KHqIF,GGlIA,GHiIA,GG9HE,WAAA,EACA,cAAA,KAGF,MHkIA,MACA,MAFA,MG7HE,cAAA,EAGF,GACE,YAAA,IAKF,GACE,cAAA,MACA,YAAA,EAMF,WACE,OAAA,EAAA,EAAA,KAQF,EHuHA,OGrHE,YAAA,OAQF,MF6EM,UAAA,OEtEN,KACE,QAAA,QACA,MAAA,0BACA,iBAAA,uBASF,IHyGA,IGvGE,SAAA,SFwDI,UAAA,MEtDJ,YAAA,EACA,eAAA,SAGF,IAAM,OAAA,OACN,IAAM,IAAA,MAKN,EACE,MAAA,wDACA,gBAAA,UAEA,QACE,oBAAA,+BAWF,2BAAA,iCAEE,MAAA,QACA,gBAAA,KHqGJ,KACA,IG/FA,IHgGA,KG5FE,YAAA,yBFcI,UAAA,IENN,IACE,QAAA,MACA,WAAA,EACA,cAAA,KACA,SAAA,KFEI,UAAA,OEGJ,SFHI,UAAA,QEKF,MAAA,QACA,WAAA,OAIJ,KFVM,UAAA,OEYJ,MAAA,qBACA,UAAA,WAGA,OACE,MAAA,QAIJ,IACE,QAAA,SAAA,QFtBI,UAAA,OEwBJ,MAAA,kBACA,iBAAA,qBCrSE,cAAA,ODwSF,QACE,QAAA,EF7BE,UAAA,IEwCN,OACE,OAAA,EAAA,EAAA,KAMF,IH2EA,IGzEE,eAAA,OAQF,MACE,aAAA,OACA,gBAAA,SAGF,QACE,YAAA,MACA,eAAA,MACA,MAAA,0BACA,WAAA,KAOF,GAEE,WAAA,QACA,WAAA,qBHoEF,MAGA,GAFA,MAGA,GGrEA,MHmEA,GG7DE,aAAA,QACA,aAAA,MACA,aAAA,EAQF,MACE,QAAA,aAMF,OAEE,cAAA,EAQF,iCACE,QAAA,EHsDF,OGjDA,MHmDA,SADA,OAEA,SG/CE,OAAA,EACA,YAAA,QF5HI,UAAA,QE8HJ,YAAA,QAIF,OHgDA,OG9CE,eAAA,KAKF,cACE,OAAA,QAGF,OAGE,UAAA,OAGA,gBACE,QAAA,EAOJ,0IACE,QAAA,eH0CF,cACA,aACA,cGpCA,OAIE,mBAAA,OHoCF,6BACA,4BACA,6BGnCI,sBACE,OAAA,QAON,mBACE,QAAA,EACA,aAAA,KAKF,SACE,OAAA,SAUF,SACE,UAAA,EACA,QAAA,EACA,OAAA,EACA,OAAA,EAQF,OACE,MAAA,KACA,MAAA,KACA,QAAA,EACA,cAAA,MFjNM,UAAA,sBEoNN,YAAA,QFhXE,0BEyWJ,OFtMQ,UAAA,QE+MN,SACE,MAAA,KH4BJ,kCGrBA,uCHoBA,mCADA,+BAGA,oCAJA,6BAKA,mCGhBE,QAAA,EAGF,4BACE,OAAA,KASF,cACE,mBAAA,UACA,eAAA,KAmBF,4BACE,mBAAA,KAKF,+BACE,QAAA,EAOF,6BACE,KAAA,QACA,mBAAA,OAFF,uBACE,KAAA,QACA,mBAAA,OAKF,OACE,QAAA,aAKF,OACE,OAAA,EAOF,QACE,QAAA,UACA,OAAA,QAQF,SACE,eAAA,SAQF,SACE,QAAA","sourcesContent":["@mixin bsBanner($file) {\n /*!\n * Bootstrap #{$file} v5.3.3 (https://getbootstrap.com/)\n * Copyright 2011-2024 The Bootstrap Authors\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n}\n",":root,\n[data-bs-theme=\"light\"] {\n // Note: Custom variable values only support SassScript inside `#{}`.\n\n // Colors\n //\n // Generate palettes for full colors, grays, and theme colors.\n\n @each $color, $value in $colors {\n --#{$prefix}#{$color}: #{$value};\n }\n\n @each $color, $value in $grays {\n --#{$prefix}gray-#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors {\n --#{$prefix}#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors-rgb {\n --#{$prefix}#{$color}-rgb: #{$value};\n }\n\n @each $color, $value in $theme-colors-text {\n --#{$prefix}#{$color}-text-emphasis: #{$value};\n }\n\n @each $color, $value in $theme-colors-bg-subtle {\n --#{$prefix}#{$color}-bg-subtle: #{$value};\n }\n\n @each $color, $value in $theme-colors-border-subtle {\n --#{$prefix}#{$color}-border-subtle: #{$value};\n }\n\n --#{$prefix}white-rgb: #{to-rgb($white)};\n --#{$prefix}black-rgb: #{to-rgb($black)};\n\n // Fonts\n\n // Note: Use `inspect` for lists so that quoted items keep the quotes.\n // See https://github.com/sass/sass/issues/2383#issuecomment-336349172\n --#{$prefix}font-sans-serif: #{inspect($font-family-sans-serif)};\n --#{$prefix}font-monospace: #{inspect($font-family-monospace)};\n --#{$prefix}gradient: #{$gradient};\n\n // Root and body\n // scss-docs-start root-body-variables\n @if $font-size-root != null {\n --#{$prefix}root-font-size: #{$font-size-root};\n }\n --#{$prefix}body-font-family: #{inspect($font-family-base)};\n @include rfs($font-size-base, --#{$prefix}body-font-size);\n --#{$prefix}body-font-weight: #{$font-weight-base};\n --#{$prefix}body-line-height: #{$line-height-base};\n @if $body-text-align != null {\n --#{$prefix}body-text-align: #{$body-text-align};\n }\n\n --#{$prefix}body-color: #{$body-color};\n --#{$prefix}body-color-rgb: #{to-rgb($body-color)};\n --#{$prefix}body-bg: #{$body-bg};\n --#{$prefix}body-bg-rgb: #{to-rgb($body-bg)};\n\n --#{$prefix}emphasis-color: #{$body-emphasis-color};\n --#{$prefix}emphasis-color-rgb: #{to-rgb($body-emphasis-color)};\n\n --#{$prefix}secondary-color: #{$body-secondary-color};\n --#{$prefix}secondary-color-rgb: #{to-rgb($body-secondary-color)};\n --#{$prefix}secondary-bg: #{$body-secondary-bg};\n --#{$prefix}secondary-bg-rgb: #{to-rgb($body-secondary-bg)};\n\n --#{$prefix}tertiary-color: #{$body-tertiary-color};\n --#{$prefix}tertiary-color-rgb: #{to-rgb($body-tertiary-color)};\n --#{$prefix}tertiary-bg: #{$body-tertiary-bg};\n --#{$prefix}tertiary-bg-rgb: #{to-rgb($body-tertiary-bg)};\n // scss-docs-end root-body-variables\n\n --#{$prefix}heading-color: #{$headings-color};\n\n --#{$prefix}link-color: #{$link-color};\n --#{$prefix}link-color-rgb: #{to-rgb($link-color)};\n --#{$prefix}link-decoration: #{$link-decoration};\n\n --#{$prefix}link-hover-color: #{$link-hover-color};\n --#{$prefix}link-hover-color-rgb: #{to-rgb($link-hover-color)};\n\n @if $link-hover-decoration != null {\n --#{$prefix}link-hover-decoration: #{$link-hover-decoration};\n }\n\n --#{$prefix}code-color: #{$code-color};\n --#{$prefix}highlight-color: #{$mark-color};\n --#{$prefix}highlight-bg: #{$mark-bg};\n\n // scss-docs-start root-border-var\n --#{$prefix}border-width: #{$border-width};\n --#{$prefix}border-style: #{$border-style};\n --#{$prefix}border-color: #{$border-color};\n --#{$prefix}border-color-translucent: #{$border-color-translucent};\n\n --#{$prefix}border-radius: #{$border-radius};\n --#{$prefix}border-radius-sm: #{$border-radius-sm};\n --#{$prefix}border-radius-lg: #{$border-radius-lg};\n --#{$prefix}border-radius-xl: #{$border-radius-xl};\n --#{$prefix}border-radius-xxl: #{$border-radius-xxl};\n --#{$prefix}border-radius-2xl: var(--#{$prefix}border-radius-xxl); // Deprecated in v5.3.0 for consistency\n --#{$prefix}border-radius-pill: #{$border-radius-pill};\n // scss-docs-end root-border-var\n\n --#{$prefix}box-shadow: #{$box-shadow};\n --#{$prefix}box-shadow-sm: #{$box-shadow-sm};\n --#{$prefix}box-shadow-lg: #{$box-shadow-lg};\n --#{$prefix}box-shadow-inset: #{$box-shadow-inset};\n\n // Focus styles\n // scss-docs-start root-focus-variables\n --#{$prefix}focus-ring-width: #{$focus-ring-width};\n --#{$prefix}focus-ring-opacity: #{$focus-ring-opacity};\n --#{$prefix}focus-ring-color: #{$focus-ring-color};\n // scss-docs-end root-focus-variables\n\n // scss-docs-start root-form-validation-variables\n --#{$prefix}form-valid-color: #{$form-valid-color};\n --#{$prefix}form-valid-border-color: #{$form-valid-border-color};\n --#{$prefix}form-invalid-color: #{$form-invalid-color};\n --#{$prefix}form-invalid-border-color: #{$form-invalid-border-color};\n // scss-docs-end root-form-validation-variables\n}\n\n@if $enable-dark-mode {\n @include color-mode(dark, true) {\n color-scheme: dark;\n\n // scss-docs-start root-dark-mode-vars\n --#{$prefix}body-color: #{$body-color-dark};\n --#{$prefix}body-color-rgb: #{to-rgb($body-color-dark)};\n --#{$prefix}body-bg: #{$body-bg-dark};\n --#{$prefix}body-bg-rgb: #{to-rgb($body-bg-dark)};\n\n --#{$prefix}emphasis-color: #{$body-emphasis-color-dark};\n --#{$prefix}emphasis-color-rgb: #{to-rgb($body-emphasis-color-dark)};\n\n --#{$prefix}secondary-color: #{$body-secondary-color-dark};\n --#{$prefix}secondary-color-rgb: #{to-rgb($body-secondary-color-dark)};\n --#{$prefix}secondary-bg: #{$body-secondary-bg-dark};\n --#{$prefix}secondary-bg-rgb: #{to-rgb($body-secondary-bg-dark)};\n\n --#{$prefix}tertiary-color: #{$body-tertiary-color-dark};\n --#{$prefix}tertiary-color-rgb: #{to-rgb($body-tertiary-color-dark)};\n --#{$prefix}tertiary-bg: #{$body-tertiary-bg-dark};\n --#{$prefix}tertiary-bg-rgb: #{to-rgb($body-tertiary-bg-dark)};\n\n @each $color, $value in $theme-colors-text-dark {\n --#{$prefix}#{$color}-text-emphasis: #{$value};\n }\n\n @each $color, $value in $theme-colors-bg-subtle-dark {\n --#{$prefix}#{$color}-bg-subtle: #{$value};\n }\n\n @each $color, $value in $theme-colors-border-subtle-dark {\n --#{$prefix}#{$color}-border-subtle: #{$value};\n }\n\n --#{$prefix}heading-color: #{$headings-color-dark};\n\n --#{$prefix}link-color: #{$link-color-dark};\n --#{$prefix}link-hover-color: #{$link-hover-color-dark};\n --#{$prefix}link-color-rgb: #{to-rgb($link-color-dark)};\n --#{$prefix}link-hover-color-rgb: #{to-rgb($link-hover-color-dark)};\n\n --#{$prefix}code-color: #{$code-color-dark};\n --#{$prefix}highlight-color: #{$mark-color-dark};\n --#{$prefix}highlight-bg: #{$mark-bg-dark};\n\n --#{$prefix}border-color: #{$border-color-dark};\n --#{$prefix}border-color-translucent: #{$border-color-translucent-dark};\n\n --#{$prefix}form-valid-color: #{$form-valid-color-dark};\n --#{$prefix}form-valid-border-color: #{$form-valid-border-color-dark};\n --#{$prefix}form-invalid-color: #{$form-invalid-color-dark};\n --#{$prefix}form-invalid-border-color: #{$form-invalid-border-color-dark};\n // scss-docs-end root-dark-mode-vars\n }\n}\n","/*!\n * Bootstrap Reboot v5.3.3 (https://getbootstrap.com/)\n * Copyright 2011-2024 The Bootstrap Authors\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n:root,\n[data-bs-theme=light] {\n --bs-blue: #0d6efd;\n --bs-indigo: #6610f2;\n --bs-purple: #6f42c1;\n --bs-pink: #d63384;\n --bs-red: #dc3545;\n --bs-orange: #fd7e14;\n --bs-yellow: #ffc107;\n --bs-green: #198754;\n --bs-teal: #20c997;\n --bs-cyan: #0dcaf0;\n --bs-black: #000;\n --bs-white: #fff;\n --bs-gray: #6c757d;\n --bs-gray-dark: #343a40;\n --bs-gray-100: #f8f9fa;\n --bs-gray-200: #e9ecef;\n --bs-gray-300: #dee2e6;\n --bs-gray-400: #ced4da;\n --bs-gray-500: #adb5bd;\n --bs-gray-600: #6c757d;\n --bs-gray-700: #495057;\n --bs-gray-800: #343a40;\n --bs-gray-900: #212529;\n --bs-primary: #0d6efd;\n --bs-secondary: #6c757d;\n --bs-success: #198754;\n --bs-info: #0dcaf0;\n --bs-warning: #ffc107;\n --bs-danger: #dc3545;\n --bs-light: #f8f9fa;\n --bs-dark: #212529;\n --bs-primary-rgb: 13, 110, 253;\n --bs-secondary-rgb: 108, 117, 125;\n --bs-success-rgb: 25, 135, 84;\n --bs-info-rgb: 13, 202, 240;\n --bs-warning-rgb: 255, 193, 7;\n --bs-danger-rgb: 220, 53, 69;\n --bs-light-rgb: 248, 249, 250;\n --bs-dark-rgb: 33, 37, 41;\n --bs-primary-text-emphasis: #052c65;\n --bs-secondary-text-emphasis: #2b2f32;\n --bs-success-text-emphasis: #0a3622;\n --bs-info-text-emphasis: #055160;\n --bs-warning-text-emphasis: #664d03;\n --bs-danger-text-emphasis: #58151c;\n --bs-light-text-emphasis: #495057;\n --bs-dark-text-emphasis: #495057;\n --bs-primary-bg-subtle: #cfe2ff;\n --bs-secondary-bg-subtle: #e2e3e5;\n --bs-success-bg-subtle: #d1e7dd;\n --bs-info-bg-subtle: #cff4fc;\n --bs-warning-bg-subtle: #fff3cd;\n --bs-danger-bg-subtle: #f8d7da;\n --bs-light-bg-subtle: #fcfcfd;\n --bs-dark-bg-subtle: #ced4da;\n --bs-primary-border-subtle: #9ec5fe;\n --bs-secondary-border-subtle: #c4c8cb;\n --bs-success-border-subtle: #a3cfbb;\n --bs-info-border-subtle: #9eeaf9;\n --bs-warning-border-subtle: #ffe69c;\n --bs-danger-border-subtle: #f1aeb5;\n --bs-light-border-subtle: #e9ecef;\n --bs-dark-border-subtle: #adb5bd;\n --bs-white-rgb: 255, 255, 255;\n --bs-black-rgb: 0, 0, 0;\n --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\";\n --bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n --bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));\n --bs-body-font-family: var(--bs-font-sans-serif);\n --bs-body-font-size: 1rem;\n --bs-body-font-weight: 400;\n --bs-body-line-height: 1.5;\n --bs-body-color: #212529;\n --bs-body-color-rgb: 33, 37, 41;\n --bs-body-bg: #fff;\n --bs-body-bg-rgb: 255, 255, 255;\n --bs-emphasis-color: #000;\n --bs-emphasis-color-rgb: 0, 0, 0;\n --bs-secondary-color: rgba(33, 37, 41, 0.75);\n --bs-secondary-color-rgb: 33, 37, 41;\n --bs-secondary-bg: #e9ecef;\n --bs-secondary-bg-rgb: 233, 236, 239;\n --bs-tertiary-color: rgba(33, 37, 41, 0.5);\n --bs-tertiary-color-rgb: 33, 37, 41;\n --bs-tertiary-bg: #f8f9fa;\n --bs-tertiary-bg-rgb: 248, 249, 250;\n --bs-heading-color: inherit;\n --bs-link-color: #0d6efd;\n --bs-link-color-rgb: 13, 110, 253;\n --bs-link-decoration: underline;\n --bs-link-hover-color: #0a58ca;\n --bs-link-hover-color-rgb: 10, 88, 202;\n --bs-code-color: #d63384;\n --bs-highlight-color: #212529;\n --bs-highlight-bg: #fff3cd;\n --bs-border-width: 1px;\n --bs-border-style: solid;\n --bs-border-color: #dee2e6;\n --bs-border-color-translucent: rgba(0, 0, 0, 0.175);\n --bs-border-radius: 0.375rem;\n --bs-border-radius-sm: 0.25rem;\n --bs-border-radius-lg: 0.5rem;\n --bs-border-radius-xl: 1rem;\n --bs-border-radius-xxl: 2rem;\n --bs-border-radius-2xl: var(--bs-border-radius-xxl);\n --bs-border-radius-pill: 50rem;\n --bs-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);\n --bs-box-shadow-sm: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);\n --bs-box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, 0.175);\n --bs-box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, 0.075);\n --bs-focus-ring-width: 0.25rem;\n --bs-focus-ring-opacity: 0.25;\n --bs-focus-ring-color: rgba(13, 110, 253, 0.25);\n --bs-form-valid-color: #198754;\n --bs-form-valid-border-color: #198754;\n --bs-form-invalid-color: #dc3545;\n --bs-form-invalid-border-color: #dc3545;\n}\n\n[data-bs-theme=dark] {\n color-scheme: dark;\n --bs-body-color: #dee2e6;\n --bs-body-color-rgb: 222, 226, 230;\n --bs-body-bg: #212529;\n --bs-body-bg-rgb: 33, 37, 41;\n --bs-emphasis-color: #fff;\n --bs-emphasis-color-rgb: 255, 255, 255;\n --bs-secondary-color: rgba(222, 226, 230, 0.75);\n --bs-secondary-color-rgb: 222, 226, 230;\n --bs-secondary-bg: #343a40;\n --bs-secondary-bg-rgb: 52, 58, 64;\n --bs-tertiary-color: rgba(222, 226, 230, 0.5);\n --bs-tertiary-color-rgb: 222, 226, 230;\n --bs-tertiary-bg: #2b3035;\n --bs-tertiary-bg-rgb: 43, 48, 53;\n --bs-primary-text-emphasis: #6ea8fe;\n --bs-secondary-text-emphasis: #a7acb1;\n --bs-success-text-emphasis: #75b798;\n --bs-info-text-emphasis: #6edff6;\n --bs-warning-text-emphasis: #ffda6a;\n --bs-danger-text-emphasis: #ea868f;\n --bs-light-text-emphasis: #f8f9fa;\n --bs-dark-text-emphasis: #dee2e6;\n --bs-primary-bg-subtle: #031633;\n --bs-secondary-bg-subtle: #161719;\n --bs-success-bg-subtle: #051b11;\n --bs-info-bg-subtle: #032830;\n --bs-warning-bg-subtle: #332701;\n --bs-danger-bg-subtle: #2c0b0e;\n --bs-light-bg-subtle: #343a40;\n --bs-dark-bg-subtle: #1a1d20;\n --bs-primary-border-subtle: #084298;\n --bs-secondary-border-subtle: #41464b;\n --bs-success-border-subtle: #0f5132;\n --bs-info-border-subtle: #087990;\n --bs-warning-border-subtle: #997404;\n --bs-danger-border-subtle: #842029;\n --bs-light-border-subtle: #495057;\n --bs-dark-border-subtle: #343a40;\n --bs-heading-color: inherit;\n --bs-link-color: #6ea8fe;\n --bs-link-hover-color: #8bb9fe;\n --bs-link-color-rgb: 110, 168, 254;\n --bs-link-hover-color-rgb: 139, 185, 254;\n --bs-code-color: #e685b5;\n --bs-highlight-color: #dee2e6;\n --bs-highlight-bg: #664d03;\n --bs-border-color: #495057;\n --bs-border-color-translucent: rgba(255, 255, 255, 0.15);\n --bs-form-valid-color: #75b798;\n --bs-form-valid-border-color: #75b798;\n --bs-form-invalid-color: #ea868f;\n --bs-form-invalid-border-color: #ea868f;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\n@media (prefers-reduced-motion: no-preference) {\n :root {\n scroll-behavior: smooth;\n }\n}\n\nbody {\n margin: 0;\n font-family: var(--bs-body-font-family);\n font-size: var(--bs-body-font-size);\n font-weight: var(--bs-body-font-weight);\n line-height: var(--bs-body-line-height);\n color: var(--bs-body-color);\n text-align: var(--bs-body-text-align);\n background-color: var(--bs-body-bg);\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\nhr {\n margin: 1rem 0;\n color: inherit;\n border: 0;\n border-top: var(--bs-border-width) solid;\n opacity: 0.25;\n}\n\nh6, h5, h4, h3, h2, h1 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n font-weight: 500;\n line-height: 1.2;\n color: var(--bs-heading-color);\n}\n\nh1 {\n font-size: calc(1.375rem + 1.5vw);\n}\n@media (min-width: 1200px) {\n h1 {\n font-size: 2.5rem;\n }\n}\n\nh2 {\n font-size: calc(1.325rem + 0.9vw);\n}\n@media (min-width: 1200px) {\n h2 {\n font-size: 2rem;\n }\n}\n\nh3 {\n font-size: calc(1.3rem + 0.6vw);\n}\n@media (min-width: 1200px) {\n h3 {\n font-size: 1.75rem;\n }\n}\n\nh4 {\n font-size: calc(1.275rem + 0.3vw);\n}\n@media (min-width: 1200px) {\n h4 {\n font-size: 1.5rem;\n }\n}\n\nh5 {\n font-size: 1.25rem;\n}\n\nh6 {\n font-size: 1rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title] {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n cursor: help;\n -webkit-text-decoration-skip-ink: none;\n text-decoration-skip-ink: none;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul {\n padding-left: 2rem;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: 0.5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall {\n font-size: 0.875em;\n}\n\nmark {\n padding: 0.1875em;\n color: var(--bs-highlight-color);\n background-color: var(--bs-highlight-bg);\n}\n\nsub,\nsup {\n position: relative;\n font-size: 0.75em;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\na {\n color: rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 1));\n text-decoration: underline;\n}\na:hover {\n --bs-link-color-rgb: var(--bs-link-hover-color-rgb);\n}\n\na:not([href]):not([class]), a:not([href]):not([class]):hover {\n color: inherit;\n text-decoration: none;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: var(--bs-font-monospace);\n font-size: 1em;\n}\n\npre {\n display: block;\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n font-size: 0.875em;\n}\npre code {\n font-size: inherit;\n color: inherit;\n word-break: normal;\n}\n\ncode {\n font-size: 0.875em;\n color: var(--bs-code-color);\n word-wrap: break-word;\n}\na > code {\n color: inherit;\n}\n\nkbd {\n padding: 0.1875rem 0.375rem;\n font-size: 0.875em;\n color: var(--bs-body-bg);\n background-color: var(--bs-body-color);\n border-radius: 0.25rem;\n}\nkbd kbd {\n padding: 0;\n font-size: 1em;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg,\nsvg {\n vertical-align: middle;\n}\n\ntable {\n caption-side: bottom;\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n color: var(--bs-secondary-color);\n text-align: left;\n}\n\nth {\n text-align: inherit;\n text-align: -webkit-match-parent;\n}\n\nthead,\ntbody,\ntfoot,\ntr,\ntd,\nth {\n border-color: inherit;\n border-style: solid;\n border-width: 0;\n}\n\nlabel {\n display: inline-block;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus:not(:focus-visible) {\n outline: 0;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\n[role=button] {\n cursor: pointer;\n}\n\nselect {\n word-wrap: normal;\n}\nselect:disabled {\n opacity: 1;\n}\n\n[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator {\n display: none !important;\n}\n\nbutton,\n[type=button],\n[type=reset],\n[type=submit] {\n -webkit-appearance: button;\n}\nbutton:not(:disabled),\n[type=button]:not(:disabled),\n[type=reset]:not(:disabled),\n[type=submit]:not(:disabled) {\n cursor: pointer;\n}\n\n::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ntextarea {\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n float: left;\n width: 100%;\n padding: 0;\n margin-bottom: 0.5rem;\n font-size: calc(1.275rem + 0.3vw);\n line-height: inherit;\n}\n@media (min-width: 1200px) {\n legend {\n font-size: 1.5rem;\n }\n}\nlegend + * {\n clear: left;\n}\n\n::-webkit-datetime-edit-fields-wrapper,\n::-webkit-datetime-edit-text,\n::-webkit-datetime-edit-minute,\n::-webkit-datetime-edit-hour-field,\n::-webkit-datetime-edit-day-field,\n::-webkit-datetime-edit-month-field,\n::-webkit-datetime-edit-year-field {\n padding: 0;\n}\n\n::-webkit-inner-spin-button {\n height: auto;\n}\n\n[type=search] {\n -webkit-appearance: textfield;\n outline-offset: -2px;\n}\n\n/* rtl:raw:\n[type=\"tel\"],\n[type=\"url\"],\n[type=\"email\"],\n[type=\"number\"] {\n direction: ltr;\n}\n*/\n::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-color-swatch-wrapper {\n padding: 0;\n}\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\n::file-selector-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\niframe {\n border: 0;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[hidden] {\n display: none !important;\n}\n\n/*# sourceMappingURL=bootstrap-reboot.css.map */","// stylelint-disable scss/dimension-no-non-numeric-values\n\n// SCSS RFS mixin\n//\n// Automated responsive values for font sizes, paddings, margins and much more\n//\n// Licensed under MIT (https://github.com/twbs/rfs/blob/main/LICENSE)\n\n// Configuration\n\n// Base value\n$rfs-base-value: 1.25rem !default;\n$rfs-unit: rem !default;\n\n@if $rfs-unit != rem and $rfs-unit != px {\n @error \"`#{$rfs-unit}` is not a valid unit for $rfs-unit. Use `px` or `rem`.\";\n}\n\n// Breakpoint at where values start decreasing if screen width is smaller\n$rfs-breakpoint: 1200px !default;\n$rfs-breakpoint-unit: px !default;\n\n@if $rfs-breakpoint-unit != px and $rfs-breakpoint-unit != em and $rfs-breakpoint-unit != rem {\n @error \"`#{$rfs-breakpoint-unit}` is not a valid unit for $rfs-breakpoint-unit. Use `px`, `em` or `rem`.\";\n}\n\n// Resize values based on screen height and width\n$rfs-two-dimensional: false !default;\n\n// Factor of decrease\n$rfs-factor: 10 !default;\n\n@if type-of($rfs-factor) != number or $rfs-factor <= 1 {\n @error \"`#{$rfs-factor}` is not a valid $rfs-factor, it must be greater than 1.\";\n}\n\n// Mode. Possibilities: \"min-media-query\", \"max-media-query\"\n$rfs-mode: min-media-query !default;\n\n// Generate enable or disable classes. Possibilities: false, \"enable\" or \"disable\"\n$rfs-class: false !default;\n\n// 1 rem = $rfs-rem-value px\n$rfs-rem-value: 16 !default;\n\n// Safari iframe resize bug: https://github.com/twbs/rfs/issues/14\n$rfs-safari-iframe-resize-bug-fix: false !default;\n\n// Disable RFS by setting $enable-rfs to false\n$enable-rfs: true !default;\n\n// Cache $rfs-base-value unit\n$rfs-base-value-unit: unit($rfs-base-value);\n\n@function divide($dividend, $divisor, $precision: 10) {\n $sign: if($dividend > 0 and $divisor > 0 or $dividend < 0 and $divisor < 0, 1, -1);\n $dividend: abs($dividend);\n $divisor: abs($divisor);\n @if $dividend == 0 {\n @return 0;\n }\n @if $divisor == 0 {\n @error \"Cannot divide by 0\";\n }\n $remainder: $dividend;\n $result: 0;\n $factor: 10;\n @while ($remainder > 0 and $precision >= 0) {\n $quotient: 0;\n @while ($remainder >= $divisor) {\n $remainder: $remainder - $divisor;\n $quotient: $quotient + 1;\n }\n $result: $result * 10 + $quotient;\n $factor: $factor * .1;\n $remainder: $remainder * 10;\n $precision: $precision - 1;\n @if ($precision < 0 and $remainder >= $divisor * 5) {\n $result: $result + 1;\n }\n }\n $result: $result * $factor * $sign;\n $dividend-unit: unit($dividend);\n $divisor-unit: unit($divisor);\n $unit-map: (\n \"px\": 1px,\n \"rem\": 1rem,\n \"em\": 1em,\n \"%\": 1%\n );\n @if ($dividend-unit != $divisor-unit and map-has-key($unit-map, $dividend-unit)) {\n $result: $result * map-get($unit-map, $dividend-unit);\n }\n @return $result;\n}\n\n// Remove px-unit from $rfs-base-value for calculations\n@if $rfs-base-value-unit == px {\n $rfs-base-value: divide($rfs-base-value, $rfs-base-value * 0 + 1);\n}\n@else if $rfs-base-value-unit == rem {\n $rfs-base-value: divide($rfs-base-value, divide($rfs-base-value * 0 + 1, $rfs-rem-value));\n}\n\n// Cache $rfs-breakpoint unit to prevent multiple calls\n$rfs-breakpoint-unit-cache: unit($rfs-breakpoint);\n\n// Remove unit from $rfs-breakpoint for calculations\n@if $rfs-breakpoint-unit-cache == px {\n $rfs-breakpoint: divide($rfs-breakpoint, $rfs-breakpoint * 0 + 1);\n}\n@else if $rfs-breakpoint-unit-cache == rem or $rfs-breakpoint-unit-cache == \"em\" {\n $rfs-breakpoint: divide($rfs-breakpoint, divide($rfs-breakpoint * 0 + 1, $rfs-rem-value));\n}\n\n// Calculate the media query value\n$rfs-mq-value: if($rfs-breakpoint-unit == px, #{$rfs-breakpoint}px, #{divide($rfs-breakpoint, $rfs-rem-value)}#{$rfs-breakpoint-unit});\n$rfs-mq-property-width: if($rfs-mode == max-media-query, max-width, min-width);\n$rfs-mq-property-height: if($rfs-mode == max-media-query, max-height, min-height);\n\n// Internal mixin used to determine which media query needs to be used\n@mixin _rfs-media-query {\n @if $rfs-two-dimensional {\n @if $rfs-mode == max-media-query {\n @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}), (#{$rfs-mq-property-height}: #{$rfs-mq-value}) {\n @content;\n }\n }\n @else {\n @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}) and (#{$rfs-mq-property-height}: #{$rfs-mq-value}) {\n @content;\n }\n }\n }\n @else {\n @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}) {\n @content;\n }\n }\n}\n\n// Internal mixin that adds disable classes to the selector if needed.\n@mixin _rfs-rule {\n @if $rfs-class == disable and $rfs-mode == max-media-query {\n // Adding an extra class increases specificity, which prevents the media query to override the property\n &,\n .disable-rfs &,\n &.disable-rfs {\n @content;\n }\n }\n @else if $rfs-class == enable and $rfs-mode == min-media-query {\n .enable-rfs &,\n &.enable-rfs {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Internal mixin that adds enable classes to the selector if needed.\n@mixin _rfs-media-query-rule {\n\n @if $rfs-class == enable {\n @if $rfs-mode == min-media-query {\n @content;\n }\n\n @include _rfs-media-query () {\n .enable-rfs &,\n &.enable-rfs {\n @content;\n }\n }\n }\n @else {\n @if $rfs-class == disable and $rfs-mode == min-media-query {\n .disable-rfs &,\n &.disable-rfs {\n @content;\n }\n }\n @include _rfs-media-query () {\n @content;\n }\n }\n}\n\n// Helper function to get the formatted non-responsive value\n@function rfs-value($values) {\n // Convert to list\n $values: if(type-of($values) != list, ($values,), $values);\n\n $val: \"\";\n\n // Loop over each value and calculate value\n @each $value in $values {\n @if $value == 0 {\n $val: $val + \" 0\";\n }\n @else {\n // Cache $value unit\n $unit: if(type-of($value) == \"number\", unit($value), false);\n\n @if $unit == px {\n // Convert to rem if needed\n $val: $val + \" \" + if($rfs-unit == rem, #{divide($value, $value * 0 + $rfs-rem-value)}rem, $value);\n }\n @else if $unit == rem {\n // Convert to px if needed\n $val: $val + \" \" + if($rfs-unit == px, #{divide($value, $value * 0 + 1) * $rfs-rem-value}px, $value);\n } @else {\n // If $value isn't a number (like inherit) or $value has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n $val: $val + \" \" + $value;\n }\n }\n }\n\n // Remove first space\n @return unquote(str-slice($val, 2));\n}\n\n// Helper function to get the responsive value calculated by RFS\n@function rfs-fluid-value($values) {\n // Convert to list\n $values: if(type-of($values) != list, ($values,), $values);\n\n $val: \"\";\n\n // Loop over each value and calculate value\n @each $value in $values {\n @if $value == 0 {\n $val: $val + \" 0\";\n } @else {\n // Cache $value unit\n $unit: if(type-of($value) == \"number\", unit($value), false);\n\n // If $value isn't a number (like inherit) or $value has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n @if not $unit or $unit != px and $unit != rem {\n $val: $val + \" \" + $value;\n } @else {\n // Remove unit from $value for calculations\n $value: divide($value, $value * 0 + if($unit == px, 1, divide(1, $rfs-rem-value)));\n\n // Only add the media query if the value is greater than the minimum value\n @if abs($value) <= $rfs-base-value or not $enable-rfs {\n $val: $val + \" \" + if($rfs-unit == rem, #{divide($value, $rfs-rem-value)}rem, #{$value}px);\n }\n @else {\n // Calculate the minimum value\n $value-min: $rfs-base-value + divide(abs($value) - $rfs-base-value, $rfs-factor);\n\n // Calculate difference between $value and the minimum value\n $value-diff: abs($value) - $value-min;\n\n // Base value formatting\n $min-width: if($rfs-unit == rem, #{divide($value-min, $rfs-rem-value)}rem, #{$value-min}px);\n\n // Use negative value if needed\n $min-width: if($value < 0, -$min-width, $min-width);\n\n // Use `vmin` if two-dimensional is enabled\n $variable-unit: if($rfs-two-dimensional, vmin, vw);\n\n // Calculate the variable width between 0 and $rfs-breakpoint\n $variable-width: #{divide($value-diff * 100, $rfs-breakpoint)}#{$variable-unit};\n\n // Return the calculated value\n $val: $val + \" calc(\" + $min-width + if($value < 0, \" - \", \" + \") + $variable-width + \")\";\n }\n }\n }\n }\n\n // Remove first space\n @return unquote(str-slice($val, 2));\n}\n\n// RFS mixin\n@mixin rfs($values, $property: font-size) {\n @if $values != null {\n $val: rfs-value($values);\n $fluid-val: rfs-fluid-value($values);\n\n // Do not print the media query if responsive & non-responsive values are the same\n @if $val == $fluid-val {\n #{$property}: $val;\n }\n @else {\n @include _rfs-rule () {\n #{$property}: if($rfs-mode == max-media-query, $val, $fluid-val);\n\n // Include safari iframe resize fix if needed\n min-width: if($rfs-safari-iframe-resize-bug-fix, (0 * 1vw), null);\n }\n\n @include _rfs-media-query-rule () {\n #{$property}: if($rfs-mode == max-media-query, $fluid-val, $val);\n }\n }\n }\n}\n\n// Shorthand helper mixins\n@mixin font-size($value) {\n @include rfs($value);\n}\n\n@mixin padding($value) {\n @include rfs($value, padding);\n}\n\n@mixin padding-top($value) {\n @include rfs($value, padding-top);\n}\n\n@mixin padding-right($value) {\n @include rfs($value, padding-right);\n}\n\n@mixin padding-bottom($value) {\n @include rfs($value, padding-bottom);\n}\n\n@mixin padding-left($value) {\n @include rfs($value, padding-left);\n}\n\n@mixin margin($value) {\n @include rfs($value, margin);\n}\n\n@mixin margin-top($value) {\n @include rfs($value, margin-top);\n}\n\n@mixin margin-right($value) {\n @include rfs($value, margin-right);\n}\n\n@mixin margin-bottom($value) {\n @include rfs($value, margin-bottom);\n}\n\n@mixin margin-left($value) {\n @include rfs($value, margin-left);\n}\n","// scss-docs-start color-mode-mixin\n@mixin color-mode($mode: light, $root: false) {\n @if $color-mode-type == \"media-query\" {\n @if $root == true {\n @media (prefers-color-scheme: $mode) {\n :root {\n @content;\n }\n }\n } @else {\n @media (prefers-color-scheme: $mode) {\n @content;\n }\n }\n } @else {\n [data-bs-theme=\"#{$mode}\"] {\n @content;\n }\n }\n}\n// scss-docs-end color-mode-mixin\n","// stylelint-disable declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n\n// Reboot\n//\n// Normalization of HTML elements, manually forked from Normalize.css to remove\n// styles targeting irrelevant browsers while applying new styles.\n//\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n\n// Document\n//\n// Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\n\n// Root\n//\n// Ability to the value of the root font sizes, affecting the value of `rem`.\n// null by default, thus nothing is generated.\n\n:root {\n @if $font-size-root != null {\n @include font-size(var(--#{$prefix}root-font-size));\n }\n\n @if $enable-smooth-scroll {\n @media (prefers-reduced-motion: no-preference) {\n scroll-behavior: smooth;\n }\n }\n}\n\n\n// Body\n//\n// 1. Remove the margin in all browsers.\n// 2. As a best practice, apply a default `background-color`.\n// 3. Prevent adjustments of font size after orientation changes in iOS.\n// 4. Change the default tap highlight to be completely transparent in iOS.\n\n// scss-docs-start reboot-body-rules\nbody {\n margin: 0; // 1\n font-family: var(--#{$prefix}body-font-family);\n @include font-size(var(--#{$prefix}body-font-size));\n font-weight: var(--#{$prefix}body-font-weight);\n line-height: var(--#{$prefix}body-line-height);\n color: var(--#{$prefix}body-color);\n text-align: var(--#{$prefix}body-text-align);\n background-color: var(--#{$prefix}body-bg); // 2\n -webkit-text-size-adjust: 100%; // 3\n -webkit-tap-highlight-color: rgba($black, 0); // 4\n}\n// scss-docs-end reboot-body-rules\n\n\n// Content grouping\n//\n// 1. Reset Firefox's gray color\n\nhr {\n margin: $hr-margin-y 0;\n color: $hr-color; // 1\n border: 0;\n border-top: $hr-border-width solid $hr-border-color;\n opacity: $hr-opacity;\n}\n\n\n// Typography\n//\n// 1. Remove top margins from headings\n// By default, `<h1>`-`<h6>` all receive top and bottom margins. We nuke the top\n// margin for easier control within type scales as it avoids margin collapsing.\n\n%heading {\n margin-top: 0; // 1\n margin-bottom: $headings-margin-bottom;\n font-family: $headings-font-family;\n font-style: $headings-font-style;\n font-weight: $headings-font-weight;\n line-height: $headings-line-height;\n color: var(--#{$prefix}heading-color);\n}\n\nh1 {\n @extend %heading;\n @include font-size($h1-font-size);\n}\n\nh2 {\n @extend %heading;\n @include font-size($h2-font-size);\n}\n\nh3 {\n @extend %heading;\n @include font-size($h3-font-size);\n}\n\nh4 {\n @extend %heading;\n @include font-size($h4-font-size);\n}\n\nh5 {\n @extend %heading;\n @include font-size($h5-font-size);\n}\n\nh6 {\n @extend %heading;\n @include font-size($h6-font-size);\n}\n\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on `<p>`s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\n\np {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n}\n\n\n// Abbreviations\n//\n// 1. Add the correct text decoration in Chrome, Edge, Opera, and Safari.\n// 2. Add explicit cursor to indicate changed behavior.\n// 3. Prevent the text-decoration to be skipped.\n\nabbr[title] {\n text-decoration: underline dotted; // 1\n cursor: help; // 2\n text-decoration-skip-ink: none; // 3\n}\n\n\n// Address\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\n\n// Lists\n\nol,\nul {\n padding-left: 2rem;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: $dt-font-weight;\n}\n\n// 1. Undo browser default\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0; // 1\n}\n\n\n// Blockquote\n\nblockquote {\n margin: 0 0 1rem;\n}\n\n\n// Strong\n//\n// Add the correct font weight in Chrome, Edge, and Safari\n\nb,\nstrong {\n font-weight: $font-weight-bolder;\n}\n\n\n// Small\n//\n// Add the correct font size in all browsers\n\nsmall {\n @include font-size($small-font-size);\n}\n\n\n// Mark\n\nmark {\n padding: $mark-padding;\n color: var(--#{$prefix}highlight-color);\n background-color: var(--#{$prefix}highlight-bg);\n}\n\n\n// Sub and Sup\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n\nsub,\nsup {\n position: relative;\n @include font-size($sub-sup-font-size);\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n// Links\n\na {\n color: rgba(var(--#{$prefix}link-color-rgb), var(--#{$prefix}link-opacity, 1));\n text-decoration: $link-decoration;\n\n &:hover {\n --#{$prefix}link-color-rgb: var(--#{$prefix}link-hover-color-rgb);\n text-decoration: $link-hover-decoration;\n }\n}\n\n// And undo these styles for placeholder links/named anchors (without href).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]):not([class]) {\n &,\n &:hover {\n color: inherit;\n text-decoration: none;\n }\n}\n\n\n// Code\n\npre,\ncode,\nkbd,\nsamp {\n font-family: $font-family-code;\n @include font-size(1em); // Correct the odd `em` font sizing in all browsers.\n}\n\n// 1. Remove browser default top margin\n// 2. Reset browser default of `1em` to use `rem`s\n// 3. Don't allow content to break outside\n\npre {\n display: block;\n margin-top: 0; // 1\n margin-bottom: 1rem; // 2\n overflow: auto; // 3\n @include font-size($code-font-size);\n color: $pre-color;\n\n // Account for some code outputs that place code tags in pre tags\n code {\n @include font-size(inherit);\n color: inherit;\n word-break: normal;\n }\n}\n\ncode {\n @include font-size($code-font-size);\n color: var(--#{$prefix}code-color);\n word-wrap: break-word;\n\n // Streamline the style when inside anchors to avoid broken underline and more\n a > & {\n color: inherit;\n }\n}\n\nkbd {\n padding: $kbd-padding-y $kbd-padding-x;\n @include font-size($kbd-font-size);\n color: $kbd-color;\n background-color: $kbd-bg;\n @include border-radius($border-radius-sm);\n\n kbd {\n padding: 0;\n @include font-size(1em);\n font-weight: $nested-kbd-font-weight;\n }\n}\n\n\n// Figures\n//\n// Apply a consistent margin strategy (matches our type styles).\n\nfigure {\n margin: 0 0 1rem;\n}\n\n\n// Images and content\n\nimg,\nsvg {\n vertical-align: middle;\n}\n\n\n// Tables\n//\n// Prevent double borders\n\ntable {\n caption-side: bottom;\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: $table-cell-padding-y;\n padding-bottom: $table-cell-padding-y;\n color: $table-caption-color;\n text-align: left;\n}\n\n// 1. Removes font-weight bold by inheriting\n// 2. Matches default `<td>` alignment by inheriting `text-align`.\n// 3. Fix alignment for Safari\n\nth {\n font-weight: $table-th-font-weight; // 1\n text-align: inherit; // 2\n text-align: -webkit-match-parent; // 3\n}\n\nthead,\ntbody,\ntfoot,\ntr,\ntd,\nth {\n border-color: inherit;\n border-style: solid;\n border-width: 0;\n}\n\n\n// Forms\n//\n// 1. Allow labels to use `margin` for spacing.\n\nlabel {\n display: inline-block; // 1\n}\n\n// Remove the default `border-radius` that macOS Chrome adds.\n// See https://github.com/twbs/bootstrap/issues/24093\n\nbutton {\n // stylelint-disable-next-line property-disallowed-list\n border-radius: 0;\n}\n\n// Explicitly remove focus outline in Chromium when it shouldn't be\n// visible (e.g. as result of mouse click or touch tap). It already\n// should be doing this automatically, but seems to currently be\n// confused and applies its very visible two-tone outline anyway.\n\nbutton:focus:not(:focus-visible) {\n outline: 0;\n}\n\n// 1. Remove the margin in Firefox and Safari\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0; // 1\n font-family: inherit;\n @include font-size(inherit);\n line-height: inherit;\n}\n\n// Remove the inheritance of text transform in Firefox\nbutton,\nselect {\n text-transform: none;\n}\n// Set the cursor for non-`<button>` buttons\n//\n// Details at https://github.com/twbs/bootstrap/pull/30562\n[role=\"button\"] {\n cursor: pointer;\n}\n\nselect {\n // Remove the inheritance of word-wrap in Safari.\n // See https://github.com/twbs/bootstrap/issues/24990\n word-wrap: normal;\n\n // Undo the opacity change from Chrome\n &:disabled {\n opacity: 1;\n }\n}\n\n// Remove the dropdown arrow only from text type inputs built with datalists in Chrome.\n// See https://stackoverflow.com/a/54997118\n\n[list]:not([type=\"date\"]):not([type=\"datetime-local\"]):not([type=\"month\"]):not([type=\"week\"]):not([type=\"time\"])::-webkit-calendar-picker-indicator {\n display: none !important;\n}\n\n// 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`\n// controls in Android 4.\n// 2. Correct the inability to style clickable types in iOS and Safari.\n// 3. Opinionated: add \"hand\" cursor to non-disabled button elements.\n\nbutton,\n[type=\"button\"], // 1\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button; // 2\n\n @if $enable-button-pointers {\n &:not(:disabled) {\n cursor: pointer; // 3\n }\n }\n}\n\n// Remove inner border and padding from Firefox, but don't restore the outline like Normalize.\n\n::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\n// 1. Textareas should really only resize vertically so they don't break their (horizontal) containers.\n\ntextarea {\n resize: vertical; // 1\n}\n\n// 1. Browsers set a default `min-width: min-content;` on fieldsets,\n// unlike e.g. `<div>`s, which have `min-width: 0;` by default.\n// So we reset that to ensure fieldsets behave more like a standard block element.\n// See https://github.com/twbs/bootstrap/issues/12359\n// and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements\n// 2. Reset the default outline behavior of fieldsets so they don't affect page layout.\n\nfieldset {\n min-width: 0; // 1\n padding: 0; // 2\n margin: 0; // 2\n border: 0; // 2\n}\n\n// 1. By using `float: left`, the legend will behave like a block element.\n// This way the border of a fieldset wraps around the legend if present.\n// 2. Fix wrapping bug.\n// See https://github.com/twbs/bootstrap/issues/29712\n\nlegend {\n float: left; // 1\n width: 100%;\n padding: 0;\n margin-bottom: $legend-margin-bottom;\n @include font-size($legend-font-size);\n font-weight: $legend-font-weight;\n line-height: inherit;\n\n + * {\n clear: left; // 2\n }\n}\n\n// Fix height of inputs with a type of datetime-local, date, month, week, or time\n// See https://github.com/twbs/bootstrap/issues/18842\n\n::-webkit-datetime-edit-fields-wrapper,\n::-webkit-datetime-edit-text,\n::-webkit-datetime-edit-minute,\n::-webkit-datetime-edit-hour-field,\n::-webkit-datetime-edit-day-field,\n::-webkit-datetime-edit-month-field,\n::-webkit-datetime-edit-year-field {\n padding: 0;\n}\n\n::-webkit-inner-spin-button {\n height: auto;\n}\n\n// 1. This overrides the extra rounded corners on search inputs in iOS so that our\n// `.form-control` class can properly style them. Note that this cannot simply\n// be added to `.form-control` as it's not specific enough. For details, see\n// https://github.com/twbs/bootstrap/issues/11586.\n// 2. Correct the outline style in Safari.\n\n[type=\"search\"] {\n -webkit-appearance: textfield; // 1\n outline-offset: -2px; // 2\n}\n\n// 1. A few input types should stay LTR\n// See https://rtlstyling.com/posts/rtl-styling#form-inputs\n// 2. RTL only output\n// See https://rtlcss.com/learn/usage-guide/control-directives/#raw\n\n/* rtl:raw:\n[type=\"tel\"],\n[type=\"url\"],\n[type=\"email\"],\n[type=\"number\"] {\n direction: ltr;\n}\n*/\n\n// Remove the inner padding in Chrome and Safari on macOS.\n\n::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n// Remove padding around color pickers in webkit browsers\n\n::-webkit-color-swatch-wrapper {\n padding: 0;\n}\n\n\n// 1. Inherit font family and line height for file input buttons\n// 2. Correct the inability to style clickable types in iOS and Safari.\n\n::file-selector-button {\n font: inherit; // 1\n -webkit-appearance: button; // 2\n}\n\n// Correct element displays\n\noutput {\n display: inline-block;\n}\n\n// Remove border from iframe\n\niframe {\n border: 0;\n}\n\n// Summary\n//\n// 1. Add the correct display in all browsers\n\nsummary {\n display: list-item; // 1\n cursor: pointer;\n}\n\n\n// Progress\n//\n// Add the correct vertical alignment in Chrome, Firefox, and Opera.\n\nprogress {\n vertical-align: baseline;\n}\n\n\n// Hidden attribute\n//\n// Always hide an element with the `hidden` HTML attribute.\n\n[hidden] {\n display: none !important;\n}\n","// stylelint-disable property-disallowed-list\n// Single side border-radius\n\n// Helper function to replace negative values with 0\n@function valid-radius($radius) {\n $return: ();\n @each $value in $radius {\n @if type-of($value) == number {\n $return: append($return, max($value, 0));\n } @else {\n $return: append($return, $value);\n }\n }\n @return $return;\n}\n\n// scss-docs-start border-radius-mixins\n@mixin border-radius($radius: $border-radius, $fallback-border-radius: false) {\n @if $enable-rounded {\n border-radius: valid-radius($radius);\n }\n @else if $fallback-border-radius != false {\n border-radius: $fallback-border-radius;\n }\n}\n\n@mixin border-top-radius($radius: $border-radius) {\n @if $enable-rounded {\n border-top-left-radius: valid-radius($radius);\n border-top-right-radius: valid-radius($radius);\n }\n}\n\n@mixin border-end-radius($radius: $border-radius) {\n @if $enable-rounded {\n border-top-right-radius: valid-radius($radius);\n border-bottom-right-radius: valid-radius($radius);\n }\n}\n\n@mixin border-bottom-radius($radius: $border-radius) {\n @if $enable-rounded {\n border-bottom-right-radius: valid-radius($radius);\n border-bottom-left-radius: valid-radius($radius);\n }\n}\n\n@mixin border-start-radius($radius: $border-radius) {\n @if $enable-rounded {\n border-top-left-radius: valid-radius($radius);\n border-bottom-left-radius: valid-radius($radius);\n }\n}\n\n@mixin border-top-start-radius($radius: $border-radius) {\n @if $enable-rounded {\n border-top-left-radius: valid-radius($radius);\n }\n}\n\n@mixin border-top-end-radius($radius: $border-radius) {\n @if $enable-rounded {\n border-top-right-radius: valid-radius($radius);\n }\n}\n\n@mixin border-bottom-end-radius($radius: $border-radius) {\n @if $enable-rounded {\n border-bottom-right-radius: valid-radius($radius);\n }\n}\n\n@mixin border-bottom-start-radius($radius: $border-radius) {\n @if $enable-rounded {\n border-bottom-left-radius: valid-radius($radius);\n }\n}\n// scss-docs-end border-radius-mixins\n"]}