diff --git a/.env b/.env deleted file mode 100644 index 1973a841a2456f1407cd09781ae89f513dcc658a..0000000000000000000000000000000000000000 --- a/.env +++ /dev/null @@ -1,7 +0,0 @@ -GEMINI_API_KEYS=AIzaSyCWGcvjFt-hUWX3LpTh6Rt8N5VywE_pss -MONGO_URI=mongodb+srv://legalmind:@cluster0.xdzfv.mongodb.net/?retryWrites=true&w=majority&appName=Cluster0 - -MYSQL_HOST=localhost -MYSQL_USER=root -MYSQL_PASSWORD= -MYSQL_DATABASE=legal_query_db \ No newline at end of file diff --git a/.gitattributes b/.gitattributes index 63725d316f483f00755de3283f0319c8e1c16291..a6344aac8c09253b3b630fb776ae94478aa0275b 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,3 +1,35 @@ -embedding_data/embeddings.pkl filter=lfs diff=lfs merge=lfs -text -embedding_data/faiss_index_23_06.index filter=lfs diff=lfs merge=lfs -text -static/assets/01-light.png filter=lfs diff=lfs merge=lfs -text +*.7z filter=lfs diff=lfs merge=lfs -text +*.arrow filter=lfs diff=lfs merge=lfs -text +*.bin filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.ckpt filter=lfs diff=lfs merge=lfs -text +*.ftz filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.h5 filter=lfs diff=lfs merge=lfs -text +*.joblib filter=lfs diff=lfs merge=lfs -text +*.lfs.* filter=lfs diff=lfs merge=lfs -text +*.mlmodel filter=lfs diff=lfs merge=lfs -text +*.model filter=lfs diff=lfs merge=lfs -text +*.msgpack filter=lfs diff=lfs merge=lfs -text +*.npy filter=lfs diff=lfs merge=lfs -text +*.npz filter=lfs diff=lfs merge=lfs -text +*.onnx filter=lfs diff=lfs merge=lfs -text +*.ot filter=lfs diff=lfs merge=lfs -text +*.parquet filter=lfs diff=lfs merge=lfs -text +*.pb filter=lfs diff=lfs merge=lfs -text +*.pickle filter=lfs diff=lfs merge=lfs -text +*.pkl filter=lfs diff=lfs merge=lfs -text +*.pt filter=lfs diff=lfs merge=lfs -text +*.pth filter=lfs diff=lfs merge=lfs -text +*.rar filter=lfs diff=lfs merge=lfs -text +*.safetensors filter=lfs diff=lfs merge=lfs -text +saved_model/**/* filter=lfs diff=lfs merge=lfs -text +*.tar.* filter=lfs diff=lfs merge=lfs -text +*.tar filter=lfs diff=lfs merge=lfs -text +*.tflite filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.wasm filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text +*tfevents* filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 5086a5be2a4eaaa672feee9044a06b4df3c0586e..0000000000000000000000000000000000000000 --- a/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -*.log -*.tmp \ No newline at end of file diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index bac89c2bea3a94aaab63c788dcf09640fb40e58c..0000000000000000000000000000000000000000 --- a/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -# Use the official Python 3.11 slim image as the base -FROM python:3.11-slim - -# Set the working directory inside the container -WORKDIR /app - -# Install system dependencies for MongoDB, FAISS, and other libraries -RUN apt-get update && apt-get install -y \ - gcc \ - g++ \ - libffi-dev \ - wget \ - && rm -rf /var/lib/apt/lists/* - -# Copy the requirements file into the container -COPY requirements.txt . - -# Install Python dependencies -RUN pip install --no-cache-dir -r requirements.txt -RUN pip install gunicorn certifi eventlet - -# Download Boxicons fonts to fix 404 error -RUN mkdir -p /app/static/fonts && \ - wget -P /app/static/fonts https://unpkg.com/boxicons@2.1.4/fonts/boxicons.woff2 && \ - wget -P /app/static/fonts https://unpkg.com/boxicons@2.1.4/fonts/boxicons.woff && \ - wget -P /app/static/fonts https://unpkg.com/boxicons@2.1.4/fonts/boxicons.ttf - -# Set up cache, log, and session directories with proper permissions -ENV HF_HOME=/app/.cache/huggingface -ENV FLASK_SESSION_DIR=/app/sessions -RUN mkdir -p /app/.cache/huggingface /app/logs /app/sessions /app/static/fonts /app/embedding_data && \ - chmod -R 777 /app/.cache/huggingface /app/logs /app/sessions /app/static/fonts /app/embedding_data - -# Copy the entire application code, including embedding_data -COPY . . - -# Expose the port Hugging Face Spaces expects -EXPOSE 7860 - -# Set environment variables -ENV FLASK_ENV=production -ENV PYTHONUNBUFFERED=1 -ENV PORT=7860 - -# Command to run the application with Gunicorn -CMD ["gunicorn", "--bind", "0.0.0.0:7860", "--workers", "4", "--timeout", "120", "--worker-class", "eventlet", "app:app"] \ No newline at end of file diff --git a/app.py b/app.py deleted file mode 100644 index d8e35fffb39b6ce3436aafc302b02db1a82cc5f2..0000000000000000000000000000000000000000 --- a/app.py +++ /dev/null @@ -1,1149 +0,0 @@ -import os -import logging -import certifi -from flask import Flask, request, jsonify, session, render_template, redirect, url_for -from flask_socketio import SocketIO, emit, disconnect -from flask_cors import CORS -from pymongo import MongoClient -from datetime import datetime, timedelta -from gemini_handler import GeminiHandler, GenerationConfig, Strategy, KeyRotationStrategy -from langchain.memory import ConversationBufferMemory -import json -from typing import List, Dict -import re -import pickle -import faiss -import torch -import numpy as np -from sentence_transformers import SentenceTransformer -from bson import ObjectId -import hashlib -import smtplib -from email.mime.text import MIMEText -import random -import string -from functools import wraps -import threading -import time - -# Cấu hình logging -logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s') - -app = Flask(__name__) -CORS(app) # Cho phép tất cả nguồn gốc - -app.config['SECRET_KEY'] = os.getenv('SECRET_KEY', 'NQJWnj7YwbQML8yENQJWnj7YwbQML8yE') -app.config['MONGO_URI'] = os.getenv('MONGO_URI', 'mongodb+srv://itdatit12:NQJWnj7YwbQML8yE@cluster0.pwv2g0y.mongodb.net/?retryWrites=true&w=majority&appName=Cluster0') -app.config['SMTP_SERVER'] = 'smtp.gmail.com' -app.config['SMTP_PORT'] = 587 -app.config['EMAIL_ADDRESS'] = os.getenv('EMAIL_ADDRESS', 'legalmind2025@gmail.com') -app.config['EMAIL_PASSWORD'] = os.getenv('EMAIL_PASSWORD', 'hihj vpcb ayjk gaex') -app.config['SESSION_TYPE'] = 'filesystem' -app.config['SESSION_FILE_DIR'] = os.getenv('FLASK_SESSION_DIR', '/app/sessions') -app.config['SESSION_PERMANENT'] = True -app.config['PERMANENT_SESSION_LIFETIME'] = 86400 - -# Đảm bảo thư mục session tồn tại -os.makedirs(app.config['SESSION_FILE_DIR'], exist_ok=True) - -socketio = SocketIO(app, cors_allowed_origins="*", async_mode='gevent', ping_timeout=120, ping_interval=30) - -# Khởi tạo MongoDB client với certifi -mongo = MongoClient(app.config['MONGO_URI'], ssl_cert_reqs='CERT_REQUIRED', ssl_ca_certs=certifi.where()) -db = mongo.get_database('legal_assistant') - - -# Lưu trữ WebSocket clients theo user_id -connected_clients = {} - -# Hàm hash mật khẩu -def hash_password(password: str) -> str: - salt = os.urandom(32) - hashed = hashlib.pbkdf2_hmac('sha256', password.encode('utf-8'), salt, 100000) - password_hash = (salt + hashed).hex() - logging.info(f"Tạo hash mật khẩu") - return password_hash - -# Hàm xác minh mật khẩu -def verify_password(stored_password: str, provided_password: str) -> bool: - if not stored_password or not all(c in '0123456789abcdefABCDEF' for c in stored_password): - logging.error(f"Định dạng mật khẩu lưu trữ không hợp lệ") - return False - try: - stored_bytes = bytes.fromhex(stored_password) - salt = stored_bytes[:32] - stored_hash = stored_bytes[32:] - provided_hash = hashlib.pbkdf2_hmac('sha256', provided_password.encode('utf-8'), salt, 100000) - return stored_hash == provided_hash - except ValueError as e: - logging.error(f"Lỗi trong verify_password: {e}") - return False - -# Tạo OTP -def generate_otp(length=6): - return ''.join(random.choices(string.digits, k=length)) - -# Gửi email với OTP hoặc mật khẩu -def send_email(to_email, subject, body): - msg = MIMEText(body) - msg['Subject'] = subject - msg['From'] = app.config['EMAIL_ADDRESS'] - msg['To'] = to_email - try: - with smtplib.SMTP(app.config['SMTP_SERVER'], app.config['SMTP_PORT']) as server: - server.starttls() - server.login(app.config['EMAIL_ADDRESS'], app.config['EMAIL_PASSWORD']) - server.send_message(msg) - logging.info(f"Email đã gửi tới {to_email}") - return True - except Exception as e: - logging.error(f"Lỗi khi gửi email: {e}") - return False - -# Khởi tạo model embedding -model = SentenceTransformer('hiieu/halong_embedding', device='cuda' if torch.cuda.is_available() else 'cpu') - -# Đường dẫn đến FAISS index và dữ liệu embeddings -INDEX_PATH = "embedding_data/faiss_index_23_06.index" -EMBEDDINGS_DATA_PATH = "embedding_data/embeddings.pkl" - -# Khởi tạo ConversationBufferMemory -memory = ConversationBufferMemory( - memory_key="chat_history", - return_messages=True, - max_message_limit=10, - max_token_limit=1000 -) - -# Tải FAISS index -def load_faiss_index(index_path): - try: - index = faiss.read_index(index_path) - logging.info(f"Đã tải FAISS index từ {index_path}") - return index - except Exception as e: - logging.error(f"Lỗi khi tải FAISS index: {e}") - return None - -# Tải dữ liệu embeddings -def load_embeddings_data(data_path): - try: - with open(data_path, 'rb') as f: - embeddings_data = pickle.load(f) - logging.info(f"Đã tải dữ liệu embeddings từ {data_path}") - return embeddings_data - except Exception as e: - logging.error(f"Lỗi khi tải dữ liệu embeddings: {e}") - return None - -# Hàm truy xuất -def retrieve(query, index, embeddings_data, k=10): - try: - query_embedding = model.encode([query], convert_to_numpy=True) - distances, indices = index.search(query_embedding, k) - results = [] - for idx, distance in zip(indices[0], distances[0]): - results.append({ - 'file': embeddings_data[idx]['file'], - 'folder': embeddings_data[idx]['folder'], - 'text_path': embeddings_data[idx]['text_path'], - 'text': embeddings_data[idx]['text'], - 'distance': float(distance) - }) - return results - except Exception as e: - logging.error(f"Lỗi trong quá trình truy xuất: {e}") - return [] - -# Tải FAISS index và dữ liệu embeddings -index = load_faiss_index(INDEX_PATH) -embeddings_data = load_embeddings_data(EMBEDDINGS_DATA_PATH) -if index is None or embeddings_data is None: - logging.error("Không thể tải FAISS index hoặc dữ liệu embeddings. Ứng dụng không thể khởi động.") - exit(1) - -# Reset số lượt truy vấn cho tài khoản giới hạn -def reset_query_count(user_id): - user = db.users.find_one({'_id': ObjectId(user_id)}) - if not user or user.get('account_type') == 'unlimited': - return - last_reset = user.get('last_reset') - if last_reset and datetime.utcnow() - last_reset > timedelta(days=1): - db.users.update_one( - {'_id': ObjectId(user_id)}, - {'$set': {'query_count': 0, 'last_reset': datetime.utcnow()}} - ) - logging.info(f"Đã reset số lượt truy vấn cho người dùng {user_id}") - -# Kiểm tra quyền truy vấn -def can_make_query(user_id): - user = db.users.find_one({'_id': ObjectId(user_id)}) - if not user: - return False, "Người dùng không tồn tại", None, None - if user.get('is_admin') or user.get('account_type') == 'unlimited': - return True, None, None, None - reset_query_count(user_id) - user = db.users.find_one({'_id': ObjectId(user_id)}) - query_limit = user.get('query_limit', 10) - query_count = user.get('query_count', 0) - if query_count >= query_limit: - return False, f"Bạn đã sử dụng hết {query_limit} lượt hỏi đáp hôm nay", query_count, query_limit - if query_count + 1 == query_limit: - return True, "Cảnh báo: Đây là lượt hỏi cuối cùng của bạn hôm nay", query_count, query_limit - return True, None, query_count, query_limit - -# Decorator yêu cầu quyền admin -def admin_required(f): - @wraps(f) - def decorated_function(*args, **kwargs): - if 'user_id' not in session: - return jsonify({'error': 'Vui lòng đăng nhập'}), 401 - user = db.users.find_one({'_id': ObjectId(session['user_id'])}) - if not user or not user.get('is_admin'): - return jsonify({'error': 'Quyền truy cập bị từ chối. Chỉ admin được phép.'}), 403 - return f(*args, **kwargs) - return decorated_function - - -# Preprocess related questions -def preprocess_related_questions(related_questions_input: str | List[Dict[str, str]]) -> List[Dict[str, str]]: - fallback_questions = [ - {"question": "Quy định pháp luật Việt Nam hiện hành về xử lý tranh chấp hợp đồng dân sự được quy định trong văn bản nào?"}, - {"question": "Trường hợp nào thì một bản án có thể được sử dụng làm án lệ theo quy định của pháp luật Việt Nam?"}, - {"question": "Các nguyên tắc cơ bản của Bộ luật Dân sự Việt Nam năm 2015 được quy định tại điều khoản nào?"}, - {"question": "Nghị định nào quy định về xử phạt vi phạm hành chính trong lĩnh vực hôn nhân và gia đình tại Việt Nam?"}, - {"question": "Quy trình áp dụng pháp luật trong trường hợp không có bản án tương đồng được thực hiện như thế nào?"} - ] - if isinstance(related_questions_input, str): - cleaned_input = re.sub(r'^```json\s*|\s*```$', '', related_questions_input).strip() - try: - related_questions = json.loads(cleaned_input) - except json.JSONDecodeError: - return fallback_questions[:5] - else: - related_questions = related_questions_input - if not isinstance(related_questions, list): - return fallback_questions[:5] - valid_questions = [ - q for q in related_questions - if isinstance(q, dict) and "question" in q and isinstance(q["question"], str) and q["question"].strip() - ] - seen = set() - unique_questions = [] - for q in valid_questions: - question_text = q["question"].strip() - if question_text not in seen: - seen.add(question_text) - unique_questions.append({"question": question_text}) - legal_keywords = r"(Luật|Bộ luật|Nghị định|Thông tư|Quy định|án lệ|Việt Nam|tòa án|pháp luật|điều luật|Bảo hiểm xã hội)" - filtered_questions = [ - q for q in unique_questions - if re.search(legal_keywords, q["question"], re.IGNORECASE) - ] - if len(filtered_questions) < 5: - remaining = 5 - len(filtered_questions) - for fq in fallback_questions: - if len(filtered_questions) >= 5: - break - if fq["question"] not in seen: - filtered_questions.append(fq) - seen.add(fq["question"]) - return filtered_questions[:5] - -def format_chat_history(memory): - messages = memory.chat_memory.messages - if not messages: - return "Không có lịch sử hội thoại trước." - formatted = [] - for m in messages: - role = getattr(m, "type", None) or m.get("role", "User") - content = getattr(m, "content", None) or m.get("content", "") - formatted.append(f"{role.capitalize()}: {content}") - return "\n".join(formatted) - -# WebSocket handlers -@socketio.on('connect') -def handle_connect(): - user_id = session.get('user_id') - if user_id: - connected_clients[user_id] = request.sid - logging.info(f"User {user_id} connected via WebSocket with SID {request.sid}") - else: - disconnect() # Disconnect unauthorized clients - logging.warning("Unauthorized WebSocket connection attempt") - -@socketio.on('disconnect') -def handle_disconnect(): - user_id = session.get('user_id') - if user_id in connected_clients and connected_clients[user_id] == request.sid: - del connected_clients[user_id] - logging.info(f"User {user_id} disconnected from WebSocket") - -# Đăng ký -@app.route('/register', methods=['GET', 'POST']) -def register(): - if request.method == 'GET': - return render_template('register.html') - data = request.get_json(silent=True) or {} - username = data.get('username', '').strip() - email = data.get('email', '').strip() - password = data.get('password', '').strip() - phone = data.get('phone', '').strip() - account_type = data.get('account_type', 'limited').strip() - if not username or not email or not password or not phone: - return jsonify({'error': 'Thiếu thông tin bắt buộc'}), 400 - if not re.match(r'^\+84\d{9}$|^0\d{9}$', phone): - return jsonify({'error': 'Số điện thoại không hợp lệ'}), 400 - if account_type not in ['limited', 'unlimited']: - return jsonify({'error': 'Loại tài khoản không hợp lệ'}), 400 - if db.users.find_one({'$or': [{'email': email}, {'phone': phone}]}): - return jsonify({'error': 'Email hoặc số điện thoại đã tồn tại'}), 400 - otp = generate_otp() - password_hash = hash_password(password) - user = { - 'username': username, - 'email': email, - 'phone': phone, - 'password_hash': password_hash, - 'otp': otp, - 'is_active': False, - 'created_at': datetime.utcnow(), - 'is_admin': False, - 'account_type': account_type, - 'query_limit': 3 if account_type == 'limited' else None, - 'query_count': 0, - 'last_reset': datetime.utcnow() - } - result = db.users.insert_one(user) - if send_email( - email, - 'Mã OTP xác thực tài khoản', - f'Mã OTP của bạn là: {otp}. Vui lòng sử dụng mã này để xác thực tài khoản.' - ): - return jsonify({ - 'message': 'Đăng ký thành công, vui lòng kiểm tra email để lấy mã OTP', - 'user_id': str(result.inserted_id) - }), 201 - else: - db.users.delete_one({'_id': result.inserted_id}) - return jsonify({'error': 'Lỗi khi gửi OTP, vui lòng thử lại'}), 500 - - -@app.route('/admin/user//verify', methods=['POST']) -@admin_required -def verify_user(user_id): - data = request.get_json(silent=True) or {} - action = data.get('action') # 'approve' or 'reject' - if action not in ['approve', 'reaction']: - return jsonify({'error': 'Hành động không hợp lệ'}), 400 - user = db.users.find_one({'_id': ObjectId(user_id)}) - if not user: - return jsonify({'error': 'Người dùng không tồn tại'}), 404 - if user.get('is_active') != False: - return jsonify({'error': 'Tài khoản không ở trạng thái chờ xác thực'}), 400 - if action == 'approve': - db.users.update_one( - {'_id': ObjectId(user_id)}, - {'$set': {'is_active': True, 'otp': None, 'created_at': datetime.utcnow()}} - ) - send_email( - user['email'], - 'Tài khoản đã được xác thực', - f'Tài khoản của bạn ({user["username"]}) đã được admin xác thực thành công. Bạn có thể đăng nhập tại https://legalmindver1.loca.lt/login.' - ) - return jsonify({'message': 'Xác thực tài khoản thành công'}), 200 - else: # reject - db.users.delete_one({'_id': ObjectId(user_id)}) - send_email( - user['email'], - 'Tài khoản bị từ chối', - f'Tài khoản của bạn ({user["username"]}) đã bị từ chối bởi admin. Vui lòng liên hệ hỗ trợ nếu cần thêm thông tin.' - ) - return jsonify({'message': 'Từ chối tài khoản thành công'}), 200 - -@app.route('/admin/pending_users', methods=['GET']) -@admin_required -def get_pending_users(): - pending_users = db.users.find({'is_active': False}) - return jsonify([{ - 'id': str(user['_id']), - 'username': user['username'], - 'email': user['email'], - 'phone': user['phone'], - 'created_at': user['created_at'].isoformat(), - 'account_type': user.get('account_type', 'limited') - } for user in pending_users]), 200 - -# Xác thực OTP -@app.route('/verify_otp', methods=['GET', 'POST']) -def verify_otp(): - if request.method == 'GET': - user_id = request.args.get('user_id') - if not user_id: - return jsonify({'error': 'Thiếu user_id'}), 400 - try: - user = db.users.find_one({'_id': ObjectId(user_id)}) - if not user: - return jsonify({'error': 'Người dùng không tồn tại'}), 404 - return render_template('verify_otp.html', user_id=user_id) - except Exception as e: - logging.error(f"Invalid user_id: {e}") - return jsonify({'error': 'user_id không hợp lệ'}), 400 - elif request.method == 'POST': - data = request.get_json(silent=True) or {} - user_id = data.get('user_id', '').strip() - otp = data.get('otp', '').strip() - if not user_id or not otp: - return jsonify({'error': 'Thiếu user_id hoặc OTP'}), 400 - try: - user = db.users.find_one({'_id': ObjectId(user_id)}) - if not user: - return jsonify({'error': 'Người dùng không tồn tại'}), 404 - if user.get('otp') != otp: - return jsonify({'error': 'Mã OTP không đúng'}), 400 - db.users.update_one( - {'_id': ObjectId(user_id)}, - {'$set': {'is_active': True, 'otp': None}} - ) - return jsonify({'message': 'Xác thực tài khoản thành công'}), 200 - except Exception as e: - logging.error(f"Error verifying OTP: {e}") - return jsonify({'error': 'Lỗi hệ thống, vui lòng thử lại'}), 500 - -# Get masked phone number -@app.route('/get_masked_phone', methods=['POST']) -def get_masked_phone(): - data = request.get_json(silent=True) or {} - email = data.get('email', '').strip() - if not email: - return jsonify({'error': 'Thiếu email'}), 400 - user = db.users.find_one({'email': email}) - if not user: - return jsonify({'error': 'Email không tồn tại'}), 404 - phone = user.get('phone', '') - masked_phone = phone[:-4] + '****' - return jsonify({'masked_phone': masked_phone}), 200 - -# Quên mật khẩu -@app.route('/forgot_password', methods=['GET', 'POST']) -def forgot_password(): - if request.method == 'GET': - return render_template('forgot_password.html') - elif request.method == 'POST': - data = request.get_json(silent=True) or {} - email = data.get('email', '').strip() - last_four_digits = data.get('last_four_digits', '').strip() - if not email or not last_four_digits: - return jsonify({'error': 'Thiếu email hoặc 4 số cuối của số điện thoại'}), 400 - user = db.users.find_one({'email': email}) - if not user: - return jsonify({'error': 'Email không tồn tại'}), 404 - phone = user.get('phone', '') - if not phone[-4:] == last_four_digits: - return jsonify({'error': '4 số cuối của số điện thoại không khớp'}), 400 - new_password = ''.join(random.choices(string.ascii_letters + string.digits, k=12)) - new_password_hash = hash_password(new_password) - db.users.update_one( - {'_id': user['_id']}, - {'$set': {'password_hash': new_password_hash}} - ) - if send_email( - email, - 'Mật khẩu mới', - f'Mật khẩu mới của bạn là: {new_password}. Vui lòng đổi mật khẩu sau khi đăng nhập.' - ): - return jsonify({'message': 'Mật khẩu mới đã được gửi qua email'}), 200 - else: - return jsonify({'error': 'Lỗi khi gửi mật khẩu mới'}), 500 - -@app.route('/change_password', methods=['GET']) -def change_password_get(): - if 'user_id' not in session: - return redirect(url_for('login_page')) - return render_template('change_password.html') - -# Đổi mật khẩu -@app.route('/change_password', methods=['POST']) -def change_password(): - if 'user_id' not in session: - return jsonify({'error': 'Vui lòng đăng nhập để đổi mật khẩu'}), 401 - - data = request.get_json(silent=True) or {} - current_password = data.get('current_password', '').strip() - new_password = data.get('new_password', '').strip() - - if not current_password or not new_password: - return jsonify({'error': 'Thiếu mật khẩu hiện tại hoặc mật khẩu mới'}), 400 - - user_id = session['user_id'] - user = db.users.find_one({'_id': ObjectId(user_id)}) - if not user: - return jsonify({'error': 'Người dùng không tồn tại'}), 404 - - if not verify_password(user['password_hash'], current_password): - return jsonify({'error': 'Mật khẩu hiện tại không đúng'}), 401 - - new_password_hash = hash_password(new_password) - db.users.update_one( - {'_id': ObjectId(user_id)}, - {'$set': {'password_hash': new_password_hash}} - ) - - # Send confirmation email - if send_email( - user['email'], - 'Xác nhận đổi mật khẩu', - f'Mật khẩu của bạn đã được thay đổi thành công vào lúc {datetime.utcnow().strftime("%Y-%m-%d %H:%M:%S")}.' - ): - return jsonify({'message': 'Đổi mật khẩu thành công, email xác nhận đã được gửi'}), 200 - else: - return jsonify({'error': 'Đổi mật khẩu thành công nhưng lỗi khi gửi email xác nhận'}), 200 - -# # Đăng nhập -@app.route('/logins', methods=['POST']) -def login(): - data = request.get_json(silent=True) or {} - email = data.get('email', '').strip() - password = data.get('password', '').strip() - user = db.users.find_one({'email': email}) - if not user: - logging.error(f"No user found for email: {email}") - return jsonify({'error': 'Email hoặc mật khẩu không đúng'}), 401 - if not user.get('is_active', False): - return jsonify({'error': 'Tài khoản chưa được kích hoạt. Vui lòng xác thực OTP.','id_user':str(user['_id'])}), 401 - if not verify_password(user['password_hash'], password): - return jsonify({'error': 'Email hoặc mật khẩu không đúng'}), 401 - session['user_id'] = str(user['_id']) - session['username'] = user['username'] - session['is_admin'] = user.get('is_admin', False) - session['query_limit'] = user.get('query_limit', 3) - session['query_count'] = user.get('query_count', 0) - session['account_type'] = user.get('account_type', 'limited') - - # Broadcast initial query count and limit - if str(user['_id']) in connected_clients: - socketio.emit('query_update', { - 'query_count': user.get('query_count', 0), - 'query_limit': user.get('query_limit', 3 if user.get('account_type') == 'limited' else None) - }, room=connected_clients[str(user['_id'])]) - logging.info(f"Broadcasted initial query update to user {user['_id']}") - - - return jsonify({ - 'message': 'Đăng nhập thành công', - 'username': user['username'], - 'is_admin': user.get('is_admin', False), - 'account_type': user.get('account_type', 'limited'), - 'query_limit': user.get('query_limit', 3), - 'query_count': user.get('query_count', 0), - }), 200 - - -# @app.route('/logins', methods=['POST']) -# def login(): -# data = request.get_json(silent=True) or {} -# email = data.get('email', '').strip() -# password = data.get('password', '').strip() -# user = db.users.find_one({'email': email}) -# if not user: -# logging.error(f"No user found for email: {email}") -# return jsonify({'error': 'Email hoặc mật khẩu không đúng'}), 401 -# if not user.get('is_active', False): -# return jsonify({'error': 'Tài khoản chưa được kích hoạt. Vui lòng xác thực OTP.'}), 401 -# if not verify_password(user['password_hash'], password): -# return jsonify({'error': 'Email hoặc mật khẩu không đúng'}), 401 -# session['user_id'] = str(user['_id']) -# session['username'] = user['username'] -# session['is_admin'] = user.get('is_admin', False) -# session['query_limit'] = user.get('query_limit', 3) -# session['query_count'] = user.get('query_count', 0) -# session['account_type'] = user.get('account_type', 'limited') -# return jsonify({ -# 'message': 'Đăng nhập thành công', -# 'username': user['username'], -# 'is_admin': user.get('is_admin', False), -# 'account_type': user.get('account_type', 'limited'), -# 'query_limit': user.get('query_limit', 3), -# 'query_count': user.get('query_count', 0) -# }), 200 - -# Đăng xuất -@app.route('/logout', methods=['POST']) -def logout(): - user_id = session.get('user_id') - if user_id in connected_clients: - del connected_clients[user_id] # Remove from connected clients - logging.info(f"User {user_id} removed from connected clients on logout") - session.pop('user_id', None) - session.pop('username', None) - session.pop('is_admin', None) - session.pop('account_type', None) - return jsonify({'message': 'Đăng xuất thành công'}), 200 - -# Kiểm tra session -@app.route('/check_session', methods=['GET']) -def check_session(): - if 'user_id' in session: - user = db.users.find_one({'_id': ObjectId(session['user_id'])}) - if user: - # Update session with latest values - session['query_limit'] = user.get('query_limit', 3) - session['query_count'] = user.get('query_count', 0) - session['account_type'] = user.get('account_type', 'limited') - # Broadcast current query count and limit - if session['user_id'] in connected_clients: - socketio.emit('query_update', { - 'query_count': user.get('query_count', 0), - 'query_limit': user.get('query_limit', 3 if user.get('account_type') == 'limited' else None) - }, room=connected_clients[session['user_id']]) - logging.info(f"Broadcasted query update to user {session['user_id']} on session check") - return jsonify({ - 'logged_in': True, - 'username': session['username'], - 'query_limit': session['query_limit'], - 'query_count': session['query_count'], - 'is_admin': session.get('is_admin', False), - 'account_type': session['account_type'] - }), 200 - return jsonify({'logged_in': False}), 200 -# @app.route('/check_session', methods=['GET']) -# def check_session(): -# if 'user_id' in session: -# return jsonify({ -# 'logged_in': True, -# 'username': session['username'], -# 'query_limit': session.get('query_limit', 3), -# 'query_count': session.get('query_count', 0), -# 'is_admin': session.get('is_admin', False), -# 'account_type': session.get('account_type', 'limited') -# }), 200 -# return jsonify({'logged_in': False}), 200 - - -@socketio.on('connect') -def handle_connect(): - user_id = session.get('user_id') - if user_id: - connected_clients[user_id] = request.sid - user = db.users.find_one({'_id': ObjectId(user_id)}) - if user: - socketio.emit('query_update', { - 'query_count': user.get('query_count', 0), - 'query_limit': user.get('query_limit', 3 if user.get('account_type') == 'limited' else None) - }, room=request.sid) - logging.info(f"Emitted initial query_update to user {user_id} on connect") - -# Lấy danh sách hội thoại -@app.route('/conversations', methods=['GET']) -def get_conversations(): - if 'user_id' not in session: - return jsonify({'error': 'Vui lòng đăng nhập'}), 401 - user_id = session['user_id'] - conversations = db.conversations.find({'user_id': user_id}).sort('timestamp', -1) - return jsonify([{ - 'id': str(conv['_id']), - 'title': conv['title'], - 'timestamp': conv['timestamp'].isoformat(), - 'message_count': db.messages.count_documents({'conversation_id': str(conv['_id'])}) - } for conv in conversations]) - -# Lấy chi tiết hội thoại -@app.route('/conversation/', methods=['GET']) -def get_conversation(conversation_id): - if 'user_id' not in session: - return jsonify({'error': 'Vui lòng đăng nhập'}), 401 - user_id = session['user_id'] - conversation = db.conversations.find_one({'_id': ObjectId(conversation_id), 'user_id': user_id}) - if not conversation: - return jsonify({'error': 'Hội thoại không tồn tại'}), 404 - messages = db.messages.find({'conversation_id': conversation_id}) - messages_list = [{ - 'id': str(msg['_id']), - 'type': msg['type'], - 'content': msg['content'], - 'timestamp': msg['timestamp'].isoformat(), - 'sources': msg.get('sources'), - 'related_questions': msg.get('related_questions') - } for msg in messages] - return jsonify({ - 'id': str(conversation['_id']), - 'title': conversation['title'], - 'timestamp': conversation['timestamp'].isoformat(), - 'messages': messages_list - }) - -# Xử lý truy vấn -@app.route("/query", methods=["POST"]) -def query(): - if 'user_id' not in session: - return jsonify({ - 'error': 'Vui lòng đăng nhập để sử dụng tính năng này', - 'error_code': 'UNAUTHENTICATED' - }), 401 - - user_id = session['user_id'] - - # Validate user_id format - try: - ObjectId(user_id) - except Exception: - return jsonify({ - 'error': 'ID người dùng không hợp lệ', - 'error_code': 'INVALID_USER_ID' - }), 400 - - # Check query permission - can_query, error_message, query_count, query_limit = can_make_query(user_id) - if not can_query: - return jsonify({ - 'error': error_message, # e.g., "Bạn đã sử dụng hết 10 lượt hỏi đáp hôm nay" - 'error_code': 'QUERY_LIMIT_EXCEEDED', - 'query_count': query_count, - 'query_limit': query_limit, - 'upgrade_url': 'https://legalmindver1.loca.lt' # Redirect to upgrade page - }), 403 - elif error_message: # Warning for last query - logging.info(f"User {user_id} received warning: {error_message}") - - # Parse JSON input - data = request.get_json(silent=True) or {} - question = data.get('question', '').strip() - if not question: - return jsonify({ - 'error': 'Câu hỏi không hợp lệ', - 'error_code': 'INVALID_QUESTION' - }), 400 - - # Update query count for limited accounts - user = db.users.find_one({'_id': ObjectId(user_id)}) - if not user: - return jsonify({ - 'error': 'Người dùng không tồn tại', - 'error_code': 'USER_NOT_FOUND' - }), 404 - - if user.get('account_type') == 'limited': - try: - db.users.update_one( - {'_id': ObjectId(user_id)}, - {'$inc': {'query_count': 1}} - ) - # Fetch updated user data - user = db.users.find_one({'_id': ObjectId(user_id)}) - query_count = user.get('query_count', 0) - query_limit = user.get('query_limit', 10) - user_type = user.get('account_type', 'limited') - # Broadcast updated query count to the user - if user_id in connected_clients: - socketio.emit('query_update', { - 'query_count': query_count, - 'query_limit': query_limit, - 'user_type': user_type - }, room=connected_clients[user_id]) - logging.info(f"Broadcasted query update to user {user_id}: {query_count}/{query_limit}") - except Exception as e: - logging.error(f"Error updating query count for user {user_id}: {e}") - return jsonify({ - 'error': f"Bạn đã sử dụng hết {query_limit} lượt hỏi đáp hôm nay", # Use specific message - 'error_code': 'DATABASE_ERROR', - 'query_count': query_count, - 'query_limit': query_limit, - 'user_type': user_type, - 'upgrade_url': 'https://legalmindver1.loca.lt/' - }), 500 - - # Handle conversation - conversation_id = data.get('conversation_id') - if conversation_id: - try: - conversation = db.conversations.find_one({'_id': ObjectId(conversation_id), 'user_id': user_id}) - if not conversation: - return jsonify({ - 'error': 'Hội thoại không tồn tại hoặc không thuộc về người dùng', - 'error_code': 'CONVERSATION_NOT_FOUND' - }), 404 - except Exception: - return jsonify({ - 'error': 'ID hội thoại không hợp lệ', - 'error_code': 'INVALID_CONVERSATION_ID' - }), 400 - else: - conversation = { - 'user_id': user_id, - 'title': question[:50], - 'timestamp': datetime.utcnow(), - 'messages': [] - } - try: - result = db.conversations.insert_one(conversation) - conversation_id = str(result.inserted_id) - except Exception as e: - logging.error(f"Error creating conversation for user {user_id}: {e}") - return jsonify({ - 'error': f"Bạn đã sử dụng hết {query_limit} lượt hỏi đáp hôm nay", # Use specific message - 'error_code': 'DATABASE_ERROR', - 'query_count': query_count, - 'query_limit': query_limit, - 'upgrade_url': 'https://legalmindver1.loca.lt/' - }), 500 - - # Save user message - user_message = { - 'conversation_id': conversation_id, - 'type': 'user', - 'content': question, - 'timestamp': datetime.utcnow() - } - try: - db.messages.insert_one(user_message) - except Exception as e: - logging.error(f"Error saving user message for conversation {conversation_id}: {e}") - return jsonify({ - 'error': f"Bạn đã sử dụng hết {query_limit} lượt hỏi đáp hôm nay", # Use specific message - 'error_code': 'DATABASE_ERROR', - 'query_count': query_count, - 'query_limit': query_limit, - 'upgrade_url': 'https://legalmindver1.loca.lt/' - }), 500 - - # Retrieve relevant legal documents - try: - banan_results = retrieve(question, index, embeddings_data, k=5) - except Exception as e: - logging.error(f"Error retrieving documents: {e}") - banan_results = [] - - # Format chat history - chat_history_str = format_chat_history(memory) - - # Define main prompt - main_prompt = f""" -Dưới đây là lịch sử hội thoại trước đó: -{chat_history_str} - -**Câu hỏi:** -{question} - -**Thông tin tham khảo (bản án tương đồng):** -{banan_results if banan_results else "Không tìm thấy bản án phù hợp. Phân tích dựa trên các quy định pháp luật hiện hành và nguyên tắc pháp lý chung."} - -**Hướng dẫn trả lời chi tiết:** -1. **Tổng quan về bản án, án lệ tương đồng:** - - Trình bày rõ thông tin tham khảo nếu có. - - Nhớ đề cập đến tên file bản án, không dùng từ ví dụ, giả sử, giả định. - - Nếu không có bản án, nêu rõ sẽ phân tích trên cơ sở các điều luật hiện hành tại Việt Nam. - -2. **Nội dung chi tiết của bản án, án lệ:** - - Nếu có thông tin cụ thể, trình bày rõ vấn đề pháp lý và lập luận của tòa án trong bản án, án lệ liên quan. - - Nếu không có thông tin đầy đủ, phân tích dựa vào các nguyên tắc pháp lý chung, điều luật, nghị định hiện hành. - -3. **Phân tích tình huống pháp lý:** - - Phân tích rõ các vấn đề pháp lý chính. - - Làm nổi bật các quy định cụ thể trong Bộ luật Dân sự, Luật Thương mại hoặc các luật chuyên ngành, nghị định, nghị quyết và các văn bản pháp luật liên quan. - -4. **Lập luận pháp lý:** - - Nêu rõ căn cứ pháp lý chính xác, trích dẫn cụ thể các điều khoản, nghị định, nghị quyết, thông tư, văn bản hướng dẫn thi hành liên quan. - - Giải thích rõ cách thức áp dụng các điều khoản pháp luật vào tình huống thực tế, bảo đảm chính xác và khả thi trong thực tiễn. - -5. **Kết luận và khuyến nghị:** - - Kết luận rõ quyền và nghĩa vụ các bên theo quy định của pháp luật. - - Chỉ ra những hậu quả pháp lý cụ thể, kèm theo lưu ý khi áp dụng vào các tình huống tương tự trong thực tế. - -6. **Nguồn tham khảo:** - - Nguồn trích dẫn pháp luật bao gồm các điều luật, nghị định, nghị quyết, thông tư, văn bản hướng dẫn thi hành liên quan đến vụ án nằm bên trong button Tên nội dung tham khảo như là Khoản, điều, luật, nghị định.... - **Ví dụ:** - [Luật Hôn nhân và Gia đình 2014, số 52/2014/QH13] (Đặc biệt Điều 3, Điều 5, Điều 8, Điều 10, Điều 11, Điều 12) - [Nghị định 115/2015/NĐ-CP] (Đặc biệt Điều 58) - [Bộ luật Hình sự năm 2015] (Đặc biệt Điều 184) - -**Lưu ý quan trọng:** -- Có trả về nguồn trích dẫn điều luật, nghị định, nghị quyết, thông tư, văn bản hướng dẫn thi hành liên quan đến vụ án, dưới dạng Tên nội dung tham khảo. -- Nếu câu hỏi không thuộc lĩnh vực pháp lý hoặc không có thông tin pháp lý phù hợp, hãy trả lời: "Câu trả lời không nằm trong kiến thức của tôi." -- Trả lời ngắn gọn, súc tích, rõ ràng, đúng trọng tâm. -- Tuyệt đối không dùng từ "giả sử", "ví dụ". -- Không giới thiệu bản thân, không đề cập đến kinh nghiệm tư vấn. -- Không cần mô tả quy trình phân tích. -- Nếu không có thông tin bản án, án lệ phù hợp, hãy bỏ qua, tập trung hoàn toàn vào phân tích pháp luật hiện hành. -- Phân tích phải luôn kết hợp chặt chẽ giữa lý thuyết pháp lý và văn bản pháp luật Việt Nam hiện hành. -- Trình bày rõ ràng, ngắn gọn, sử dụng ngôn ngữ pháp lý chuẩn xác, dễ áp dụng vào thực tế. -""" - - # Call Gemini for main response - try: - handler = GeminiHandler( - config_path="config.yaml", - content_strategy=Strategy.ROUND_ROBIN, - key_strategy=KeyRotationStrategy.SMART_COOLDOWN - ) - gen = handler.generate_content( - prompt=main_prompt, - model_name="gemini-2.0-flash-thinking-exp-01-21", - return_stats=False - ) - answer = gen.get("text", "Không có phản hồi từ mô hình.") - except Exception as e: - logging.error(f"Error calling Gemini for main prompt: {e}") - return jsonify({ - 'error': f"Bạn đã sử dụng hết {query_limit} lượt hỏi đáp hôm nay", # Use specific message - 'error_code': 'GEMINI_ERROR', - 'query_count': query_count, - 'query_limit': query_limit, - 'upgrade_url': 'https://legalmindver1.loca.lt/' - }), 500 - - # Define related questions prompt - related_questions_prompt = f""" -Bạn là chuyên gia tư vấn pháp luật Việt Nam. Dựa trên câu hỏi pháp lý được cung cấp, hãy sinh ra 5 câu hỏi liên quan, đảm bảo các câu hỏi: -- Liên quan chặt chẽ đến chủ đề pháp lý của câu hỏi gốc. -- Phù hợp với hệ thống pháp luật Việt Nam hiện hành. -- Ngắn gọn, rõ ràng, và mang tính ứng dụng thực tế. -- Tập trung vào các khía cạnh pháp lý như quy định, điều luật, nghị định, án lệ, hoặc thủ tục pháp lý. -- Được trình bày dưới dạng danh sách JSON, mỗi câu hỏi là một đối tượng với key `question`. - -**Câu hỏi gốc:** -{question} - -**Hướng dẫn thêm:** -- Nếu câu hỏi gốc thuộc một lĩnh vực pháp lý cụ thể (ví dụ: dân sự, hình sự, thương mại, hôn nhân và gia đình), hãy sinh ra các câu hỏi liên quan đến lĩnh vực đó. -- Nếu câu hỏi không rõ lĩnh vực, sinh ra các câu hỏi liên quan đến các khía cạnh pháp lý chung như Bộ luật Dân sự, Bộ luật Hình sự, hoặc các nghị định liên quan. -- Không sử dụng từ "giả sử" hoặc "ví dụ". -- Không lặp lại câu hỏi gốc. -- Đảm bảo các câu hỏi có tính liên quan và không trùng lặp nội dung. - -**Định dạng đầu ra (JSON):** -[ - {{"question": "Câu hỏi 1"}}, - {{"question": "Câu hỏi 2"}}, - {{"question": "Câu hỏi 3"}}, - {{"question": "Câu hỏi 4"}}, - {{"question": "Câu hỏi 5"}} -] -""" - try: - handler = GeminiHandler( - config_path="config.yaml", - content_strategy=Strategy.ROUND_ROBIN, - key_strategy=KeyRotationStrategy.SMART_COOLDOWN - ) - gen = handler.generate_content( - prompt=related_questions_prompt, - model_name="gemini-2.0-flash-thinking-exp-01-21", - return_stats=False - ) - related_questions = gen.get("text", "Không có phản hồi từ mô hình.") - except Exception as e: - logging.error(f"Error calling Gemini for related questions: {e}") - return jsonify({ - 'error': f"Bạn đã sử dụng hết {query_limit} lượt hỏi đáp hôm nay", # Use specific message - 'error_code': 'GEMINI_ERROR', - 'query_count': query_count, - 'query_limit': query_limit, - 'upgrade_url': 'https://legalmindver1.loca.lt/' - }), 500 - - related_questions = preprocess_related_questions(related_questions) - assistant_message = { - 'conversation_id': conversation_id, - 'type': 'assistant', - 'content': answer, - 'timestamp': datetime.utcnow(), - 'sources': banan_results, - 'related_questions': related_questions - } - try: - db.messages.insert_one(assistant_message) - except Exception as e: - logging.error(f"Error saving assistant message for conversation {conversation_id}: {e}") - return jsonify({ - 'error': f"Bạn đã sử dụng hết {query_limit} lượt hỏi đáp hôm nay", # Use specific message - 'error_code': 'DATABASE_ERROR', - 'query_count': query_count, - 'query_limit': query_limit, - 'upgrade_url': 'https://legalmindver1.loca.lt/' - }), 500 - - try: - db.conversations.update_one( - {'_id': ObjectId(conversation_id)}, - {'$set': {'title': question[:50], 'timestamp': datetime.utcnow()}} - ) - except Exception as e: - logging.error(f"Error updating conversation {conversation_id}: {e}") - return jsonify({ - 'error': f"Bạn đã sử dụng hết {query_limit} lượt hỏi đáp hôm nay", # Use specific message - 'error_code': 'DATABASE_ERROR', - 'query_count': query_count, - 'query_limit': query_limit, - 'upgrade_url': 'https://legalmindver1.loca.lt/' - }), 500 - - memory.save_context({'question': question}, {'answer': answer}) - return jsonify({ - 'final_response': answer, - 'top_banan_documents': banan_results, - 'chat_history': chat_history_str, - 'related_questions': related_questions, - 'conversation_id': conversation_id, - 'query_count': query_count, - 'query_limit': query_limit - }), 200 - -# Soạn thảo bản án -@app.route("/draft_judgment", methods=["POST"]) -def draft_judgment(): - if 'user_id' not in session: - return jsonify({'error': 'Vui lòng đăng nhập'}), 401 - data = request.get_json(silent=True) or {} - case_details = data.get('case_details', '').strip() - if not case_details: - return jsonify({'error': 'Chi tiết vụ án không hợp lệ'}), 400 - banan_results = retrieve(case_details, index, embeddings_data, k=2) - top_banan_docs = [{'source': r['file'], **r} for r in banan_results] - chat_history_str = format_chat_history(memory) - judgment = "Placeholder judgment: Drafted legal document based on case details." - memory.save_context({'case_details': case_details}, {'judgment': judgment}) - return jsonify({ - 'judgment': judgment, - 'top_banan_documents': top_banan_docs, - 'chat_history': chat_history_str - }) - -# Xóa hội thoại -@app.route('/conversation/', methods=['DELETE']) -def delete_conversation(conversation_id): - if 'user_id' not in session: - return jsonify({'error': 'Vui lòng đăng nhập'}), 401 - user_id = session['user_id'] - result = db.conversations.delete_one({'_id': ObjectId(conversation_id), 'user_id': user_id}) - if result.deleted_count == 0: - return jsonify({'error': 'Hội thoại không tồn tại'}), 404 - db.messages.delete_many({'conversation_id': conversation_id}) - return jsonify({'message': 'Xóa hội thoại thành công'}), 200 - -@app.route('/admin/dashboard') -@admin_required -def admin_dashboard(): - users = db.users.find({'is_active': True}) - user_name = session.get('username') - users_list = [{ - 'id': str(user['_id']), - 'username': user['username'], - 'email': user['email'], - 'phone': user['phone'], - 'is_active': user.get('is_active', False), - 'is_admin': user.get('is_admin', False), - 'account_type': user.get('account_type', 'limited'), - 'query_limit': user.get('query_limit', None), - 'query_count': user.get('query_count', 0), - 'last_reset': user.get('last_reset', None).isoformat() if user.get('last_reset') else None - } for user in users] - return render_template('admin_dashboard.html', users=users_list, user_name=user_name) - - -@app.route('/admin/user/', methods=['DELETE']) -@admin_required -def delete_user(user_id): - try: - user = db.users.find_one({'_id': ObjectId(user_id)}) - if not user: - return jsonify({'error': 'Người dùng không tồn tại', 'error_code': 'USER_NOT_FOUND'}), 404 - if user.get('is_admin', False): - return jsonify({'error': 'Không thể xóa tài khoản admin', 'error_code': 'ADMIN_PROTECTED'}), 403 - db.users.delete_one({'_id': ObjectId(user_id)}) - send_email( - user['email'], - 'Tài khoản của bạn đã bị xóa', - f'Tài khoản của bạn ({user["username"]}) đã bị admin xóa. Vui lòng liên hệ hỗ trợ nếu cần thêm thông tin.' - ) - return jsonify({'message': 'Xóa tài khoản thành công'}), 200 - except Exception as e: - logging.error(f"Error deleting user {user_id}: {e}") - return jsonify({'error': 'Lỗi khi xóa tài khoản', 'error_code': 'SERVER_ERROR'}), 500 - -@app.route('/admin/users', methods=['GET']) -@admin_required -def get_all_users(): - users = db.users.find() - return jsonify([{ - 'id': str(user['_id']), - 'username': user['username'], - 'email': user['email'], - 'phone': user['phone'], - 'is_active': user.get('is_active', False), - 'is_admin': user.get('is_admin', False), - 'account_type': user.get('account_type', 'limited'), - 'query_limit': user.get('query_limit', None), - 'query_count': user.get('query_count', 0), - 'last_reset': user.get('last_reset', None).isoformat() if user.get('last_reset') else None - } for user in users]), 200 - -@app.route('/admin/user/', methods=['PUT']) -@admin_required -def update_user(user_id): - data = request.get_json(silent=True) or {} - updates = {} - if 'account_type' in data and data['account_type'] in ['limited', 'unlimited']: - updates['account_type'] = data['account_type'] - updates['query_limit'] = 10 if data['account_type'] == 'limited' else None - updates['query_count'] = 0 - updates['last_reset'] = datetime.utcnow() - if 'is_admin' in data and isinstance(data['is_admin'], bool): - updates['is_admin'] = data['is_admin'] - if 'query_limit' in data and isinstance(data['query_limit'], int) and data.get('account_type') == 'limited': - updates['query_limit'] = data['query_limit'] - if not updates: - return jsonify({'error': 'Không có thông tin cập nhật hợp lệ'}), 400 - result = db.users.update_one( - {'_id': ObjectId(user_id)}, - {'$set': updates} - ) - if result.modified_count == 0: - return jsonify({'error': 'Không tìm thấy người dùng hoặc không có thay đổi'}), 404 - logging.info(f"Admin updated user {user_id}: {updates}") - # Broadcast updated query count to the user - if user_id in connected_clients: - user = db.users.find_one({'_id': ObjectId(user_id)}) - socketio.emit('query_update', { - 'query_count': user.get('query_count', 0), - 'query_limit': user.get('query_limit', 10) - }, room=connected_clients[user_id]) - logging.info(f"Broadcasted query update to user {user_id} after admin update") - return jsonify({'message': 'Cập nhật người dùng thành công'}), 200 - -@app.route('/admin/user//reset_query', methods=['POST']) -@admin_required -def reset_user_query_count(user_id): - user = db.users.find_one({'_id': ObjectId(user_id)}) - if not user: - return jsonify({'error': 'Người dùng không tồn tại'}), 404 - if user.get('account_type') == 'unlimited': - return jsonify({'error': 'Tài khoản không giới hạn không cần reset!'}), 400 - db.users.update_one( - {'_id': ObjectId(user_id)}, - {'$set': {'query_count': 0, 'last_reset': datetime.utcnow()}} - ) - logging.info(f"Admin reset query count for user {user_id}") - # Broadcast updated query count to the user - if user_id in connected_clients: - socketio.emit('query_update', { - 'query_count': 0, - 'query_limit': user.get('query_limit', 10) - }, room=connected_clients[user_id]) - logging.info(f"Broadcasted query update to user {user_id} after reset") - return jsonify({'message': 'Reset lượt hỏi đáp thành công'}), 200 - -# Page routes -@app.route('/') -def page_index(): - return render_template('index.html') - -@app.route('/home') -def page_home(): - return render_template('home.html') - -@app.route('/login') -def login_page(): - return render_template('login.html') - -if __name__ == '__main__': - socketio.run(app, host='0.0.0.0', port=int(os.getenv('PORT', 7860))) \ No newline at end of file diff --git a/config.yaml b/config.yaml deleted file mode 100644 index 9c90a7149a791547ef25ed54bd1bf68524bd6bf9..0000000000000000000000000000000000000000 --- a/config.yaml +++ /dev/null @@ -1,32 +0,0 @@ -gemini: - # Required: API Keys - api_keys: - -"AIzaSyCWGcvjFt-hUWX3LpTh6Rt8N5VywE_pssE" - - # Optional: Generation Settings - generation: - temperature: 0.5 - top_p: 1.0 - top_k: 40 - max_output_tokens: 8192 - stop_sequences: [] - response_mime_type: "text/plain" - - # Optional: Rate Limiting - rate_limits: - requests_per_minute: 60 - reset_window: 60 # seconds - - # Optional: Strategies - strategies: - content: "fallback" - key_rotation: "smart_cooldown" - - # Optional: Retry Settings - retry: - max_attempts: 3 - delay: 15 # seconds - - # Optional: Model Settings - default_model: "gemma-3n-e2b-it" - system_instruction: null \ No newline at end of file diff --git a/embedding_data/embeddings.pkl b/embedding_data/embeddings.pkl deleted file mode 100644 index 74f45f0b22381a68108a5a0fcd6ba81785b5512b..0000000000000000000000000000000000000000 --- a/embedding_data/embeddings.pkl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:57f4d29d1a9da5eecb05c3052c986d35f7a67609c9166fca5fe741e4fc729069 -size 110171889 diff --git a/embedding_data/faiss_index_23_06.index b/embedding_data/faiss_index_23_06.index deleted file mode 100644 index 0e1c7dc9a71211aa06a6501ee7db1406b091ec4b..0000000000000000000000000000000000000000 --- a/embedding_data/faiss_index_23_06.index +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:adee95b3eef649e0832368c752b999e99efb4fefb68bbadac328cb960b2175d8 -size 13793325 diff --git a/gemini_handler.py b/gemini_handler.py deleted file mode 100644 index df1f3d4e15210ed1a5fe8d76f0aa8f0b94612a46..0000000000000000000000000000000000000000 --- a/gemini_handler.py +++ /dev/null @@ -1,559 +0,0 @@ -from abc import ABC, abstractmethod -import google.generativeai as genai -import time -import os -import yaml -from typing import List, Dict, Any, Optional, Tuple, Union -from enum import Enum -from dataclasses import dataclass -from itertools import cycle -from pathlib import Path - -@dataclass -class GenerationConfig: - """Configuration for model generation parameters.""" - temperature: float = 1.0 - top_p: float = 1.0 - top_k: int = 40 - max_output_tokens: int = 8192 - stop_sequences: Optional[List[str]] = None - response_mime_type: str = "text/plain" - - def to_dict(self) -> Dict[str, Any]: - """Convert config to dictionary, excluding None values.""" - return {k: v for k, v in self.__dict__.items() if v is not None} - - -@dataclass -class ModelResponse: - """Represents a standardized response from any model.""" - success: bool - model: str - text: str = "" - error: str = "" - time: float = 0.0 - attempts: int = 1 - api_key_index: int = 0 - - -class Strategy(Enum): - """Available content generation strategies.""" - ROUND_ROBIN = "round_robin" - FALLBACK = "fallback" - RETRY = "retry" - - -class KeyRotationStrategy(Enum): - """Available key rotation strategies.""" - SEQUENTIAL = "sequential" - ROUND_ROBIN = "round_robin" - LEAST_USED = "least_used" - SMART_COOLDOWN = "smart_cooldown" - - -@dataclass -class KeyStats: - """Track usage statistics for each API key.""" - uses: int = 0 - last_used: float = 0 - failures: int = 0 - rate_limited_until: float = 0 - - -class ConfigLoader: - """Handles loading configuration from various sources.""" - - @staticmethod - def load_api_keys(config_path: Optional[Union[str, Path]] = None) -> List[str]: - """ - Load API keys from multiple sources in priority order: - 1. YAML config file if provided - 2. Environment variables (GEMINI_API_KEYS as comma-separated string) - 3. Single GEMINI_API_KEY environment variable - """ - # Try loading from YAML config - if config_path: - try: - with open(config_path, 'r') as f: - config = yaml.safe_load(f) - if config and 'gemini' in config and 'api_keys' in config['gemini']: - keys = config['gemini']['api_keys'] - if isinstance(keys, list) and all(isinstance(k, str) for k in keys): - return keys - except Exception as e: - print(f"Warning: Failed to load config from {config_path}: {e}") - - # Try loading from GEMINI_API_KEYS environment variable - api_keys_str = os.getenv('GEMINI_API_KEYS') - if api_keys_str: - keys = [k.strip() for k in api_keys_str.split(',') if k.strip()] - if keys: - return keys - - # Try loading single API key - single_key = os.getenv('GEMINI_API_KEY') - if single_key: - return [single_key] - - raise ValueError( - "No API keys found. Please provide keys via config file, " - "GEMINI_API_KEYS environment variable (comma-separated), " - "or GEMINI_API_KEY environment variable." - ) - - -class ModelConfig: - """Configuration for model settings.""" - def __init__(self): - self.models = [ - "gemini-2.0-flash-exp", - "gemini-1.5-pro", - "learnlm-1.5-pro-experimental", - "gemini-exp-1206", - "gemini-exp-1121", - "gemini-exp-1114", - "gemini-2.0-flash-thinking-exp-1219", - "gemini-1.5-flash" - ] - self.max_retries = 3 - self.retry_delay = 30 - self.default_model = "gemini-2.0-flash-exp" - - -class KeyRotationManager: - """Enhanced key rotation manager with multiple strategies.""" - def __init__( - self, - api_keys: List[str], - strategy: KeyRotationStrategy = KeyRotationStrategy.ROUND_ROBIN, - rate_limit: int = 60, - reset_window: int = 60 - ): - if not api_keys: - raise ValueError("At least one API key must be provided") - - self.api_keys = api_keys - self.strategy = strategy - self.rate_limit = rate_limit - self.reset_window = reset_window - - # Initialize tracking - self.key_stats = {i: KeyStats() for i in range(len(api_keys))} - self._key_cycle = cycle(range(len(api_keys))) - self.current_index = 0 - - def _is_key_available(self, key_index: int) -> bool: - """Check if a key is available based on rate limits and cooldown.""" - stats = self.key_stats[key_index] - current_time = time.time() - - if current_time < stats.rate_limited_until: - return False - - if current_time - stats.last_used > self.reset_window: - stats.uses = 0 - - return stats.uses < self.rate_limit - - def _get_sequential_key(self) -> Tuple[str, int]: - """Get next key using sequential strategy.""" - start_index = self.current_index - - while True: - if self._is_key_available(self.current_index): - key_index = self.current_index - self.current_index = (self.current_index + 1) % len(self.api_keys) - return self.api_keys[key_index], key_index - - self.current_index = (self.current_index + 1) % len(self.api_keys) - if self.current_index == start_index: - self._handle_all_keys_busy() - - def _get_round_robin_key(self) -> Tuple[str, int]: - """Get next key using round-robin strategy.""" - start_index = next(self._key_cycle) - current_index = start_index - - while True: - if self._is_key_available(current_index): - return self.api_keys[current_index], current_index - - current_index = next(self._key_cycle) - if current_index == start_index: - self._handle_all_keys_busy() - - def _get_least_used_key(self) -> Tuple[str, int]: - """Get key with lowest usage count.""" - while True: - available_keys = [ - (idx, stats) for idx, stats in self.key_stats.items() - if self._is_key_available(idx) - ] - - if available_keys: - key_index, _ = min(available_keys, key=lambda x: x[1].uses) - return self.api_keys[key_index], key_index - - self._handle_all_keys_busy() - - def _get_smart_cooldown_key(self) -> Tuple[str, int]: - """Get key using smart cooldown strategy.""" - while True: - current_time = time.time() - available_keys = [ - (idx, stats) for idx, stats in self.key_stats.items() - if current_time >= stats.rate_limited_until and self._is_key_available(idx) - ] - - if available_keys: - key_index, _ = min( - available_keys, - key=lambda x: (x[1].failures, -(current_time - x[1].last_used)) - ) - return self.api_keys[key_index], key_index - - self._handle_all_keys_busy() - - def _handle_all_keys_busy(self) -> None: - """Handle situation when all keys are busy.""" - current_time = time.time() - any_reset = False - - for idx, stats in self.key_stats.items(): - if current_time - stats.last_used > self.reset_window: - stats.uses = 0 - any_reset = True - - if not any_reset: - time.sleep(1) - - def get_next_key(self) -> Tuple[str, int]: - """Get next available API key based on selected strategy.""" - strategy_methods = { - KeyRotationStrategy.SEQUENTIAL: self._get_sequential_key, - KeyRotationStrategy.ROUND_ROBIN: self._get_round_robin_key, - KeyRotationStrategy.LEAST_USED: self._get_least_used_key, - KeyRotationStrategy.SMART_COOLDOWN: self._get_smart_cooldown_key - } - - method = strategy_methods.get(self.strategy) - if not method: - raise ValueError(f"Unknown strategy: {self.strategy}") - - api_key, key_index = method() - - stats = self.key_stats[key_index] - stats.uses += 1 - stats.last_used = time.time() - - return api_key, key_index - - def mark_success(self, key_index: int) -> None: - """Mark successful API call.""" - if 0 <= key_index < len(self.api_keys): - self.key_stats[key_index].failures = 0 - - def mark_rate_limited(self, key_index: int) -> None: - """Mark API key as rate limited.""" - if 0 <= key_index < len(self.api_keys): - stats = self.key_stats[key_index] - stats.failures += 1 - stats.rate_limited_until = time.time() + self.reset_window - stats.uses = self.rate_limit - - -class ResponseHandler: - """Handles and processes model responses.""" - @staticmethod - def process_response( - response: Any, - model_name: str, - start_time: float, - key_index: int - ) -> ModelResponse: - """Process and validate model response.""" - try: - if hasattr(response, 'candidates') and response.candidates: - finish_reason = response.candidates[0].finish_reason - if finish_reason == 4: # Copyright material - return ModelResponse( - success=False, - model=model_name, - error='Copyright material detected in response', - time=time.time() - start_time, - api_key_index=key_index - ) - - return ModelResponse( - success=True, - model=model_name, - text=response.text, - time=time.time() - start_time, - api_key_index=key_index - ) - except Exception as e: - if "The `response.text` quick accessor requires the response to contain a valid `Part`" in str(e): - return ModelResponse( - success=False, - model=model_name, - error='No valid response parts available', - time=time.time() - start_time, - api_key_index=key_index - ) - raise - - -class ContentStrategy(ABC): - """Abstract base class for content generation strategies.""" - def __init__( - self, - config: ModelConfig, - key_manager: KeyRotationManager, - system_instruction: Optional[str] = None, - generation_config: Optional[GenerationConfig] = None - ): - self.config = config - self.key_manager = key_manager - self.system_instruction = system_instruction - self.generation_config = generation_config or GenerationConfig() - - @abstractmethod - def generate(self, prompt: str, model_name: str) -> ModelResponse: - """Generate content using the specific strategy.""" - pass - - def _try_generate(self, model_name: str, prompt: str, start_time: float) -> ModelResponse: - """Helper method for generating content with key rotation.""" - api_key, key_index = self.key_manager.get_next_key() - try: - genai.configure(api_key=api_key) - model = genai.GenerativeModel( - model_name=model_name, - generation_config=self.generation_config.to_dict(), - system_instruction=self.system_instruction - ) - response = model.generate_content(prompt) - - result = ResponseHandler.process_response(response, model_name, start_time, key_index) - if result.success: - self.key_manager.mark_success(key_index) - return result - - except Exception as e: - if "429" in str(e): - self.key_manager.mark_rate_limited(key_index) - return ModelResponse( - success=False, - model=model_name, - error=str(e), - time=time.time() - start_time, - api_key_index=key_index - ) - - -class RoundRobinStrategy(ContentStrategy): - """Round robin implementation of content generation.""" - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - self._current_index = 0 - - def _get_next_model(self) -> str: - """Get next model in round-robin fashion.""" - model = self.config.models[self._current_index] - self._current_index = (self._current_index + 1) % len(self.config.models) - return model - - def generate(self, prompt: str, _: str) -> ModelResponse: - start_time = time.time() - - for _ in range(len(self.config.models)): - model_name = self._get_next_model() - result = self._try_generate(model_name, prompt, start_time) - if result.success or 'Copyright' in result.error: - return result - - return ModelResponse( - success=False, - model='all_models_failed', - error='All models failed (rate limited or copyright issues)', - time=time.time() - start_time - ) - - -class FallbackStrategy(ContentStrategy): - """Fallback implementation of content generation.""" - def generate(self, prompt: str, start_model: str) -> ModelResponse: - start_time = time.time() - - try: - start_index = self.config.models.index(start_model) - except ValueError: - return ModelResponse( - success=False, - model=start_model, - error=f"Model {start_model} not found in available models", - time=time.time() - start_time - ) - - for model_name in self.config.models[start_index:]: - result = self._try_generate(model_name, prompt, start_time) - if result.success or 'Copyright' in result.error: - return result - - return ModelResponse( - success=False, - model='all_models_failed', - error='All models failed (rate limited or copyright issues)', - time=time.time() - start_time - ) - - -class RetryStrategy(ContentStrategy): - """Retry implementation of content generation.""" - def generate(self, prompt: str, model_name: str) -> ModelResponse: - start_time = time.time() - - for attempt in range(self.config.max_retries): - result = self._try_generate(model_name, prompt, start_time) - result.attempts = attempt + 1 - - if result.success or 'Copyright' in result.error: - return result - - if attempt < self.config.max_retries - 1: - print(f"Error encountered. Waiting {self.config.retry_delay}s... " - f"(Attempt {attempt + 1}/{self.config.max_retries})") - time.sleep(self.config.retry_delay) - - return ModelResponse( - success=False, - model=model_name, - error='Max retries exceeded', - time=time.time() - start_time, - attempts=self.config.max_retries - ) - - -class GeminiHandler: - """Main handler class for Gemini API interactions.""" - def __init__( - self, - api_keys: Optional[List[str]] = None, - config_path: Optional[Union[str, Path]] = None, - content_strategy: Strategy = Strategy.ROUND_ROBIN, - key_strategy: KeyRotationStrategy = KeyRotationStrategy.ROUND_ROBIN, - system_instruction: Optional[str] = None, - generation_config: Optional[GenerationConfig] = None - ): - """ - Initialize GeminiHandler with flexible configuration options. - - Args: - api_keys: Optional list of API keys - config_path: Optional path to YAML config file - content_strategy: Strategy for content generation - key_strategy: Strategy for key rotation - system_instruction: Optional system instruction - generation_config: Optional generation configuration - """ - # Load API keys from provided list or config sources - self.api_keys = api_keys or ConfigLoader.load_api_keys(config_path) - - self.config = ModelConfig() - self.key_manager = KeyRotationManager( - api_keys=self.api_keys, - strategy=key_strategy, - rate_limit=60, - reset_window=60 - ) - self.system_instruction = system_instruction - self.generation_config = generation_config - self._strategy = self._create_strategy(content_strategy) - - def _create_strategy(self, strategy: Strategy) -> ContentStrategy: - """Factory method to create appropriate strategy.""" - strategies = { - Strategy.ROUND_ROBIN: RoundRobinStrategy, - Strategy.FALLBACK: FallbackStrategy, - Strategy.RETRY: RetryStrategy - } - - strategy_class = strategies.get(strategy) - if not strategy_class: - raise ValueError(f"Unknown strategy: {strategy}") - - return strategy_class( - config=self.config, - key_manager=self.key_manager, - system_instruction=self.system_instruction, - generation_config=self.generation_config - ) - - def generate_content( - self, - prompt: str, - model_name: Optional[str] = None, - return_stats: bool = False - ) -> Dict[str, Any]: - """ - Generate content using the selected strategies. - - Args: - prompt: The input prompt for content generation - model_name: Optional specific model to use (default: None) - return_stats: Whether to include key usage statistics (default: False) - - Returns: - Dictionary containing generation results and optionally key statistics - """ - if not model_name: - model_name = self.config.default_model - - response = self._strategy.generate(prompt, model_name) - result = response.__dict__ - - if return_stats: - result["key_stats"] = { - idx: { - "uses": stats.uses, - "last_used": stats.last_used, - "failures": stats.failures, - "rate_limited_until": stats.rate_limited_until - } - for idx, stats in self.key_manager.key_stats.items() - } - - return result - - def get_key_stats(self, key_index: Optional[int] = None) -> Dict[int, Dict[str, Any]]: - """ - Get current key usage statistics. - - Args: - key_index: Optional specific key index to get stats for - - Returns: - Dictionary of key statistics - """ - if key_index is not None: - if 0 <= key_index < len(self.key_manager.api_keys): - stats = self.key_manager.key_stats[key_index] - return { - key_index: { - "uses": stats.uses, - "last_used": stats.last_used, - "failures": stats.failures, - "rate_limited_until": stats.rate_limited_until - } - } - raise ValueError(f"Invalid key index: {key_index}") - - return { - idx: { - "uses": stats.uses, - "last_used": stats.last_used, - "failures": stats.failures, - "rate_limited_until": stats.rate_limited_until - } - for idx, stats in self.key_manager.key_stats.items() - } \ No newline at end of file diff --git a/readme.md b/readme.md deleted file mode 100644 index 1d6805491d994443a8b8dc7f083b23b72ffdb9bd..0000000000000000000000000000000000000000 --- a/readme.md +++ /dev/null @@ -1 +0,0 @@ -lt --port 5000 --subdomain legal \ No newline at end of file diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index 3678ec37fc1e0e859b3446ed83831cf0f34c7ae0..0000000000000000000000000000000000000000 --- a/requirements.txt +++ /dev/null @@ -1,20 +0,0 @@ -Flask==3.0.3 -flask-cors -Flask-SocketIO==5.3.6 -pymongo==3.13.0 -python-dateutil==2.9.0.post0 -sentence-transformers==3.1.0 -torch==2.4.0 -numpy==1.26.4 -faiss-cpu==1.8.0 -langchain==0.2.15 -langchain-community==0.2.15 -PyYAML==6.0.1 -requests==2.32.3 -gunicorn==22.0.0 -gevent==24.2.1 # Thêm gevent -google-generativeai -boto3 -python-dotenv==1.0.1 -flask-session==0.5.0 -certifi \ No newline at end of file diff --git a/static/assets/01-dark.png b/static/assets/01-dark.png deleted file mode 100644 index ad78c0261068bb5b41014447feb92f87fe8a2dd2..0000000000000000000000000000000000000000 Binary files a/static/assets/01-dark.png and /dev/null differ diff --git a/static/assets/01-light.png b/static/assets/01-light.png deleted file mode 100644 index 6bb0c31809b8a66a11e38b7567e4caeb99299f36..0000000000000000000000000000000000000000 --- a/static/assets/01-light.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b3f34001a3ec7e01d2fba733105d990636eca9436582918f49e605574194c6f1 -size 112525 diff --git a/static/assets/01.jpg b/static/assets/01.jpg deleted file mode 100644 index e38f7cc3a9c06a6dbdbd6e963ad3b89c0c7a25cd..0000000000000000000000000000000000000000 Binary files a/static/assets/01.jpg and /dev/null differ diff --git a/static/assets/02-dark.png b/static/assets/02-dark.png deleted file mode 100644 index e72129195f815c53354c9fddc67a07c60c9b483b..0000000000000000000000000000000000000000 Binary files a/static/assets/02-dark.png and /dev/null differ diff --git a/static/assets/02-light.png b/static/assets/02-light.png deleted file mode 100644 index d8b8f1c46f49793d6f1f3c1b4eb00c8348f56060..0000000000000000000000000000000000000000 Binary files a/static/assets/02-light.png and /dev/null differ diff --git a/static/assets/02.jpg b/static/assets/02.jpg deleted file mode 100644 index eb1c3e6343b15f5e382bb1530af222db9132464a..0000000000000000000000000000000000000000 Binary files a/static/assets/02.jpg and /dev/null differ diff --git a/static/assets/03-dark.png b/static/assets/03-dark.png deleted file mode 100644 index 2f68a85da7cd46a7998d83224f9d7859a2839d36..0000000000000000000000000000000000000000 Binary files a/static/assets/03-dark.png and /dev/null differ diff --git a/static/assets/03-light.png b/static/assets/03-light.png deleted file mode 100644 index e1c1d450e58267b5510f2ab4ba524f568c12d5c8..0000000000000000000000000000000000000000 Binary files a/static/assets/03-light.png and /dev/null differ diff --git a/static/assets/48.jpg b/static/assets/48.jpg deleted file mode 100644 index b382f4c3162fe008a9dfecf6c1c264e2298bb497..0000000000000000000000000000000000000000 Binary files a/static/assets/48.jpg and /dev/null differ diff --git a/static/assets/49.jpg b/static/assets/49.jpg deleted file mode 100644 index e72d4fd6295cdab23c6340d17b9dce93e2f61723..0000000000000000000000000000000000000000 Binary files a/static/assets/49.jpg and /dev/null differ diff --git a/static/assets/50.jpg b/static/assets/50.jpg deleted file mode 100644 index e63894afc20534c914aa527bc3e7982773fc80af..0000000000000000000000000000000000000000 Binary files a/static/assets/50.jpg and /dev/null differ diff --git a/static/assets/awwwards.png b/static/assets/awwwards.png deleted file mode 100644 index 1e66356a566d05dd5011968a8463400e1fe28d5a..0000000000000000000000000000000000000000 Binary files a/static/assets/awwwards.png and /dev/null differ diff --git a/static/assets/boxicons.min.css b/static/assets/boxicons.min.css deleted file mode 100644 index ed39ac526af16964dd7f9d56a9b5da4aa3530b8e..0000000000000000000000000000000000000000 --- a/static/assets/boxicons.min.css +++ /dev/null @@ -1 +0,0 @@ -@font-face{font-family:boxicons;font-weight:400;font-style:normal;src:url(../fonts/boxicons.eot);src:url(../fonts/boxicons.eot) format('embedded-opentype'),url(../fonts/boxicons.woff2) format('woff2'),url(../fonts/boxicons.woff) format('woff'),url(../fonts/boxicons.ttf) format('truetype'),url(../fonts/boxicons.svg?#boxicons) format('svg')}.bx{font-family:boxicons!important;font-weight:400;font-style:normal;font-variant:normal;line-height:1;text-rendering:auto;display:inline-block;text-transform:none;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.bx-ul{margin-left:2em;padding-left:0;list-style:none}.bx-ul>li{position:relative}.bx-ul .bx{font-size:inherit;line-height:inherit;position:absolute;left:-2em;width:2em;text-align:center}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@-webkit-keyframes burst{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}90%{-webkit-transform:scale(1.5);transform:scale(1.5);opacity:0}}@keyframes burst{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}90%{-webkit-transform:scale(1.5);transform:scale(1.5);opacity:0}}@-webkit-keyframes flashing{0%{opacity:1}45%{opacity:0}90%{opacity:1}}@keyframes flashing{0%{opacity:1}45%{opacity:0}90%{opacity:1}}@-webkit-keyframes fade-left{0%{-webkit-transform:translateX(0);transform:translateX(0);opacity:1}75%{-webkit-transform:translateX(-20px);transform:translateX(-20px);opacity:0}}@keyframes fade-left{0%{-webkit-transform:translateX(0);transform:translateX(0);opacity:1}75%{-webkit-transform:translateX(-20px);transform:translateX(-20px);opacity:0}}@-webkit-keyframes fade-right{0%{-webkit-transform:translateX(0);transform:translateX(0);opacity:1}75%{-webkit-transform:translateX(20px);transform:translateX(20px);opacity:0}}@keyframes fade-right{0%{-webkit-transform:translateX(0);transform:translateX(0);opacity:1}75%{-webkit-transform:translateX(20px);transform:translateX(20px);opacity:0}}@-webkit-keyframes fade-up{0%{-webkit-transform:translateY(0);transform:translateY(0);opacity:1}75%{-webkit-transform:translateY(-20px);transform:translateY(-20px);opacity:0}}@keyframes fade-up{0%{-webkit-transform:translateY(0);transform:translateY(0);opacity:1}75%{-webkit-transform:translateY(-20px);transform:translateY(-20px);opacity:0}}@-webkit-keyframes fade-down{0%{-webkit-transform:translateY(0);transform:translateY(0);opacity:1}75%{-webkit-transform:translateY(20px);transform:translateY(20px);opacity:0}}@keyframes fade-down{0%{-webkit-transform:translateY(0);transform:translateY(0);opacity:1}75%{-webkit-transform:translateY(20px);transform:translateY(20px);opacity:0}}@-webkit-keyframes tada{from{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}10%,20%{-webkit-transform:scale3d(.95,.95,.95) rotate3d(0,0,1,-10deg);transform:scale3d(.95,.95,.95) rotate3d(0,0,1,-10deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1,1,1) rotate3d(0,0,1,10deg);transform:scale3d(1,1,1) rotate3d(0,0,1,10deg)}40%,60%,80%{-webkit-transform:scale3d(1,1,1) rotate3d(0,0,1,-10deg);transform:scale3d(1,1,1) rotate3d(0,0,1,-10deg)}to{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@keyframes tada{from{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}10%,20%{-webkit-transform:scale3d(.95,.95,.95) rotate3d(0,0,1,-10deg);transform:scale3d(.95,.95,.95) rotate3d(0,0,1,-10deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1,1,1) rotate3d(0,0,1,10deg);transform:scale3d(1,1,1) rotate3d(0,0,1,10deg)}40%,60%,80%{-webkit-transform:rotate3d(0,0,1,-10deg);transform:rotate3d(0,0,1,-10deg)}to{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}.bx-spin{-webkit-animation:spin 2s linear infinite;animation:spin 2s linear infinite}.bx-spin-hover:hover{-webkit-animation:spin 2s linear infinite;animation:spin 2s linear infinite}.bx-tada{-webkit-animation:tada 1.5s ease infinite;animation:tada 1.5s ease infinite}.bx-tada-hover:hover{-webkit-animation:tada 1.5s ease infinite;animation:tada 1.5s ease infinite}.bx-flashing{-webkit-animation:flashing 1.5s infinite linear;animation:flashing 1.5s infinite linear}.bx-flashing-hover:hover{-webkit-animation:flashing 1.5s infinite linear;animation:flashing 1.5s infinite linear}.bx-burst{-webkit-animation:burst 1.5s infinite linear;animation:burst 1.5s infinite linear}.bx-burst-hover:hover{-webkit-animation:burst 1.5s infinite linear;animation:burst 1.5s infinite linear}.bx-fade-up{-webkit-animation:fade-up 1.5s infinite linear;animation:fade-up 1.5s infinite linear}.bx-fade-up-hover:hover{-webkit-animation:fade-up 1.5s infinite linear;animation:fade-up 1.5s infinite linear}.bx-fade-down{-webkit-animation:fade-down 1.5s infinite linear;animation:fade-down 1.5s infinite linear}.bx-fade-down-hover:hover{-webkit-animation:fade-down 1.5s infinite linear;animation:fade-down 1.5s infinite linear}.bx-fade-left{-webkit-animation:fade-left 1.5s infinite linear;animation:fade-left 1.5s infinite linear}.bx-fade-left-hover:hover{-webkit-animation:fade-left 1.5s infinite linear;animation:fade-left 1.5s infinite linear}.bx-fade-right{-webkit-animation:fade-right 1.5s infinite linear;animation:fade-right 1.5s infinite linear}.bx-fade-right-hover:hover{-webkit-animation:fade-right 1.5s infinite linear;animation:fade-right 1.5s infinite linear}.bx-xs{font-size:1rem!important}.bx-sm{font-size:1.55rem!important}.bx-md{font-size:2.25rem!important}.bx-lg{font-size:3rem!important}.bx-fw{font-size:1.2857142857em;line-height:.8em;width:1.2857142857em;height:.8em;margin-top:-.2em!important;vertical-align:middle}.bx-pull-left{float:left;margin-right:.3em!important}.bx-pull-right{float:right;margin-left:.3em!important}.bx-rotate-90{transform:rotate(90deg)}.bx-rotate-180{transform:rotate(180deg)}.bx-rotate-270{transform:rotate(270deg)}.bx-flip-horizontal{transform:scaleX(-1)}.bx-flip-vertical{transform:scaleY(-1)}.bx-border{padding:.25em;border:.07em solid rgba(0,0,0,.1);border-radius:.25em}.bx-border-circle{padding:.25em;border:.07em solid rgba(0,0,0,.1);border-radius:50%}.bxs-balloon:before{content:"\eb60"}.bxs-castle:before{content:"\eb79"}.bxs-coffee-bean:before{content:"\eb92"}.bxs-objects-horizontal-center:before{content:"\ebab"}.bxs-objects-horizontal-left:before{content:"\ebc4"}.bxs-objects-horizontal-right:before{content:"\ebdd"}.bxs-objects-vertical-bottom:before{content:"\ebf6"}.bxs-objects-vertical-center:before{content:"\ef40"}.bxs-objects-vertical-top:before{content:"\ef41"}.bxs-pear:before{content:"\ef42"}.bxs-shield-minus:before{content:"\ef43"}.bxs-shield-plus:before{content:"\ef44"}.bxs-shower:before{content:"\ef45"}.bxs-sushi:before{content:"\ef46"}.bxs-universal-access:before{content:"\ef47"}.bx-child:before{content:"\ef48"}.bx-horizontal-left:before{content:"\ef49"}.bx-horizontal-right:before{content:"\ef4a"}.bx-objects-horizontal-center:before{content:"\ef4b"}.bx-objects-horizontal-left:before{content:"\ef4c"}.bx-objects-horizontal-right:before{content:"\ef4d"}.bx-objects-vertical-bottom:before{content:"\ef4e"}.bx-objects-vertical-center:before{content:"\ef4f"}.bx-objects-vertical-top:before{content:"\ef50"}.bx-rfid:before{content:"\ef51"}.bx-shield-minus:before{content:"\ef52"}.bx-shield-plus:before{content:"\ef53"}.bx-shower:before{content:"\ef54"}.bx-sushi:before{content:"\ef55"}.bx-universal-access:before{content:"\ef56"}.bx-vertical-bottom:before{content:"\ef57"}.bx-vertical-top:before{content:"\ef58"}.bxl-graphql:before{content:"\ef59"}.bxl-typescript:before{content:"\ef5a"}.bxs-color:before{content:"\ef39"}.bx-reflect-horizontal:before{content:"\ef3a"}.bx-reflect-vertical:before{content:"\ef3b"}.bx-color:before{content:"\ef3c"}.bxl-mongodb:before{content:"\ef3d"}.bxl-postgresql:before{content:"\ef3e"}.bxl-deezer:before{content:"\ef3f"}.bxs-hard-hat:before{content:"\ef2a"}.bxs-home-alt-2:before{content:"\ef2b"}.bxs-cheese:before{content:"\ef2c"}.bx-home-alt-2:before{content:"\ef2d"}.bx-hard-hat:before{content:"\ef2e"}.bx-cheese:before{content:"\ef2f"}.bx-cart-add:before{content:"\ef30"}.bx-cart-download:before{content:"\ef31"}.bx-no-signal:before{content:"\ef32"}.bx-signal-1:before{content:"\ef33"}.bx-signal-2:before{content:"\ef34"}.bx-signal-3:before{content:"\ef35"}.bx-signal-4:before{content:"\ef36"}.bx-signal-5:before{content:"\ef37"}.bxl-xing:before{content:"\ef38"}.bxl-meta:before{content:"\ef27"}.bx-lemon:before{content:"\ef28"}.bxs-lemon:before{content:"\ef29"}.bx-cricket-ball:before{content:"\ef0c"}.bx-baguette:before{content:"\ef0d"}.bx-bowl-hot:before{content:"\ef0e"}.bx-bowl-rice:before{content:"\ef0f"}.bx-cable-car:before{content:"\ef10"}.bx-candles:before{content:"\ef11"}.bx-circle-half:before{content:"\ef12"}.bx-circle-quarter:before{content:"\ef13"}.bx-circle-three-quarter:before{content:"\ef14"}.bx-cross:before{content:"\ef15"}.bx-fork:before{content:"\ef16"}.bx-knife:before{content:"\ef17"}.bx-money-withdraw:before{content:"\ef18"}.bx-popsicle:before{content:"\ef19"}.bx-scatter-chart:before{content:"\ef1a"}.bxs-baguette:before{content:"\ef1b"}.bxs-bowl-hot:before{content:"\ef1c"}.bxs-bowl-rice:before{content:"\ef1d"}.bxs-cable-car:before{content:"\ef1e"}.bxs-circle-half:before{content:"\ef1f"}.bxs-circle-quarter:before{content:"\ef20"}.bxs-circle-three-quarter:before{content:"\ef21"}.bxs-cricket-ball:before{content:"\ef22"}.bxs-invader:before{content:"\ef23"}.bx-male-female:before{content:"\ef24"}.bxs-popsicle:before{content:"\ef25"}.bxs-tree-alt:before{content:"\ef26"}.bxl-venmo:before{content:"\e900"}.bxl-upwork:before{content:"\e901"}.bxl-netlify:before{content:"\e902"}.bxl-java:before{content:"\e903"}.bxl-heroku:before{content:"\e904"}.bxl-go-lang:before{content:"\e905"}.bxl-gmail:before{content:"\e906"}.bxl-flask:before{content:"\e907"}.bxl-99designs:before{content:"\e908"}.bxl-500px:before{content:"\e909"}.bxl-adobe:before{content:"\e90a"}.bxl-airbnb:before{content:"\e90b"}.bxl-algolia:before{content:"\e90c"}.bxl-amazon:before{content:"\e90d"}.bxl-android:before{content:"\e90e"}.bxl-angular:before{content:"\e90f"}.bxl-apple:before{content:"\e910"}.bxl-audible:before{content:"\e911"}.bxl-aws:before{content:"\e912"}.bxl-baidu:before{content:"\e913"}.bxl-behance:before{content:"\e914"}.bxl-bing:before{content:"\e915"}.bxl-bitcoin:before{content:"\e916"}.bxl-blender:before{content:"\e917"}.bxl-blogger:before{content:"\e918"}.bxl-bootstrap:before{content:"\e919"}.bxl-chrome:before{content:"\e91a"}.bxl-codepen:before{content:"\e91b"}.bxl-c-plus-plus:before{content:"\e91c"}.bxl-creative-commons:before{content:"\e91d"}.bxl-css3:before{content:"\e91e"}.bxl-dailymotion:before{content:"\e91f"}.bxl-deviantart:before{content:"\e920"}.bxl-dev-to:before{content:"\e921"}.bxl-digg:before{content:"\e922"}.bxl-digitalocean:before{content:"\e923"}.bxl-discord:before{content:"\e924"}.bxl-discord-alt:before{content:"\e925"}.bxl-discourse:before{content:"\e926"}.bxl-django:before{content:"\e927"}.bxl-docker:before{content:"\e928"}.bxl-dribbble:before{content:"\e929"}.bxl-dropbox:before{content:"\e92a"}.bxl-drupal:before{content:"\e92b"}.bxl-ebay:before{content:"\e92c"}.bxl-edge:before{content:"\e92d"}.bxl-etsy:before{content:"\e92e"}.bxl-facebook:before{content:"\e92f"}.bxl-facebook-circle:before{content:"\e930"}.bxl-facebook-square:before{content:"\e931"}.bxl-figma:before{content:"\e932"}.bxl-firebase:before{content:"\e933"}.bxl-firefox:before{content:"\e934"}.bxl-flickr:before{content:"\e935"}.bxl-flickr-square:before{content:"\e936"}.bxl-flutter:before{content:"\e937"}.bxl-foursquare:before{content:"\e938"}.bxl-git:before{content:"\e939"}.bxl-github:before{content:"\e93a"}.bxl-gitlab:before{content:"\e93b"}.bxl-google:before{content:"\e93c"}.bxl-google-cloud:before{content:"\e93d"}.bxl-google-plus:before{content:"\e93e"}.bxl-google-plus-circle:before{content:"\e93f"}.bxl-html5:before{content:"\e940"}.bxl-imdb:before{content:"\e941"}.bxl-instagram:before{content:"\e942"}.bxl-instagram-alt:before{content:"\e943"}.bxl-internet-explorer:before{content:"\e944"}.bxl-invision:before{content:"\e945"}.bxl-javascript:before{content:"\e946"}.bxl-joomla:before{content:"\e947"}.bxl-jquery:before{content:"\e948"}.bxl-jsfiddle:before{content:"\e949"}.bxl-kickstarter:before{content:"\e94a"}.bxl-kubernetes:before{content:"\e94b"}.bxl-less:before{content:"\e94c"}.bxl-linkedin:before{content:"\e94d"}.bxl-linkedin-square:before{content:"\e94e"}.bxl-magento:before{content:"\e94f"}.bxl-mailchimp:before{content:"\e950"}.bxl-markdown:before{content:"\e951"}.bxl-mastercard:before{content:"\e952"}.bxl-mastodon:before{content:"\e953"}.bxl-medium:before{content:"\e954"}.bxl-medium-old:before{content:"\e955"}.bxl-medium-square:before{content:"\e956"}.bxl-messenger:before{content:"\e957"}.bxl-microsoft:before{content:"\e958"}.bxl-microsoft-teams:before{content:"\e959"}.bxl-nodejs:before{content:"\e95a"}.bxl-ok-ru:before{content:"\e95b"}.bxl-opera:before{content:"\e95c"}.bxl-patreon:before{content:"\e95d"}.bxl-paypal:before{content:"\e95e"}.bxl-periscope:before{content:"\e95f"}.bxl-php:before{content:"\e960"}.bxl-pinterest:before{content:"\e961"}.bxl-pinterest-alt:before{content:"\e962"}.bxl-play-store:before{content:"\e963"}.bxl-pocket:before{content:"\e964"}.bxl-product-hunt:before{content:"\e965"}.bxl-python:before{content:"\e966"}.bxl-quora:before{content:"\e967"}.bxl-react:before{content:"\e968"}.bxl-redbubble:before{content:"\e969"}.bxl-reddit:before{content:"\e96a"}.bxl-redux:before{content:"\e96b"}.bxl-sass:before{content:"\e96c"}.bxl-shopify:before{content:"\e96d"}.bxl-sketch:before{content:"\e96e"}.bxl-skype:before{content:"\e96f"}.bxl-slack:before{content:"\e970"}.bxl-slack-old:before{content:"\e971"}.bxl-snapchat:before{content:"\e972"}.bxl-soundcloud:before{content:"\e973"}.bxl-spotify:before{content:"\e974"}.bxl-spring-boot:before{content:"\e975"}.bxl-squarespace:before{content:"\e976"}.bxl-stack-overflow:before{content:"\e977"}.bxl-steam:before{content:"\e978"}.bxl-stripe:before{content:"\e979"}.bxl-tailwind-css:before{content:"\e97a"}.bxl-telegram:before{content:"\e97b"}.bxl-tiktok:before{content:"\e97c"}.bxl-trello:before{content:"\e97d"}.bxl-trip-advisor:before{content:"\e97e"}.bxl-tumblr:before{content:"\e97f"}.bxl-tux:before{content:"\e980"}.bxl-twitch:before{content:"\e981"}.bxl-twitter:before{content:"\e982"}.bxl-unity:before{content:"\e983"}.bxl-unsplash:before{content:"\e984"}.bxl-vimeo:before{content:"\e985"}.bxl-visa:before{content:"\e986"}.bxl-visual-studio:before{content:"\e987"}.bxl-vk:before{content:"\e988"}.bxl-vuejs:before{content:"\e989"}.bxl-whatsapp:before{content:"\e98a"}.bxl-whatsapp-square:before{content:"\e98b"}.bxl-wikipedia:before{content:"\e98c"}.bxl-windows:before{content:"\e98d"}.bxl-wix:before{content:"\e98e"}.bxl-wordpress:before{content:"\e98f"}.bxl-yahoo:before{content:"\e990"}.bxl-yelp:before{content:"\e991"}.bxl-youtube:before{content:"\e992"}.bxl-zoom:before{content:"\e993"}.bx-collapse-alt:before{content:"\e994"}.bx-collapse-horizontal:before{content:"\e995"}.bx-collapse-vertical:before{content:"\e996"}.bx-expand-horizontal:before{content:"\e997"}.bx-expand-vertical:before{content:"\e998"}.bx-injection:before{content:"\e999"}.bx-leaf:before{content:"\e99a"}.bx-math:before{content:"\e99b"}.bx-party:before{content:"\e99c"}.bx-abacus:before{content:"\e99d"}.bx-accessibility:before{content:"\e99e"}.bx-add-to-queue:before{content:"\e99f"}.bx-adjust:before{content:"\e9a0"}.bx-alarm:before{content:"\e9a1"}.bx-alarm-add:before{content:"\e9a2"}.bx-alarm-exclamation:before{content:"\e9a3"}.bx-alarm-off:before{content:"\e9a4"}.bx-alarm-snooze:before{content:"\e9a5"}.bx-album:before{content:"\e9a6"}.bx-align-justify:before{content:"\e9a7"}.bx-align-left:before{content:"\e9a8"}.bx-align-middle:before{content:"\e9a9"}.bx-align-right:before{content:"\e9aa"}.bx-analyse:before{content:"\e9ab"}.bx-anchor:before{content:"\e9ac"}.bx-angry:before{content:"\e9ad"}.bx-aperture:before{content:"\e9ae"}.bx-arch:before{content:"\e9af"}.bx-archive:before{content:"\e9b0"}.bx-archive-in:before{content:"\e9b1"}.bx-archive-out:before{content:"\e9b2"}.bx-area:before{content:"\e9b3"}.bx-arrow-back:before{content:"\e9b4"}.bx-arrow-from-bottom:before{content:"\e9b5"}.bx-arrow-from-left:before{content:"\e9b6"}.bx-arrow-from-right:before{content:"\e9b7"}.bx-arrow-from-top:before{content:"\e9b8"}.bx-arrow-to-bottom:before{content:"\e9b9"}.bx-arrow-to-left:before{content:"\e9ba"}.bx-arrow-to-right:before{content:"\e9bb"}.bx-arrow-to-top:before{content:"\e9bc"}.bx-at:before{content:"\e9bd"}.bx-atom:before{content:"\e9be"}.bx-award:before{content:"\e9bf"}.bx-badge:before{content:"\e9c0"}.bx-badge-check:before{content:"\e9c1"}.bx-ball:before{content:"\e9c2"}.bx-band-aid:before{content:"\e9c3"}.bx-bar-chart:before{content:"\e9c4"}.bx-bar-chart-alt:before{content:"\e9c5"}.bx-bar-chart-alt-2:before{content:"\e9c6"}.bx-bar-chart-square:before{content:"\e9c7"}.bx-barcode:before{content:"\e9c8"}.bx-barcode-reader:before{content:"\e9c9"}.bx-baseball:before{content:"\e9ca"}.bx-basket:before{content:"\e9cb"}.bx-basketball:before{content:"\e9cc"}.bx-bath:before{content:"\e9cd"}.bx-battery:before{content:"\e9ce"}.bx-bed:before{content:"\e9cf"}.bx-been-here:before{content:"\e9d0"}.bx-beer:before{content:"\e9d1"}.bx-bell:before{content:"\e9d2"}.bx-bell-minus:before{content:"\e9d3"}.bx-bell-off:before{content:"\e9d4"}.bx-bell-plus:before{content:"\e9d5"}.bx-bible:before{content:"\e9d6"}.bx-bitcoin:before{content:"\e9d7"}.bx-blanket:before{content:"\e9d8"}.bx-block:before{content:"\e9d9"}.bx-bluetooth:before{content:"\e9da"}.bx-body:before{content:"\e9db"}.bx-bold:before{content:"\e9dc"}.bx-bolt-circle:before{content:"\e9dd"}.bx-bomb:before{content:"\e9de"}.bx-bone:before{content:"\e9df"}.bx-bong:before{content:"\e9e0"}.bx-book:before{content:"\e9e1"}.bx-book-add:before{content:"\e9e2"}.bx-book-alt:before{content:"\e9e3"}.bx-book-bookmark:before{content:"\e9e4"}.bx-book-content:before{content:"\e9e5"}.bx-book-heart:before{content:"\e9e6"}.bx-bookmark:before{content:"\e9e7"}.bx-bookmark-alt:before{content:"\e9e8"}.bx-bookmark-alt-minus:before{content:"\e9e9"}.bx-bookmark-alt-plus:before{content:"\e9ea"}.bx-bookmark-heart:before{content:"\e9eb"}.bx-bookmark-minus:before{content:"\e9ec"}.bx-bookmark-plus:before{content:"\e9ed"}.bx-bookmarks:before{content:"\e9ee"}.bx-book-open:before{content:"\e9ef"}.bx-book-reader:before{content:"\e9f0"}.bx-border-all:before{content:"\e9f1"}.bx-border-bottom:before{content:"\e9f2"}.bx-border-inner:before{content:"\e9f3"}.bx-border-left:before{content:"\e9f4"}.bx-border-none:before{content:"\e9f5"}.bx-border-outer:before{content:"\e9f6"}.bx-border-radius:before{content:"\e9f7"}.bx-border-right:before{content:"\e9f8"}.bx-border-top:before{content:"\e9f9"}.bx-bot:before{content:"\e9fa"}.bx-bowling-ball:before{content:"\e9fb"}.bx-box:before{content:"\e9fc"}.bx-bracket:before{content:"\e9fd"}.bx-braille:before{content:"\e9fe"}.bx-brain:before{content:"\e9ff"}.bx-briefcase:before{content:"\ea00"}.bx-briefcase-alt:before{content:"\ea01"}.bx-briefcase-alt-2:before{content:"\ea02"}.bx-brightness:before{content:"\ea03"}.bx-brightness-half:before{content:"\ea04"}.bx-broadcast:before{content:"\ea05"}.bx-brush:before{content:"\ea06"}.bx-brush-alt:before{content:"\ea07"}.bx-bug:before{content:"\ea08"}.bx-bug-alt:before{content:"\ea09"}.bx-building:before{content:"\ea0a"}.bx-building-house:before{content:"\ea0b"}.bx-buildings:before{content:"\ea0c"}.bx-bulb:before{content:"\ea0d"}.bx-bullseye:before{content:"\ea0e"}.bx-buoy:before{content:"\ea0f"}.bx-bus:before{content:"\ea10"}.bx-bus-school:before{content:"\ea11"}.bx-cabinet:before{content:"\ea12"}.bx-cake:before{content:"\ea13"}.bx-calculator:before{content:"\ea14"}.bx-calendar:before{content:"\ea15"}.bx-calendar-alt:before{content:"\ea16"}.bx-calendar-check:before{content:"\ea17"}.bx-calendar-edit:before{content:"\ea18"}.bx-calendar-event:before{content:"\ea19"}.bx-calendar-exclamation:before{content:"\ea1a"}.bx-calendar-heart:before{content:"\ea1b"}.bx-calendar-minus:before{content:"\ea1c"}.bx-calendar-plus:before{content:"\ea1d"}.bx-calendar-star:before{content:"\ea1e"}.bx-calendar-week:before{content:"\ea1f"}.bx-calendar-x:before{content:"\ea20"}.bx-camera:before{content:"\ea21"}.bx-camera-home:before{content:"\ea22"}.bx-camera-movie:before{content:"\ea23"}.bx-camera-off:before{content:"\ea24"}.bx-capsule:before{content:"\ea25"}.bx-captions:before{content:"\ea26"}.bx-car:before{content:"\ea27"}.bx-card:before{content:"\ea28"}.bx-caret-down:before{content:"\ea29"}.bx-caret-down-circle:before{content:"\ea2a"}.bx-caret-down-square:before{content:"\ea2b"}.bx-caret-left:before{content:"\ea2c"}.bx-caret-left-circle:before{content:"\ea2d"}.bx-caret-left-square:before{content:"\ea2e"}.bx-caret-right:before{content:"\ea2f"}.bx-caret-right-circle:before{content:"\ea30"}.bx-caret-right-square:before{content:"\ea31"}.bx-caret-up:before{content:"\ea32"}.bx-caret-up-circle:before{content:"\ea33"}.bx-caret-up-square:before{content:"\ea34"}.bx-carousel:before{content:"\ea35"}.bx-cart:before{content:"\ea36"}.bx-cart-alt:before{content:"\ea37"}.bx-cast:before{content:"\ea38"}.bx-category:before{content:"\ea39"}.bx-category-alt:before{content:"\ea3a"}.bx-cctv:before{content:"\ea3b"}.bx-certification:before{content:"\ea3c"}.bx-chair:before{content:"\ea3d"}.bx-chalkboard:before{content:"\ea3e"}.bx-chart:before{content:"\ea3f"}.bx-chat:before{content:"\ea40"}.bx-check:before{content:"\ea41"}.bx-checkbox:before{content:"\ea42"}.bx-checkbox-checked:before{content:"\ea43"}.bx-checkbox-minus:before{content:"\ea44"}.bx-checkbox-square:before{content:"\ea45"}.bx-check-circle:before{content:"\ea46"}.bx-check-double:before{content:"\ea47"}.bx-check-shield:before{content:"\ea48"}.bx-check-square:before{content:"\ea49"}.bx-chevron-down:before{content:"\ea4a"}.bx-chevron-down-circle:before{content:"\ea4b"}.bx-chevron-down-square:before{content:"\ea4c"}.bx-chevron-left:before{content:"\ea4d"}.bx-chevron-left-circle:before{content:"\ea4e"}.bx-chevron-left-square:before{content:"\ea4f"}.bx-chevron-right:before{content:"\ea50"}.bx-chevron-right-circle:before{content:"\ea51"}.bx-chevron-right-square:before{content:"\ea52"}.bx-chevrons-down:before{content:"\ea53"}.bx-chevrons-left:before{content:"\ea54"}.bx-chevrons-right:before{content:"\ea55"}.bx-chevrons-up:before{content:"\ea56"}.bx-chevron-up:before{content:"\ea57"}.bx-chevron-up-circle:before{content:"\ea58"}.bx-chevron-up-square:before{content:"\ea59"}.bx-chip:before{content:"\ea5a"}.bx-church:before{content:"\ea5b"}.bx-circle:before{content:"\ea5c"}.bx-clinic:before{content:"\ea5d"}.bx-clipboard:before{content:"\ea5e"}.bx-closet:before{content:"\ea5f"}.bx-cloud:before{content:"\ea60"}.bx-cloud-download:before{content:"\ea61"}.bx-cloud-drizzle:before{content:"\ea62"}.bx-cloud-lightning:before{content:"\ea63"}.bx-cloud-light-rain:before{content:"\ea64"}.bx-cloud-rain:before{content:"\ea65"}.bx-cloud-snow:before{content:"\ea66"}.bx-cloud-upload:before{content:"\ea67"}.bx-code:before{content:"\ea68"}.bx-code-alt:before{content:"\ea69"}.bx-code-block:before{content:"\ea6a"}.bx-code-curly:before{content:"\ea6b"}.bx-coffee:before{content:"\ea6c"}.bx-coffee-togo:before{content:"\ea6d"}.bx-cog:before{content:"\ea6e"}.bx-coin:before{content:"\ea6f"}.bx-coin-stack:before{content:"\ea70"}.bx-collapse:before{content:"\ea71"}.bx-collection:before{content:"\ea72"}.bx-color-fill:before{content:"\ea73"}.bx-columns:before{content:"\ea74"}.bx-command:before{content:"\ea75"}.bx-comment:before{content:"\ea76"}.bx-comment-add:before{content:"\ea77"}.bx-comment-check:before{content:"\ea78"}.bx-comment-detail:before{content:"\ea79"}.bx-comment-dots:before{content:"\ea7a"}.bx-comment-edit:before{content:"\ea7b"}.bx-comment-error:before{content:"\ea7c"}.bx-comment-minus:before{content:"\ea7d"}.bx-comment-x:before{content:"\ea7e"}.bx-compass:before{content:"\ea7f"}.bx-confused:before{content:"\ea80"}.bx-conversation:before{content:"\ea81"}.bx-cookie:before{content:"\ea82"}.bx-cool:before{content:"\ea83"}.bx-copy:before{content:"\ea84"}.bx-copy-alt:before{content:"\ea85"}.bx-copyright:before{content:"\ea86"}.bx-credit-card:before{content:"\ea87"}.bx-credit-card-alt:before{content:"\ea88"}.bx-credit-card-front:before{content:"\ea89"}.bx-crop:before{content:"\ea8a"}.bx-crosshair:before{content:"\ea8b"}.bx-crown:before{content:"\ea8c"}.bx-cube:before{content:"\ea8d"}.bx-cube-alt:before{content:"\ea8e"}.bx-cuboid:before{content:"\ea8f"}.bx-current-location:before{content:"\ea90"}.bx-customize:before{content:"\ea91"}.bx-cut:before{content:"\ea92"}.bx-cycling:before{content:"\ea93"}.bx-cylinder:before{content:"\ea94"}.bx-data:before{content:"\ea95"}.bx-desktop:before{content:"\ea96"}.bx-detail:before{content:"\ea97"}.bx-devices:before{content:"\ea98"}.bx-dialpad:before{content:"\ea99"}.bx-dialpad-alt:before{content:"\ea9a"}.bx-diamond:before{content:"\ea9b"}.bx-dice-1:before{content:"\ea9c"}.bx-dice-2:before{content:"\ea9d"}.bx-dice-3:before{content:"\ea9e"}.bx-dice-4:before{content:"\ea9f"}.bx-dice-5:before{content:"\eaa0"}.bx-dice-6:before{content:"\eaa1"}.bx-directions:before{content:"\eaa2"}.bx-disc:before{content:"\eaa3"}.bx-dish:before{content:"\eaa4"}.bx-dislike:before{content:"\eaa5"}.bx-dizzy:before{content:"\eaa6"}.bx-dna:before{content:"\eaa7"}.bx-dock-bottom:before{content:"\eaa8"}.bx-dock-left:before{content:"\eaa9"}.bx-dock-right:before{content:"\eaaa"}.bx-dock-top:before{content:"\eaab"}.bx-dollar:before{content:"\eaac"}.bx-dollar-circle:before{content:"\eaad"}.bx-donate-blood:before{content:"\eaae"}.bx-donate-heart:before{content:"\eaaf"}.bx-door-open:before{content:"\eab0"}.bx-dots-horizontal:before{content:"\eab1"}.bx-dots-horizontal-rounded:before{content:"\eab2"}.bx-dots-vertical:before{content:"\eab3"}.bx-dots-vertical-rounded:before{content:"\eab4"}.bx-doughnut-chart:before{content:"\eab5"}.bx-down-arrow:before{content:"\eab6"}.bx-down-arrow-alt:before{content:"\eab7"}.bx-down-arrow-circle:before{content:"\eab8"}.bx-download:before{content:"\eab9"}.bx-downvote:before{content:"\eaba"}.bx-drink:before{content:"\eabb"}.bx-droplet:before{content:"\eabc"}.bx-dumbbell:before{content:"\eabd"}.bx-duplicate:before{content:"\eabe"}.bx-edit:before{content:"\eabf"}.bx-edit-alt:before{content:"\eac0"}.bx-envelope:before{content:"\eac1"}.bx-envelope-open:before{content:"\eac2"}.bx-equalizer:before{content:"\eac3"}.bx-eraser:before{content:"\eac4"}.bx-error:before{content:"\eac5"}.bx-error-alt:before{content:"\eac6"}.bx-error-circle:before{content:"\eac7"}.bx-euro:before{content:"\eac8"}.bx-exclude:before{content:"\eac9"}.bx-exit:before{content:"\eaca"}.bx-exit-fullscreen:before{content:"\eacb"}.bx-expand:before{content:"\eacc"}.bx-expand-alt:before{content:"\eacd"}.bx-export:before{content:"\eace"}.bx-extension:before{content:"\eacf"}.bx-face:before{content:"\ead0"}.bx-fast-forward:before{content:"\ead1"}.bx-fast-forward-circle:before{content:"\ead2"}.bx-female:before{content:"\ead3"}.bx-female-sign:before{content:"\ead4"}.bx-file:before{content:"\ead5"}.bx-file-blank:before{content:"\ead6"}.bx-file-find:before{content:"\ead7"}.bx-film:before{content:"\ead8"}.bx-filter:before{content:"\ead9"}.bx-filter-alt:before{content:"\eada"}.bx-fingerprint:before{content:"\eadb"}.bx-first-aid:before{content:"\eadc"}.bx-first-page:before{content:"\eadd"}.bx-flag:before{content:"\eade"}.bx-folder:before{content:"\eadf"}.bx-folder-minus:before{content:"\eae0"}.bx-folder-open:before{content:"\eae1"}.bx-folder-plus:before{content:"\eae2"}.bx-font:before{content:"\eae3"}.bx-font-color:before{content:"\eae4"}.bx-font-family:before{content:"\eae5"}.bx-font-size:before{content:"\eae6"}.bx-food-menu:before{content:"\eae7"}.bx-food-tag:before{content:"\eae8"}.bx-football:before{content:"\eae9"}.bx-fridge:before{content:"\eaea"}.bx-fullscreen:before{content:"\eaeb"}.bx-game:before{content:"\eaec"}.bx-gas-pump:before{content:"\eaed"}.bx-ghost:before{content:"\eaee"}.bx-gift:before{content:"\eaef"}.bx-git-branch:before{content:"\eaf0"}.bx-git-commit:before{content:"\eaf1"}.bx-git-compare:before{content:"\eaf2"}.bx-git-merge:before{content:"\eaf3"}.bx-git-pull-request:before{content:"\eaf4"}.bx-git-repo-forked:before{content:"\eaf5"}.bx-glasses:before{content:"\eaf6"}.bx-glasses-alt:before{content:"\eaf7"}.bx-globe:before{content:"\eaf8"}.bx-globe-alt:before{content:"\eaf9"}.bx-grid:before{content:"\eafa"}.bx-grid-alt:before{content:"\eafb"}.bx-grid-horizontal:before{content:"\eafc"}.bx-grid-small:before{content:"\eafd"}.bx-grid-vertical:before{content:"\eafe"}.bx-group:before{content:"\eaff"}.bx-handicap:before{content:"\eb00"}.bx-happy:before{content:"\eb01"}.bx-happy-alt:before{content:"\eb02"}.bx-happy-beaming:before{content:"\eb03"}.bx-happy-heart-eyes:before{content:"\eb04"}.bx-hash:before{content:"\eb05"}.bx-hdd:before{content:"\eb06"}.bx-heading:before{content:"\eb07"}.bx-headphone:before{content:"\eb08"}.bx-health:before{content:"\eb09"}.bx-heart:before{content:"\eb0a"}.bx-heart-circle:before{content:"\eb0b"}.bx-heart-square:before{content:"\eb0c"}.bx-help-circle:before{content:"\eb0d"}.bx-hide:before{content:"\eb0e"}.bx-highlight:before{content:"\eb0f"}.bx-history:before{content:"\eb10"}.bx-hive:before{content:"\eb11"}.bx-home:before{content:"\eb12"}.bx-home-alt:before{content:"\eb13"}.bx-home-circle:before{content:"\eb14"}.bx-home-heart:before{content:"\eb15"}.bx-home-smile:before{content:"\eb16"}.bx-horizontal-center:before{content:"\eb17"}.bx-hotel:before{content:"\eb18"}.bx-hourglass:before{content:"\eb19"}.bx-id-card:before{content:"\eb1a"}.bx-image:before{content:"\eb1b"}.bx-image-add:before{content:"\eb1c"}.bx-image-alt:before{content:"\eb1d"}.bx-images:before{content:"\eb1e"}.bx-import:before{content:"\eb1f"}.bx-infinite:before{content:"\eb20"}.bx-info-circle:before{content:"\eb21"}.bx-info-square:before{content:"\eb22"}.bx-intersect:before{content:"\eb23"}.bx-italic:before{content:"\eb24"}.bx-joystick:before{content:"\eb25"}.bx-joystick-alt:before{content:"\eb26"}.bx-joystick-button:before{content:"\eb27"}.bx-key:before{content:"\eb28"}.bx-label:before{content:"\eb29"}.bx-landscape:before{content:"\eb2a"}.bx-laptop:before{content:"\eb2b"}.bx-last-page:before{content:"\eb2c"}.bx-laugh:before{content:"\eb2d"}.bx-layer:before{content:"\eb2e"}.bx-layer-minus:before{content:"\eb2f"}.bx-layer-plus:before{content:"\eb30"}.bx-layout:before{content:"\eb31"}.bx-left-arrow:before{content:"\eb32"}.bx-left-arrow-alt:before{content:"\eb33"}.bx-left-arrow-circle:before{content:"\eb34"}.bx-left-down-arrow-circle:before{content:"\eb35"}.bx-left-indent:before{content:"\eb36"}.bx-left-top-arrow-circle:before{content:"\eb37"}.bx-library:before{content:"\eb38"}.bx-like:before{content:"\eb39"}.bx-line-chart:before{content:"\eb3a"}.bx-line-chart-down:before{content:"\eb3b"}.bx-link:before{content:"\eb3c"}.bx-link-alt:before{content:"\eb3d"}.bx-link-external:before{content:"\eb3e"}.bx-lira:before{content:"\eb3f"}.bx-list-check:before{content:"\eb40"}.bx-list-minus:before{content:"\eb41"}.bx-list-ol:before{content:"\eb42"}.bx-list-plus:before{content:"\eb43"}.bx-list-ul:before{content:"\eb44"}.bx-loader:before{content:"\eb45"}.bx-loader-alt:before{content:"\eb46"}.bx-loader-circle:before{content:"\eb47"}.bx-location-plus:before{content:"\eb48"}.bx-lock:before{content:"\eb49"}.bx-lock-alt:before{content:"\eb4a"}.bx-lock-open:before{content:"\eb4b"}.bx-lock-open-alt:before{content:"\eb4c"}.bx-log-in:before{content:"\eb4d"}.bx-log-in-circle:before{content:"\eb4e"}.bx-log-out:before{content:"\eb4f"}.bx-log-out-circle:before{content:"\eb50"}.bx-low-vision:before{content:"\eb51"}.bx-magnet:before{content:"\eb52"}.bx-mail-send:before{content:"\eb53"}.bx-male:before{content:"\eb54"}.bx-male-sign:before{content:"\eb55"}.bx-map:before{content:"\eb56"}.bx-map-alt:before{content:"\eb57"}.bx-map-pin:before{content:"\eb58"}.bx-mask:before{content:"\eb59"}.bx-medal:before{content:"\eb5a"}.bx-meh:before{content:"\eb5b"}.bx-meh-alt:before{content:"\eb5c"}.bx-meh-blank:before{content:"\eb5d"}.bx-memory-card:before{content:"\eb5e"}.bx-menu:before{content:"\eb5f"}.bx-menu-alt-left:before{content:"\ef5b"}.bx-menu-alt-right:before{content:"\eb61"}.bx-merge:before{content:"\eb62"}.bx-message:before{content:"\eb63"}.bx-message-add:before{content:"\eb64"}.bx-message-alt:before{content:"\eb65"}.bx-message-alt-add:before{content:"\eb66"}.bx-message-alt-check:before{content:"\eb67"}.bx-message-alt-detail:before{content:"\eb68"}.bx-message-alt-dots:before{content:"\eb69"}.bx-message-alt-edit:before{content:"\eb6a"}.bx-message-alt-error:before{content:"\eb6b"}.bx-message-alt-minus:before{content:"\eb6c"}.bx-message-alt-x:before{content:"\eb6d"}.bx-message-check:before{content:"\eb6e"}.bx-message-detail:before{content:"\eb6f"}.bx-message-dots:before{content:"\eb70"}.bx-message-edit:before{content:"\eb71"}.bx-message-error:before{content:"\eb72"}.bx-message-minus:before{content:"\eb73"}.bx-message-rounded:before{content:"\eb74"}.bx-message-rounded-add:before{content:"\eb75"}.bx-message-rounded-check:before{content:"\eb76"}.bx-message-rounded-detail:before{content:"\eb77"}.bx-message-rounded-dots:before{content:"\eb78"}.bx-message-rounded-edit:before{content:"\ef5c"}.bx-message-rounded-error:before{content:"\eb7a"}.bx-message-rounded-minus:before{content:"\eb7b"}.bx-message-rounded-x:before{content:"\eb7c"}.bx-message-square:before{content:"\eb7d"}.bx-message-square-add:before{content:"\eb7e"}.bx-message-square-check:before{content:"\eb7f"}.bx-message-square-detail:before{content:"\eb80"}.bx-message-square-dots:before{content:"\eb81"}.bx-message-square-edit:before{content:"\eb82"}.bx-message-square-error:before{content:"\eb83"}.bx-message-square-minus:before{content:"\eb84"}.bx-message-square-x:before{content:"\eb85"}.bx-message-x:before{content:"\eb86"}.bx-meteor:before{content:"\eb87"}.bx-microchip:before{content:"\eb88"}.bx-microphone:before{content:"\eb89"}.bx-microphone-off:before{content:"\eb8a"}.bx-minus:before{content:"\eb8b"}.bx-minus-back:before{content:"\eb8c"}.bx-minus-circle:before{content:"\eb8d"}.bx-minus-front:before{content:"\eb8e"}.bx-mobile:before{content:"\eb8f"}.bx-mobile-alt:before{content:"\eb90"}.bx-mobile-landscape:before{content:"\eb91"}.bx-mobile-vibration:before{content:"\ef5d"}.bx-money:before{content:"\eb93"}.bx-moon:before{content:"\eb94"}.bx-mouse:before{content:"\eb95"}.bx-mouse-alt:before{content:"\eb96"}.bx-move:before{content:"\eb97"}.bx-move-horizontal:before{content:"\eb98"}.bx-move-vertical:before{content:"\eb99"}.bx-movie:before{content:"\eb9a"}.bx-movie-play:before{content:"\eb9b"}.bx-music:before{content:"\eb9c"}.bx-navigation:before{content:"\eb9d"}.bx-network-chart:before{content:"\eb9e"}.bx-news:before{content:"\eb9f"}.bx-no-entry:before{content:"\eba0"}.bx-note:before{content:"\eba1"}.bx-notepad:before{content:"\eba2"}.bx-notification:before{content:"\eba3"}.bx-notification-off:before{content:"\eba4"}.bx-outline:before{content:"\eba5"}.bx-package:before{content:"\eba6"}.bx-paint:before{content:"\eba7"}.bx-paint-roll:before{content:"\eba8"}.bx-palette:before{content:"\eba9"}.bx-paperclip:before{content:"\ebaa"}.bx-paper-plane:before{content:"\ef61"}.bx-paragraph:before{content:"\ebac"}.bx-paste:before{content:"\ebad"}.bx-pause:before{content:"\ebae"}.bx-pause-circle:before{content:"\ebaf"}.bx-pen:before{content:"\ebb0"}.bx-pencil:before{content:"\ebb1"}.bx-phone:before{content:"\ebb2"}.bx-phone-call:before{content:"\ebb3"}.bx-phone-incoming:before{content:"\ebb4"}.bx-phone-off:before{content:"\ebb5"}.bx-phone-outgoing:before{content:"\ebb6"}.bx-photo-album:before{content:"\ebb7"}.bx-pie-chart:before{content:"\ebb8"}.bx-pie-chart-alt:before{content:"\ebb9"}.bx-pie-chart-alt-2:before{content:"\ebba"}.bx-pin:before{content:"\ebbb"}.bx-planet:before{content:"\ebbc"}.bx-play:before{content:"\ebbd"}.bx-play-circle:before{content:"\ebbe"}.bx-plug:before{content:"\ebbf"}.bx-plus:before{content:"\ebc0"}.bx-plus-circle:before{content:"\ebc1"}.bx-plus-medical:before{content:"\ebc2"}.bx-podcast:before{content:"\ebc3"}.bx-pointer:before{content:"\ef5e"}.bx-poll:before{content:"\ebc5"}.bx-polygon:before{content:"\ebc6"}.bx-pound:before{content:"\ebc7"}.bx-power-off:before{content:"\ebc8"}.bx-printer:before{content:"\ebc9"}.bx-pulse:before{content:"\ebca"}.bx-purchase-tag:before{content:"\ebcb"}.bx-purchase-tag-alt:before{content:"\ebcc"}.bx-pyramid:before{content:"\ebcd"}.bx-qr:before{content:"\ebce"}.bx-qr-scan:before{content:"\ebcf"}.bx-question-mark:before{content:"\ebd0"}.bx-radar:before{content:"\ebd1"}.bx-radio:before{content:"\ebd2"}.bx-radio-circle:before{content:"\ebd3"}.bx-radio-circle-marked:before{content:"\ebd4"}.bx-receipt:before{content:"\ebd5"}.bx-rectangle:before{content:"\ebd6"}.bx-recycle:before{content:"\ebd7"}.bx-redo:before{content:"\ebd8"}.bx-refresh:before{content:"\ebd9"}.bx-registered:before{content:"\ebda"}.bx-rename:before{content:"\ebdb"}.bx-repeat:before{content:"\ebdc"}.bx-reply:before{content:"\ef5f"}.bx-reply-all:before{content:"\ebde"}.bx-repost:before{content:"\ebdf"}.bx-reset:before{content:"\ebe0"}.bx-restaurant:before{content:"\ebe1"}.bx-revision:before{content:"\ebe2"}.bx-rewind:before{content:"\ebe3"}.bx-rewind-circle:before{content:"\ebe4"}.bx-right-arrow:before{content:"\ebe5"}.bx-right-arrow-alt:before{content:"\ebe6"}.bx-right-arrow-circle:before{content:"\ebe7"}.bx-right-down-arrow-circle:before{content:"\ebe8"}.bx-right-indent:before{content:"\ebe9"}.bx-right-top-arrow-circle:before{content:"\ebea"}.bx-rocket:before{content:"\ebeb"}.bx-rotate-left:before{content:"\ebec"}.bx-rotate-right:before{content:"\ebed"}.bx-rss:before{content:"\ebee"}.bx-ruble:before{content:"\ebef"}.bx-ruler:before{content:"\ebf0"}.bx-run:before{content:"\ebf1"}.bx-rupee:before{content:"\ebf2"}.bx-sad:before{content:"\ebf3"}.bx-save:before{content:"\ebf4"}.bx-scan:before{content:"\ebf5"}.bx-screenshot:before{content:"\ef60"}.bx-search:before{content:"\ebf7"}.bx-search-alt:before{content:"\ebf8"}.bx-search-alt-2:before{content:"\ebf9"}.bx-selection:before{content:"\ebfa"}.bx-select-multiple:before{content:"\ebfb"}.bx-send:before{content:"\ebfc"}.bx-server:before{content:"\ebfd"}.bx-shape-circle:before{content:"\ebfe"}.bx-shape-polygon:before{content:"\ebff"}.bx-shape-square:before{content:"\ec00"}.bx-shape-triangle:before{content:"\ec01"}.bx-share:before{content:"\ec02"}.bx-share-alt:before{content:"\ec03"}.bx-shekel:before{content:"\ec04"}.bx-shield:before{content:"\ec05"}.bx-shield-alt:before{content:"\ec06"}.bx-shield-alt-2:before{content:"\ec07"}.bx-shield-quarter:before{content:"\ec08"}.bx-shield-x:before{content:"\ec09"}.bx-shocked:before{content:"\ec0a"}.bx-shopping-bag:before{content:"\ec0b"}.bx-show:before{content:"\ec0c"}.bx-show-alt:before{content:"\ec0d"}.bx-shuffle:before{content:"\ec0e"}.bx-sidebar:before{content:"\ec0f"}.bx-sitemap:before{content:"\ec10"}.bx-skip-next:before{content:"\ec11"}.bx-skip-next-circle:before{content:"\ec12"}.bx-skip-previous:before{content:"\ec13"}.bx-skip-previous-circle:before{content:"\ec14"}.bx-sleepy:before{content:"\ec15"}.bx-slider:before{content:"\ec16"}.bx-slider-alt:before{content:"\ec17"}.bx-slideshow:before{content:"\ec18"}.bx-smile:before{content:"\ec19"}.bx-sort:before{content:"\ec1a"}.bx-sort-alt-2:before{content:"\ec1b"}.bx-sort-a-z:before{content:"\ec1c"}.bx-sort-down:before{content:"\ec1d"}.bx-sort-up:before{content:"\ec1e"}.bx-sort-z-a:before{content:"\ec1f"}.bx-spa:before{content:"\ec20"}.bx-space-bar:before{content:"\ec21"}.bx-speaker:before{content:"\ec22"}.bx-spray-can:before{content:"\ec23"}.bx-spreadsheet:before{content:"\ec24"}.bx-square:before{content:"\ec25"}.bx-square-rounded:before{content:"\ec26"}.bx-star:before{content:"\ec27"}.bx-station:before{content:"\ec28"}.bx-stats:before{content:"\ec29"}.bx-sticker:before{content:"\ec2a"}.bx-stop:before{content:"\ec2b"}.bx-stop-circle:before{content:"\ec2c"}.bx-stopwatch:before{content:"\ec2d"}.bx-store:before{content:"\ec2e"}.bx-store-alt:before{content:"\ec2f"}.bx-street-view:before{content:"\ec30"}.bx-strikethrough:before{content:"\ec31"}.bx-subdirectory-left:before{content:"\ec32"}.bx-subdirectory-right:before{content:"\ec33"}.bx-sun:before{content:"\ec34"}.bx-support:before{content:"\ec35"}.bx-swim:before{content:"\ec36"}.bx-sync:before{content:"\ec37"}.bx-tab:before{content:"\ec38"}.bx-table:before{content:"\ec39"}.bx-tachometer:before{content:"\ec3a"}.bx-tag:before{content:"\ec3b"}.bx-tag-alt:before{content:"\ec3c"}.bx-target-lock:before{content:"\ec3d"}.bx-task:before{content:"\ec3e"}.bx-task-x:before{content:"\ec3f"}.bx-taxi:before{content:"\ec40"}.bx-tennis-ball:before{content:"\ec41"}.bx-terminal:before{content:"\ec42"}.bx-test-tube:before{content:"\ec43"}.bx-text:before{content:"\ec44"}.bx-time:before{content:"\ec45"}.bx-time-five:before{content:"\ec46"}.bx-timer:before{content:"\ec47"}.bx-tired:before{content:"\ec48"}.bx-toggle-left:before{content:"\ec49"}.bx-toggle-right:before{content:"\ec4a"}.bx-tone:before{content:"\ec4b"}.bx-traffic-cone:before{content:"\ec4c"}.bx-train:before{content:"\ec4d"}.bx-transfer:before{content:"\ec4e"}.bx-transfer-alt:before{content:"\ec4f"}.bx-trash:before{content:"\ec50"}.bx-trash-alt:before{content:"\ec51"}.bx-trending-down:before{content:"\ec52"}.bx-trending-up:before{content:"\ec53"}.bx-trim:before{content:"\ec54"}.bx-trip:before{content:"\ec55"}.bx-trophy:before{content:"\ec56"}.bx-tv:before{content:"\ec57"}.bx-underline:before{content:"\ec58"}.bx-undo:before{content:"\ec59"}.bx-unite:before{content:"\ec5a"}.bx-unlink:before{content:"\ec5b"}.bx-up-arrow:before{content:"\ec5c"}.bx-up-arrow-alt:before{content:"\ec5d"}.bx-up-arrow-circle:before{content:"\ec5e"}.bx-upload:before{content:"\ec5f"}.bx-upside-down:before{content:"\ec60"}.bx-upvote:before{content:"\ec61"}.bx-usb:before{content:"\ec62"}.bx-user:before{content:"\ec63"}.bx-user-check:before{content:"\ec64"}.bx-user-circle:before{content:"\ec65"}.bx-user-minus:before{content:"\ec66"}.bx-user-pin:before{content:"\ec67"}.bx-user-plus:before{content:"\ec68"}.bx-user-voice:before{content:"\ec69"}.bx-user-x:before{content:"\ec6a"}.bx-vector:before{content:"\ec6b"}.bx-vertical-center:before{content:"\ec6c"}.bx-vial:before{content:"\ec6d"}.bx-video:before{content:"\ec6e"}.bx-video-off:before{content:"\ec6f"}.bx-video-plus:before{content:"\ec70"}.bx-video-recording:before{content:"\ec71"}.bx-voicemail:before{content:"\ec72"}.bx-volume:before{content:"\ec73"}.bx-volume-full:before{content:"\ec74"}.bx-volume-low:before{content:"\ec75"}.bx-volume-mute:before{content:"\ec76"}.bx-walk:before{content:"\ec77"}.bx-wallet:before{content:"\ec78"}.bx-wallet-alt:before{content:"\ec79"}.bx-water:before{content:"\ec7a"}.bx-webcam:before{content:"\ec7b"}.bx-wifi:before{content:"\ec7c"}.bx-wifi-0:before{content:"\ec7d"}.bx-wifi-1:before{content:"\ec7e"}.bx-wifi-2:before{content:"\ec7f"}.bx-wifi-off:before{content:"\ec80"}.bx-wind:before{content:"\ec81"}.bx-window:before{content:"\ec82"}.bx-window-alt:before{content:"\ec83"}.bx-window-close:before{content:"\ec84"}.bx-window-open:before{content:"\ec85"}.bx-windows:before{content:"\ec86"}.bx-wine:before{content:"\ec87"}.bx-wink-smile:before{content:"\ec88"}.bx-wink-tongue:before{content:"\ec89"}.bx-won:before{content:"\ec8a"}.bx-world:before{content:"\ec8b"}.bx-wrench:before{content:"\ec8c"}.bx-x:before{content:"\ec8d"}.bx-x-circle:before{content:"\ec8e"}.bx-yen:before{content:"\ec8f"}.bx-zoom-in:before{content:"\ec90"}.bx-zoom-out:before{content:"\ec91"}.bxs-party:before{content:"\ec92"}.bxs-hot:before{content:"\ec93"}.bxs-droplet:before{content:"\ec94"}.bxs-cat:before{content:"\ec95"}.bxs-dog:before{content:"\ec96"}.bxs-injection:before{content:"\ec97"}.bxs-leaf:before{content:"\ec98"}.bxs-add-to-queue:before{content:"\ec99"}.bxs-adjust:before{content:"\ec9a"}.bxs-adjust-alt:before{content:"\ec9b"}.bxs-alarm:before{content:"\ec9c"}.bxs-alarm-add:before{content:"\ec9d"}.bxs-alarm-exclamation:before{content:"\ec9e"}.bxs-alarm-off:before{content:"\ec9f"}.bxs-alarm-snooze:before{content:"\eca0"}.bxs-album:before{content:"\eca1"}.bxs-ambulance:before{content:"\eca2"}.bxs-analyse:before{content:"\eca3"}.bxs-angry:before{content:"\eca4"}.bxs-arch:before{content:"\eca5"}.bxs-archive:before{content:"\eca6"}.bxs-archive-in:before{content:"\eca7"}.bxs-archive-out:before{content:"\eca8"}.bxs-area:before{content:"\eca9"}.bxs-arrow-from-bottom:before{content:"\ecaa"}.bxs-arrow-from-left:before{content:"\ecab"}.bxs-arrow-from-right:before{content:"\ecac"}.bxs-arrow-from-top:before{content:"\ecad"}.bxs-arrow-to-bottom:before{content:"\ecae"}.bxs-arrow-to-left:before{content:"\ecaf"}.bxs-arrow-to-right:before{content:"\ecb0"}.bxs-arrow-to-top:before{content:"\ecb1"}.bxs-award:before{content:"\ecb2"}.bxs-baby-carriage:before{content:"\ecb3"}.bxs-backpack:before{content:"\ecb4"}.bxs-badge:before{content:"\ecb5"}.bxs-badge-check:before{content:"\ecb6"}.bxs-badge-dollar:before{content:"\ecb7"}.bxs-ball:before{content:"\ecb8"}.bxs-band-aid:before{content:"\ecb9"}.bxs-bank:before{content:"\ecba"}.bxs-bar-chart-alt-2:before{content:"\ecbb"}.bxs-bar-chart-square:before{content:"\ecbc"}.bxs-barcode:before{content:"\ecbd"}.bxs-baseball:before{content:"\ecbe"}.bxs-basket:before{content:"\ecbf"}.bxs-basketball:before{content:"\ecc0"}.bxs-bath:before{content:"\ecc1"}.bxs-battery:before{content:"\ecc2"}.bxs-battery-charging:before{content:"\ecc3"}.bxs-battery-full:before{content:"\ecc4"}.bxs-battery-low:before{content:"\ecc5"}.bxs-bed:before{content:"\ecc6"}.bxs-been-here:before{content:"\ecc7"}.bxs-beer:before{content:"\ecc8"}.bxs-bell:before{content:"\ecc9"}.bxs-bell-minus:before{content:"\ecca"}.bxs-bell-off:before{content:"\eccb"}.bxs-bell-plus:before{content:"\eccc"}.bxs-bell-ring:before{content:"\eccd"}.bxs-bible:before{content:"\ecce"}.bxs-binoculars:before{content:"\eccf"}.bxs-blanket:before{content:"\ecd0"}.bxs-bolt:before{content:"\ecd1"}.bxs-bolt-circle:before{content:"\ecd2"}.bxs-bomb:before{content:"\ecd3"}.bxs-bone:before{content:"\ecd4"}.bxs-bong:before{content:"\ecd5"}.bxs-book:before{content:"\ecd6"}.bxs-book-add:before{content:"\ecd7"}.bxs-book-alt:before{content:"\ecd8"}.bxs-book-bookmark:before{content:"\ecd9"}.bxs-book-content:before{content:"\ecda"}.bxs-book-heart:before{content:"\ecdb"}.bxs-bookmark:before{content:"\ecdc"}.bxs-bookmark-alt:before{content:"\ecdd"}.bxs-bookmark-alt-minus:before{content:"\ecde"}.bxs-bookmark-alt-plus:before{content:"\ecdf"}.bxs-bookmark-heart:before{content:"\ece0"}.bxs-bookmark-minus:before{content:"\ece1"}.bxs-bookmark-plus:before{content:"\ece2"}.bxs-bookmarks:before{content:"\ece3"}.bxs-bookmark-star:before{content:"\ece4"}.bxs-book-open:before{content:"\ece5"}.bxs-book-reader:before{content:"\ece6"}.bxs-bot:before{content:"\ece7"}.bxs-bowling-ball:before{content:"\ece8"}.bxs-box:before{content:"\ece9"}.bxs-brain:before{content:"\ecea"}.bxs-briefcase:before{content:"\eceb"}.bxs-briefcase-alt:before{content:"\ecec"}.bxs-briefcase-alt-2:before{content:"\eced"}.bxs-brightness:before{content:"\ecee"}.bxs-brightness-half:before{content:"\ecef"}.bxs-brush:before{content:"\ecf0"}.bxs-brush-alt:before{content:"\ecf1"}.bxs-bug:before{content:"\ecf2"}.bxs-bug-alt:before{content:"\ecf3"}.bxs-building:before{content:"\ecf4"}.bxs-building-house:before{content:"\ecf5"}.bxs-buildings:before{content:"\ecf6"}.bxs-bulb:before{content:"\ecf7"}.bxs-bullseye:before{content:"\ecf8"}.bxs-buoy:before{content:"\ecf9"}.bxs-bus:before{content:"\ecfa"}.bxs-business:before{content:"\ecfb"}.bxs-bus-school:before{content:"\ecfc"}.bxs-cabinet:before{content:"\ecfd"}.bxs-cake:before{content:"\ecfe"}.bxs-calculator:before{content:"\ecff"}.bxs-calendar:before{content:"\ed00"}.bxs-calendar-alt:before{content:"\ed01"}.bxs-calendar-check:before{content:"\ed02"}.bxs-calendar-edit:before{content:"\ed03"}.bxs-calendar-event:before{content:"\ed04"}.bxs-calendar-exclamation:before{content:"\ed05"}.bxs-calendar-heart:before{content:"\ed06"}.bxs-calendar-minus:before{content:"\ed07"}.bxs-calendar-plus:before{content:"\ed08"}.bxs-calendar-star:before{content:"\ed09"}.bxs-calendar-week:before{content:"\ed0a"}.bxs-calendar-x:before{content:"\ed0b"}.bxs-camera:before{content:"\ed0c"}.bxs-camera-home:before{content:"\ed0d"}.bxs-camera-movie:before{content:"\ed0e"}.bxs-camera-off:before{content:"\ed0f"}.bxs-camera-plus:before{content:"\ed10"}.bxs-capsule:before{content:"\ed11"}.bxs-captions:before{content:"\ed12"}.bxs-car:before{content:"\ed13"}.bxs-car-battery:before{content:"\ed14"}.bxs-car-crash:before{content:"\ed15"}.bxs-card:before{content:"\ed16"}.bxs-caret-down-circle:before{content:"\ed17"}.bxs-caret-down-square:before{content:"\ed18"}.bxs-caret-left-circle:before{content:"\ed19"}.bxs-caret-left-square:before{content:"\ed1a"}.bxs-caret-right-circle:before{content:"\ed1b"}.bxs-caret-right-square:before{content:"\ed1c"}.bxs-caret-up-circle:before{content:"\ed1d"}.bxs-caret-up-square:before{content:"\ed1e"}.bxs-car-garage:before{content:"\ed1f"}.bxs-car-mechanic:before{content:"\ed20"}.bxs-carousel:before{content:"\ed21"}.bxs-cart:before{content:"\ed22"}.bxs-cart-add:before{content:"\ed23"}.bxs-cart-alt:before{content:"\ed24"}.bxs-cart-download:before{content:"\ed25"}.bxs-car-wash:before{content:"\ed26"}.bxs-category:before{content:"\ed27"}.bxs-category-alt:before{content:"\ed28"}.bxs-cctv:before{content:"\ed29"}.bxs-certification:before{content:"\ed2a"}.bxs-chalkboard:before{content:"\ed2b"}.bxs-chart:before{content:"\ed2c"}.bxs-chat:before{content:"\ed2d"}.bxs-checkbox:before{content:"\ed2e"}.bxs-checkbox-checked:before{content:"\ed2f"}.bxs-checkbox-minus:before{content:"\ed30"}.bxs-check-circle:before{content:"\ed31"}.bxs-check-shield:before{content:"\ed32"}.bxs-check-square:before{content:"\ed33"}.bxs-chess:before{content:"\ed34"}.bxs-chevron-down:before{content:"\ed35"}.bxs-chevron-down-circle:before{content:"\ed36"}.bxs-chevron-down-square:before{content:"\ed37"}.bxs-chevron-left:before{content:"\ed38"}.bxs-chevron-left-circle:before{content:"\ed39"}.bxs-chevron-left-square:before{content:"\ed3a"}.bxs-chevron-right:before{content:"\ed3b"}.bxs-chevron-right-circle:before{content:"\ed3c"}.bxs-chevron-right-square:before{content:"\ed3d"}.bxs-chevrons-down:before{content:"\ed3e"}.bxs-chevrons-left:before{content:"\ed3f"}.bxs-chevrons-right:before{content:"\ed40"}.bxs-chevrons-up:before{content:"\ed41"}.bxs-chevron-up:before{content:"\ed42"}.bxs-chevron-up-circle:before{content:"\ed43"}.bxs-chevron-up-square:before{content:"\ed44"}.bxs-chip:before{content:"\ed45"}.bxs-church:before{content:"\ed46"}.bxs-circle:before{content:"\ed47"}.bxs-city:before{content:"\ed48"}.bxs-clinic:before{content:"\ed49"}.bxs-cloud:before{content:"\ed4a"}.bxs-cloud-download:before{content:"\ed4b"}.bxs-cloud-lightning:before{content:"\ed4c"}.bxs-cloud-rain:before{content:"\ed4d"}.bxs-cloud-upload:before{content:"\ed4e"}.bxs-coffee:before{content:"\ed4f"}.bxs-coffee-alt:before{content:"\ed50"}.bxs-coffee-togo:before{content:"\ed51"}.bxs-cog:before{content:"\ed52"}.bxs-coin:before{content:"\ed53"}.bxs-coin-stack:before{content:"\ed54"}.bxs-collection:before{content:"\ed55"}.bxs-color-fill:before{content:"\ed56"}.bxs-comment:before{content:"\ed57"}.bxs-comment-add:before{content:"\ed58"}.bxs-comment-check:before{content:"\ed59"}.bxs-comment-detail:before{content:"\ed5a"}.bxs-comment-dots:before{content:"\ed5b"}.bxs-comment-edit:before{content:"\ed5c"}.bxs-comment-error:before{content:"\ed5d"}.bxs-comment-minus:before{content:"\ed5e"}.bxs-comment-x:before{content:"\ed5f"}.bxs-compass:before{content:"\ed60"}.bxs-component:before{content:"\ed61"}.bxs-confused:before{content:"\ed62"}.bxs-contact:before{content:"\ed63"}.bxs-conversation:before{content:"\ed64"}.bxs-cookie:before{content:"\ed65"}.bxs-cool:before{content:"\ed66"}.bxs-copy:before{content:"\ed67"}.bxs-copy-alt:before{content:"\ed68"}.bxs-copyright:before{content:"\ed69"}.bxs-coupon:before{content:"\ed6a"}.bxs-credit-card:before{content:"\ed6b"}.bxs-credit-card-alt:before{content:"\ed6c"}.bxs-credit-card-front:before{content:"\ed6d"}.bxs-crop:before{content:"\ed6e"}.bxs-crown:before{content:"\ed6f"}.bxs-cube:before{content:"\ed70"}.bxs-cube-alt:before{content:"\ed71"}.bxs-cuboid:before{content:"\ed72"}.bxs-customize:before{content:"\ed73"}.bxs-cylinder:before{content:"\ed74"}.bxs-dashboard:before{content:"\ed75"}.bxs-data:before{content:"\ed76"}.bxs-detail:before{content:"\ed77"}.bxs-devices:before{content:"\ed78"}.bxs-diamond:before{content:"\ed79"}.bxs-dice-1:before{content:"\ed7a"}.bxs-dice-2:before{content:"\ed7b"}.bxs-dice-3:before{content:"\ed7c"}.bxs-dice-4:before{content:"\ed7d"}.bxs-dice-5:before{content:"\ed7e"}.bxs-dice-6:before{content:"\ed7f"}.bxs-direction-left:before{content:"\ed80"}.bxs-direction-right:before{content:"\ed81"}.bxs-directions:before{content:"\ed82"}.bxs-disc:before{content:"\ed83"}.bxs-discount:before{content:"\ed84"}.bxs-dish:before{content:"\ed85"}.bxs-dislike:before{content:"\ed86"}.bxs-dizzy:before{content:"\ed87"}.bxs-dock-bottom:before{content:"\ed88"}.bxs-dock-left:before{content:"\ed89"}.bxs-dock-right:before{content:"\ed8a"}.bxs-dock-top:before{content:"\ed8b"}.bxs-dollar-circle:before{content:"\ed8c"}.bxs-donate-blood:before{content:"\ed8d"}.bxs-donate-heart:before{content:"\ed8e"}.bxs-door-open:before{content:"\ed8f"}.bxs-doughnut-chart:before{content:"\ed90"}.bxs-down-arrow:before{content:"\ed91"}.bxs-down-arrow-alt:before{content:"\ed92"}.bxs-down-arrow-circle:before{content:"\ed93"}.bxs-down-arrow-square:before{content:"\ed94"}.bxs-download:before{content:"\ed95"}.bxs-downvote:before{content:"\ed96"}.bxs-drink:before{content:"\ed97"}.bxs-droplet-half:before{content:"\ed98"}.bxs-dryer:before{content:"\ed99"}.bxs-duplicate:before{content:"\ed9a"}.bxs-edit:before{content:"\ed9b"}.bxs-edit-alt:before{content:"\ed9c"}.bxs-edit-location:before{content:"\ed9d"}.bxs-eject:before{content:"\ed9e"}.bxs-envelope:before{content:"\ed9f"}.bxs-envelope-open:before{content:"\eda0"}.bxs-eraser:before{content:"\eda1"}.bxs-error:before{content:"\eda2"}.bxs-error-alt:before{content:"\eda3"}.bxs-error-circle:before{content:"\eda4"}.bxs-ev-station:before{content:"\eda5"}.bxs-exit:before{content:"\eda6"}.bxs-extension:before{content:"\eda7"}.bxs-eyedropper:before{content:"\eda8"}.bxs-face:before{content:"\eda9"}.bxs-face-mask:before{content:"\edaa"}.bxs-factory:before{content:"\edab"}.bxs-fast-forward-circle:before{content:"\edac"}.bxs-file:before{content:"\edad"}.bxs-file-archive:before{content:"\edae"}.bxs-file-blank:before{content:"\edaf"}.bxs-file-css:before{content:"\edb0"}.bxs-file-doc:before{content:"\edb1"}.bxs-file-export:before{content:"\edb2"}.bxs-file-find:before{content:"\edb3"}.bxs-file-gif:before{content:"\edb4"}.bxs-file-html:before{content:"\edb5"}.bxs-file-image:before{content:"\edb6"}.bxs-file-import:before{content:"\edb7"}.bxs-file-jpg:before{content:"\edb8"}.bxs-file-js:before{content:"\edb9"}.bxs-file-json:before{content:"\edba"}.bxs-file-md:before{content:"\edbb"}.bxs-file-pdf:before{content:"\edbc"}.bxs-file-plus:before{content:"\edbd"}.bxs-file-png:before{content:"\edbe"}.bxs-file-txt:before{content:"\edbf"}.bxs-film:before{content:"\edc0"}.bxs-filter-alt:before{content:"\edc1"}.bxs-first-aid:before{content:"\edc2"}.bxs-flag:before{content:"\edc3"}.bxs-flag-alt:before{content:"\edc4"}.bxs-flag-checkered:before{content:"\edc5"}.bxs-flame:before{content:"\edc6"}.bxs-flask:before{content:"\edc7"}.bxs-florist:before{content:"\edc8"}.bxs-folder:before{content:"\edc9"}.bxs-folder-minus:before{content:"\edca"}.bxs-folder-open:before{content:"\edcb"}.bxs-folder-plus:before{content:"\edcc"}.bxs-food-menu:before{content:"\edcd"}.bxs-fridge:before{content:"\edce"}.bxs-game:before{content:"\edcf"}.bxs-gas-pump:before{content:"\edd0"}.bxs-ghost:before{content:"\edd1"}.bxs-gift:before{content:"\edd2"}.bxs-graduation:before{content:"\edd3"}.bxs-grid:before{content:"\edd4"}.bxs-grid-alt:before{content:"\edd5"}.bxs-group:before{content:"\edd6"}.bxs-guitar-amp:before{content:"\edd7"}.bxs-hand:before{content:"\edd8"}.bxs-hand-down:before{content:"\edd9"}.bxs-hand-left:before{content:"\edda"}.bxs-hand-right:before{content:"\eddb"}.bxs-hand-up:before{content:"\eddc"}.bxs-happy:before{content:"\eddd"}.bxs-happy-alt:before{content:"\edde"}.bxs-happy-beaming:before{content:"\eddf"}.bxs-happy-heart-eyes:before{content:"\ede0"}.bxs-hdd:before{content:"\ede1"}.bxs-heart:before{content:"\ede2"}.bxs-heart-circle:before{content:"\ede3"}.bxs-heart-square:before{content:"\ede4"}.bxs-help-circle:before{content:"\ede5"}.bxs-hide:before{content:"\ede6"}.bxs-home:before{content:"\ede7"}.bxs-home-circle:before{content:"\ede8"}.bxs-home-heart:before{content:"\ede9"}.bxs-home-smile:before{content:"\edea"}.bxs-hotel:before{content:"\edeb"}.bxs-hourglass:before{content:"\edec"}.bxs-hourglass-bottom:before{content:"\eded"}.bxs-hourglass-top:before{content:"\edee"}.bxs-id-card:before{content:"\edef"}.bxs-image:before{content:"\edf0"}.bxs-image-add:before{content:"\edf1"}.bxs-image-alt:before{content:"\edf2"}.bxs-inbox:before{content:"\edf3"}.bxs-info-circle:before{content:"\edf4"}.bxs-info-square:before{content:"\edf5"}.bxs-institution:before{content:"\edf6"}.bxs-joystick:before{content:"\edf7"}.bxs-joystick-alt:before{content:"\edf8"}.bxs-joystick-button:before{content:"\edf9"}.bxs-key:before{content:"\edfa"}.bxs-keyboard:before{content:"\edfb"}.bxs-label:before{content:"\edfc"}.bxs-landmark:before{content:"\edfd"}.bxs-landscape:before{content:"\edfe"}.bxs-laugh:before{content:"\edff"}.bxs-layer:before{content:"\ee00"}.bxs-layer-minus:before{content:"\ee01"}.bxs-layer-plus:before{content:"\ee02"}.bxs-layout:before{content:"\ee03"}.bxs-left-arrow:before{content:"\ee04"}.bxs-left-arrow-alt:before{content:"\ee05"}.bxs-left-arrow-circle:before{content:"\ee06"}.bxs-left-arrow-square:before{content:"\ee07"}.bxs-left-down-arrow-circle:before{content:"\ee08"}.bxs-left-top-arrow-circle:before{content:"\ee09"}.bxs-like:before{content:"\ee0a"}.bxs-location-plus:before{content:"\ee0b"}.bxs-lock:before{content:"\ee0c"}.bxs-lock-alt:before{content:"\ee0d"}.bxs-lock-open:before{content:"\ee0e"}.bxs-lock-open-alt:before{content:"\ee0f"}.bxs-log-in:before{content:"\ee10"}.bxs-log-in-circle:before{content:"\ee11"}.bxs-log-out:before{content:"\ee12"}.bxs-log-out-circle:before{content:"\ee13"}.bxs-low-vision:before{content:"\ee14"}.bxs-magic-wand:before{content:"\ee15"}.bxs-magnet:before{content:"\ee16"}.bxs-map:before{content:"\ee17"}.bxs-map-alt:before{content:"\ee18"}.bxs-map-pin:before{content:"\ee19"}.bxs-mask:before{content:"\ee1a"}.bxs-medal:before{content:"\ee1b"}.bxs-megaphone:before{content:"\ee1c"}.bxs-meh:before{content:"\ee1d"}.bxs-meh-alt:before{content:"\ee1e"}.bxs-meh-blank:before{content:"\ee1f"}.bxs-memory-card:before{content:"\ee20"}.bxs-message:before{content:"\ee21"}.bxs-message-add:before{content:"\ee22"}.bxs-message-alt:before{content:"\ee23"}.bxs-message-alt-add:before{content:"\ee24"}.bxs-message-alt-check:before{content:"\ee25"}.bxs-message-alt-detail:before{content:"\ee26"}.bxs-message-alt-dots:before{content:"\ee27"}.bxs-message-alt-edit:before{content:"\ee28"}.bxs-message-alt-error:before{content:"\ee29"}.bxs-message-alt-minus:before{content:"\ee2a"}.bxs-message-alt-x:before{content:"\ee2b"}.bxs-message-check:before{content:"\ee2c"}.bxs-message-detail:before{content:"\ee2d"}.bxs-message-dots:before{content:"\ee2e"}.bxs-message-edit:before{content:"\ee2f"}.bxs-message-error:before{content:"\ee30"}.bxs-message-minus:before{content:"\ee31"}.bxs-message-rounded:before{content:"\ee32"}.bxs-message-rounded-add:before{content:"\ee33"}.bxs-message-rounded-check:before{content:"\ee34"}.bxs-message-rounded-detail:before{content:"\ee35"}.bxs-message-rounded-dots:before{content:"\ee36"}.bxs-message-rounded-edit:before{content:"\ee37"}.bxs-message-rounded-error:before{content:"\ee38"}.bxs-message-rounded-minus:before{content:"\ee39"}.bxs-message-rounded-x:before{content:"\ee3a"}.bxs-message-square:before{content:"\ee3b"}.bxs-message-square-add:before{content:"\ee3c"}.bxs-message-square-check:before{content:"\ee3d"}.bxs-message-square-detail:before{content:"\ee3e"}.bxs-message-square-dots:before{content:"\ee3f"}.bxs-message-square-edit:before{content:"\ee40"}.bxs-message-square-error:before{content:"\ee41"}.bxs-message-square-minus:before{content:"\ee42"}.bxs-message-square-x:before{content:"\ee43"}.bxs-message-x:before{content:"\ee44"}.bxs-meteor:before{content:"\ee45"}.bxs-microchip:before{content:"\ee46"}.bxs-microphone:before{content:"\ee47"}.bxs-microphone-alt:before{content:"\ee48"}.bxs-microphone-off:before{content:"\ee49"}.bxs-minus-circle:before{content:"\ee4a"}.bxs-minus-square:before{content:"\ee4b"}.bxs-mobile:before{content:"\ee4c"}.bxs-mobile-vibration:before{content:"\ee4d"}.bxs-moon:before{content:"\ee4e"}.bxs-mouse:before{content:"\ee4f"}.bxs-mouse-alt:before{content:"\ee50"}.bxs-movie:before{content:"\ee51"}.bxs-movie-play:before{content:"\ee52"}.bxs-music:before{content:"\ee53"}.bxs-navigation:before{content:"\ee54"}.bxs-network-chart:before{content:"\ee55"}.bxs-news:before{content:"\ee56"}.bxs-no-entry:before{content:"\ee57"}.bxs-note:before{content:"\ee58"}.bxs-notepad:before{content:"\ee59"}.bxs-notification:before{content:"\ee5a"}.bxs-notification-off:before{content:"\ee5b"}.bxs-offer:before{content:"\ee5c"}.bxs-package:before{content:"\ee5d"}.bxs-paint:before{content:"\ee5e"}.bxs-paint-roll:before{content:"\ee5f"}.bxs-palette:before{content:"\ee60"}.bxs-paper-plane:before{content:"\ee61"}.bxs-parking:before{content:"\ee62"}.bxs-paste:before{content:"\ee63"}.bxs-pen:before{content:"\ee64"}.bxs-pencil:before{content:"\ee65"}.bxs-phone:before{content:"\ee66"}.bxs-phone-call:before{content:"\ee67"}.bxs-phone-incoming:before{content:"\ee68"}.bxs-phone-off:before{content:"\ee69"}.bxs-phone-outgoing:before{content:"\ee6a"}.bxs-photo-album:before{content:"\ee6b"}.bxs-piano:before{content:"\ee6c"}.bxs-pie-chart:before{content:"\ee6d"}.bxs-pie-chart-alt:before{content:"\ee6e"}.bxs-pie-chart-alt-2:before{content:"\ee6f"}.bxs-pin:before{content:"\ee70"}.bxs-pizza:before{content:"\ee71"}.bxs-plane:before{content:"\ee72"}.bxs-plane-alt:before{content:"\ee73"}.bxs-plane-land:before{content:"\ee74"}.bxs-planet:before{content:"\ee75"}.bxs-plane-take-off:before{content:"\ee76"}.bxs-playlist:before{content:"\ee77"}.bxs-plug:before{content:"\ee78"}.bxs-plus-circle:before{content:"\ee79"}.bxs-plus-square:before{content:"\ee7a"}.bxs-pointer:before{content:"\ee7b"}.bxs-polygon:before{content:"\ee7c"}.bxs-printer:before{content:"\ee7d"}.bxs-purchase-tag:before{content:"\ee7e"}.bxs-purchase-tag-alt:before{content:"\ee7f"}.bxs-pyramid:before{content:"\ee80"}.bxs-quote-alt-left:before{content:"\ee81"}.bxs-quote-alt-right:before{content:"\ee82"}.bxs-quote-left:before{content:"\ee83"}.bxs-quote-right:before{content:"\ee84"}.bxs-quote-single-left:before{content:"\ee85"}.bxs-quote-single-right:before{content:"\ee86"}.bxs-radiation:before{content:"\ee87"}.bxs-radio:before{content:"\ee88"}.bxs-receipt:before{content:"\ee89"}.bxs-rectangle:before{content:"\ee8a"}.bxs-registered:before{content:"\ee8b"}.bxs-rename:before{content:"\ee8c"}.bxs-report:before{content:"\ee8d"}.bxs-rewind-circle:before{content:"\ee8e"}.bxs-right-arrow:before{content:"\ee8f"}.bxs-right-arrow-alt:before{content:"\ee90"}.bxs-right-arrow-circle:before{content:"\ee91"}.bxs-right-arrow-square:before{content:"\ee92"}.bxs-right-down-arrow-circle:before{content:"\ee93"}.bxs-right-top-arrow-circle:before{content:"\ee94"}.bxs-rocket:before{content:"\ee95"}.bxs-ruler:before{content:"\ee96"}.bxs-sad:before{content:"\ee97"}.bxs-save:before{content:"\ee98"}.bxs-school:before{content:"\ee99"}.bxs-search:before{content:"\ee9a"}.bxs-search-alt-2:before{content:"\ee9b"}.bxs-select-multiple:before{content:"\ee9c"}.bxs-send:before{content:"\ee9d"}.bxs-server:before{content:"\ee9e"}.bxs-shapes:before{content:"\ee9f"}.bxs-share:before{content:"\eea0"}.bxs-share-alt:before{content:"\eea1"}.bxs-shield:before{content:"\eea2"}.bxs-shield-alt-2:before{content:"\eea3"}.bxs-shield-x:before{content:"\eea4"}.bxs-ship:before{content:"\eea5"}.bxs-shocked:before{content:"\eea6"}.bxs-shopping-bag:before{content:"\eea7"}.bxs-shopping-bag-alt:before{content:"\eea8"}.bxs-shopping-bags:before{content:"\eea9"}.bxs-show:before{content:"\eeaa"}.bxs-skip-next-circle:before{content:"\eeab"}.bxs-skip-previous-circle:before{content:"\eeac"}.bxs-skull:before{content:"\eead"}.bxs-sleepy:before{content:"\eeae"}.bxs-slideshow:before{content:"\eeaf"}.bxs-smile:before{content:"\eeb0"}.bxs-sort-alt:before{content:"\eeb1"}.bxs-spa:before{content:"\eeb2"}.bxs-speaker:before{content:"\eeb3"}.bxs-spray-can:before{content:"\eeb4"}.bxs-spreadsheet:before{content:"\eeb5"}.bxs-square:before{content:"\eeb6"}.bxs-square-rounded:before{content:"\eeb7"}.bxs-star:before{content:"\eeb8"}.bxs-star-half:before{content:"\eeb9"}.bxs-sticker:before{content:"\eeba"}.bxs-stopwatch:before{content:"\eebb"}.bxs-store:before{content:"\eebc"}.bxs-store-alt:before{content:"\eebd"}.bxs-sun:before{content:"\eebe"}.bxs-tachometer:before{content:"\eebf"}.bxs-tag:before{content:"\eec0"}.bxs-tag-alt:before{content:"\eec1"}.bxs-tag-x:before{content:"\eec2"}.bxs-taxi:before{content:"\eec3"}.bxs-tennis-ball:before{content:"\eec4"}.bxs-terminal:before{content:"\eec5"}.bxs-thermometer:before{content:"\eec6"}.bxs-time:before{content:"\eec7"}.bxs-time-five:before{content:"\eec8"}.bxs-timer:before{content:"\eec9"}.bxs-tired:before{content:"\eeca"}.bxs-toggle-left:before{content:"\eecb"}.bxs-toggle-right:before{content:"\eecc"}.bxs-tone:before{content:"\eecd"}.bxs-torch:before{content:"\eece"}.bxs-to-top:before{content:"\eecf"}.bxs-traffic:before{content:"\eed0"}.bxs-traffic-barrier:before{content:"\eed1"}.bxs-traffic-cone:before{content:"\eed2"}.bxs-train:before{content:"\eed3"}.bxs-trash:before{content:"\eed4"}.bxs-trash-alt:before{content:"\eed5"}.bxs-tree:before{content:"\eed6"}.bxs-trophy:before{content:"\eed7"}.bxs-truck:before{content:"\eed8"}.bxs-t-shirt:before{content:"\eed9"}.bxs-tv:before{content:"\eeda"}.bxs-up-arrow:before{content:"\eedb"}.bxs-up-arrow-alt:before{content:"\eedc"}.bxs-up-arrow-circle:before{content:"\eedd"}.bxs-up-arrow-square:before{content:"\eede"}.bxs-upside-down:before{content:"\eedf"}.bxs-upvote:before{content:"\eee0"}.bxs-user:before{content:"\eee1"}.bxs-user-account:before{content:"\eee2"}.bxs-user-badge:before{content:"\eee3"}.bxs-user-check:before{content:"\eee4"}.bxs-user-circle:before{content:"\eee5"}.bxs-user-detail:before{content:"\eee6"}.bxs-user-minus:before{content:"\eee7"}.bxs-user-pin:before{content:"\eee8"}.bxs-user-plus:before{content:"\eee9"}.bxs-user-rectangle:before{content:"\eeea"}.bxs-user-voice:before{content:"\eeeb"}.bxs-user-x:before{content:"\eeec"}.bxs-vector:before{content:"\eeed"}.bxs-vial:before{content:"\eeee"}.bxs-video:before{content:"\eeef"}.bxs-video-off:before{content:"\eef0"}.bxs-video-plus:before{content:"\eef1"}.bxs-video-recording:before{content:"\eef2"}.bxs-videos:before{content:"\eef3"}.bxs-virus:before{content:"\eef4"}.bxs-virus-block:before{content:"\eef5"}.bxs-volume:before{content:"\eef6"}.bxs-volume-full:before{content:"\eef7"}.bxs-volume-low:before{content:"\eef8"}.bxs-volume-mute:before{content:"\eef9"}.bxs-wallet:before{content:"\eefa"}.bxs-wallet-alt:before{content:"\eefb"}.bxs-washer:before{content:"\eefc"}.bxs-watch:before{content:"\eefd"}.bxs-watch-alt:before{content:"\eefe"}.bxs-webcam:before{content:"\eeff"}.bxs-widget:before{content:"\ef00"}.bxs-window-alt:before{content:"\ef01"}.bxs-wine:before{content:"\ef02"}.bxs-wink-smile:before{content:"\ef03"}.bxs-wink-tongue:before{content:"\ef04"}.bxs-wrench:before{content:"\ef05"}.bxs-x-circle:before{content:"\ef06"}.bxs-x-square:before{content:"\ef07"}.bxs-yin-yang:before{content:"\ef08"}.bxs-zap:before{content:"\ef09"}.bxs-zoom-in:before{content:"\ef0a"}.bxs-zoom-out:before{content:"\ef0b"} \ No newline at end of file diff --git a/static/assets/clutch-rating.png b/static/assets/clutch-rating.png deleted file mode 100644 index dc4e301a7982788236c33840afaa6c9165c95d56..0000000000000000000000000000000000000000 Binary files a/static/assets/clutch-rating.png and /dev/null differ diff --git a/static/assets/clutch.png b/static/assets/clutch.png deleted file mode 100644 index ae73572930a8d0210d4c33b4d13d84c5b5dfd226..0000000000000000000000000000000000000000 Binary files a/static/assets/clutch.png and /dev/null differ diff --git a/static/assets/good-firms.png b/static/assets/good-firms.png deleted file mode 100644 index 22d3e28614ad49b1852e8d3e005c683fabb37401..0000000000000000000000000000000000000000 Binary files a/static/assets/good-firms.png and /dev/null differ diff --git a/static/assets/jarallax.min.js b/static/assets/jarallax.min.js deleted file mode 100644 index c3e934bbcbfefe075c74daa3c17b5aa58656d4dc..0000000000000000000000000000000000000000 --- a/static/assets/jarallax.min.js +++ /dev/null @@ -1,6 +0,0 @@ -/*! - * Jarallax v2.2.1 (https://github.com/nk-o/jarallax) - * Copyright 2024 nK - * Licensed under MIT (https://github.com/nk-o/jarallax/blob/master/LICENSE) - */ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).jarallax=t()}(this,(function(){"use strict";function e(e){"complete"===document.readyState||"interactive"===document.readyState?e():document.addEventListener("DOMContentLoaded",e,{capture:!0,once:!0,passive:!0})}let t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};var i=t,o={type:"scroll",speed:.5,containerClass:"jarallax-container",imgSrc:null,imgElement:".jarallax-img",imgSize:"cover",imgPosition:"50% 50%",imgRepeat:"no-repeat",keepImg:!1,elementInViewport:null,zIndex:-100,disableParallax:!1,onScroll:null,onInit:null,onDestroy:null,onCoverImage:null,videoClass:"jarallax-video",videoSrc:null,videoStartTime:0,videoEndTime:0,videoVolume:0,videoLoop:!0,videoPlayOnlyVisible:!0,videoLazyLoading:!0,disableVideo:!1,onVideoInsert:null,onVideoWorkerInit:null};const{navigator:n}=i,a=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(n.userAgent);let s,l,r;function c(){s=i.innerWidth||document.documentElement.clientWidth,a?(!r&&document.body&&(r=document.createElement("div"),r.style.cssText="position: fixed; top: -9999px; left: 0; height: 100vh; width: 0;",document.body.appendChild(r)),l=(r?r.clientHeight:0)||i.innerHeight||document.documentElement.clientHeight):l=i.innerHeight||document.documentElement.clientHeight}function p(){return{width:s,height:l}}c(),i.addEventListener("resize",c),i.addEventListener("orientationchange",c),i.addEventListener("load",c),e((()=>{c()}));const m=[];function d(){if(!m.length)return;const{width:e,height:t}=p();m.forEach(((i,o)=>{const{instance:n,oldData:a}=i;if(!n.isVisible())return;const s=n.$item.getBoundingClientRect(),l={width:s.width,height:s.height,top:s.top,bottom:s.bottom,wndW:e,wndH:t},r=!a||a.wndW!==l.wndW||a.wndH!==l.wndH||a.width!==l.width||a.height!==l.height,c=r||!a||a.top!==l.top||a.bottom!==l.bottom;m[o].oldData=l,r&&n.onResize(),c&&n.onScroll()})),i.requestAnimationFrame(d)}const g=new i.IntersectionObserver((e=>{e.forEach((e=>{e.target.jarallax.isElementInViewport=e.isIntersecting}))}),{rootMargin:"50px"});const{navigator:u}=i;let f=0;class h{constructor(e,t){const i=this;i.instanceID=f,f+=1,i.$item=e,i.defaults={...o};const n=i.$item.dataset||{},a={};if(Object.keys(n).forEach((e=>{const t=e.substr(0,1).toLowerCase()+e.substr(1);t&&void 0!==i.defaults[t]&&(a[t]=n[e])})),i.options=i.extend({},i.defaults,a,t),i.pureOptions=i.extend({},i.options),Object.keys(i.options).forEach((e=>{"true"===i.options[e]?i.options[e]=!0:"false"===i.options[e]&&(i.options[e]=!1)})),i.options.speed=Math.min(2,Math.max(-1,parseFloat(i.options.speed))),"string"==typeof i.options.disableParallax&&(i.options.disableParallax=new RegExp(i.options.disableParallax)),i.options.disableParallax instanceof RegExp){const e=i.options.disableParallax;i.options.disableParallax=()=>e.test(u.userAgent)}if("function"!=typeof i.options.disableParallax){const e=i.options.disableParallax;i.options.disableParallax=()=>!0===e}if("string"==typeof i.options.disableVideo&&(i.options.disableVideo=new RegExp(i.options.disableVideo)),i.options.disableVideo instanceof RegExp){const e=i.options.disableVideo;i.options.disableVideo=()=>e.test(u.userAgent)}if("function"!=typeof i.options.disableVideo){const e=i.options.disableVideo;i.options.disableVideo=()=>!0===e}let s=i.options.elementInViewport;s&&"object"==typeof s&&void 0!==s.length&&([s]=s),s instanceof Element||(s=null),i.options.elementInViewport=s,i.image={src:i.options.imgSrc||null,$container:null,useImgTag:!1,position:"fixed"},i.initImg()&&i.canInitParallax()&&i.init()}css(e,t){return function(e,t){return"string"==typeof t?i.getComputedStyle(e).getPropertyValue(t):(Object.keys(t).forEach((i=>{e.style[i]=t[i]})),e)}(e,t)}extend(e,...t){return function(e,...t){return e=e||{},Object.keys(t).forEach((i=>{t[i]&&Object.keys(t[i]).forEach((o=>{e[o]=t[i][o]}))})),e}(e,...t)}getWindowData(){const{width:e,height:t}=p();return{width:e,height:t,y:document.documentElement.scrollTop}}initImg(){const e=this;let t=e.options.imgElement;return t&&"string"==typeof t&&(t=e.$item.querySelector(t)),t instanceof Element||(e.options.imgSrc?(t=new Image,t.src=e.options.imgSrc):t=null),t&&(e.options.keepImg?e.image.$item=t.cloneNode(!0):(e.image.$item=t,e.image.$itemParent=t.parentNode),e.image.useImgTag=!0),!!e.image.$item||(null===e.image.src&&(e.image.src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",e.image.bgImage=e.css(e.$item,"background-image")),!(!e.image.bgImage||"none"===e.image.bgImage))}canInitParallax(){return!this.options.disableParallax()}init(){const e=this,t={position:"absolute",top:0,left:0,width:"100%",height:"100%",overflow:"hidden"};let o={pointerEvents:"none",transformStyle:"preserve-3d",backfaceVisibility:"hidden"};if(!e.options.keepImg){const t=e.$item.getAttribute("style");if(t&&e.$item.setAttribute("data-jarallax-original-styles",t),e.image.useImgTag){const t=e.image.$item.getAttribute("style");t&&e.image.$item.setAttribute("data-jarallax-original-styles",t)}}if("static"===e.css(e.$item,"position")&&e.css(e.$item,{position:"relative"}),"auto"===e.css(e.$item,"z-index")&&e.css(e.$item,{zIndex:0}),e.image.$container=document.createElement("div"),e.css(e.image.$container,t),e.css(e.image.$container,{"z-index":e.options.zIndex}),"fixed"===this.image.position&&e.css(e.image.$container,{"-webkit-clip-path":"polygon(0 0, 100% 0, 100% 100%, 0 100%)","clip-path":"polygon(0 0, 100% 0, 100% 100%, 0 100%)"}),e.image.$container.setAttribute("id",`jarallax-container-${e.instanceID}`),e.options.containerClass&&e.image.$container.setAttribute("class",e.options.containerClass),e.$item.appendChild(e.image.$container),e.image.useImgTag?o=e.extend({"object-fit":e.options.imgSize,"object-position":e.options.imgPosition,"max-width":"none"},t,o):(e.image.$item=document.createElement("div"),e.image.src&&(o=e.extend({"background-position":e.options.imgPosition,"background-size":e.options.imgSize,"background-repeat":e.options.imgRepeat,"background-image":e.image.bgImage||`url("${e.image.src}")`},t,o))),"opacity"!==e.options.type&&"scale"!==e.options.type&&"scale-opacity"!==e.options.type&&1!==e.options.speed||(e.image.position="absolute"),"fixed"===e.image.position){const t=function(e){const t=[];for(;null!==e.parentElement;)1===(e=e.parentElement).nodeType&&t.push(e);return t}(e.$item).filter((e=>{const t=i.getComputedStyle(e),o=t["-webkit-transform"]||t["-moz-transform"]||t.transform;return o&&"none"!==o||/(auto|scroll)/.test(t.overflow+t["overflow-y"]+t["overflow-x"])}));e.image.position=t.length?"absolute":"fixed"}var n;o.position=e.image.position,e.css(e.image.$item,o),e.image.$container.appendChild(e.image.$item),e.onResize(),e.onScroll(!0),e.options.onInit&&e.options.onInit.call(e),"none"!==e.css(e.$item,"background-image")&&e.css(e.$item,{"background-image":"none"}),n=e,m.push({instance:n}),1===m.length&&i.requestAnimationFrame(d),g.observe(n.options.elementInViewport||n.$item)}destroy(){const e=this;var t;t=e,m.forEach(((e,i)=>{e.instance.instanceID===t.instanceID&&m.splice(i,1)})),g.unobserve(t.options.elementInViewport||t.$item);const i=e.$item.getAttribute("data-jarallax-original-styles");if(e.$item.removeAttribute("data-jarallax-original-styles"),i?e.$item.setAttribute("style",i):e.$item.removeAttribute("style"),e.image.useImgTag){const t=e.image.$item.getAttribute("data-jarallax-original-styles");e.image.$item.removeAttribute("data-jarallax-original-styles"),t?e.image.$item.setAttribute("style",i):e.image.$item.removeAttribute("style"),e.image.$itemParent&&e.image.$itemParent.appendChild(e.image.$item)}e.image.$container&&e.image.$container.parentNode.removeChild(e.image.$container),e.options.onDestroy&&e.options.onDestroy.call(e),delete e.$item.jarallax}coverImage(){const e=this,{height:t}=p(),i=e.image.$container.getBoundingClientRect(),o=i.height,{speed:n}=e.options,a="scroll"===e.options.type||"scroll-opacity"===e.options.type;let s=0,l=o,r=0;return a&&(n<0?(s=n*Math.max(o,t),t1?l=Math.abs(s-t):n<0?l=s/n+Math.abs(s):l+=(t-o)*(1-n),s/=2),e.parallaxScrollDistance=s,r=a?(t-l)/2:(o-l)/2,e.css(e.image.$item,{height:`${l}px`,marginTop:`${r}px`,left:"fixed"===e.image.position?`${i.left}px`:"0",width:`${i.width}px`}),e.options.onCoverImage&&e.options.onCoverImage.call(e),{image:{height:l,marginTop:r},container:i}}isVisible(){return this.isElementInViewport||!1}onScroll(e){const t=this;if(!e&&!t.isVisible())return;const{height:i}=p(),o=t.$item.getBoundingClientRect(),n=o.top,a=o.height,s={},l=Math.max(0,n),r=Math.max(0,a+n),c=Math.max(0,-n),m=Math.max(0,n+a-i),d=Math.max(0,a-(n+a-i)),g=Math.max(0,-n+i-a),u=1-(i-n)/(i+a)*2;let f=1;if(a{b(document.querySelectorAll("[data-jarallax]"))})),b}));//# sourceMappingURL=jarallax.min.js.map diff --git a/static/assets/java.png b/static/assets/java.png deleted file mode 100644 index a303712f5f1b151231389179e01c3b2a1107540d..0000000000000000000000000000000000000000 Binary files a/static/assets/java.png and /dev/null differ diff --git a/static/assets/landings.jpg b/static/assets/landings.jpg deleted file mode 100644 index 419cbcd066ea03e99c6ee69f072b36660a028bea..0000000000000000000000000000000000000000 Binary files a/static/assets/landings.jpg and /dev/null differ diff --git a/static/assets/logo.svg b/static/assets/logo.svg deleted file mode 100644 index bdb9393abd7466ca93d3347f470325dfd56ab33c..0000000000000000000000000000000000000000 --- a/static/assets/logo.svg +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/static/assets/node-dark.png b/static/assets/node-dark.png deleted file mode 100644 index f9d4dfedd5417a8c427c9755cdf56cc3e94dc1b1..0000000000000000000000000000000000000000 Binary files a/static/assets/node-dark.png and /dev/null differ diff --git a/static/assets/node-light.png b/static/assets/node-light.png deleted file mode 100644 index 125f149d4ea242f6705fb5159266c76b7e07f9ff..0000000000000000000000000000000000000000 Binary files a/static/assets/node-light.png and /dev/null differ diff --git a/static/assets/product-hunt.png b/static/assets/product-hunt.png deleted file mode 100644 index 6103cecc6dcc2cd883fcfa3d1faa4f40947182bb..0000000000000000000000000000000000000000 Binary files a/static/assets/product-hunt.png and /dev/null differ diff --git a/static/assets/react.png b/static/assets/react.png deleted file mode 100644 index 27e01f645b2685fb06620d04de76186d76c3ba31..0000000000000000000000000000000000000000 Binary files a/static/assets/react.png and /dev/null differ diff --git a/static/assets/rellax.min.js b/static/assets/rellax.min.js deleted file mode 100644 index 19561c4cc8d715d13d4d9dda517969baa11b9dc8..0000000000000000000000000000000000000000 --- a/static/assets/rellax.min.js +++ /dev/null @@ -1,14 +0,0 @@ -(function(q,g){"function"===typeof define&&define.amd?define([],g):"object"===typeof module&&module.exports?module.exports=g():q.Rellax=g()})("undefined"!==typeof window?window:global,function(){var q=function(g,u){function C(){if(3===a.options.breakpoints.length&&Array.isArray(a.options.breakpoints)){var f=!0,c=!0,b;a.options.breakpoints.forEach(function(a){"number"!==typeof a&&(c=!1);null!==b&&a=f[0]&&n< -f[1]?"sm":n>=f[1]&&n=d[c].max?d[c].max:e),a.options.horizontal&&!a.options.vertical&&(b=b>=d[c].max?d[c].max:b));null!=d[c].maxY&&(e=e>=d[c].maxY?d[c].maxY:e);null!=d[c].maxX&&(b=b>=d[c].maxX?d[c].maxX:b);a.elems[c].style[E]="translate3d("+(a.options.horizontal?b:"0")+"px,"+(a.options.vertical?e:"0")+"px,"+d[c].zindex+"px) "+d[c].transform}a.options.callback(f)}; -a.destroy=function(){for(var f=0;f.swiper-wrapper{flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:flex;transition-property:transform;transition-timing-function:var(--swiper-wrapper-transition-timing-function,initial);box-sizing:content-box}.swiper-android .swiper-slide,.swiper-ios .swiper-slide,.swiper-wrapper{transform:translate3d(0px,0,0)}.swiper-horizontal{touch-action:pan-y}.swiper-vertical{touch-action:pan-x}.swiper-slide{flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform;display:block}.swiper-slide-invisible-blank{visibility:hidden}.swiper-autoheight,.swiper-autoheight .swiper-slide{height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden .swiper-slide{transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d{perspective:1200px}.swiper-3d .swiper-cube-shadow,.swiper-3d .swiper-slide{transform-style:preserve-3d}.swiper-css-mode>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.swiper-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-css-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:start start}.swiper-css-mode.swiper-horizontal>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-css-mode.swiper-vertical>.swiper-wrapper{scroll-snap-type:y mandatory}.swiper-css-mode.swiper-free-mode>.swiper-wrapper{scroll-snap-type:none}.swiper-css-mode.swiper-free-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:none}.swiper-css-mode.swiper-centered>.swiper-wrapper::before{content:'';flex-shrink:0;order:9999}.swiper-css-mode.swiper-centered>.swiper-wrapper>.swiper-slide{scroll-snap-align:center center;scroll-snap-stop:always}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper>.swiper-slide:first-child{margin-inline-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper::before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper>.swiper-slide:first-child{margin-block-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper::before{width:100%;min-width:1px;height:var(--swiper-centered-offset-after)}.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-bottom,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}.swiper-3d .swiper-slide-shadow{background:rgba(0,0,0,.15)}.swiper-3d .swiper-slide-shadow-left{background-image:linear-gradient(to left,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-right{background-image:linear-gradient(to right,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-top{background-image:linear-gradient(to top,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-bottom{background-image:linear-gradient(to bottom,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-lazy-preloader{width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;transform-origin:50%;box-sizing:border-box;border:4px solid var(--swiper-preloader-color,var(--swiper-theme-color));border-radius:50%;border-top-color:transparent}.swiper-watch-progress .swiper-slide-visible .swiper-lazy-preloader,.swiper:not(.swiper-watch-progress) .swiper-lazy-preloader{animation:swiper-preloader-spin 1s infinite linear}.swiper-lazy-preloader-white{--swiper-preloader-color:#fff}.swiper-lazy-preloader-black{--swiper-preloader-color:#000}@keyframes swiper-preloader-spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.swiper-virtual .swiper-slide{-webkit-backface-visibility:hidden;transform:translateZ(0)}.swiper-virtual.swiper-css-mode .swiper-wrapper::after{content:'';position:absolute;left:0;top:0;pointer-events:none}.swiper-virtual.swiper-css-mode.swiper-horizontal .swiper-wrapper::after{height:1px;width:var(--swiper-virtual-size)}.swiper-virtual.swiper-css-mode.swiper-vertical .swiper-wrapper::after{width:1px;height:var(--swiper-virtual-size)}:root{--swiper-navigation-size:44px}.swiper-button-next,.swiper-button-prev{position:absolute;top:var(--swiper-navigation-top-offset,50%);width:calc(var(--swiper-navigation-size)/ 44 * 27);height:var(--swiper-navigation-size);margin-top:calc(0px - (var(--swiper-navigation-size)/ 2));z-index:10;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--swiper-navigation-color,var(--swiper-theme-color))}.swiper-button-next.swiper-button-disabled,.swiper-button-prev.swiper-button-disabled{opacity:.35;cursor:auto;pointer-events:none}.swiper-button-next.swiper-button-hidden,.swiper-button-prev.swiper-button-hidden{opacity:0;cursor:auto;pointer-events:none}.swiper-navigation-disabled .swiper-button-next,.swiper-navigation-disabled .swiper-button-prev{display:none!important}.swiper-button-next svg,.swiper-button-prev svg{width:100%;height:100%;object-fit:contain;transform-origin:center}.swiper-rtl .swiper-button-next svg,.swiper-rtl .swiper-button-prev svg{transform:rotate(180deg)}.swiper-button-prev,.swiper-rtl .swiper-button-next{left:var(--swiper-navigation-sides-offset,10px);right:auto}.swiper-button-next,.swiper-rtl .swiper-button-prev{right:var(--swiper-navigation-sides-offset,10px);left:auto}.swiper-button-lock{display:none}.swiper-button-next:after,.swiper-button-prev:after{font-family:swiper-icons;font-size:var(--swiper-navigation-size);text-transform:none!important;letter-spacing:0;font-variant:initial;line-height:1}.swiper-button-prev:after,.swiper-rtl .swiper-button-next:after{content:'prev'}.swiper-button-next,.swiper-rtl .swiper-button-prev{right:var(--swiper-navigation-sides-offset,10px);left:auto}.swiper-button-next:after,.swiper-rtl .swiper-button-prev:after{content:'next'}.swiper-pagination{position:absolute;text-align:center;transition:.3s opacity;transform:translate3d(0,0,0);z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-pagination-disabled>.swiper-pagination,.swiper-pagination.swiper-pagination-disabled{display:none!important}.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-bullets.swiper-pagination-horizontal,.swiper-pagination-custom,.swiper-pagination-fraction{bottom:var(--swiper-pagination-bottom,8px);top:var(--swiper-pagination-top,auto);left:0;width:100%}.swiper-pagination-bullets-dynamic{overflow:hidden;font-size:0}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transform:scale(.33);position:relative}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next{transform:scale(.33)}.swiper-pagination-bullet{width:var(--swiper-pagination-bullet-width,var(--swiper-pagination-bullet-size,8px));height:var(--swiper-pagination-bullet-height,var(--swiper-pagination-bullet-size,8px));display:inline-block;border-radius:var(--swiper-pagination-bullet-border-radius,50%);background:var(--swiper-pagination-bullet-inactive-color,#000);opacity:var(--swiper-pagination-bullet-inactive-opacity, .2)}button.swiper-pagination-bullet{border:none;margin:0;padding:0;box-shadow:none;-webkit-appearance:none;appearance:none}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-bullet:only-child{display:none!important}.swiper-pagination-bullet-active{opacity:var(--swiper-pagination-bullet-opacity, 1);background:var(--swiper-pagination-color,var(--swiper-theme-color))}.swiper-pagination-vertical.swiper-pagination-bullets,.swiper-vertical>.swiper-pagination-bullets{right:var(--swiper-pagination-right,8px);left:var(--swiper-pagination-left,auto);top:50%;transform:translate3d(0px,-50%,0)}.swiper-pagination-vertical.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets .swiper-pagination-bullet{margin:var(--swiper-pagination-bullet-vertical-gap,6px) 0;display:block}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{display:inline-block;transition:.2s transform,.2s top}.swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet{margin:0 var(--swiper-pagination-bullet-horizontal-gap,4px)}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{left:50%;transform:translateX(-50%);white-space:nowrap}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s left}.swiper-horizontal.swiper-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s right}.swiper-pagination-fraction{color:var(--swiper-pagination-fraction-color,inherit)}.swiper-pagination-progressbar{background:var(--swiper-pagination-progressbar-bg-color,rgba(0,0,0,.25));position:absolute}.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:var(--swiper-pagination-color,var(--swiper-theme-color));position:absolute;left:0;top:0;width:100%;height:100%;transform:scale(0);transform-origin:left top}.swiper-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{transform-origin:right top}.swiper-horizontal>.swiper-pagination-progressbar,.swiper-pagination-progressbar.swiper-pagination-horizontal,.swiper-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite,.swiper-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite{width:100%;height:var(--swiper-pagination-progressbar-size,4px);left:0;top:0}.swiper-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-vertical,.swiper-vertical>.swiper-pagination-progressbar{width:var(--swiper-pagination-progressbar-size,4px);height:100%;left:0;top:0}.swiper-pagination-lock{display:none}.swiper-scrollbar{border-radius:var(--swiper-scrollbar-border-radius,10px);position:relative;touch-action:none;background:var(--swiper-scrollbar-bg-color,rgba(0,0,0,.1))}.swiper-scrollbar-disabled>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-disabled{display:none!important}.swiper-horizontal>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-horizontal{position:absolute;left:var(--swiper-scrollbar-sides-offset,1%);bottom:var(--swiper-scrollbar-bottom,4px);top:var(--swiper-scrollbar-top,auto);z-index:50;height:var(--swiper-scrollbar-size,4px);width:calc(100% - 2 * var(--swiper-scrollbar-sides-offset,1%))}.swiper-scrollbar.swiper-scrollbar-vertical,.swiper-vertical>.swiper-scrollbar{position:absolute;left:var(--swiper-scrollbar-left,auto);right:var(--swiper-scrollbar-right,4px);top:var(--swiper-scrollbar-sides-offset,1%);z-index:50;width:var(--swiper-scrollbar-size,4px);height:calc(100% - 2 * var(--swiper-scrollbar-sides-offset,1%))}.swiper-scrollbar-drag{height:100%;width:100%;position:relative;background:var(--swiper-scrollbar-drag-bg-color,rgba(0,0,0,.5));border-radius:var(--swiper-scrollbar-border-radius,10px);left:0;top:0}.swiper-scrollbar-cursor-drag{cursor:move}.swiper-scrollbar-lock{display:none}.swiper-zoom-container{width:100%;height:100%;display:flex;justify-content:center;align-items:center;text-align:center}.swiper-zoom-container>canvas,.swiper-zoom-container>img,.swiper-zoom-container>svg{max-width:100%;max-height:100%;object-fit:contain}.swiper-slide-zoomed{cursor:move;touch-action:none}.swiper .swiper-notification{position:absolute;left:0;top:0;pointer-events:none;opacity:0;z-index:-1000}.swiper-free-mode>.swiper-wrapper{transition-timing-function:ease-out;margin:0 auto}.swiper-grid>.swiper-wrapper{flex-wrap:wrap}.swiper-grid-column>.swiper-wrapper{flex-wrap:wrap;flex-direction:column}.swiper-fade.swiper-free-mode .swiper-slide{transition-timing-function:ease-out}.swiper-fade .swiper-slide{pointer-events:none;transition-property:opacity}.swiper-fade .swiper-slide .swiper-slide{pointer-events:none}.swiper-fade .swiper-slide-active{pointer-events:auto}.swiper-fade .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper.swiper-cube{overflow:visible}.swiper-cube .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1;visibility:hidden;transform-origin:0 0;width:100%;height:100%}.swiper-cube .swiper-slide .swiper-slide{pointer-events:none}.swiper-cube.swiper-rtl .swiper-slide{transform-origin:100% 0}.swiper-cube .swiper-slide-active,.swiper-cube .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-cube .swiper-slide-active,.swiper-cube .swiper-slide-next,.swiper-cube .swiper-slide-prev{pointer-events:auto;visibility:visible}.swiper-cube .swiper-cube-shadow{position:absolute;left:0;bottom:0px;width:100%;height:100%;opacity:.6;z-index:0}.swiper-cube .swiper-cube-shadow:before{content:'';background:#000;position:absolute;left:0;top:0;bottom:0;right:0;filter:blur(50px)}.swiper-cube .swiper-slide-next+.swiper-slide{pointer-events:auto;visibility:visible}.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-bottom,.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-left,.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-right,.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper.swiper-flip{overflow:visible}.swiper-flip .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1}.swiper-flip .swiper-slide .swiper-slide{pointer-events:none}.swiper-flip .swiper-slide-active,.swiper-flip .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-bottom,.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-left,.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-right,.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-creative .swiper-slide{-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden;transition-property:transform,opacity,height}.swiper.swiper-cards{overflow:visible}.swiper-cards .swiper-slide{transform-origin:center bottom;-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden} \ No newline at end of file diff --git a/static/assets/swiper-bundle.min.js b/static/assets/swiper-bundle.min.js deleted file mode 100644 index 2b6a4ede4b7199f2580827629fe376fdeae2a525..0000000000000000000000000000000000000000 --- a/static/assets/swiper-bundle.min.js +++ /dev/null @@ -1,14 +0,0 @@ -/** - * Swiper 11.2.6 - * Most modern mobile touch slider and framework with hardware accelerated transitions - * https://swiperjs.com - * - * Copyright 2014-2025 Vladimir Kharlampidi - * - * Released under the MIT License - * - * Released on: March 19, 2025 - */ - -var Swiper=function(){"use strict";function e(e){return null!==e&&"object"==typeof e&&"constructor"in e&&e.constructor===Object}function t(s,a){void 0===s&&(s={}),void 0===a&&(a={});const i=["__proto__","constructor","prototype"];Object.keys(a).filter((e=>i.indexOf(e)<0)).forEach((i=>{void 0===s[i]?s[i]=a[i]:e(a[i])&&e(s[i])&&Object.keys(a[i]).length>0&&t(s[i],a[i])}))}const s={body:{},addEventListener(){},removeEventListener(){},activeElement:{blur(){},nodeName:""},querySelector:()=>null,querySelectorAll:()=>[],getElementById:()=>null,createEvent:()=>({initEvent(){}}),createElement:()=>({children:[],childNodes:[],style:{},setAttribute(){},getElementsByTagName:()=>[]}),createElementNS:()=>({}),importNode:()=>null,location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""}};function a(){const e="undefined"!=typeof document?document:{};return t(e,s),e}const i={document:s,navigator:{userAgent:""},location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""},history:{replaceState(){},pushState(){},go(){},back(){}},CustomEvent:function(){return this},addEventListener(){},removeEventListener(){},getComputedStyle:()=>({getPropertyValue:()=>""}),Image(){},Date(){},screen:{},setTimeout(){},clearTimeout(){},matchMedia:()=>({}),requestAnimationFrame:e=>"undefined"==typeof setTimeout?(e(),null):setTimeout(e,0),cancelAnimationFrame(e){"undefined"!=typeof setTimeout&&clearTimeout(e)}};function r(){const e="undefined"!=typeof window?window:{};return t(e,i),e}function n(e){return void 0===e&&(e=""),e.trim().split(" ").filter((e=>!!e.trim()))}function l(e,t){return void 0===t&&(t=0),setTimeout(e,t)}function o(){return Date.now()}function d(e,t){void 0===t&&(t="x");const s=r();let a,i,n;const l=function(e){const t=r();let s;return t.getComputedStyle&&(s=t.getComputedStyle(e,null)),!s&&e.currentStyle&&(s=e.currentStyle),s||(s=e.style),s}(e);return s.WebKitCSSMatrix?(i=l.transform||l.webkitTransform,i.split(",").length>6&&(i=i.split(", ").map((e=>e.replace(",","."))).join(", ")),n=new s.WebKitCSSMatrix("none"===i?"":i)):(n=l.MozTransform||l.OTransform||l.MsTransform||l.msTransform||l.transform||l.getPropertyValue("transform").replace("translate(","matrix(1, 0, 0, 1,"),a=n.toString().split(",")),"x"===t&&(i=s.WebKitCSSMatrix?n.m41:16===a.length?parseFloat(a[12]):parseFloat(a[4])),"y"===t&&(i=s.WebKitCSSMatrix?n.m42:16===a.length?parseFloat(a[13]):parseFloat(a[5])),i||0}function c(e){return"object"==typeof e&&null!==e&&e.constructor&&"Object"===Object.prototype.toString.call(e).slice(8,-1)}function p(){const e=Object(arguments.length<=0?void 0:arguments[0]),t=["__proto__","constructor","prototype"];for(let a=1;at.indexOf(e)<0));for(let t=0,a=s.length;tn?"next":"prev",p=(e,t)=>"next"===c&&e>=t||"prev"===c&&e<=t,u=()=>{l=(new Date).getTime(),null===o&&(o=l);const e=Math.max(Math.min((l-o)/d,1),0),r=.5-Math.cos(e*Math.PI)/2;let c=n+r*(s-n);if(p(c,s)&&(c=s),t.wrapperEl.scrollTo({[a]:c}),p(c,s))return t.wrapperEl.style.overflow="hidden",t.wrapperEl.style.scrollSnapType="",setTimeout((()=>{t.wrapperEl.style.overflow="",t.wrapperEl.scrollTo({[a]:c})})),void i.cancelAnimationFrame(t.cssModeFrameID);t.cssModeFrameID=i.requestAnimationFrame(u)};u()}function h(e){return e.querySelector(".swiper-slide-transform")||e.shadowRoot&&e.shadowRoot.querySelector(".swiper-slide-transform")||e}function f(e,t){void 0===t&&(t="");const s=r(),a=[...e.children];return s.HTMLSlotElement&&e instanceof HTMLSlotElement&&a.push(...e.assignedElements()),t?a.filter((e=>e.matches(t))):a}function g(e){try{return void console.warn(e)}catch(e){}}function v(e,t){void 0===t&&(t=[]);const s=document.createElement(e);return s.classList.add(...Array.isArray(t)?t:n(t)),s}function w(e){const t=r(),s=a(),i=e.getBoundingClientRect(),n=s.body,l=e.clientTop||n.clientTop||0,o=e.clientLeft||n.clientLeft||0,d=e===t?t.scrollY:e.scrollTop,c=e===t?t.scrollX:e.scrollLeft;return{top:i.top+d-l,left:i.left+c-o}}function b(e,t){return r().getComputedStyle(e,null).getPropertyValue(t)}function y(e){let t,s=e;if(s){for(t=0;null!==(s=s.previousSibling);)1===s.nodeType&&(t+=1);return t}}function E(e,t){const s=[];let a=e.parentElement;for(;a;)t?a.matches(t)&&s.push(a):s.push(a),a=a.parentElement;return s}function x(e,t){t&&e.addEventListener("transitionend",(function s(a){a.target===e&&(t.call(e,a),e.removeEventListener("transitionend",s))}))}function S(e,t,s){const a=r();return s?e["width"===t?"offsetWidth":"offsetHeight"]+parseFloat(a.getComputedStyle(e,null).getPropertyValue("width"===t?"margin-right":"margin-top"))+parseFloat(a.getComputedStyle(e,null).getPropertyValue("width"===t?"margin-left":"margin-bottom")):e.offsetWidth}function T(e){return(Array.isArray(e)?e:[e]).filter((e=>!!e))}function M(e){return t=>Math.abs(t)>0&&e.browser&&e.browser.need3dFix&&Math.abs(t)%90==0?t+.001:t}let C,P,L;function I(){return C||(C=function(){const e=r(),t=a();return{smoothScroll:t.documentElement&&t.documentElement.style&&"scrollBehavior"in t.documentElement.style,touch:!!("ontouchstart"in e||e.DocumentTouch&&t instanceof e.DocumentTouch)}}()),C}function z(e){return void 0===e&&(e={}),P||(P=function(e){let{userAgent:t}=void 0===e?{}:e;const s=I(),a=r(),i=a.navigator.platform,n=t||a.navigator.userAgent,l={ios:!1,android:!1},o=a.screen.width,d=a.screen.height,c=n.match(/(Android);?[\s\/]+([\d.]+)?/);let p=n.match(/(iPad).*OS\s([\d_]+)/);const u=n.match(/(iPod)(.*OS\s([\d_]+))?/),m=!p&&n.match(/(iPhone\sOS|iOS)\s([\d_]+)/),h="Win32"===i;let f="MacIntel"===i;return!p&&f&&s.touch&&["1024x1366","1366x1024","834x1194","1194x834","834x1112","1112x834","768x1024","1024x768","820x1180","1180x820","810x1080","1080x810"].indexOf(`${o}x${d}`)>=0&&(p=n.match(/(Version)\/([\d.]+)/),p||(p=[0,1,"13_0_0"]),f=!1),c&&!h&&(l.os="android",l.android=!0),(p||m||u)&&(l.os="ios",l.ios=!0),l}(e)),P}function A(){return L||(L=function(){const e=r(),t=z();let s=!1;function a(){const t=e.navigator.userAgent.toLowerCase();return t.indexOf("safari")>=0&&t.indexOf("chrome")<0&&t.indexOf("android")<0}if(a()){const t=String(e.navigator.userAgent);if(t.includes("Version/")){const[e,a]=t.split("Version/")[1].split(" ")[0].split(".").map((e=>Number(e)));s=e<16||16===e&&a<2}}const i=/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(e.navigator.userAgent),n=a();return{isSafari:s||n,needPerspectiveFix:s,need3dFix:n||i&&t.ios,isWebView:i}}()),L}var $={on(e,t,s){const a=this;if(!a.eventsListeners||a.destroyed)return a;if("function"!=typeof t)return a;const i=s?"unshift":"push";return e.split(" ").forEach((e=>{a.eventsListeners[e]||(a.eventsListeners[e]=[]),a.eventsListeners[e][i](t)})),a},once(e,t,s){const a=this;if(!a.eventsListeners||a.destroyed)return a;if("function"!=typeof t)return a;function i(){a.off(e,i),i.__emitterProxy&&delete i.__emitterProxy;for(var s=arguments.length,r=new Array(s),n=0;n=0&&t.eventsAnyListeners.splice(s,1),t},off(e,t){const s=this;return!s.eventsListeners||s.destroyed?s:s.eventsListeners?(e.split(" ").forEach((e=>{void 0===t?s.eventsListeners[e]=[]:s.eventsListeners[e]&&s.eventsListeners[e].forEach(((a,i)=>{(a===t||a.__emitterProxy&&a.__emitterProxy===t)&&s.eventsListeners[e].splice(i,1)}))})),s):s},emit(){const e=this;if(!e.eventsListeners||e.destroyed)return e;if(!e.eventsListeners)return e;let t,s,a;for(var i=arguments.length,r=new Array(i),n=0;n{e.eventsAnyListeners&&e.eventsAnyListeners.length&&e.eventsAnyListeners.forEach((e=>{e.apply(a,[t,...s])})),e.eventsListeners&&e.eventsListeners[t]&&e.eventsListeners[t].forEach((e=>{e.apply(a,s)}))})),e}};const k=(e,t,s)=>{t&&!e.classList.contains(s)?e.classList.add(s):!t&&e.classList.contains(s)&&e.classList.remove(s)};const O=(e,t,s)=>{t&&!e.classList.contains(s)?e.classList.add(s):!t&&e.classList.contains(s)&&e.classList.remove(s)};const D=(e,t)=>{if(!e||e.destroyed||!e.params)return;const s=t.closest(e.isElement?"swiper-slide":`.${e.params.slideClass}`);if(s){let t=s.querySelector(`.${e.params.lazyPreloaderClass}`);!t&&e.isElement&&(s.shadowRoot?t=s.shadowRoot.querySelector(`.${e.params.lazyPreloaderClass}`):requestAnimationFrame((()=>{s.shadowRoot&&(t=s.shadowRoot.querySelector(`.${e.params.lazyPreloaderClass}`),t&&t.remove())}))),t&&t.remove()}},G=(e,t)=>{if(!e.slides[t])return;const s=e.slides[t].querySelector('[loading="lazy"]');s&&s.removeAttribute("loading")},X=e=>{if(!e||e.destroyed||!e.params)return;let t=e.params.lazyPreloadPrevNext;const s=e.slides.length;if(!s||!t||t<0)return;t=Math.min(t,s);const a="auto"===e.params.slidesPerView?e.slidesPerViewDynamic():Math.ceil(e.params.slidesPerView),i=e.activeIndex;if(e.params.grid&&e.params.grid.rows>1){const s=i,r=[s-t];return r.push(...Array.from({length:t}).map(((e,t)=>s+a+t))),void e.slides.forEach(((t,s)=>{r.includes(t.column)&&G(e,s)}))}const r=i+a-1;if(e.params.rewind||e.params.loop)for(let a=i-t;a<=r+t;a+=1){const t=(a%s+s)%s;(tr)&&G(e,t)}else for(let a=Math.max(i-t,0);a<=Math.min(r+t,s-1);a+=1)a!==i&&(a>r||a=0?x=parseFloat(x.replace("%",""))/100*r:"string"==typeof x&&(x=parseFloat(x)),e.virtualSize=-x,c.forEach((e=>{n?e.style.marginLeft="":e.style.marginRight="",e.style.marginBottom="",e.style.marginTop=""})),s.centeredSlides&&s.cssMode&&(u(a,"--swiper-centered-offset-before",""),u(a,"--swiper-centered-offset-after",""));const P=s.grid&&s.grid.rows>1&&e.grid;let L;P?e.grid.initSlides(c):e.grid&&e.grid.unsetSlides();const I="auto"===s.slidesPerView&&s.breakpoints&&Object.keys(s.breakpoints).filter((e=>void 0!==s.breakpoints[e].slidesPerView)).length>0;for(let a=0;a1&&m.push(e.virtualSize-r)}if(o&&s.loop){const t=g[0]+x;if(s.slidesPerGroup>1){const a=Math.ceil((e.virtual.slidesBefore+e.virtual.slidesAfter)/s.slidesPerGroup),i=t*s.slidesPerGroup;for(let e=0;e!(s.cssMode&&!s.loop)||t!==c.length-1)).forEach((e=>{e.style[t]=`${x}px`}))}if(s.centeredSlides&&s.centeredSlidesBounds){let e=0;g.forEach((t=>{e+=t+(x||0)})),e-=x;const t=e>r?e-r:0;m=m.map((e=>e<=0?-v:e>t?t+w:e))}if(s.centerInsufficientSlides){let e=0;g.forEach((t=>{e+=t+(x||0)})),e-=x;const t=(s.slidesOffsetBefore||0)+(s.slidesOffsetAfter||0);if(e+t{m[t]=e-s})),h.forEach(((e,t)=>{h[t]=e+s}))}}if(Object.assign(e,{slides:c,snapGrid:m,slidesGrid:h,slidesSizesGrid:g}),s.centeredSlides&&s.cssMode&&!s.centeredSlidesBounds){u(a,"--swiper-centered-offset-before",-m[0]+"px"),u(a,"--swiper-centered-offset-after",e.size/2-g[g.length-1]/2+"px");const t=-e.snapGrid[0],s=-e.slidesGrid[0];e.snapGrid=e.snapGrid.map((e=>e+t)),e.slidesGrid=e.slidesGrid.map((e=>e+s))}if(p!==d&&e.emit("slidesLengthChange"),m.length!==y&&(e.params.watchOverflow&&e.checkOverflow(),e.emit("snapGridLengthChange")),h.length!==E&&e.emit("slidesGridLengthChange"),s.watchSlidesProgress&&e.updateSlidesOffset(),e.emit("slidesUpdated"),!(o||s.cssMode||"slide"!==s.effect&&"fade"!==s.effect)){const t=`${s.containerModifierClass}backface-hidden`,a=e.el.classList.contains(t);p<=s.maxBackfaceHiddenSlides?a||e.el.classList.add(t):a&&e.el.classList.remove(t)}},updateAutoHeight:function(e){const t=this,s=[],a=t.virtual&&t.params.virtual.enabled;let i,r=0;"number"==typeof e?t.setTransition(e):!0===e&&t.setTransition(t.params.speed);const n=e=>a?t.slides[t.getSlideIndexByData(e)]:t.slides[e];if("auto"!==t.params.slidesPerView&&t.params.slidesPerView>1)if(t.params.centeredSlides)(t.visibleSlides||[]).forEach((e=>{s.push(e)}));else for(i=0;it.slides.length&&!a)break;s.push(n(e))}else s.push(n(t.activeIndex));for(i=0;ir?e:r}(r||0===r)&&(t.wrapperEl.style.height=`${r}px`)},updateSlidesOffset:function(){const e=this,t=e.slides,s=e.isElement?e.isHorizontal()?e.wrapperEl.offsetLeft:e.wrapperEl.offsetTop:0;for(let a=0;a=0?l=parseFloat(l.replace("%",""))/100*t.size:"string"==typeof l&&(l=parseFloat(l));for(let e=0;e=0&&u<=t.size-t.slidesSizesGrid[e],f=u>=0&&u1&&m<=t.size||u<=0&&m>=t.size;f&&(t.visibleSlides.push(o),t.visibleSlidesIndexes.push(e)),k(o,f,s.slideVisibleClass),k(o,h,s.slideFullyVisibleClass),o.progress=i?-c:c,o.originalProgress=i?-p:p}},updateProgress:function(e){const t=this;if(void 0===e){const s=t.rtlTranslate?-1:1;e=t&&t.translate&&t.translate*s||0}const s=t.params,a=t.maxTranslate()-t.minTranslate();let{progress:i,isBeginning:r,isEnd:n,progressLoop:l}=t;const o=r,d=n;if(0===a)i=0,r=!0,n=!0;else{i=(e-t.minTranslate())/a;const s=Math.abs(e-t.minTranslate())<1,l=Math.abs(e-t.maxTranslate())<1;r=s||i<=0,n=l||i>=1,s&&(i=0),l&&(i=1)}if(s.loop){const s=t.getSlideIndexByData(0),a=t.getSlideIndexByData(t.slides.length-1),i=t.slidesGrid[s],r=t.slidesGrid[a],n=t.slidesGrid[t.slidesGrid.length-1],o=Math.abs(e);l=o>=i?(o-i)/n:(o+n-r)/n,l>1&&(l-=1)}Object.assign(t,{progress:i,progressLoop:l,isBeginning:r,isEnd:n}),(s.watchSlidesProgress||s.centeredSlides&&s.autoHeight)&&t.updateSlidesProgress(e),r&&!o&&t.emit("reachBeginning toEdge"),n&&!d&&t.emit("reachEnd toEdge"),(o&&!r||d&&!n)&&t.emit("fromEdge"),t.emit("progress",i)},updateSlidesClasses:function(){const e=this,{slides:t,params:s,slidesEl:a,activeIndex:i}=e,r=e.virtual&&s.virtual.enabled,n=e.grid&&s.grid&&s.grid.rows>1,l=e=>f(a,`.${s.slideClass}${e}, swiper-slide${e}`)[0];let o,d,c;if(r)if(s.loop){let t=i-e.virtual.slidesBefore;t<0&&(t=e.virtual.slides.length+t),t>=e.virtual.slides.length&&(t-=e.virtual.slides.length),o=l(`[data-swiper-slide-index="${t}"]`)}else o=l(`[data-swiper-slide-index="${i}"]`);else n?(o=t.find((e=>e.column===i)),c=t.find((e=>e.column===i+1)),d=t.find((e=>e.column===i-1))):o=t[i];o&&(n||(c=function(e,t){const s=[];for(;e.nextElementSibling;){const a=e.nextElementSibling;t?a.matches(t)&&s.push(a):s.push(a),e=a}return s}(o,`.${s.slideClass}, swiper-slide`)[0],s.loop&&!c&&(c=t[0]),d=function(e,t){const s=[];for(;e.previousElementSibling;){const a=e.previousElementSibling;t?a.matches(t)&&s.push(a):s.push(a),e=a}return s}(o,`.${s.slideClass}, swiper-slide`)[0],s.loop&&0===!d&&(d=t[t.length-1]))),t.forEach((e=>{O(e,e===o,s.slideActiveClass),O(e,e===c,s.slideNextClass),O(e,e===d,s.slidePrevClass)})),e.emitSlidesClasses()},updateActiveIndex:function(e){const t=this,s=t.rtlTranslate?t.translate:-t.translate,{snapGrid:a,params:i,activeIndex:r,realIndex:n,snapIndex:l}=t;let o,d=e;const c=e=>{let s=e-t.virtual.slidesBefore;return s<0&&(s=t.virtual.slides.length+s),s>=t.virtual.slides.length&&(s-=t.virtual.slides.length),s};if(void 0===d&&(d=function(e){const{slidesGrid:t,params:s}=e,a=e.rtlTranslate?e.translate:-e.translate;let i;for(let e=0;e=t[e]&&a=t[e]&&a=t[e]&&(i=e);return s.normalizeSlideIndex&&(i<0||void 0===i)&&(i=0),i}(t)),a.indexOf(s)>=0)o=a.indexOf(s);else{const e=Math.min(i.slidesPerGroupSkip,d);o=e+Math.floor((d-e)/i.slidesPerGroup)}if(o>=a.length&&(o=a.length-1),d===r&&!t.params.loop)return void(o!==l&&(t.snapIndex=o,t.emit("snapIndexChange")));if(d===r&&t.params.loop&&t.virtual&&t.params.virtual.enabled)return void(t.realIndex=c(d));const p=t.grid&&i.grid&&i.grid.rows>1;let u;if(t.virtual&&i.virtual.enabled&&i.loop)u=c(d);else if(p){const e=t.slides.find((e=>e.column===d));let s=parseInt(e.getAttribute("data-swiper-slide-index"),10);Number.isNaN(s)&&(s=Math.max(t.slides.indexOf(e),0)),u=Math.floor(s/i.grid.rows)}else if(t.slides[d]){const e=t.slides[d].getAttribute("data-swiper-slide-index");u=e?parseInt(e,10):d}else u=d;Object.assign(t,{previousSnapIndex:l,snapIndex:o,previousRealIndex:n,realIndex:u,previousIndex:r,activeIndex:d}),t.initialized&&X(t),t.emit("activeIndexChange"),t.emit("snapIndexChange"),(t.initialized||t.params.runCallbacksOnInit)&&(n!==u&&t.emit("realIndexChange"),t.emit("slideChange"))},updateClickedSlide:function(e,t){const s=this,a=s.params;let i=e.closest(`.${a.slideClass}, swiper-slide`);!i&&s.isElement&&t&&t.length>1&&t.includes(e)&&[...t.slice(t.indexOf(e)+1,t.length)].forEach((e=>{!i&&e.matches&&e.matches(`.${a.slideClass}, swiper-slide`)&&(i=e)}));let r,n=!1;if(i)for(let e=0;eo?o:a&&en?"next":r=o.length&&(v=o.length-1);const w=-o[v];if(l.normalizeSlideIndex)for(let e=0;e=s&&t=s&&t=s&&(n=e)}if(r.initialized&&n!==p){if(!r.allowSlideNext&&(u?w>r.translate&&w>r.minTranslate():wr.translate&&w>r.maxTranslate()&&(p||0)!==n)return!1}let b;n!==(c||0)&&s&&r.emit("beforeSlideChangeStart"),r.updateProgress(w),b=n>p?"next":n0?(r._cssModeVirtualInitialSet=!0,requestAnimationFrame((()=>{h[e?"scrollLeft":"scrollTop"]=s}))):h[e?"scrollLeft":"scrollTop"]=s,y&&requestAnimationFrame((()=>{r.wrapperEl.style.scrollSnapType="",r._immediateVirtual=!1}));else{if(!r.support.smoothScroll)return m({swiper:r,targetPosition:s,side:e?"left":"top"}),!0;h.scrollTo({[e?"left":"top"]:s,behavior:"smooth"})}return!0}const E=A().isSafari;return y&&!i&&E&&r.isElement&&r.virtual.update(!1,!1,n),r.setTransition(t),r.setTranslate(w),r.updateActiveIndex(n),r.updateSlidesClasses(),r.emit("beforeTransitionStart",t,a),r.transitionStart(s,b),0===t?r.transitionEnd(s,b):r.animating||(r.animating=!0,r.onSlideToWrapperTransitionEnd||(r.onSlideToWrapperTransitionEnd=function(e){r&&!r.destroyed&&e.target===this&&(r.wrapperEl.removeEventListener("transitionend",r.onSlideToWrapperTransitionEnd),r.onSlideToWrapperTransitionEnd=null,delete r.onSlideToWrapperTransitionEnd,r.transitionEnd(s,b))}),r.wrapperEl.addEventListener("transitionend",r.onSlideToWrapperTransitionEnd)),!0},slideToLoop:function(e,t,s,a){if(void 0===e&&(e=0),void 0===s&&(s=!0),"string"==typeof e){e=parseInt(e,10)}const i=this;if(i.destroyed)return;void 0===t&&(t=i.params.speed);const r=i.grid&&i.params.grid&&i.params.grid.rows>1;let n=e;if(i.params.loop)if(i.virtual&&i.params.virtual.enabled)n+=i.virtual.slidesBefore;else{let e;if(r){const t=n*i.params.grid.rows;e=i.slides.find((e=>1*e.getAttribute("data-swiper-slide-index")===t)).column}else e=i.getSlideIndexByData(n);const t=r?Math.ceil(i.slides.length/i.params.grid.rows):i.slides.length,{centeredSlides:s}=i.params;let l=i.params.slidesPerView;"auto"===l?l=i.slidesPerViewDynamic():(l=Math.ceil(parseFloat(i.params.slidesPerView,10)),s&&l%2==0&&(l+=1));let o=t-e1*t.getAttribute("data-swiper-slide-index")===e)).column}else n=i.getSlideIndexByData(n)}return requestAnimationFrame((()=>{i.slideTo(n,t,s,a)})),i},slideNext:function(e,t,s){void 0===t&&(t=!0);const a=this,{enabled:i,params:r,animating:n}=a;if(!i||a.destroyed)return a;void 0===e&&(e=a.params.speed);let l=r.slidesPerGroup;"auto"===r.slidesPerView&&1===r.slidesPerGroup&&r.slidesPerGroupAuto&&(l=Math.max(a.slidesPerViewDynamic("current",!0),1));const o=a.activeIndex{a.slideTo(a.activeIndex+o,e,t,s)})),!0}return r.rewind&&a.isEnd?a.slideTo(0,e,t,s):a.slideTo(a.activeIndex+o,e,t,s)},slidePrev:function(e,t,s){void 0===t&&(t=!0);const a=this,{params:i,snapGrid:r,slidesGrid:n,rtlTranslate:l,enabled:o,animating:d}=a;if(!o||a.destroyed)return a;void 0===e&&(e=a.params.speed);const c=a.virtual&&i.virtual.enabled;if(i.loop){if(d&&!c&&i.loopPreventsSliding)return!1;a.loopFix({direction:"prev"}),a._clientLeft=a.wrapperEl.clientLeft}function p(e){return e<0?-Math.floor(Math.abs(e)):Math.floor(e)}const u=p(l?a.translate:-a.translate),m=r.map((e=>p(e))),h=i.freeMode&&i.freeMode.enabled;let f=r[m.indexOf(u)-1];if(void 0===f&&(i.cssMode||h)){let e;r.forEach(((t,s)=>{u>=t&&(e=s)})),void 0!==e&&(f=h?r[e]:r[e>0?e-1:e])}let g=0;if(void 0!==f&&(g=n.indexOf(f),g<0&&(g=a.activeIndex-1),"auto"===i.slidesPerView&&1===i.slidesPerGroup&&i.slidesPerGroupAuto&&(g=g-a.slidesPerViewDynamic("previous",!0)+1,g=Math.max(g,0))),i.rewind&&a.isBeginning){const i=a.params.virtual&&a.params.virtual.enabled&&a.virtual?a.virtual.slides.length-1:a.slides.length-1;return a.slideTo(i,e,t,s)}return i.loop&&0===a.activeIndex&&i.cssMode?(requestAnimationFrame((()=>{a.slideTo(g,e,t,s)})),!0):a.slideTo(g,e,t,s)},slideReset:function(e,t,s){void 0===t&&(t=!0);const a=this;if(!a.destroyed)return void 0===e&&(e=a.params.speed),a.slideTo(a.activeIndex,e,t,s)},slideToClosest:function(e,t,s,a){void 0===t&&(t=!0),void 0===a&&(a=.5);const i=this;if(i.destroyed)return;void 0===e&&(e=i.params.speed);let r=i.activeIndex;const n=Math.min(i.params.slidesPerGroupSkip,r),l=n+Math.floor((r-n)/i.params.slidesPerGroup),o=i.rtlTranslate?i.translate:-i.translate;if(o>=i.snapGrid[l]){const e=i.snapGrid[l];o-e>(i.snapGrid[l+1]-e)*a&&(r+=i.params.slidesPerGroup)}else{const e=i.snapGrid[l-1];o-e<=(i.snapGrid[l]-e)*a&&(r-=i.params.slidesPerGroup)}return r=Math.max(r,0),r=Math.min(r,i.slidesGrid.length-1),i.slideTo(r,e,t,s)},slideToClickedSlide:function(){const e=this;if(e.destroyed)return;const{params:t,slidesEl:s}=e,a="auto"===t.slidesPerView?e.slidesPerViewDynamic():t.slidesPerView;let i,r=e.clickedIndex;const n=e.isElement?"swiper-slide":`.${t.slideClass}`;if(t.loop){if(e.animating)return;i=parseInt(e.clickedSlide.getAttribute("data-swiper-slide-index"),10),t.centeredSlides?re.slides.length-e.loopedSlides+a/2?(e.loopFix(),r=e.getSlideIndex(f(s,`${n}[data-swiper-slide-index="${i}"]`)[0]),l((()=>{e.slideTo(r)}))):e.slideTo(r):r>e.slides.length-a?(e.loopFix(),r=e.getSlideIndex(f(s,`${n}[data-swiper-slide-index="${i}"]`)[0]),l((()=>{e.slideTo(r)}))):e.slideTo(r)}else e.slideTo(r)}};var R={loopCreate:function(e,t){const s=this,{params:a,slidesEl:i}=s;if(!a.loop||s.virtual&&s.params.virtual.enabled)return;const r=()=>{f(i,`.${a.slideClass}, swiper-slide`).forEach(((e,t)=>{e.setAttribute("data-swiper-slide-index",t)}))},n=s.grid&&a.grid&&a.grid.rows>1,l=a.slidesPerGroup*(n?a.grid.rows:1),o=s.slides.length%l!=0,d=n&&s.slides.length%a.grid.rows!=0,c=e=>{for(let t=0;t1;c.lengthe.classList.contains(h.slideActiveClass)))):C=r;const P="next"===a||!a,L="prev"===a||!a;let I=0,z=0;const A=(E?c[r].column:r)+(f&&void 0===i?-w/2+.5:0);if(A=0;t-=1)c[t].column===e&&x.push(t)}else x.push(T-t-1)}}else if(A+w>T-y){z=Math.max(A-(T-2*y),b),M&&(z=Math.max(z,w-T+v+1));for(let e=0;e{e.column===t&&S.push(s)})):S.push(t)}}if(d.__preventObserver__=!0,requestAnimationFrame((()=>{d.__preventObserver__=!1})),"cards"===d.params.effect&&c.length{c[e].swiperLoopMoveDOM=!0,m.prepend(c[e]),c[e].swiperLoopMoveDOM=!1})),P&&S.forEach((e=>{c[e].swiperLoopMoveDOM=!0,m.append(c[e]),c[e].swiperLoopMoveDOM=!1})),d.recalcSlides(),"auto"===h.slidesPerView?d.updateSlides():E&&(x.length>0&&L||S.length>0&&P)&&d.slides.forEach(((e,t)=>{d.grid.updateSlide(t,e,d.slides)})),h.watchSlidesProgress&&d.updateSlidesOffset(),s)if(x.length>0&&L){if(void 0===t){const e=d.slidesGrid[C],t=d.slidesGrid[C+I]-e;o?d.setTranslate(d.translate-t):(d.slideTo(C+Math.ceil(I),0,!1,!0),i&&(d.touchEventsData.startTranslate=d.touchEventsData.startTranslate-t,d.touchEventsData.currentTranslate=d.touchEventsData.currentTranslate-t))}else if(i){const e=E?x.length/h.grid.rows:x.length;d.slideTo(d.activeIndex+e,0,!1,!0),d.touchEventsData.currentTranslate=d.translate}}else if(S.length>0&&P)if(void 0===t){const e=d.slidesGrid[C],t=d.slidesGrid[C-z]-e;o?d.setTranslate(d.translate-t):(d.slideTo(C-z,0,!1,!0),i&&(d.touchEventsData.startTranslate=d.touchEventsData.startTranslate-t,d.touchEventsData.currentTranslate=d.touchEventsData.currentTranslate-t))}else{const e=E?S.length/h.grid.rows:S.length;d.slideTo(d.activeIndex-e,0,!1,!0)}if(d.allowSlidePrev=p,d.allowSlideNext=u,d.controller&&d.controller.control&&!l){const e={slideRealIndex:t,direction:a,setTranslate:i,activeSlideIndex:r,byController:!0};Array.isArray(d.controller.control)?d.controller.control.forEach((t=>{!t.destroyed&&t.params.loop&&t.loopFix({...e,slideTo:t.params.slidesPerView===h.slidesPerView&&s})})):d.controller.control instanceof d.constructor&&d.controller.control.params.loop&&d.controller.control.loopFix({...e,slideTo:d.controller.control.params.slidesPerView===h.slidesPerView&&s})}d.emit("loopFix")},loopDestroy:function(){const e=this,{params:t,slidesEl:s}=e;if(!t.loop||!s||e.virtual&&e.params.virtual.enabled)return;e.recalcSlides();const a=[];e.slides.forEach((e=>{const t=void 0===e.swiperSlideIndex?1*e.getAttribute("data-swiper-slide-index"):e.swiperSlideIndex;a[t]=e})),e.slides.forEach((e=>{e.removeAttribute("data-swiper-slide-index")})),a.forEach((e=>{s.append(e)})),e.recalcSlides(),e.slideTo(e.realIndex,0)}};function q(e,t,s){const a=r(),{params:i}=e,n=i.edgeSwipeDetection,l=i.edgeSwipeThreshold;return!n||!(s<=l||s>=a.innerWidth-l)||"prevent"===n&&(t.preventDefault(),!0)}function _(e){const t=this,s=a();let i=e;i.originalEvent&&(i=i.originalEvent);const n=t.touchEventsData;if("pointerdown"===i.type){if(null!==n.pointerId&&n.pointerId!==i.pointerId)return;n.pointerId=i.pointerId}else"touchstart"===i.type&&1===i.targetTouches.length&&(n.touchId=i.targetTouches[0].identifier);if("touchstart"===i.type)return void q(t,i,i.targetTouches[0].pageX);const{params:l,touches:d,enabled:c}=t;if(!c)return;if(!l.simulateTouch&&"mouse"===i.pointerType)return;if(t.animating&&l.preventInteractionOnTransition)return;!t.animating&&l.cssMode&&l.loop&&t.loopFix();let p=i.target;if("wrapper"===l.touchEventsTarget&&!function(e,t){const s=r();let a=t.contains(e);!a&&s.HTMLSlotElement&&t instanceof HTMLSlotElement&&(a=[...t.assignedElements()].includes(e),a||(a=function(e,t){const s=[t];for(;s.length>0;){const t=s.shift();if(e===t)return!0;s.push(...t.children,...t.shadowRoot?t.shadowRoot.children:[],...t.assignedElements?t.assignedElements():[])}}(e,t)));return a}(p,t.wrapperEl))return;if("which"in i&&3===i.which)return;if("button"in i&&i.button>0)return;if(n.isTouched&&n.isMoved)return;const u=!!l.noSwipingClass&&""!==l.noSwipingClass,m=i.composedPath?i.composedPath():i.path;u&&i.target&&i.target.shadowRoot&&m&&(p=m[0]);const h=l.noSwipingSelector?l.noSwipingSelector:`.${l.noSwipingClass}`,f=!(!i.target||!i.target.shadowRoot);if(l.noSwiping&&(f?function(e,t){return void 0===t&&(t=this),function t(s){if(!s||s===a()||s===r())return null;s.assignedSlot&&(s=s.assignedSlot);const i=s.closest(e);return i||s.getRootNode?i||t(s.getRootNode().host):null}(t)}(h,p):p.closest(h)))return void(t.allowClick=!0);if(l.swipeHandler&&!p.closest(l.swipeHandler))return;d.currentX=i.pageX,d.currentY=i.pageY;const g=d.currentX,v=d.currentY;if(!q(t,i,g))return;Object.assign(n,{isTouched:!0,isMoved:!1,allowTouchCallbacks:!0,isScrolling:void 0,startMoving:void 0}),d.startX=g,d.startY=v,n.touchStartTime=o(),t.allowClick=!0,t.updateSize(),t.swipeDirection=void 0,l.threshold>0&&(n.allowThresholdMove=!1);let w=!0;p.matches(n.focusableElements)&&(w=!1,"SELECT"===p.nodeName&&(n.isTouched=!1)),s.activeElement&&s.activeElement.matches(n.focusableElements)&&s.activeElement!==p&&("mouse"===i.pointerType||"mouse"!==i.pointerType&&!p.matches(n.focusableElements))&&s.activeElement.blur();const b=w&&t.allowTouchMove&&l.touchStartPreventDefault;!l.touchStartForcePreventDefault&&!b||p.isContentEditable||i.preventDefault(),l.freeMode&&l.freeMode.enabled&&t.freeMode&&t.animating&&!l.cssMode&&t.freeMode.onTouchStart(),t.emit("touchStart",i)}function F(e){const t=a(),s=this,i=s.touchEventsData,{params:r,touches:n,rtlTranslate:l,enabled:d}=s;if(!d)return;if(!r.simulateTouch&&"mouse"===e.pointerType)return;let c,p=e;if(p.originalEvent&&(p=p.originalEvent),"pointermove"===p.type){if(null!==i.touchId)return;if(p.pointerId!==i.pointerId)return}if("touchmove"===p.type){if(c=[...p.changedTouches].find((e=>e.identifier===i.touchId)),!c||c.identifier!==i.touchId)return}else c=p;if(!i.isTouched)return void(i.startMoving&&i.isScrolling&&s.emit("touchMoveOpposite",p));const u=c.pageX,m=c.pageY;if(p.preventedByNestedSwiper)return n.startX=u,void(n.startY=m);if(!s.allowTouchMove)return p.target.matches(i.focusableElements)||(s.allowClick=!1),void(i.isTouched&&(Object.assign(n,{startX:u,startY:m,currentX:u,currentY:m}),i.touchStartTime=o()));if(r.touchReleaseOnEdges&&!r.loop)if(s.isVertical()){if(mn.startY&&s.translate>=s.minTranslate())return i.isTouched=!1,void(i.isMoved=!1)}else{if(l&&(u>n.startX&&-s.translate<=s.maxTranslate()||u=s.minTranslate()))return;if(!l&&(un.startX&&s.translate>=s.minTranslate()))return}if(t.activeElement&&t.activeElement.matches(i.focusableElements)&&t.activeElement!==p.target&&"mouse"!==p.pointerType&&t.activeElement.blur(),t.activeElement&&p.target===t.activeElement&&p.target.matches(i.focusableElements))return i.isMoved=!0,void(s.allowClick=!1);i.allowTouchCallbacks&&s.emit("touchMove",p),n.previousX=n.currentX,n.previousY=n.currentY,n.currentX=u,n.currentY=m;const h=n.currentX-n.startX,f=n.currentY-n.startY;if(s.params.threshold&&Math.sqrt(h**2+f**2)=25&&(e=180*Math.atan2(Math.abs(f),Math.abs(h))/Math.PI,i.isScrolling=s.isHorizontal()?e>r.touchAngle:90-e>r.touchAngle)}if(i.isScrolling&&s.emit("touchMoveOpposite",p),void 0===i.startMoving&&(n.currentX===n.startX&&n.currentY===n.startY||(i.startMoving=!0)),i.isScrolling||"touchmove"===p.type&&i.preventTouchMoveFromPointerMove)return void(i.isTouched=!1);if(!i.startMoving)return;s.allowClick=!1,!r.cssMode&&p.cancelable&&p.preventDefault(),r.touchMoveStopPropagation&&!r.nested&&p.stopPropagation();let g=s.isHorizontal()?h:f,v=s.isHorizontal()?n.currentX-n.previousX:n.currentY-n.previousY;r.oneWayMovement&&(g=Math.abs(g)*(l?1:-1),v=Math.abs(v)*(l?1:-1)),n.diff=g,g*=r.touchRatio,l&&(g=-g,v=-v);const w=s.touchesDirection;s.swipeDirection=g>0?"prev":"next",s.touchesDirection=v>0?"prev":"next";const b=s.params.loop&&!r.cssMode,y="next"===s.touchesDirection&&s.allowSlideNext||"prev"===s.touchesDirection&&s.allowSlidePrev;if(!i.isMoved){if(b&&y&&s.loopFix({direction:s.swipeDirection}),i.startTranslate=s.getTranslate(),s.setTransition(0),s.animating){const e=new window.CustomEvent("transitionend",{bubbles:!0,cancelable:!0,detail:{bySwiperTouchMove:!0}});s.wrapperEl.dispatchEvent(e)}i.allowMomentumBounce=!1,!r.grabCursor||!0!==s.allowSlideNext&&!0!==s.allowSlidePrev||s.setGrabCursor(!0),s.emit("sliderFirstMove",p)}if((new Date).getTime(),!1!==r._loopSwapReset&&i.isMoved&&i.allowThresholdMove&&w!==s.touchesDirection&&b&&y&&Math.abs(g)>=1)return Object.assign(n,{startX:u,startY:m,currentX:u,currentY:m,startTranslate:i.currentTranslate}),i.loopSwapReset=!0,void(i.startTranslate=i.currentTranslate);s.emit("sliderMove",p),i.isMoved=!0,i.currentTranslate=g+i.startTranslate;let E=!0,x=r.resistanceRatio;if(r.touchReleaseOnEdges&&(x=0),g>0?(b&&y&&i.allowThresholdMove&&i.currentTranslate>(r.centeredSlides?s.minTranslate()-s.slidesSizesGrid[s.activeIndex+1]-("auto"!==r.slidesPerView&&s.slides.length-r.slidesPerView>=2?s.slidesSizesGrid[s.activeIndex+1]+s.params.spaceBetween:0)-s.params.spaceBetween:s.minTranslate())&&s.loopFix({direction:"prev",setTranslate:!0,activeSlideIndex:0}),i.currentTranslate>s.minTranslate()&&(E=!1,r.resistance&&(i.currentTranslate=s.minTranslate()-1+(-s.minTranslate()+i.startTranslate+g)**x))):g<0&&(b&&y&&i.allowThresholdMove&&i.currentTranslate<(r.centeredSlides?s.maxTranslate()+s.slidesSizesGrid[s.slidesSizesGrid.length-1]+s.params.spaceBetween+("auto"!==r.slidesPerView&&s.slides.length-r.slidesPerView>=2?s.slidesSizesGrid[s.slidesSizesGrid.length-1]+s.params.spaceBetween:0):s.maxTranslate())&&s.loopFix({direction:"next",setTranslate:!0,activeSlideIndex:s.slides.length-("auto"===r.slidesPerView?s.slidesPerViewDynamic():Math.ceil(parseFloat(r.slidesPerView,10)))}),i.currentTranslatei.startTranslate&&(i.currentTranslate=i.startTranslate),s.allowSlidePrev||s.allowSlideNext||(i.currentTranslate=i.startTranslate),r.threshold>0){if(!(Math.abs(g)>r.threshold||i.allowThresholdMove))return void(i.currentTranslate=i.startTranslate);if(!i.allowThresholdMove)return i.allowThresholdMove=!0,n.startX=n.currentX,n.startY=n.currentY,i.currentTranslate=i.startTranslate,void(n.diff=s.isHorizontal()?n.currentX-n.startX:n.currentY-n.startY)}r.followFinger&&!r.cssMode&&((r.freeMode&&r.freeMode.enabled&&s.freeMode||r.watchSlidesProgress)&&(s.updateActiveIndex(),s.updateSlidesClasses()),r.freeMode&&r.freeMode.enabled&&s.freeMode&&s.freeMode.onTouchMove(),s.updateProgress(i.currentTranslate),s.setTranslate(i.currentTranslate))}function V(e){const t=this,s=t.touchEventsData;let a,i=e;i.originalEvent&&(i=i.originalEvent);if("touchend"===i.type||"touchcancel"===i.type){if(a=[...i.changedTouches].find((e=>e.identifier===s.touchId)),!a||a.identifier!==s.touchId)return}else{if(null!==s.touchId)return;if(i.pointerId!==s.pointerId)return;a=i}if(["pointercancel","pointerout","pointerleave","contextmenu"].includes(i.type)){if(!(["pointercancel","contextmenu"].includes(i.type)&&(t.browser.isSafari||t.browser.isWebView)))return}s.pointerId=null,s.touchId=null;const{params:r,touches:n,rtlTranslate:d,slidesGrid:c,enabled:p}=t;if(!p)return;if(!r.simulateTouch&&"mouse"===i.pointerType)return;if(s.allowTouchCallbacks&&t.emit("touchEnd",i),s.allowTouchCallbacks=!1,!s.isTouched)return s.isMoved&&r.grabCursor&&t.setGrabCursor(!1),s.isMoved=!1,void(s.startMoving=!1);r.grabCursor&&s.isMoved&&s.isTouched&&(!0===t.allowSlideNext||!0===t.allowSlidePrev)&&t.setGrabCursor(!1);const u=o(),m=u-s.touchStartTime;if(t.allowClick){const e=i.path||i.composedPath&&i.composedPath();t.updateClickedSlide(e&&e[0]||i.target,e),t.emit("tap click",i),m<300&&u-s.lastClickTime<300&&t.emit("doubleTap doubleClick",i)}if(s.lastClickTime=o(),l((()=>{t.destroyed||(t.allowClick=!0)})),!s.isTouched||!s.isMoved||!t.swipeDirection||0===n.diff&&!s.loopSwapReset||s.currentTranslate===s.startTranslate&&!s.loopSwapReset)return s.isTouched=!1,s.isMoved=!1,void(s.startMoving=!1);let h;if(s.isTouched=!1,s.isMoved=!1,s.startMoving=!1,h=r.followFinger?d?t.translate:-t.translate:-s.currentTranslate,r.cssMode)return;if(r.freeMode&&r.freeMode.enabled)return void t.freeMode.onTouchEnd({currentPos:h});const f=h>=-t.maxTranslate()&&!t.params.loop;let g=0,v=t.slidesSizesGrid[0];for(let e=0;e=c[e]&&h=c[e])&&(g=e,v=c[c.length-1]-c[c.length-2])}let w=null,b=null;r.rewind&&(t.isBeginning?b=r.virtual&&r.virtual.enabled&&t.virtual?t.virtual.slides.length-1:t.slides.length-1:t.isEnd&&(w=0));const y=(h-c[g])/v,E=gr.longSwipesMs){if(!r.longSwipes)return void t.slideTo(t.activeIndex);"next"===t.swipeDirection&&(y>=r.longSwipesRatio?t.slideTo(r.rewind&&t.isEnd?w:g+E):t.slideTo(g)),"prev"===t.swipeDirection&&(y>1-r.longSwipesRatio?t.slideTo(g+E):null!==b&&y<0&&Math.abs(y)>r.longSwipesRatio?t.slideTo(b):t.slideTo(g))}else{if(!r.shortSwipes)return void t.slideTo(t.activeIndex);t.navigation&&(i.target===t.navigation.nextEl||i.target===t.navigation.prevEl)?i.target===t.navigation.nextEl?t.slideTo(g+E):t.slideTo(g):("next"===t.swipeDirection&&t.slideTo(null!==w?w:g+E),"prev"===t.swipeDirection&&t.slideTo(null!==b?b:g))}}function W(){const e=this,{params:t,el:s}=e;if(s&&0===s.offsetWidth)return;t.breakpoints&&e.setBreakpoint();const{allowSlideNext:a,allowSlidePrev:i,snapGrid:r}=e,n=e.virtual&&e.params.virtual.enabled;e.allowSlideNext=!0,e.allowSlidePrev=!0,e.updateSize(),e.updateSlides(),e.updateSlidesClasses();const l=n&&t.loop;!("auto"===t.slidesPerView||t.slidesPerView>1)||!e.isEnd||e.isBeginning||e.params.centeredSlides||l?e.params.loop&&!n?e.slideToLoop(e.realIndex,0,!1,!0):e.slideTo(e.activeIndex,0,!1,!0):e.slideTo(e.slides.length-1,0,!1,!0),e.autoplay&&e.autoplay.running&&e.autoplay.paused&&(clearTimeout(e.autoplay.resizeTimeout),e.autoplay.resizeTimeout=setTimeout((()=>{e.autoplay&&e.autoplay.running&&e.autoplay.paused&&e.autoplay.resume()}),500)),e.allowSlidePrev=i,e.allowSlideNext=a,e.params.watchOverflow&&r!==e.snapGrid&&e.checkOverflow()}function j(e){const t=this;t.enabled&&(t.allowClick||(t.params.preventClicks&&e.preventDefault(),t.params.preventClicksPropagation&&t.animating&&(e.stopPropagation(),e.stopImmediatePropagation())))}function U(){const e=this,{wrapperEl:t,rtlTranslate:s,enabled:a}=e;if(!a)return;let i;e.previousTranslate=e.translate,e.isHorizontal()?e.translate=-t.scrollLeft:e.translate=-t.scrollTop,0===e.translate&&(e.translate=0),e.updateActiveIndex(),e.updateSlidesClasses();const r=e.maxTranslate()-e.minTranslate();i=0===r?0:(e.translate-e.minTranslate())/r,i!==e.progress&&e.updateProgress(s?-e.translate:e.translate),e.emit("setTranslate",e.translate,!1)}function K(e){const t=this;D(t,e.target),t.params.cssMode||"auto"!==t.params.slidesPerView&&!t.params.autoHeight||t.update()}function Z(){const e=this;e.documentTouchHandlerProceeded||(e.documentTouchHandlerProceeded=!0,e.params.touchReleaseOnEdges&&(e.el.style.touchAction="auto"))}const Q=(e,t)=>{const s=a(),{params:i,el:r,wrapperEl:n,device:l}=e,o=!!i.nested,d="on"===t?"addEventListener":"removeEventListener",c=t;r&&"string"!=typeof r&&(s[d]("touchstart",e.onDocumentTouchStart,{passive:!1,capture:o}),r[d]("touchstart",e.onTouchStart,{passive:!1}),r[d]("pointerdown",e.onTouchStart,{passive:!1}),s[d]("touchmove",e.onTouchMove,{passive:!1,capture:o}),s[d]("pointermove",e.onTouchMove,{passive:!1,capture:o}),s[d]("touchend",e.onTouchEnd,{passive:!0}),s[d]("pointerup",e.onTouchEnd,{passive:!0}),s[d]("pointercancel",e.onTouchEnd,{passive:!0}),s[d]("touchcancel",e.onTouchEnd,{passive:!0}),s[d]("pointerout",e.onTouchEnd,{passive:!0}),s[d]("pointerleave",e.onTouchEnd,{passive:!0}),s[d]("contextmenu",e.onTouchEnd,{passive:!0}),(i.preventClicks||i.preventClicksPropagation)&&r[d]("click",e.onClick,!0),i.cssMode&&n[d]("scroll",e.onScroll),i.updateOnWindowResize?e[c](l.ios||l.android?"resize orientationchange observerUpdate":"resize observerUpdate",W,!0):e[c]("observerUpdate",W,!0),r[d]("load",e.onLoad,{capture:!0}))};const J=(e,t)=>e.grid&&t.grid&&t.grid.rows>1;var ee={init:!0,direction:"horizontal",oneWayMovement:!1,swiperElementNodeName:"SWIPER-CONTAINER",touchEventsTarget:"wrapper",initialSlide:0,speed:300,cssMode:!1,updateOnWindowResize:!0,resizeObserver:!0,nested:!1,createElements:!1,eventsPrefix:"swiper",enabled:!0,focusableElements:"input, select, option, textarea, button, video, label",width:null,height:null,preventInteractionOnTransition:!1,userAgent:null,url:null,edgeSwipeDetection:!1,edgeSwipeThreshold:20,autoHeight:!1,setWrapperSize:!1,virtualTranslate:!1,effect:"slide",breakpoints:void 0,breakpointsBase:"window",spaceBetween:0,slidesPerView:1,slidesPerGroup:1,slidesPerGroupSkip:0,slidesPerGroupAuto:!1,centeredSlides:!1,centeredSlidesBounds:!1,slidesOffsetBefore:0,slidesOffsetAfter:0,normalizeSlideIndex:!0,centerInsufficientSlides:!1,watchOverflow:!0,roundLengths:!1,touchRatio:1,touchAngle:45,simulateTouch:!0,shortSwipes:!0,longSwipes:!0,longSwipesRatio:.5,longSwipesMs:300,followFinger:!0,allowTouchMove:!0,threshold:5,touchMoveStopPropagation:!1,touchStartPreventDefault:!0,touchStartForcePreventDefault:!1,touchReleaseOnEdges:!1,uniqueNavElements:!0,resistance:!0,resistanceRatio:.85,watchSlidesProgress:!1,grabCursor:!1,preventClicks:!0,preventClicksPropagation:!0,slideToClickedSlide:!1,loop:!1,loopAddBlankSlides:!0,loopAdditionalSlides:0,loopPreventsSliding:!0,rewind:!1,allowSlidePrev:!0,allowSlideNext:!0,swipeHandler:null,noSwiping:!0,noSwipingClass:"swiper-no-swiping",noSwipingSelector:null,passiveListeners:!0,maxBackfaceHiddenSlides:10,containerModifierClass:"swiper-",slideClass:"swiper-slide",slideBlankClass:"swiper-slide-blank",slideActiveClass:"swiper-slide-active",slideVisibleClass:"swiper-slide-visible",slideFullyVisibleClass:"swiper-slide-fully-visible",slideNextClass:"swiper-slide-next",slidePrevClass:"swiper-slide-prev",wrapperClass:"swiper-wrapper",lazyPreloaderClass:"swiper-lazy-preloader",lazyPreloadPrevNext:0,runCallbacksOnInit:!0,_emitClasses:!1};function te(e,t){return function(s){void 0===s&&(s={});const a=Object.keys(s)[0],i=s[a];"object"==typeof i&&null!==i?(!0===e[a]&&(e[a]={enabled:!0}),"navigation"===a&&e[a]&&e[a].enabled&&!e[a].prevEl&&!e[a].nextEl&&(e[a].auto=!0),["pagination","scrollbar"].indexOf(a)>=0&&e[a]&&e[a].enabled&&!e[a].el&&(e[a].auto=!0),a in e&&"enabled"in i?("object"!=typeof e[a]||"enabled"in e[a]||(e[a].enabled=!0),e[a]||(e[a]={enabled:!1}),p(t,s)):p(t,s)):p(t,s)}}const se={eventsEmitter:$,update:H,translate:Y,transition:{setTransition:function(e,t){const s=this;s.params.cssMode||(s.wrapperEl.style.transitionDuration=`${e}ms`,s.wrapperEl.style.transitionDelay=0===e?"0ms":""),s.emit("setTransition",e,t)},transitionStart:function(e,t){void 0===e&&(e=!0);const s=this,{params:a}=s;a.cssMode||(a.autoHeight&&s.updateAutoHeight(),B({swiper:s,runCallbacks:e,direction:t,step:"Start"}))},transitionEnd:function(e,t){void 0===e&&(e=!0);const s=this,{params:a}=s;s.animating=!1,a.cssMode||(s.setTransition(0),B({swiper:s,runCallbacks:e,direction:t,step:"End"}))}},slide:N,loop:R,grabCursor:{setGrabCursor:function(e){const t=this;if(!t.params.simulateTouch||t.params.watchOverflow&&t.isLocked||t.params.cssMode)return;const s="container"===t.params.touchEventsTarget?t.el:t.wrapperEl;t.isElement&&(t.__preventObserver__=!0),s.style.cursor="move",s.style.cursor=e?"grabbing":"grab",t.isElement&&requestAnimationFrame((()=>{t.__preventObserver__=!1}))},unsetGrabCursor:function(){const e=this;e.params.watchOverflow&&e.isLocked||e.params.cssMode||(e.isElement&&(e.__preventObserver__=!0),e["container"===e.params.touchEventsTarget?"el":"wrapperEl"].style.cursor="",e.isElement&&requestAnimationFrame((()=>{e.__preventObserver__=!1})))}},events:{attachEvents:function(){const e=this,{params:t}=e;e.onTouchStart=_.bind(e),e.onTouchMove=F.bind(e),e.onTouchEnd=V.bind(e),e.onDocumentTouchStart=Z.bind(e),t.cssMode&&(e.onScroll=U.bind(e)),e.onClick=j.bind(e),e.onLoad=K.bind(e),Q(e,"on")},detachEvents:function(){Q(this,"off")}},breakpoints:{setBreakpoint:function(){const e=this,{realIndex:t,initialized:s,params:i,el:r}=e,n=i.breakpoints;if(!n||n&&0===Object.keys(n).length)return;const l=a(),o="window"!==i.breakpointsBase&&i.breakpointsBase?"container":i.breakpointsBase,d=["window","container"].includes(i.breakpointsBase)||!i.breakpointsBase?e.el:l.querySelector(i.breakpointsBase),c=e.getBreakpoint(n,o,d);if(!c||e.currentBreakpoint===c)return;const u=(c in n?n[c]:void 0)||e.originalParams,m=J(e,i),h=J(e,u),f=e.params.grabCursor,g=u.grabCursor,v=i.enabled;m&&!h?(r.classList.remove(`${i.containerModifierClass}grid`,`${i.containerModifierClass}grid-column`),e.emitContainerClasses()):!m&&h&&(r.classList.add(`${i.containerModifierClass}grid`),(u.grid.fill&&"column"===u.grid.fill||!u.grid.fill&&"column"===i.grid.fill)&&r.classList.add(`${i.containerModifierClass}grid-column`),e.emitContainerClasses()),f&&!g?e.unsetGrabCursor():!f&&g&&e.setGrabCursor(),["navigation","pagination","scrollbar"].forEach((t=>{if(void 0===u[t])return;const s=i[t]&&i[t].enabled,a=u[t]&&u[t].enabled;s&&!a&&e[t].disable(),!s&&a&&e[t].enable()}));const w=u.direction&&u.direction!==i.direction,b=i.loop&&(u.slidesPerView!==i.slidesPerView||w),y=i.loop;w&&s&&e.changeDirection(),p(e.params,u);const E=e.params.enabled,x=e.params.loop;Object.assign(e,{allowTouchMove:e.params.allowTouchMove,allowSlideNext:e.params.allowSlideNext,allowSlidePrev:e.params.allowSlidePrev}),v&&!E?e.disable():!v&&E&&e.enable(),e.currentBreakpoint=c,e.emit("_beforeBreakpoint",u),s&&(b?(e.loopDestroy(),e.loopCreate(t),e.updateSlides()):!y&&x?(e.loopCreate(t),e.updateSlides()):y&&!x&&e.loopDestroy()),e.emit("breakpoint",u)},getBreakpoint:function(e,t,s){if(void 0===t&&(t="window"),!e||"container"===t&&!s)return;let a=!1;const i=r(),n="window"===t?i.innerHeight:s.clientHeight,l=Object.keys(e).map((e=>{if("string"==typeof e&&0===e.indexOf("@")){const t=parseFloat(e.substr(1));return{value:n*t,point:e}}return{value:e,point:e}}));l.sort(((e,t)=>parseInt(e.value,10)-parseInt(t.value,10)));for(let e=0;es}else e.isLocked=1===e.snapGrid.length;!0===s.allowSlideNext&&(e.allowSlideNext=!e.isLocked),!0===s.allowSlidePrev&&(e.allowSlidePrev=!e.isLocked),t&&t!==e.isLocked&&(e.isEnd=!1),t!==e.isLocked&&e.emit(e.isLocked?"lock":"unlock")}},classes:{addClasses:function(){const e=this,{classNames:t,params:s,rtl:a,el:i,device:r}=e,n=function(e,t){const s=[];return e.forEach((e=>{"object"==typeof e?Object.keys(e).forEach((a=>{e[a]&&s.push(t+a)})):"string"==typeof e&&s.push(t+e)})),s}(["initialized",s.direction,{"free-mode":e.params.freeMode&&s.freeMode.enabled},{autoheight:s.autoHeight},{rtl:a},{grid:s.grid&&s.grid.rows>1},{"grid-column":s.grid&&s.grid.rows>1&&"column"===s.grid.fill},{android:r.android},{ios:r.ios},{"css-mode":s.cssMode},{centered:s.cssMode&&s.centeredSlides},{"watch-progress":s.watchSlidesProgress}],s.containerModifierClass);t.push(...n),i.classList.add(...t),e.emitContainerClasses()},removeClasses:function(){const{el:e,classNames:t}=this;e&&"string"!=typeof e&&(e.classList.remove(...t),this.emitContainerClasses())}}},ae={};class ie{constructor(){let e,t;for(var s=arguments.length,i=new Array(s),r=0;r1){const e=[];return n.querySelectorAll(t.el).forEach((s=>{const a=p({},t,{el:s});e.push(new ie(a))})),e}const l=this;l.__swiper__=!0,l.support=I(),l.device=z({userAgent:t.userAgent}),l.browser=A(),l.eventsListeners={},l.eventsAnyListeners=[],l.modules=[...l.__modules__],t.modules&&Array.isArray(t.modules)&&l.modules.push(...t.modules);const o={};l.modules.forEach((e=>{e({params:t,swiper:l,extendParams:te(t,o),on:l.on.bind(l),once:l.once.bind(l),off:l.off.bind(l),emit:l.emit.bind(l)})}));const d=p({},ee,o);return l.params=p({},d,ae,t),l.originalParams=p({},l.params),l.passedParams=p({},t),l.params&&l.params.on&&Object.keys(l.params.on).forEach((e=>{l.on(e,l.params.on[e])})),l.params&&l.params.onAny&&l.onAny(l.params.onAny),Object.assign(l,{enabled:l.params.enabled,el:e,classNames:[],slides:[],slidesGrid:[],snapGrid:[],slidesSizesGrid:[],isHorizontal:()=>"horizontal"===l.params.direction,isVertical:()=>"vertical"===l.params.direction,activeIndex:0,realIndex:0,isBeginning:!0,isEnd:!1,translate:0,previousTranslate:0,progress:0,velocity:0,animating:!1,cssOverflowAdjustment(){return Math.trunc(this.translate/2**23)*2**23},allowSlideNext:l.params.allowSlideNext,allowSlidePrev:l.params.allowSlidePrev,touchEventsData:{isTouched:void 0,isMoved:void 0,allowTouchCallbacks:void 0,touchStartTime:void 0,isScrolling:void 0,currentTranslate:void 0,startTranslate:void 0,allowThresholdMove:void 0,focusableElements:l.params.focusableElements,lastClickTime:0,clickTimeout:void 0,velocities:[],allowMomentumBounce:void 0,startMoving:void 0,pointerId:null,touchId:null},allowClick:!0,allowTouchMove:l.params.allowTouchMove,touches:{startX:0,startY:0,currentX:0,currentY:0,diff:0},imagesToLoad:[],imagesLoaded:0}),l.emit("_swiper"),l.params.init&&l.init(),l}getDirectionLabel(e){return this.isHorizontal()?e:{width:"height","margin-top":"margin-left","margin-bottom ":"margin-right","margin-left":"margin-top","margin-right":"margin-bottom","padding-left":"padding-top","padding-right":"padding-bottom",marginRight:"marginBottom"}[e]}getSlideIndex(e){const{slidesEl:t,params:s}=this,a=y(f(t,`.${s.slideClass}, swiper-slide`)[0]);return y(e)-a}getSlideIndexByData(e){return this.getSlideIndex(this.slides.find((t=>1*t.getAttribute("data-swiper-slide-index")===e)))}recalcSlides(){const{slidesEl:e,params:t}=this;this.slides=f(e,`.${t.slideClass}, swiper-slide`)}enable(){const e=this;e.enabled||(e.enabled=!0,e.params.grabCursor&&e.setGrabCursor(),e.emit("enable"))}disable(){const e=this;e.enabled&&(e.enabled=!1,e.params.grabCursor&&e.unsetGrabCursor(),e.emit("disable"))}setProgress(e,t){const s=this;e=Math.min(Math.max(e,0),1);const a=s.minTranslate(),i=(s.maxTranslate()-a)*e+a;s.translateTo(i,void 0===t?0:t),s.updateActiveIndex(),s.updateSlidesClasses()}emitContainerClasses(){const e=this;if(!e.params._emitClasses||!e.el)return;const t=e.el.className.split(" ").filter((t=>0===t.indexOf("swiper")||0===t.indexOf(e.params.containerModifierClass)));e.emit("_containerClasses",t.join(" "))}getSlideClasses(e){const t=this;return t.destroyed?"":e.className.split(" ").filter((e=>0===e.indexOf("swiper-slide")||0===e.indexOf(t.params.slideClass))).join(" ")}emitSlidesClasses(){const e=this;if(!e.params._emitClasses||!e.el)return;const t=[];e.slides.forEach((s=>{const a=e.getSlideClasses(s);t.push({slideEl:s,classNames:a}),e.emit("_slideClass",s,a)})),e.emit("_slideClasses",t)}slidesPerViewDynamic(e,t){void 0===e&&(e="current"),void 0===t&&(t=!1);const{params:s,slides:a,slidesGrid:i,slidesSizesGrid:r,size:n,activeIndex:l}=this;let o=1;if("number"==typeof s.slidesPerView)return s.slidesPerView;if(s.centeredSlides){let e,t=a[l]?Math.ceil(a[l].swiperSlideSize):0;for(let s=l+1;sn&&(e=!0));for(let s=l-1;s>=0;s-=1)a[s]&&!e&&(t+=a[s].swiperSlideSize,o+=1,t>n&&(e=!0))}else if("current"===e)for(let e=l+1;e=0;e-=1){i[l]-i[e]{t.complete&&D(e,t)})),e.updateSize(),e.updateSlides(),e.updateProgress(),e.updateSlidesClasses(),s.freeMode&&s.freeMode.enabled&&!s.cssMode)a(),s.autoHeight&&e.updateAutoHeight();else{if(("auto"===s.slidesPerView||s.slidesPerView>1)&&e.isEnd&&!s.centeredSlides){const t=e.virtual&&s.virtual.enabled?e.virtual.slides:e.slides;i=e.slideTo(t.length-1,0,!1,!0)}else i=e.slideTo(e.activeIndex,0,!1,!0);i||a()}s.watchOverflow&&t!==e.snapGrid&&e.checkOverflow(),e.emit("update")}changeDirection(e,t){void 0===t&&(t=!0);const s=this,a=s.params.direction;return e||(e="horizontal"===a?"vertical":"horizontal"),e===a||"horizontal"!==e&&"vertical"!==e||(s.el.classList.remove(`${s.params.containerModifierClass}${a}`),s.el.classList.add(`${s.params.containerModifierClass}${e}`),s.emitContainerClasses(),s.params.direction=e,s.slides.forEach((t=>{"vertical"===e?t.style.width="":t.style.height=""})),s.emit("changeDirection"),t&&s.update()),s}changeLanguageDirection(e){const t=this;t.rtl&&"rtl"===e||!t.rtl&&"ltr"===e||(t.rtl="rtl"===e,t.rtlTranslate="horizontal"===t.params.direction&&t.rtl,t.rtl?(t.el.classList.add(`${t.params.containerModifierClass}rtl`),t.el.dir="rtl"):(t.el.classList.remove(`${t.params.containerModifierClass}rtl`),t.el.dir="ltr"),t.update())}mount(e){const t=this;if(t.mounted)return!0;let s=e||t.params.el;if("string"==typeof s&&(s=document.querySelector(s)),!s)return!1;s.swiper=t,s.parentNode&&s.parentNode.host&&s.parentNode.host.nodeName===t.params.swiperElementNodeName.toUpperCase()&&(t.isElement=!0);const a=()=>`.${(t.params.wrapperClass||"").trim().split(" ").join(".")}`;let i=(()=>{if(s&&s.shadowRoot&&s.shadowRoot.querySelector){return s.shadowRoot.querySelector(a())}return f(s,a())[0]})();return!i&&t.params.createElements&&(i=v("div",t.params.wrapperClass),s.append(i),f(s,`.${t.params.slideClass}`).forEach((e=>{i.append(e)}))),Object.assign(t,{el:s,wrapperEl:i,slidesEl:t.isElement&&!s.parentNode.host.slideSlots?s.parentNode.host:i,hostEl:t.isElement?s.parentNode.host:s,mounted:!0,rtl:"rtl"===s.dir.toLowerCase()||"rtl"===b(s,"direction"),rtlTranslate:"horizontal"===t.params.direction&&("rtl"===s.dir.toLowerCase()||"rtl"===b(s,"direction")),wrongRTL:"-webkit-box"===b(i,"display")}),!0}init(e){const t=this;if(t.initialized)return t;if(!1===t.mount(e))return t;t.emit("beforeInit"),t.params.breakpoints&&t.setBreakpoint(),t.addClasses(),t.updateSize(),t.updateSlides(),t.params.watchOverflow&&t.checkOverflow(),t.params.grabCursor&&t.enabled&&t.setGrabCursor(),t.params.loop&&t.virtual&&t.params.virtual.enabled?t.slideTo(t.params.initialSlide+t.virtual.slidesBefore,0,t.params.runCallbacksOnInit,!1,!0):t.slideTo(t.params.initialSlide,0,t.params.runCallbacksOnInit,!1,!0),t.params.loop&&t.loopCreate(void 0,!0),t.attachEvents();const s=[...t.el.querySelectorAll('[loading="lazy"]')];return t.isElement&&s.push(...t.hostEl.querySelectorAll('[loading="lazy"]')),s.forEach((e=>{e.complete?D(t,e):e.addEventListener("load",(e=>{D(t,e.target)}))})),X(t),t.initialized=!0,X(t),t.emit("init"),t.emit("afterInit"),t}destroy(e,t){void 0===e&&(e=!0),void 0===t&&(t=!0);const s=this,{params:a,el:i,wrapperEl:r,slides:n}=s;return void 0===s.params||s.destroyed||(s.emit("beforeDestroy"),s.initialized=!1,s.detachEvents(),a.loop&&s.loopDestroy(),t&&(s.removeClasses(),i&&"string"!=typeof i&&i.removeAttribute("style"),r&&r.removeAttribute("style"),n&&n.length&&n.forEach((e=>{e.classList.remove(a.slideVisibleClass,a.slideFullyVisibleClass,a.slideActiveClass,a.slideNextClass,a.slidePrevClass),e.removeAttribute("style"),e.removeAttribute("data-swiper-slide-index")}))),s.emit("destroy"),Object.keys(s.eventsListeners).forEach((e=>{s.off(e)})),!1!==e&&(s.el&&"string"!=typeof s.el&&(s.el.swiper=null),function(e){const t=e;Object.keys(t).forEach((e=>{try{t[e]=null}catch(e){}try{delete t[e]}catch(e){}}))}(s)),s.destroyed=!0),null}static extendDefaults(e){p(ae,e)}static get extendedDefaults(){return ae}static get defaults(){return ee}static installModule(e){ie.prototype.__modules__||(ie.prototype.__modules__=[]);const t=ie.prototype.__modules__;"function"==typeof e&&t.indexOf(e)<0&&t.push(e)}static use(e){return Array.isArray(e)?(e.forEach((e=>ie.installModule(e))),ie):(ie.installModule(e),ie)}}function re(e,t,s,a){return e.params.createElements&&Object.keys(a).forEach((i=>{if(!s[i]&&!0===s.auto){let r=f(e.el,`.${a[i]}`)[0];r||(r=v("div",a[i]),r.className=a[i],e.el.append(r)),s[i]=r,t[i]=r}})),s}function ne(e){return void 0===e&&(e=""),`.${e.trim().replace(/([\.:!+\/])/g,"\\$1").replace(/ /g,".")}`}function le(e){const t=this,{params:s,slidesEl:a}=t;s.loop&&t.loopDestroy();const i=e=>{if("string"==typeof e){const t=document.createElement("div");t.innerHTML=e,a.append(t.children[0]),t.innerHTML=""}else a.append(e)};if("object"==typeof e&&"length"in e)for(let t=0;t{if("string"==typeof e){const t=document.createElement("div");t.innerHTML=e,i.prepend(t.children[0]),t.innerHTML=""}else i.prepend(e)};if("object"==typeof e&&"length"in e){for(let t=0;t=l)return void s.appendSlide(t);let o=n>e?n+1:n;const d=[];for(let t=l-1;t>=e;t-=1){const e=s.slides[t];e.remove(),d.unshift(e)}if("object"==typeof t&&"length"in t){for(let e=0;ee?n+t.length:n}else r.append(t);for(let e=0;e{if(s.params.effect!==t)return;s.classNames.push(`${s.params.containerModifierClass}${t}`),l&&l()&&s.classNames.push(`${s.params.containerModifierClass}3d`);const e=n?n():{};Object.assign(s.params,e),Object.assign(s.originalParams,e)})),a("setTranslate",(()=>{s.params.effect===t&&i()})),a("setTransition",((e,a)=>{s.params.effect===t&&r(a)})),a("transitionEnd",(()=>{if(s.params.effect===t&&o){if(!d||!d().slideShadows)return;s.slides.forEach((e=>{e.querySelectorAll(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").forEach((e=>e.remove()))})),o()}})),a("virtualUpdate",(()=>{s.params.effect===t&&(s.slides.length||(c=!0),requestAnimationFrame((()=>{c&&s.slides&&s.slides.length&&(i(),c=!1)})))}))}function me(e,t){const s=h(t);return s!==t&&(s.style.backfaceVisibility="hidden",s.style["-webkit-backface-visibility"]="hidden"),s}function he(e){let{swiper:t,duration:s,transformElements:a,allSlides:i}=e;const{activeIndex:r}=t;if(t.params.virtualTranslate&&0!==s){let e,s=!1;e=i?a:a.filter((e=>{const s=e.classList.contains("swiper-slide-transform")?(e=>{if(!e.parentElement)return t.slides.find((t=>t.shadowRoot&&t.shadowRoot===e.parentNode));return e.parentElement})(e):e;return t.getSlideIndex(s)===r})),e.forEach((e=>{x(e,(()=>{if(s)return;if(!t||t.destroyed)return;s=!0,t.animating=!1;const e=new window.CustomEvent("transitionend",{bubbles:!0,cancelable:!0});t.wrapperEl.dispatchEvent(e)}))}))}}function fe(e,t,s){const a=`swiper-slide-shadow${s?`-${s}`:""}${e?` swiper-slide-shadow-${e}`:""}`,i=h(t);let r=i.querySelector(`.${a.split(" ").join(".")}`);return r||(r=v("div",a.split(" ")),i.append(r)),r}Object.keys(se).forEach((e=>{Object.keys(se[e]).forEach((t=>{ie.prototype[t]=se[e][t]}))})),ie.use([function(e){let{swiper:t,on:s,emit:a}=e;const i=r();let n=null,l=null;const o=()=>{t&&!t.destroyed&&t.initialized&&(a("beforeResize"),a("resize"))},d=()=>{t&&!t.destroyed&&t.initialized&&a("orientationchange")};s("init",(()=>{t.params.resizeObserver&&void 0!==i.ResizeObserver?t&&!t.destroyed&&t.initialized&&(n=new ResizeObserver((e=>{l=i.requestAnimationFrame((()=>{const{width:s,height:a}=t;let i=s,r=a;e.forEach((e=>{let{contentBoxSize:s,contentRect:a,target:n}=e;n&&n!==t.el||(i=a?a.width:(s[0]||s).inlineSize,r=a?a.height:(s[0]||s).blockSize)})),i===s&&r===a||o()}))})),n.observe(t.el)):(i.addEventListener("resize",o),i.addEventListener("orientationchange",d))})),s("destroy",(()=>{l&&i.cancelAnimationFrame(l),n&&n.unobserve&&t.el&&(n.unobserve(t.el),n=null),i.removeEventListener("resize",o),i.removeEventListener("orientationchange",d)}))},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;const n=[],l=r(),o=function(e,s){void 0===s&&(s={});const a=new(l.MutationObserver||l.WebkitMutationObserver)((e=>{if(t.__preventObserver__)return;if(1===e.length)return void i("observerUpdate",e[0]);const s=function(){i("observerUpdate",e[0])};l.requestAnimationFrame?l.requestAnimationFrame(s):l.setTimeout(s,0)}));a.observe(e,{attributes:void 0===s.attributes||s.attributes,childList:t.isElement||(void 0===s.childList||s).childList,characterData:void 0===s.characterData||s.characterData}),n.push(a)};s({observer:!1,observeParents:!1,observeSlideChildren:!1}),a("init",(()=>{if(t.params.observer){if(t.params.observeParents){const e=E(t.hostEl);for(let t=0;t{n.forEach((e=>{e.disconnect()})),n.splice(0,n.length)}))}]);const ge=[function(e){let t,{swiper:s,extendParams:i,on:r,emit:n}=e;i({virtual:{enabled:!1,slides:[],cache:!0,renderSlide:null,renderExternal:null,renderExternalUpdate:!0,addSlidesBefore:0,addSlidesAfter:0}});const l=a();s.virtual={cache:{},from:void 0,to:void 0,slides:[],offset:0,slidesGrid:[]};const o=l.createElement("div");function d(e,t){const a=s.params.virtual;if(a.cache&&s.virtual.cache[t])return s.virtual.cache[t];let i;return a.renderSlide?(i=a.renderSlide.call(s,e,t),"string"==typeof i&&(o.innerHTML=i,i=o.children[0])):i=s.isElement?v("swiper-slide"):v("div",s.params.slideClass),i.setAttribute("data-swiper-slide-index",t),a.renderSlide||(i.innerHTML=e),a.cache&&(s.virtual.cache[t]=i),i}function c(e,t,a){const{slidesPerView:i,slidesPerGroup:r,centeredSlides:l,loop:o,initialSlide:c}=s.params;if(t&&!o&&c>0)return;const{addSlidesBefore:p,addSlidesAfter:u}=s.params.virtual,{from:m,to:h,slides:g,slidesGrid:v,offset:w}=s.virtual;s.params.cssMode||s.updateActiveIndex();const b=void 0===a?s.activeIndex||0:a;let y,E,x;y=s.rtlTranslate?"right":s.isHorizontal()?"left":"top",l?(E=Math.floor(i/2)+r+u,x=Math.floor(i/2)+r+p):(E=i+(r-1)+u,x=(o?i:r)+p);let S=b-x,T=b+E;o||(S=Math.max(S,0),T=Math.min(T,g.length-1));let M=(s.slidesGrid[S]||0)-(s.slidesGrid[0]||0);function C(){s.updateSlides(),s.updateProgress(),s.updateSlidesClasses(),n("virtualUpdate")}if(o&&b>=x?(S-=x,l||(M+=s.slidesGrid[0])):o&&b{e.style[y]=M-Math.abs(s.cssOverflowAdjustment())+"px"})),s.updateProgress(),void n("virtualUpdate");if(s.params.virtual.renderExternal)return s.params.virtual.renderExternal.call(s,{offset:M,from:S,to:T,slides:function(){const e=[];for(let t=S;t<=T;t+=1)e.push(g[t]);return e}()}),void(s.params.virtual.renderExternalUpdate?C():n("virtualUpdate"));const P=[],L=[],I=e=>{let t=e;return e<0?t=g.length+e:t>=g.length&&(t-=g.length),t};if(e)s.slides.filter((e=>e.matches(`.${s.params.slideClass}, swiper-slide`))).forEach((e=>{e.remove()}));else for(let e=m;e<=h;e+=1)if(eT){const t=I(e);s.slides.filter((e=>e.matches(`.${s.params.slideClass}[data-swiper-slide-index="${t}"], swiper-slide[data-swiper-slide-index="${t}"]`))).forEach((e=>{e.remove()}))}const z=o?-g.length:0,A=o?2*g.length:g.length;for(let t=z;t=S&&t<=T){const s=I(t);void 0===h||e?L.push(s):(t>h&&L.push(s),t{s.slidesEl.append(d(g[e],e))})),o)for(let e=P.length-1;e>=0;e-=1){const t=P[e];s.slidesEl.prepend(d(g[t],t))}else P.sort(((e,t)=>t-e)),P.forEach((e=>{s.slidesEl.prepend(d(g[e],e))}));f(s.slidesEl,".swiper-slide, swiper-slide").forEach((e=>{e.style[y]=M-Math.abs(s.cssOverflowAdjustment())+"px"})),C()}r("beforeInit",(()=>{if(!s.params.virtual.enabled)return;let e;if(void 0===s.passedParams.virtual.slides){const t=[...s.slidesEl.children].filter((e=>e.matches(`.${s.params.slideClass}, swiper-slide`)));t&&t.length&&(s.virtual.slides=[...t],e=!0,t.forEach(((e,t)=>{e.setAttribute("data-swiper-slide-index",t),s.virtual.cache[t]=e,e.remove()})))}e||(s.virtual.slides=s.params.virtual.slides),s.classNames.push(`${s.params.containerModifierClass}virtual`),s.params.watchSlidesProgress=!0,s.originalParams.watchSlidesProgress=!0,c(!1,!0)})),r("setTranslate",(()=>{s.params.virtual.enabled&&(s.params.cssMode&&!s._immediateVirtual?(clearTimeout(t),t=setTimeout((()=>{c()}),100)):c())})),r("init update resize",(()=>{s.params.virtual.enabled&&s.params.cssMode&&u(s.wrapperEl,"--swiper-virtual-size",`${s.virtualSize}px`)})),Object.assign(s.virtual,{appendSlide:function(e){if("object"==typeof e&&"length"in e)for(let t=0;t{const a=e[s],r=a.getAttribute("data-swiper-slide-index");r&&a.setAttribute("data-swiper-slide-index",parseInt(r,10)+i),t[parseInt(s,10)+i]=a})),s.virtual.cache=t}c(!0),s.slideTo(a,0)},removeSlide:function(e){if(null==e)return;let t=s.activeIndex;if(Array.isArray(e))for(let a=e.length-1;a>=0;a-=1)s.params.virtual.cache&&(delete s.virtual.cache[e[a]],Object.keys(s.virtual.cache).forEach((t=>{t>e&&(s.virtual.cache[t-1]=s.virtual.cache[t],s.virtual.cache[t-1].setAttribute("data-swiper-slide-index",t-1),delete s.virtual.cache[t])}))),s.virtual.slides.splice(e[a],1),e[a]{t>e&&(s.virtual.cache[t-1]=s.virtual.cache[t],s.virtual.cache[t-1].setAttribute("data-swiper-slide-index",t-1),delete s.virtual.cache[t])}))),s.virtual.slides.splice(e,1),e0&&0===E(t.el,`.${t.params.slideActiveClass}`).length)return;const a=t.el,i=a.clientWidth,r=a.clientHeight,n=o.innerWidth,l=o.innerHeight,d=w(a);s&&(d.left-=a.scrollLeft);const c=[[d.left,d.top],[d.left+i,d.top],[d.left,d.top+r],[d.left+i,d.top+r]];for(let t=0;t=0&&s[0]<=n&&s[1]>=0&&s[1]<=l){if(0===s[0]&&0===s[1])continue;e=!0}}if(!e)return}t.isHorizontal()?((d||c||p||u)&&(a.preventDefault?a.preventDefault():a.returnValue=!1),((c||u)&&!s||(d||p)&&s)&&t.slideNext(),((d||p)&&!s||(c||u)&&s)&&t.slidePrev()):((d||c||m||h)&&(a.preventDefault?a.preventDefault():a.returnValue=!1),(c||h)&&t.slideNext(),(d||m)&&t.slidePrev()),n("keyPress",i)}}function c(){t.keyboard.enabled||(l.addEventListener("keydown",d),t.keyboard.enabled=!0)}function p(){t.keyboard.enabled&&(l.removeEventListener("keydown",d),t.keyboard.enabled=!1)}t.keyboard={enabled:!1},s({keyboard:{enabled:!1,onlyInViewport:!0,pageUpDown:!0}}),i("init",(()=>{t.params.keyboard.enabled&&c()})),i("destroy",(()=>{t.keyboard.enabled&&p()})),Object.assign(t.keyboard,{enable:c,disable:p})},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;const n=r();let d;s({mousewheel:{enabled:!1,releaseOnEdges:!1,invert:!1,forceToAxis:!1,sensitivity:1,eventsTarget:"container",thresholdDelta:null,thresholdTime:null,noMousewheelClass:"swiper-no-mousewheel"}}),t.mousewheel={enabled:!1};let c,p=o();const u=[];function m(){t.enabled&&(t.mouseEntered=!0)}function h(){t.enabled&&(t.mouseEntered=!1)}function f(e){return!(t.params.mousewheel.thresholdDelta&&e.delta=6&&o()-p<60||(e.direction<0?t.isEnd&&!t.params.loop||t.animating||(t.slideNext(),i("scroll",e.raw)):t.isBeginning&&!t.params.loop||t.animating||(t.slidePrev(),i("scroll",e.raw)),p=(new n.Date).getTime(),!1)))}function g(e){let s=e,a=!0;if(!t.enabled)return;if(e.target.closest(`.${t.params.mousewheel.noMousewheelClass}`))return;const r=t.params.mousewheel;t.params.cssMode&&s.preventDefault();let n=t.el;"container"!==t.params.mousewheel.eventsTarget&&(n=document.querySelector(t.params.mousewheel.eventsTarget));const p=n&&n.contains(s.target);if(!t.mouseEntered&&!p&&!r.releaseOnEdges)return!0;s.originalEvent&&(s=s.originalEvent);let m=0;const h=t.rtlTranslate?-1:1,g=function(e){let t=0,s=0,a=0,i=0;return"detail"in e&&(s=e.detail),"wheelDelta"in e&&(s=-e.wheelDelta/120),"wheelDeltaY"in e&&(s=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=s,s=0),a=10*t,i=10*s,"deltaY"in e&&(i=e.deltaY),"deltaX"in e&&(a=e.deltaX),e.shiftKey&&!a&&(a=i,i=0),(a||i)&&e.deltaMode&&(1===e.deltaMode?(a*=40,i*=40):(a*=800,i*=800)),a&&!t&&(t=a<1?-1:1),i&&!s&&(s=i<1?-1:1),{spinX:t,spinY:s,pixelX:a,pixelY:i}}(s);if(r.forceToAxis)if(t.isHorizontal()){if(!(Math.abs(g.pixelX)>Math.abs(g.pixelY)))return!0;m=-g.pixelX*h}else{if(!(Math.abs(g.pixelY)>Math.abs(g.pixelX)))return!0;m=-g.pixelY}else m=Math.abs(g.pixelX)>Math.abs(g.pixelY)?-g.pixelX*h:-g.pixelY;if(0===m)return!0;r.invert&&(m=-m);let v=t.getTranslate()+m*r.sensitivity;if(v>=t.minTranslate()&&(v=t.minTranslate()),v<=t.maxTranslate()&&(v=t.maxTranslate()),a=!!t.params.loop||!(v===t.minTranslate()||v===t.maxTranslate()),a&&t.params.nested&&s.stopPropagation(),t.params.freeMode&&t.params.freeMode.enabled){const e={time:o(),delta:Math.abs(m),direction:Math.sign(m)},a=c&&e.time=t.minTranslate()&&(n=t.minTranslate()),n<=t.maxTranslate()&&(n=t.maxTranslate()),t.setTransition(0),t.setTranslate(n),t.updateProgress(),t.updateActiveIndex(),t.updateSlidesClasses(),(!o&&t.isBeginning||!p&&t.isEnd)&&t.updateSlidesClasses(),t.params.loop&&t.loopFix({direction:e.direction<0?"next":"prev",byMousewheel:!0}),t.params.freeMode.sticky){clearTimeout(d),d=void 0,u.length>=15&&u.shift();const s=u.length?u[u.length-1]:void 0,a=u[0];if(u.push(e),s&&(e.delta>s.delta||e.direction!==s.direction))u.splice(0);else if(u.length>=15&&e.time-a.time<500&&a.delta-e.delta>=1&&e.delta<=6){const s=m>0?.8:.2;c=e,u.splice(0),d=l((()=>{!t.destroyed&&t.params&&t.slideToClosest(t.params.speed,!0,void 0,s)}),0)}d||(d=l((()=>{if(t.destroyed||!t.params)return;c=e,u.splice(0),t.slideToClosest(t.params.speed,!0,void 0,.5)}),500))}if(a||i("scroll",s),t.params.autoplay&&t.params.autoplay.disableOnInteraction&&t.autoplay.stop(),r.releaseOnEdges&&(n===t.minTranslate()||n===t.maxTranslate()))return!0}}else{const s={time:o(),delta:Math.abs(m),direction:Math.sign(m),raw:e};u.length>=2&&u.shift();const a=u.length?u[u.length-1]:void 0;if(u.push(s),a?(s.direction!==a.direction||s.delta>a.delta||s.time>a.time+150)&&f(s):f(s),function(e){const s=t.params.mousewheel;if(e.direction<0){if(t.isEnd&&!t.params.loop&&s.releaseOnEdges)return!0}else if(t.isBeginning&&!t.params.loop&&s.releaseOnEdges)return!0;return!1}(s))return!0}return s.preventDefault?s.preventDefault():s.returnValue=!1,!1}function v(e){let s=t.el;"container"!==t.params.mousewheel.eventsTarget&&(s=document.querySelector(t.params.mousewheel.eventsTarget)),s[e]("mouseenter",m),s[e]("mouseleave",h),s[e]("wheel",g)}function w(){return t.params.cssMode?(t.wrapperEl.removeEventListener("wheel",g),!0):!t.mousewheel.enabled&&(v("addEventListener"),t.mousewheel.enabled=!0,!0)}function b(){return t.params.cssMode?(t.wrapperEl.addEventListener(event,g),!0):!!t.mousewheel.enabled&&(v("removeEventListener"),t.mousewheel.enabled=!1,!0)}a("init",(()=>{!t.params.mousewheel.enabled&&t.params.cssMode&&b(),t.params.mousewheel.enabled&&w()})),a("destroy",(()=>{t.params.cssMode&&w(),t.mousewheel.enabled&&b()})),Object.assign(t.mousewheel,{enable:w,disable:b})},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;function r(e){let s;return e&&"string"==typeof e&&t.isElement&&(s=t.el.querySelector(e)||t.hostEl.querySelector(e),s)?s:(e&&("string"==typeof e&&(s=[...document.querySelectorAll(e)]),t.params.uniqueNavElements&&"string"==typeof e&&s&&s.length>1&&1===t.el.querySelectorAll(e).length?s=t.el.querySelector(e):s&&1===s.length&&(s=s[0])),e&&!s?e:s)}function n(e,s){const a=t.params.navigation;(e=T(e)).forEach((e=>{e&&(e.classList[s?"add":"remove"](...a.disabledClass.split(" ")),"BUTTON"===e.tagName&&(e.disabled=s),t.params.watchOverflow&&t.enabled&&e.classList[t.isLocked?"add":"remove"](a.lockClass))}))}function l(){const{nextEl:e,prevEl:s}=t.navigation;if(t.params.loop)return n(s,!1),void n(e,!1);n(s,t.isBeginning&&!t.params.rewind),n(e,t.isEnd&&!t.params.rewind)}function o(e){e.preventDefault(),(!t.isBeginning||t.params.loop||t.params.rewind)&&(t.slidePrev(),i("navigationPrev"))}function d(e){e.preventDefault(),(!t.isEnd||t.params.loop||t.params.rewind)&&(t.slideNext(),i("navigationNext"))}function c(){const e=t.params.navigation;if(t.params.navigation=re(t,t.originalParams.navigation,t.params.navigation,{nextEl:"swiper-button-next",prevEl:"swiper-button-prev"}),!e.nextEl&&!e.prevEl)return;let s=r(e.nextEl),a=r(e.prevEl);Object.assign(t.navigation,{nextEl:s,prevEl:a}),s=T(s),a=T(a);const i=(s,a)=>{s&&s.addEventListener("click","next"===a?d:o),!t.enabled&&s&&s.classList.add(...e.lockClass.split(" "))};s.forEach((e=>i(e,"next"))),a.forEach((e=>i(e,"prev")))}function p(){let{nextEl:e,prevEl:s}=t.navigation;e=T(e),s=T(s);const a=(e,s)=>{e.removeEventListener("click","next"===s?d:o),e.classList.remove(...t.params.navigation.disabledClass.split(" "))};e.forEach((e=>a(e,"next"))),s.forEach((e=>a(e,"prev")))}s({navigation:{nextEl:null,prevEl:null,hideOnClick:!1,disabledClass:"swiper-button-disabled",hiddenClass:"swiper-button-hidden",lockClass:"swiper-button-lock",navigationDisabledClass:"swiper-navigation-disabled"}}),t.navigation={nextEl:null,prevEl:null},a("init",(()=>{!1===t.params.navigation.enabled?u():(c(),l())})),a("toEdge fromEdge lock unlock",(()=>{l()})),a("destroy",(()=>{p()})),a("enable disable",(()=>{let{nextEl:e,prevEl:s}=t.navigation;e=T(e),s=T(s),t.enabled?l():[...e,...s].filter((e=>!!e)).forEach((e=>e.classList.add(t.params.navigation.lockClass)))})),a("click",((e,s)=>{let{nextEl:a,prevEl:r}=t.navigation;a=T(a),r=T(r);const n=s.target;let l=r.includes(n)||a.includes(n);if(t.isElement&&!l){const e=s.path||s.composedPath&&s.composedPath();e&&(l=e.find((e=>a.includes(e)||r.includes(e))))}if(t.params.navigation.hideOnClick&&!l){if(t.pagination&&t.params.pagination&&t.params.pagination.clickable&&(t.pagination.el===n||t.pagination.el.contains(n)))return;let e;a.length?e=a[0].classList.contains(t.params.navigation.hiddenClass):r.length&&(e=r[0].classList.contains(t.params.navigation.hiddenClass)),i(!0===e?"navigationShow":"navigationHide"),[...a,...r].filter((e=>!!e)).forEach((e=>e.classList.toggle(t.params.navigation.hiddenClass)))}}));const u=()=>{t.el.classList.add(...t.params.navigation.navigationDisabledClass.split(" ")),p()};Object.assign(t.navigation,{enable:()=>{t.el.classList.remove(...t.params.navigation.navigationDisabledClass.split(" ")),c(),l()},disable:u,update:l,init:c,destroy:p})},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;const r="swiper-pagination";let n;s({pagination:{el:null,bulletElement:"span",clickable:!1,hideOnClick:!1,renderBullet:null,renderProgressbar:null,renderFraction:null,renderCustom:null,progressbarOpposite:!1,type:"bullets",dynamicBullets:!1,dynamicMainBullets:1,formatFractionCurrent:e=>e,formatFractionTotal:e=>e,bulletClass:`${r}-bullet`,bulletActiveClass:`${r}-bullet-active`,modifierClass:`${r}-`,currentClass:`${r}-current`,totalClass:`${r}-total`,hiddenClass:`${r}-hidden`,progressbarFillClass:`${r}-progressbar-fill`,progressbarOppositeClass:`${r}-progressbar-opposite`,clickableClass:`${r}-clickable`,lockClass:`${r}-lock`,horizontalClass:`${r}-horizontal`,verticalClass:`${r}-vertical`,paginationDisabledClass:`${r}-disabled`}}),t.pagination={el:null,bullets:[]};let l=0;function o(){return!t.params.pagination.el||!t.pagination.el||Array.isArray(t.pagination.el)&&0===t.pagination.el.length}function d(e,s){const{bulletActiveClass:a}=t.params.pagination;e&&(e=e[("prev"===s?"previous":"next")+"ElementSibling"])&&(e.classList.add(`${a}-${s}`),(e=e[("prev"===s?"previous":"next")+"ElementSibling"])&&e.classList.add(`${a}-${s}-${s}`))}function c(e){const s=e.target.closest(ne(t.params.pagination.bulletClass));if(!s)return;e.preventDefault();const a=y(s)*t.params.slidesPerGroup;if(t.params.loop){if(t.realIndex===a)return;const e=(i=t.realIndex,r=a,n=t.slides.length,(r%=n)==1+(i%=n)?"next":r===i-1?"previous":void 0);"next"===e?t.slideNext():"previous"===e?t.slidePrev():t.slideToLoop(a)}else t.slideTo(a);var i,r,n}function p(){const e=t.rtl,s=t.params.pagination;if(o())return;let a,r,c=t.pagination.el;c=T(c);const p=t.virtual&&t.params.virtual.enabled?t.virtual.slides.length:t.slides.length,u=t.params.loop?Math.ceil(p/t.params.slidesPerGroup):t.snapGrid.length;if(t.params.loop?(r=t.previousRealIndex||0,a=t.params.slidesPerGroup>1?Math.floor(t.realIndex/t.params.slidesPerGroup):t.realIndex):void 0!==t.snapIndex?(a=t.snapIndex,r=t.previousSnapIndex):(r=t.previousIndex||0,a=t.activeIndex||0),"bullets"===s.type&&t.pagination.bullets&&t.pagination.bullets.length>0){const i=t.pagination.bullets;let o,p,u;if(s.dynamicBullets&&(n=S(i[0],t.isHorizontal()?"width":"height",!0),c.forEach((e=>{e.style[t.isHorizontal()?"width":"height"]=n*(s.dynamicMainBullets+4)+"px"})),s.dynamicMainBullets>1&&void 0!==r&&(l+=a-(r||0),l>s.dynamicMainBullets-1?l=s.dynamicMainBullets-1:l<0&&(l=0)),o=Math.max(a-l,0),p=o+(Math.min(i.length,s.dynamicMainBullets)-1),u=(p+o)/2),i.forEach((e=>{const t=[...["","-next","-next-next","-prev","-prev-prev","-main"].map((e=>`${s.bulletActiveClass}${e}`))].map((e=>"string"==typeof e&&e.includes(" ")?e.split(" "):e)).flat();e.classList.remove(...t)})),c.length>1)i.forEach((e=>{const i=y(e);i===a?e.classList.add(...s.bulletActiveClass.split(" ")):t.isElement&&e.setAttribute("part","bullet"),s.dynamicBullets&&(i>=o&&i<=p&&e.classList.add(...`${s.bulletActiveClass}-main`.split(" ")),i===o&&d(e,"prev"),i===p&&d(e,"next"))}));else{const e=i[a];if(e&&e.classList.add(...s.bulletActiveClass.split(" ")),t.isElement&&i.forEach(((e,t)=>{e.setAttribute("part",t===a?"bullet-active":"bullet")})),s.dynamicBullets){const e=i[o],t=i[p];for(let e=o;e<=p;e+=1)i[e]&&i[e].classList.add(...`${s.bulletActiveClass}-main`.split(" "));d(e,"prev"),d(t,"next")}}if(s.dynamicBullets){const a=Math.min(i.length,s.dynamicMainBullets+4),r=(n*a-n)/2-u*n,l=e?"right":"left";i.forEach((e=>{e.style[t.isHorizontal()?l:"top"]=`${r}px`}))}}c.forEach(((e,r)=>{if("fraction"===s.type&&(e.querySelectorAll(ne(s.currentClass)).forEach((e=>{e.textContent=s.formatFractionCurrent(a+1)})),e.querySelectorAll(ne(s.totalClass)).forEach((e=>{e.textContent=s.formatFractionTotal(u)}))),"progressbar"===s.type){let i;i=s.progressbarOpposite?t.isHorizontal()?"vertical":"horizontal":t.isHorizontal()?"horizontal":"vertical";const r=(a+1)/u;let n=1,l=1;"horizontal"===i?n=r:l=r,e.querySelectorAll(ne(s.progressbarFillClass)).forEach((e=>{e.style.transform=`translate3d(0,0,0) scaleX(${n}) scaleY(${l})`,e.style.transitionDuration=`${t.params.speed}ms`}))}"custom"===s.type&&s.renderCustom?(e.innerHTML=s.renderCustom(t,a+1,u),0===r&&i("paginationRender",e)):(0===r&&i("paginationRender",e),i("paginationUpdate",e)),t.params.watchOverflow&&t.enabled&&e.classList[t.isLocked?"add":"remove"](s.lockClass)}))}function u(){const e=t.params.pagination;if(o())return;const s=t.virtual&&t.params.virtual.enabled?t.virtual.slides.length:t.grid&&t.params.grid.rows>1?t.slides.length/Math.ceil(t.params.grid.rows):t.slides.length;let a=t.pagination.el;a=T(a);let r="";if("bullets"===e.type){let a=t.params.loop?Math.ceil(s/t.params.slidesPerGroup):t.snapGrid.length;t.params.freeMode&&t.params.freeMode.enabled&&a>s&&(a=s);for(let s=0;s`}"fraction"===e.type&&(r=e.renderFraction?e.renderFraction.call(t,e.currentClass,e.totalClass):` / `),"progressbar"===e.type&&(r=e.renderProgressbar?e.renderProgressbar.call(t,e.progressbarFillClass):``),t.pagination.bullets=[],a.forEach((s=>{"custom"!==e.type&&(s.innerHTML=r||""),"bullets"===e.type&&t.pagination.bullets.push(...s.querySelectorAll(ne(e.bulletClass)))})),"custom"!==e.type&&i("paginationRender",a[0])}function m(){t.params.pagination=re(t,t.originalParams.pagination,t.params.pagination,{el:"swiper-pagination"});const e=t.params.pagination;if(!e.el)return;let s;"string"==typeof e.el&&t.isElement&&(s=t.el.querySelector(e.el)),s||"string"!=typeof e.el||(s=[...document.querySelectorAll(e.el)]),s||(s=e.el),s&&0!==s.length&&(t.params.uniqueNavElements&&"string"==typeof e.el&&Array.isArray(s)&&s.length>1&&(s=[...t.el.querySelectorAll(e.el)],s.length>1&&(s=s.find((e=>E(e,".swiper")[0]===t.el)))),Array.isArray(s)&&1===s.length&&(s=s[0]),Object.assign(t.pagination,{el:s}),s=T(s),s.forEach((s=>{"bullets"===e.type&&e.clickable&&s.classList.add(...(e.clickableClass||"").split(" ")),s.classList.add(e.modifierClass+e.type),s.classList.add(t.isHorizontal()?e.horizontalClass:e.verticalClass),"bullets"===e.type&&e.dynamicBullets&&(s.classList.add(`${e.modifierClass}${e.type}-dynamic`),l=0,e.dynamicMainBullets<1&&(e.dynamicMainBullets=1)),"progressbar"===e.type&&e.progressbarOpposite&&s.classList.add(e.progressbarOppositeClass),e.clickable&&s.addEventListener("click",c),t.enabled||s.classList.add(e.lockClass)})))}function h(){const e=t.params.pagination;if(o())return;let s=t.pagination.el;s&&(s=T(s),s.forEach((s=>{s.classList.remove(e.hiddenClass),s.classList.remove(e.modifierClass+e.type),s.classList.remove(t.isHorizontal()?e.horizontalClass:e.verticalClass),e.clickable&&(s.classList.remove(...(e.clickableClass||"").split(" ")),s.removeEventListener("click",c))}))),t.pagination.bullets&&t.pagination.bullets.forEach((t=>t.classList.remove(...e.bulletActiveClass.split(" "))))}a("changeDirection",(()=>{if(!t.pagination||!t.pagination.el)return;const e=t.params.pagination;let{el:s}=t.pagination;s=T(s),s.forEach((s=>{s.classList.remove(e.horizontalClass,e.verticalClass),s.classList.add(t.isHorizontal()?e.horizontalClass:e.verticalClass)}))})),a("init",(()=>{!1===t.params.pagination.enabled?f():(m(),u(),p())})),a("activeIndexChange",(()=>{void 0===t.snapIndex&&p()})),a("snapIndexChange",(()=>{p()})),a("snapGridLengthChange",(()=>{u(),p()})),a("destroy",(()=>{h()})),a("enable disable",(()=>{let{el:e}=t.pagination;e&&(e=T(e),e.forEach((e=>e.classList[t.enabled?"remove":"add"](t.params.pagination.lockClass))))})),a("lock unlock",(()=>{p()})),a("click",((e,s)=>{const a=s.target,r=T(t.pagination.el);if(t.params.pagination.el&&t.params.pagination.hideOnClick&&r&&r.length>0&&!a.classList.contains(t.params.pagination.bulletClass)){if(t.navigation&&(t.navigation.nextEl&&a===t.navigation.nextEl||t.navigation.prevEl&&a===t.navigation.prevEl))return;const e=r[0].classList.contains(t.params.pagination.hiddenClass);i(!0===e?"paginationShow":"paginationHide"),r.forEach((e=>e.classList.toggle(t.params.pagination.hiddenClass)))}}));const f=()=>{t.el.classList.add(t.params.pagination.paginationDisabledClass);let{el:e}=t.pagination;e&&(e=T(e),e.forEach((e=>e.classList.add(t.params.pagination.paginationDisabledClass)))),h()};Object.assign(t.pagination,{enable:()=>{t.el.classList.remove(t.params.pagination.paginationDisabledClass);let{el:e}=t.pagination;e&&(e=T(e),e.forEach((e=>e.classList.remove(t.params.pagination.paginationDisabledClass)))),m(),u(),p()},disable:f,render:u,update:p,init:m,destroy:h})},function(e){let{swiper:t,extendParams:s,on:i,emit:r}=e;const o=a();let d,c,p,u,m=!1,h=null,f=null;function g(){if(!t.params.scrollbar.el||!t.scrollbar.el)return;const{scrollbar:e,rtlTranslate:s}=t,{dragEl:a,el:i}=e,r=t.params.scrollbar,n=t.params.loop?t.progressLoop:t.progress;let l=c,o=(p-c)*n;s?(o=-o,o>0?(l=c-o,o=0):-o+c>p&&(l=p+o)):o<0?(l=c+o,o=0):o+c>p&&(l=p-o),t.isHorizontal()?(a.style.transform=`translate3d(${o}px, 0, 0)`,a.style.width=`${l}px`):(a.style.transform=`translate3d(0px, ${o}px, 0)`,a.style.height=`${l}px`),r.hide&&(clearTimeout(h),i.style.opacity=1,h=setTimeout((()=>{i.style.opacity=0,i.style.transitionDuration="400ms"}),1e3))}function b(){if(!t.params.scrollbar.el||!t.scrollbar.el)return;const{scrollbar:e}=t,{dragEl:s,el:a}=e;s.style.width="",s.style.height="",p=t.isHorizontal()?a.offsetWidth:a.offsetHeight,u=t.size/(t.virtualSize+t.params.slidesOffsetBefore-(t.params.centeredSlides?t.snapGrid[0]:0)),c="auto"===t.params.scrollbar.dragSize?p*u:parseInt(t.params.scrollbar.dragSize,10),t.isHorizontal()?s.style.width=`${c}px`:s.style.height=`${c}px`,a.style.display=u>=1?"none":"",t.params.scrollbar.hide&&(a.style.opacity=0),t.params.watchOverflow&&t.enabled&&e.el.classList[t.isLocked?"add":"remove"](t.params.scrollbar.lockClass)}function y(e){return t.isHorizontal()?e.clientX:e.clientY}function E(e){const{scrollbar:s,rtlTranslate:a}=t,{el:i}=s;let r;r=(y(e)-w(i)[t.isHorizontal()?"left":"top"]-(null!==d?d:c/2))/(p-c),r=Math.max(Math.min(r,1),0),a&&(r=1-r);const n=t.minTranslate()+(t.maxTranslate()-t.minTranslate())*r;t.updateProgress(n),t.setTranslate(n),t.updateActiveIndex(),t.updateSlidesClasses()}function x(e){const s=t.params.scrollbar,{scrollbar:a,wrapperEl:i}=t,{el:n,dragEl:l}=a;m=!0,d=e.target===l?y(e)-e.target.getBoundingClientRect()[t.isHorizontal()?"left":"top"]:null,e.preventDefault(),e.stopPropagation(),i.style.transitionDuration="100ms",l.style.transitionDuration="100ms",E(e),clearTimeout(f),n.style.transitionDuration="0ms",s.hide&&(n.style.opacity=1),t.params.cssMode&&(t.wrapperEl.style["scroll-snap-type"]="none"),r("scrollbarDragStart",e)}function S(e){const{scrollbar:s,wrapperEl:a}=t,{el:i,dragEl:n}=s;m&&(e.preventDefault&&e.cancelable?e.preventDefault():e.returnValue=!1,E(e),a.style.transitionDuration="0ms",i.style.transitionDuration="0ms",n.style.transitionDuration="0ms",r("scrollbarDragMove",e))}function M(e){const s=t.params.scrollbar,{scrollbar:a,wrapperEl:i}=t,{el:n}=a;m&&(m=!1,t.params.cssMode&&(t.wrapperEl.style["scroll-snap-type"]="",i.style.transitionDuration=""),s.hide&&(clearTimeout(f),f=l((()=>{n.style.opacity=0,n.style.transitionDuration="400ms"}),1e3)),r("scrollbarDragEnd",e),s.snapOnRelease&&t.slideToClosest())}function C(e){const{scrollbar:s,params:a}=t,i=s.el;if(!i)return;const r=i,n=!!a.passiveListeners&&{passive:!1,capture:!1},l=!!a.passiveListeners&&{passive:!0,capture:!1};if(!r)return;const d="on"===e?"addEventListener":"removeEventListener";r[d]("pointerdown",x,n),o[d]("pointermove",S,n),o[d]("pointerup",M,l)}function P(){const{scrollbar:e,el:s}=t;t.params.scrollbar=re(t,t.originalParams.scrollbar,t.params.scrollbar,{el:"swiper-scrollbar"});const a=t.params.scrollbar;if(!a.el)return;let i,r;if("string"==typeof a.el&&t.isElement&&(i=t.el.querySelector(a.el)),i||"string"!=typeof a.el)i||(i=a.el);else if(i=o.querySelectorAll(a.el),!i.length)return;t.params.uniqueNavElements&&"string"==typeof a.el&&i.length>1&&1===s.querySelectorAll(a.el).length&&(i=s.querySelector(a.el)),i.length>0&&(i=i[0]),i.classList.add(t.isHorizontal()?a.horizontalClass:a.verticalClass),i&&(r=i.querySelector(ne(t.params.scrollbar.dragClass)),r||(r=v("div",t.params.scrollbar.dragClass),i.append(r))),Object.assign(e,{el:i,dragEl:r}),a.draggable&&t.params.scrollbar.el&&t.scrollbar.el&&C("on"),i&&i.classList[t.enabled?"remove":"add"](...n(t.params.scrollbar.lockClass))}function L(){const e=t.params.scrollbar,s=t.scrollbar.el;s&&s.classList.remove(...n(t.isHorizontal()?e.horizontalClass:e.verticalClass)),t.params.scrollbar.el&&t.scrollbar.el&&C("off")}s({scrollbar:{el:null,dragSize:"auto",hide:!1,draggable:!1,snapOnRelease:!0,lockClass:"swiper-scrollbar-lock",dragClass:"swiper-scrollbar-drag",scrollbarDisabledClass:"swiper-scrollbar-disabled",horizontalClass:"swiper-scrollbar-horizontal",verticalClass:"swiper-scrollbar-vertical"}}),t.scrollbar={el:null,dragEl:null},i("changeDirection",(()=>{if(!t.scrollbar||!t.scrollbar.el)return;const e=t.params.scrollbar;let{el:s}=t.scrollbar;s=T(s),s.forEach((s=>{s.classList.remove(e.horizontalClass,e.verticalClass),s.classList.add(t.isHorizontal()?e.horizontalClass:e.verticalClass)}))})),i("init",(()=>{!1===t.params.scrollbar.enabled?I():(P(),b(),g())})),i("update resize observerUpdate lock unlock changeDirection",(()=>{b()})),i("setTranslate",(()=>{g()})),i("setTransition",((e,s)=>{!function(e){t.params.scrollbar.el&&t.scrollbar.el&&(t.scrollbar.dragEl.style.transitionDuration=`${e}ms`)}(s)})),i("enable disable",(()=>{const{el:e}=t.scrollbar;e&&e.classList[t.enabled?"remove":"add"](...n(t.params.scrollbar.lockClass))})),i("destroy",(()=>{L()}));const I=()=>{t.el.classList.add(...n(t.params.scrollbar.scrollbarDisabledClass)),t.scrollbar.el&&t.scrollbar.el.classList.add(...n(t.params.scrollbar.scrollbarDisabledClass)),L()};Object.assign(t.scrollbar,{enable:()=>{t.el.classList.remove(...n(t.params.scrollbar.scrollbarDisabledClass)),t.scrollbar.el&&t.scrollbar.el.classList.remove(...n(t.params.scrollbar.scrollbarDisabledClass)),P(),b(),g()},disable:I,updateSize:b,setTranslate:g,init:P,destroy:L})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({parallax:{enabled:!1}});const i="[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]",r=(e,s)=>{const{rtl:a}=t,i=a?-1:1,r=e.getAttribute("data-swiper-parallax")||"0";let n=e.getAttribute("data-swiper-parallax-x"),l=e.getAttribute("data-swiper-parallax-y");const o=e.getAttribute("data-swiper-parallax-scale"),d=e.getAttribute("data-swiper-parallax-opacity"),c=e.getAttribute("data-swiper-parallax-rotate");if(n||l?(n=n||"0",l=l||"0"):t.isHorizontal()?(n=r,l="0"):(l=r,n="0"),n=n.indexOf("%")>=0?parseInt(n,10)*s*i+"%":n*s*i+"px",l=l.indexOf("%")>=0?parseInt(l,10)*s+"%":l*s+"px",null!=d){const t=d-(d-1)*(1-Math.abs(s));e.style.opacity=t}let p=`translate3d(${n}, ${l}, 0px)`;if(null!=o){p+=` scale(${o-(o-1)*(1-Math.abs(s))})`}if(c&&null!=c){p+=` rotate(${c*s*-1}deg)`}e.style.transform=p},n=()=>{const{el:e,slides:s,progress:a,snapGrid:n,isElement:l}=t,o=f(e,i);t.isElement&&o.push(...f(t.hostEl,i)),o.forEach((e=>{r(e,a)})),s.forEach(((e,s)=>{let l=e.progress;t.params.slidesPerGroup>1&&"auto"!==t.params.slidesPerView&&(l+=Math.ceil(s/2)-a*(n.length-1)),l=Math.min(Math.max(l,-1),1),e.querySelectorAll(`${i}, [data-swiper-parallax-rotate]`).forEach((e=>{r(e,l)}))}))};a("beforeInit",(()=>{t.params.parallax.enabled&&(t.params.watchSlidesProgress=!0,t.originalParams.watchSlidesProgress=!0)})),a("init",(()=>{t.params.parallax.enabled&&n()})),a("setTranslate",(()=>{t.params.parallax.enabled&&n()})),a("setTransition",((e,s)=>{t.params.parallax.enabled&&function(e){void 0===e&&(e=t.params.speed);const{el:s,hostEl:a}=t,r=[...s.querySelectorAll(i)];t.isElement&&r.push(...a.querySelectorAll(i)),r.forEach((t=>{let s=parseInt(t.getAttribute("data-swiper-parallax-duration"),10)||e;0===e&&(s=0),t.style.transitionDuration=`${s}ms`}))}(s)}))},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;const n=r();s({zoom:{enabled:!1,limitToOriginalSize:!1,maxRatio:3,minRatio:1,panOnMouseMove:!1,toggle:!0,containerClass:"swiper-zoom-container",zoomedSlideClass:"swiper-slide-zoomed"}}),t.zoom={enabled:!1};let l=1,o=!1,c=!1,p={x:0,y:0};const u=-3;let m,h;const g=[],v={originX:0,originY:0,slideEl:void 0,slideWidth:void 0,slideHeight:void 0,imageEl:void 0,imageWrapEl:void 0,maxRatio:3},b={isTouched:void 0,isMoved:void 0,currentX:void 0,currentY:void 0,minX:void 0,minY:void 0,maxX:void 0,maxY:void 0,width:void 0,height:void 0,startX:void 0,startY:void 0,touchesStart:{},touchesCurrent:{}},y={x:void 0,y:void 0,prevPositionX:void 0,prevPositionY:void 0,prevTime:void 0};let x,S=1;function T(){if(g.length<2)return 1;const e=g[0].pageX,t=g[0].pageY,s=g[1].pageX,a=g[1].pageY;return Math.sqrt((s-e)**2+(a-t)**2)}function M(){const e=t.params.zoom,s=v.imageWrapEl.getAttribute("data-swiper-zoom")||e.maxRatio;if(e.limitToOriginalSize&&v.imageEl&&v.imageEl.naturalWidth){const e=v.imageEl.naturalWidth/v.imageEl.offsetWidth;return Math.min(e,s)}return s}function C(e){const s=t.isElement?"swiper-slide":`.${t.params.slideClass}`;return!!e.target.matches(s)||t.slides.filter((t=>t.contains(e.target))).length>0}function P(e){const s=`.${t.params.zoom.containerClass}`;return!!e.target.matches(s)||[...t.hostEl.querySelectorAll(s)].filter((t=>t.contains(e.target))).length>0}function L(e){if("mouse"===e.pointerType&&g.splice(0,g.length),!C(e))return;const s=t.params.zoom;if(m=!1,h=!1,g.push(e),!(g.length<2)){if(m=!0,v.scaleStart=T(),!v.slideEl){v.slideEl=e.target.closest(`.${t.params.slideClass}, swiper-slide`),v.slideEl||(v.slideEl=t.slides[t.activeIndex]);let a=v.slideEl.querySelector(`.${s.containerClass}`);if(a&&(a=a.querySelectorAll("picture, img, svg, canvas, .swiper-zoom-target")[0]),v.imageEl=a,v.imageWrapEl=a?E(v.imageEl,`.${s.containerClass}`)[0]:void 0,!v.imageWrapEl)return void(v.imageEl=void 0);v.maxRatio=M()}if(v.imageEl){const[e,t]=function(){if(g.length<2)return{x:null,y:null};const e=v.imageEl.getBoundingClientRect();return[(g[0].pageX+(g[1].pageX-g[0].pageX)/2-e.x-n.scrollX)/l,(g[0].pageY+(g[1].pageY-g[0].pageY)/2-e.y-n.scrollY)/l]}();v.originX=e,v.originY=t,v.imageEl.style.transitionDuration="0ms"}o=!0}}function I(e){if(!C(e))return;const s=t.params.zoom,a=t.zoom,i=g.findIndex((t=>t.pointerId===e.pointerId));i>=0&&(g[i]=e),g.length<2||(h=!0,v.scaleMove=T(),v.imageEl&&(a.scale=v.scaleMove/v.scaleStart*l,a.scale>v.maxRatio&&(a.scale=v.maxRatio-1+(a.scale-v.maxRatio+1)**.5),a.scalet.pointerId===e.pointerId));i>=0&&g.splice(i,1),m&&h&&(m=!1,h=!1,v.imageEl&&(a.scale=Math.max(Math.min(a.scale,v.maxRatio),s.minRatio),v.imageEl.style.transitionDuration=`${t.params.speed}ms`,v.imageEl.style.transform=`translate3d(0,0,0) scale(${a.scale})`,l=a.scale,o=!1,a.scale>1&&v.slideEl?v.slideEl.classList.add(`${s.zoomedSlideClass}`):a.scale<=1&&v.slideEl&&v.slideEl.classList.remove(`${s.zoomedSlideClass}`),1===a.scale&&(v.originX=0,v.originY=0,v.slideEl=void 0)))}function A(){t.touchEventsData.preventTouchMoveFromPointerMove=!1}function $(e){const s="mouse"===e.pointerType&&t.params.zoom.panOnMouseMove;if(!C(e)||!P(e))return;const a=t.zoom;if(!v.imageEl)return;if(!b.isTouched||!v.slideEl)return void(s&&O(e));if(s)return void O(e);b.isMoved||(b.width=v.imageEl.offsetWidth||v.imageEl.clientWidth,b.height=v.imageEl.offsetHeight||v.imageEl.clientHeight,b.startX=d(v.imageWrapEl,"x")||0,b.startY=d(v.imageWrapEl,"y")||0,v.slideWidth=v.slideEl.offsetWidth,v.slideHeight=v.slideEl.offsetHeight,v.imageWrapEl.style.transitionDuration="0ms");const i=b.width*a.scale,r=b.height*a.scale;b.minX=Math.min(v.slideWidth/2-i/2,0),b.maxX=-b.minX,b.minY=Math.min(v.slideHeight/2-r/2,0),b.maxY=-b.minY,b.touchesCurrent.x=g.length>0?g[0].pageX:e.pageX,b.touchesCurrent.y=g.length>0?g[0].pageY:e.pageY;if(Math.max(Math.abs(b.touchesCurrent.x-b.touchesStart.x),Math.abs(b.touchesCurrent.y-b.touchesStart.y))>5&&(t.allowClick=!1),!b.isMoved&&!o){if(t.isHorizontal()&&(Math.floor(b.minX)===Math.floor(b.startX)&&b.touchesCurrent.xb.touchesStart.x))return b.isTouched=!1,void A();if(!t.isHorizontal()&&(Math.floor(b.minY)===Math.floor(b.startY)&&b.touchesCurrent.yb.touchesStart.y))return b.isTouched=!1,void A()}e.cancelable&&e.preventDefault(),e.stopPropagation(),clearTimeout(x),t.touchEventsData.preventTouchMoveFromPointerMove=!0,x=setTimeout((()=>{t.destroyed||A()})),b.isMoved=!0;const n=(a.scale-l)/(v.maxRatio-t.params.zoom.minRatio),{originX:c,originY:p}=v;b.currentX=b.touchesCurrent.x-b.touchesStart.x+b.startX+n*(b.width-2*c),b.currentY=b.touchesCurrent.y-b.touchesStart.y+b.startY+n*(b.height-2*p),b.currentXb.maxX&&(b.currentX=b.maxX-1+(b.currentX-b.maxX+1)**.8),b.currentYb.maxY&&(b.currentY=b.maxY-1+(b.currentY-b.maxY+1)**.8),y.prevPositionX||(y.prevPositionX=b.touchesCurrent.x),y.prevPositionY||(y.prevPositionY=b.touchesCurrent.y),y.prevTime||(y.prevTime=Date.now()),y.x=(b.touchesCurrent.x-y.prevPositionX)/(Date.now()-y.prevTime)/2,y.y=(b.touchesCurrent.y-y.prevPositionY)/(Date.now()-y.prevTime)/2,Math.abs(b.touchesCurrent.x-y.prevPositionX)<2&&(y.x=0),Math.abs(b.touchesCurrent.y-y.prevPositionY)<2&&(y.y=0),y.prevPositionX=b.touchesCurrent.x,y.prevPositionY=b.touchesCurrent.y,y.prevTime=Date.now(),v.imageWrapEl.style.transform=`translate3d(${b.currentX}px, ${b.currentY}px,0)`}function k(){const e=t.zoom;v.slideEl&&t.activeIndex!==t.slides.indexOf(v.slideEl)&&(v.imageEl&&(v.imageEl.style.transform="translate3d(0,0,0) scale(1)"),v.imageWrapEl&&(v.imageWrapEl.style.transform="translate3d(0,0,0)"),v.slideEl.classList.remove(`${t.params.zoom.zoomedSlideClass}`),e.scale=1,l=1,v.slideEl=void 0,v.imageEl=void 0,v.imageWrapEl=void 0,v.originX=0,v.originY=0)}function O(e){if(l<=1||!v.imageWrapEl)return;if(!C(e)||!P(e))return;const t=n.getComputedStyle(v.imageWrapEl).transform,s=new n.DOMMatrix(t);if(!c)return c=!0,p.x=e.clientX,p.y=e.clientY,b.startX=s.e,b.startY=s.f,b.width=v.imageEl.offsetWidth||v.imageEl.clientWidth,b.height=v.imageEl.offsetHeight||v.imageEl.clientHeight,v.slideWidth=v.slideEl.offsetWidth,void(v.slideHeight=v.slideEl.offsetHeight);const a=(e.clientX-p.x)*u,i=(e.clientY-p.y)*u,r=b.width*l,o=b.height*l,d=v.slideWidth,m=v.slideHeight,h=Math.min(d/2-r/2,0),f=-h,g=Math.min(m/2-o/2,0),w=-g,y=Math.max(Math.min(b.startX+a,f),h),E=Math.max(Math.min(b.startY+i,w),g);v.imageWrapEl.style.transitionDuration="0ms",v.imageWrapEl.style.transform=`translate3d(${y}px, ${E}px, 0)`,p.x=e.clientX,p.y=e.clientY,b.startX=y,b.startY=E,b.currentX=y,b.currentY=E}function D(e){const s=t.zoom,a=t.params.zoom;if(!v.slideEl){e&&e.target&&(v.slideEl=e.target.closest(`.${t.params.slideClass}, swiper-slide`)),v.slideEl||(t.params.virtual&&t.params.virtual.enabled&&t.virtual?v.slideEl=f(t.slidesEl,`.${t.params.slideActiveClass}`)[0]:v.slideEl=t.slides[t.activeIndex]);let s=v.slideEl.querySelector(`.${a.containerClass}`);s&&(s=s.querySelectorAll("picture, img, svg, canvas, .swiper-zoom-target")[0]),v.imageEl=s,v.imageWrapEl=s?E(v.imageEl,`.${a.containerClass}`)[0]:void 0}if(!v.imageEl||!v.imageWrapEl)return;let i,r,o,d,c,p,u,m,h,g,y,x,S,T,C,P,L,I;t.params.cssMode&&(t.wrapperEl.style.overflow="hidden",t.wrapperEl.style.touchAction="none"),v.slideEl.classList.add(`${a.zoomedSlideClass}`),void 0===b.touchesStart.x&&e?(i=e.pageX,r=e.pageY):(i=b.touchesStart.x,r=b.touchesStart.y);const z=l,A="number"==typeof e?e:null;1===l&&A&&(i=void 0,r=void 0,b.touchesStart.x=void 0,b.touchesStart.y=void 0);const $=M();s.scale=A||$,l=A||$,!e||1===l&&A?(u=0,m=0):(L=v.slideEl.offsetWidth,I=v.slideEl.offsetHeight,o=w(v.slideEl).left+n.scrollX,d=w(v.slideEl).top+n.scrollY,c=o+L/2-i,p=d+I/2-r,h=v.imageEl.offsetWidth||v.imageEl.clientWidth,g=v.imageEl.offsetHeight||v.imageEl.clientHeight,y=h*s.scale,x=g*s.scale,S=Math.min(L/2-y/2,0),T=Math.min(I/2-x/2,0),C=-S,P=-T,z>0&&A&&"number"==typeof b.currentX&&"number"==typeof b.currentY?(u=b.currentX*s.scale/z,m=b.currentY*s.scale/z):(u=c*s.scale,m=p*s.scale),uC&&(u=C),mP&&(m=P)),A&&1===s.scale&&(v.originX=0,v.originY=0),b.currentX=u,b.currentY=m,v.imageWrapEl.style.transitionDuration="300ms",v.imageWrapEl.style.transform=`translate3d(${u}px, ${m}px,0)`,v.imageEl.style.transitionDuration="300ms",v.imageEl.style.transform=`translate3d(0,0,0) scale(${s.scale})`}function G(){const e=t.zoom,s=t.params.zoom;if(!v.slideEl){t.params.virtual&&t.params.virtual.enabled&&t.virtual?v.slideEl=f(t.slidesEl,`.${t.params.slideActiveClass}`)[0]:v.slideEl=t.slides[t.activeIndex];let e=v.slideEl.querySelector(`.${s.containerClass}`);e&&(e=e.querySelectorAll("picture, img, svg, canvas, .swiper-zoom-target")[0]),v.imageEl=e,v.imageWrapEl=e?E(v.imageEl,`.${s.containerClass}`)[0]:void 0}v.imageEl&&v.imageWrapEl&&(t.params.cssMode&&(t.wrapperEl.style.overflow="",t.wrapperEl.style.touchAction=""),e.scale=1,l=1,b.currentX=void 0,b.currentY=void 0,b.touchesStart.x=void 0,b.touchesStart.y=void 0,v.imageWrapEl.style.transitionDuration="300ms",v.imageWrapEl.style.transform="translate3d(0,0,0)",v.imageEl.style.transitionDuration="300ms",v.imageEl.style.transform="translate3d(0,0,0) scale(1)",v.slideEl.classList.remove(`${s.zoomedSlideClass}`),v.slideEl=void 0,v.originX=0,v.originY=0,t.params.zoom.panOnMouseMove&&(p={x:0,y:0},c&&(c=!1,b.startX=0,b.startY=0)))}function X(e){const s=t.zoom;s.scale&&1!==s.scale?G():D(e)}function H(){return{passiveListener:!!t.params.passiveListeners&&{passive:!0,capture:!1},activeListenerWithCapture:!t.params.passiveListeners||{passive:!1,capture:!0}}}function Y(){const e=t.zoom;if(e.enabled)return;e.enabled=!0;const{passiveListener:s,activeListenerWithCapture:a}=H();t.wrapperEl.addEventListener("pointerdown",L,s),t.wrapperEl.addEventListener("pointermove",I,a),["pointerup","pointercancel","pointerout"].forEach((e=>{t.wrapperEl.addEventListener(e,z,s)})),t.wrapperEl.addEventListener("pointermove",$,a)}function B(){const e=t.zoom;if(!e.enabled)return;e.enabled=!1;const{passiveListener:s,activeListenerWithCapture:a}=H();t.wrapperEl.removeEventListener("pointerdown",L,s),t.wrapperEl.removeEventListener("pointermove",I,a),["pointerup","pointercancel","pointerout"].forEach((e=>{t.wrapperEl.removeEventListener(e,z,s)})),t.wrapperEl.removeEventListener("pointermove",$,a)}Object.defineProperty(t.zoom,"scale",{get:()=>S,set(e){if(S!==e){const t=v.imageEl,s=v.slideEl;i("zoomChange",e,t,s)}S=e}}),a("init",(()=>{t.params.zoom.enabled&&Y()})),a("destroy",(()=>{B()})),a("touchStart",((e,s)=>{t.zoom.enabled&&function(e){const s=t.device;if(!v.imageEl)return;if(b.isTouched)return;s.android&&e.cancelable&&e.preventDefault(),b.isTouched=!0;const a=g.length>0?g[0]:e;b.touchesStart.x=a.pageX,b.touchesStart.y=a.pageY}(s)})),a("touchEnd",((e,s)=>{t.zoom.enabled&&function(){const e=t.zoom;if(g.length=0,!v.imageEl)return;if(!b.isTouched||!b.isMoved)return b.isTouched=!1,void(b.isMoved=!1);b.isTouched=!1,b.isMoved=!1;let s=300,a=300;const i=y.x*s,r=b.currentX+i,n=y.y*a,l=b.currentY+n;0!==y.x&&(s=Math.abs((r-b.currentX)/y.x)),0!==y.y&&(a=Math.abs((l-b.currentY)/y.y));const o=Math.max(s,a);b.currentX=r,b.currentY=l;const d=b.width*e.scale,c=b.height*e.scale;b.minX=Math.min(v.slideWidth/2-d/2,0),b.maxX=-b.minX,b.minY=Math.min(v.slideHeight/2-c/2,0),b.maxY=-b.minY,b.currentX=Math.max(Math.min(b.currentX,b.maxX),b.minX),b.currentY=Math.max(Math.min(b.currentY,b.maxY),b.minY),v.imageWrapEl.style.transitionDuration=`${o}ms`,v.imageWrapEl.style.transform=`translate3d(${b.currentX}px, ${b.currentY}px,0)`}()})),a("doubleTap",((e,s)=>{!t.animating&&t.params.zoom.enabled&&t.zoom.enabled&&t.params.zoom.toggle&&X(s)})),a("transitionEnd",(()=>{t.zoom.enabled&&t.params.zoom.enabled&&k()})),a("slideChange",(()=>{t.zoom.enabled&&t.params.zoom.enabled&&t.params.cssMode&&k()})),Object.assign(t.zoom,{enable:Y,disable:B,in:D,out:G,toggle:X})},function(e){let{swiper:t,extendParams:s,on:a}=e;function i(e,t){const s=function(){let e,t,s;return(a,i)=>{for(t=-1,e=a.length;e-t>1;)s=e+t>>1,a[s]<=i?t=s:e=s;return e}}();let a,i;return this.x=e,this.y=t,this.lastIndex=e.length-1,this.interpolate=function(e){return e?(i=s(this.x,e),a=i-1,(e-this.x[a])*(this.y[i]-this.y[a])/(this.x[i]-this.x[a])+this.y[a]):0},this}function r(){t.controller.control&&t.controller.spline&&(t.controller.spline=void 0,delete t.controller.spline)}s({controller:{control:void 0,inverse:!1,by:"slide"}}),t.controller={control:void 0},a("beforeInit",(()=>{if("undefined"!=typeof window&&("string"==typeof t.params.controller.control||t.params.controller.control instanceof HTMLElement)){("string"==typeof t.params.controller.control?[...document.querySelectorAll(t.params.controller.control)]:[t.params.controller.control]).forEach((e=>{if(t.controller.control||(t.controller.control=[]),e&&e.swiper)t.controller.control.push(e.swiper);else if(e){const s=`${t.params.eventsPrefix}init`,a=i=>{t.controller.control.push(i.detail[0]),t.update(),e.removeEventListener(s,a)};e.addEventListener(s,a)}}))}else t.controller.control=t.params.controller.control})),a("update",(()=>{r()})),a("resize",(()=>{r()})),a("observerUpdate",(()=>{r()})),a("setTranslate",((e,s,a)=>{t.controller.control&&!t.controller.control.destroyed&&t.controller.setTranslate(s,a)})),a("setTransition",((e,s,a)=>{t.controller.control&&!t.controller.control.destroyed&&t.controller.setTransition(s,a)})),Object.assign(t.controller,{setTranslate:function(e,s){const a=t.controller.control;let r,n;const l=t.constructor;function o(e){if(e.destroyed)return;const s=t.rtlTranslate?-t.translate:t.translate;"slide"===t.params.controller.by&&(!function(e){t.controller.spline=t.params.loop?new i(t.slidesGrid,e.slidesGrid):new i(t.snapGrid,e.snapGrid)}(e),n=-t.controller.spline.interpolate(-s)),n&&"container"!==t.params.controller.by||(r=(e.maxTranslate()-e.minTranslate())/(t.maxTranslate()-t.minTranslate()),!Number.isNaN(r)&&Number.isFinite(r)||(r=1),n=(s-t.minTranslate())*r+e.minTranslate()),t.params.controller.inverse&&(n=e.maxTranslate()-n),e.updateProgress(n),e.setTranslate(n,t),e.updateActiveIndex(),e.updateSlidesClasses()}if(Array.isArray(a))for(let e=0;e{s.updateAutoHeight()})),x(s.wrapperEl,(()=>{i&&s.transitionEnd()}))))}if(Array.isArray(i))for(r=0;r{e.setAttribute("tabIndex","0")}))}function p(e){(e=T(e)).forEach((e=>{e.setAttribute("tabIndex","-1")}))}function u(e,t){(e=T(e)).forEach((e=>{e.setAttribute("role",t)}))}function m(e,t){(e=T(e)).forEach((e=>{e.setAttribute("aria-roledescription",t)}))}function h(e,t){(e=T(e)).forEach((e=>{e.setAttribute("aria-label",t)}))}function f(e){(e=T(e)).forEach((e=>{e.setAttribute("aria-disabled",!0)}))}function g(e){(e=T(e)).forEach((e=>{e.setAttribute("aria-disabled",!1)}))}function w(e){if(13!==e.keyCode&&32!==e.keyCode)return;const s=t.params.a11y,a=e.target;if(!t.pagination||!t.pagination.el||a!==t.pagination.el&&!t.pagination.el.contains(e.target)||e.target.matches(ne(t.params.pagination.bulletClass))){if(t.navigation&&t.navigation.prevEl&&t.navigation.nextEl){const e=T(t.navigation.prevEl);T(t.navigation.nextEl).includes(a)&&(t.isEnd&&!t.params.loop||t.slideNext(),t.isEnd?d(s.lastSlideMessage):d(s.nextSlideMessage)),e.includes(a)&&(t.isBeginning&&!t.params.loop||t.slidePrev(),t.isBeginning?d(s.firstSlideMessage):d(s.prevSlideMessage))}t.pagination&&a.matches(ne(t.params.pagination.bulletClass))&&a.click()}}function b(){return t.pagination&&t.pagination.bullets&&t.pagination.bullets.length}function E(){return b()&&t.params.pagination.clickable}const x=(e,t,s)=>{c(e),"BUTTON"!==e.tagName&&(u(e,"button"),e.addEventListener("keydown",w)),h(e,s),function(e,t){(e=T(e)).forEach((e=>{e.setAttribute("aria-controls",t)}))}(e,t)},S=e=>{n&&n!==e.target&&!n.contains(e.target)&&(r=!0),t.a11y.clicked=!0},M=()=>{r=!1,requestAnimationFrame((()=>{requestAnimationFrame((()=>{t.destroyed||(t.a11y.clicked=!1)}))}))},C=e=>{o=(new Date).getTime()},P=e=>{if(t.a11y.clicked||!t.params.a11y.scrollOnFocus)return;if((new Date).getTime()-o<100)return;const s=e.target.closest(`.${t.params.slideClass}, swiper-slide`);if(!s||!t.slides.includes(s))return;n=s;const a=t.slides.indexOf(s)===t.activeIndex,i=t.params.watchSlidesProgress&&t.visibleSlides&&t.visibleSlides.includes(s);a||i||e.sourceCapabilities&&e.sourceCapabilities.firesTouchEvents||(t.isHorizontal()?t.el.scrollLeft=0:t.el.scrollTop=0,requestAnimationFrame((()=>{r||(t.params.loop?t.slideToLoop(parseInt(s.getAttribute("data-swiper-slide-index")),0):t.slideTo(t.slides.indexOf(s),0),r=!1)})))},L=()=>{const e=t.params.a11y;e.itemRoleDescriptionMessage&&m(t.slides,e.itemRoleDescriptionMessage),e.slideRole&&u(t.slides,e.slideRole);const s=t.slides.length;e.slideLabelMessage&&t.slides.forEach(((a,i)=>{const r=t.params.loop?parseInt(a.getAttribute("data-swiper-slide-index"),10):i;h(a,e.slideLabelMessage.replace(/\{\{index\}\}/,r+1).replace(/\{\{slidesLength\}\}/,s))}))},I=()=>{const e=t.params.a11y;t.el.append(l);const s=t.el;e.containerRoleDescriptionMessage&&m(s,e.containerRoleDescriptionMessage),e.containerMessage&&h(s,e.containerMessage),e.containerRole&&u(s,e.containerRole);const i=t.wrapperEl,r=e.id||i.getAttribute("id")||`swiper-wrapper-${n=16,void 0===n&&(n=16),"x".repeat(n).replace(/x/g,(()=>Math.round(16*Math.random()).toString(16)))}`;var n;const o=t.params.autoplay&&t.params.autoplay.enabled?"off":"polite";var d;d=r,T(i).forEach((e=>{e.setAttribute("id",d)})),function(e,t){(e=T(e)).forEach((e=>{e.setAttribute("aria-live",t)}))}(i,o),L();let{nextEl:c,prevEl:p}=t.navigation?t.navigation:{};if(c=T(c),p=T(p),c&&c.forEach((t=>x(t,r,e.nextSlideMessage))),p&&p.forEach((t=>x(t,r,e.prevSlideMessage))),E()){T(t.pagination.el).forEach((e=>{e.addEventListener("keydown",w)}))}a().addEventListener("visibilitychange",C),t.el.addEventListener("focus",P,!0),t.el.addEventListener("focus",P,!0),t.el.addEventListener("pointerdown",S,!0),t.el.addEventListener("pointerup",M,!0)};i("beforeInit",(()=>{l=v("span",t.params.a11y.notificationClass),l.setAttribute("aria-live","assertive"),l.setAttribute("aria-atomic","true")})),i("afterInit",(()=>{t.params.a11y.enabled&&I()})),i("slidesLengthChange snapGridLengthChange slidesGridLengthChange",(()=>{t.params.a11y.enabled&&L()})),i("fromEdge toEdge afterInit lock unlock",(()=>{t.params.a11y.enabled&&function(){if(t.params.loop||t.params.rewind||!t.navigation)return;const{nextEl:e,prevEl:s}=t.navigation;s&&(t.isBeginning?(f(s),p(s)):(g(s),c(s))),e&&(t.isEnd?(f(e),p(e)):(g(e),c(e)))}()})),i("paginationUpdate",(()=>{t.params.a11y.enabled&&function(){const e=t.params.a11y;b()&&t.pagination.bullets.forEach((s=>{t.params.pagination.clickable&&(c(s),t.params.pagination.renderBullet||(u(s,"button"),h(s,e.paginationBulletMessage.replace(/\{\{index\}\}/,y(s)+1)))),s.matches(ne(t.params.pagination.bulletActiveClass))?s.setAttribute("aria-current","true"):s.removeAttribute("aria-current")}))}()})),i("destroy",(()=>{t.params.a11y.enabled&&function(){l&&l.remove();let{nextEl:e,prevEl:s}=t.navigation?t.navigation:{};e=T(e),s=T(s),e&&e.forEach((e=>e.removeEventListener("keydown",w))),s&&s.forEach((e=>e.removeEventListener("keydown",w))),E()&&T(t.pagination.el).forEach((e=>{e.removeEventListener("keydown",w)}));a().removeEventListener("visibilitychange",C),t.el&&"string"!=typeof t.el&&(t.el.removeEventListener("focus",P,!0),t.el.removeEventListener("pointerdown",S,!0),t.el.removeEventListener("pointerup",M,!0))}()}))},function(e){let{swiper:t,extendParams:s,on:a}=e;s({history:{enabled:!1,root:"",replaceState:!1,key:"slides",keepQuery:!1}});let i=!1,n={};const l=e=>e.toString().replace(/\s+/g,"-").replace(/[^\w-]+/g,"").replace(/--+/g,"-").replace(/^-+/,"").replace(/-+$/,""),o=e=>{const t=r();let s;s=e?new URL(e):t.location;const a=s.pathname.slice(1).split("/").filter((e=>""!==e)),i=a.length;return{key:a[i-2],value:a[i-1]}},d=(e,s)=>{const a=r();if(!i||!t.params.history.enabled)return;let n;n=t.params.url?new URL(t.params.url):a.location;const o=t.virtual&&t.params.virtual.enabled?t.slidesEl.querySelector(`[data-swiper-slide-index="${s}"]`):t.slides[s];let d=l(o.getAttribute("data-history"));if(t.params.history.root.length>0){let s=t.params.history.root;"/"===s[s.length-1]&&(s=s.slice(0,s.length-1)),d=`${s}/${e?`${e}/`:""}${d}`}else n.pathname.includes(e)||(d=`${e?`${e}/`:""}${d}`);t.params.history.keepQuery&&(d+=n.search);const c=a.history.state;c&&c.value===d||(t.params.history.replaceState?a.history.replaceState({value:d},null,d):a.history.pushState({value:d},null,d))},c=(e,s,a)=>{if(s)for(let i=0,r=t.slides.length;i{n=o(t.params.url),c(t.params.speed,n.value,!1)};a("init",(()=>{t.params.history.enabled&&(()=>{const e=r();if(t.params.history){if(!e.history||!e.history.pushState)return t.params.history.enabled=!1,void(t.params.hashNavigation.enabled=!0);i=!0,n=o(t.params.url),n.key||n.value?(c(0,n.value,t.params.runCallbacksOnInit),t.params.history.replaceState||e.addEventListener("popstate",p)):t.params.history.replaceState||e.addEventListener("popstate",p)}})()})),a("destroy",(()=>{t.params.history.enabled&&(()=>{const e=r();t.params.history.replaceState||e.removeEventListener("popstate",p)})()})),a("transitionEnd _freeModeNoMomentumRelease",(()=>{i&&d(t.params.history.key,t.activeIndex)})),a("slideChange",(()=>{i&&t.params.cssMode&&d(t.params.history.key,t.activeIndex)}))},function(e){let{swiper:t,extendParams:s,emit:i,on:n}=e,l=!1;const o=a(),d=r();s({hashNavigation:{enabled:!1,replaceState:!1,watchState:!1,getSlideIndex(e,s){if(t.virtual&&t.params.virtual.enabled){const e=t.slides.find((e=>e.getAttribute("data-hash")===s));if(!e)return 0;return parseInt(e.getAttribute("data-swiper-slide-index"),10)}return t.getSlideIndex(f(t.slidesEl,`.${t.params.slideClass}[data-hash="${s}"], swiper-slide[data-hash="${s}"]`)[0])}}});const c=()=>{i("hashChange");const e=o.location.hash.replace("#",""),s=t.virtual&&t.params.virtual.enabled?t.slidesEl.querySelector(`[data-swiper-slide-index="${t.activeIndex}"]`):t.slides[t.activeIndex];if(e!==(s?s.getAttribute("data-hash"):"")){const s=t.params.hashNavigation.getSlideIndex(t,e);if(void 0===s||Number.isNaN(s))return;t.slideTo(s)}},p=()=>{if(!l||!t.params.hashNavigation.enabled)return;const e=t.virtual&&t.params.virtual.enabled?t.slidesEl.querySelector(`[data-swiper-slide-index="${t.activeIndex}"]`):t.slides[t.activeIndex],s=e?e.getAttribute("data-hash")||e.getAttribute("data-history"):"";t.params.hashNavigation.replaceState&&d.history&&d.history.replaceState?(d.history.replaceState(null,null,`#${s}`||""),i("hashSet")):(o.location.hash=s||"",i("hashSet"))};n("init",(()=>{t.params.hashNavigation.enabled&&(()=>{if(!t.params.hashNavigation.enabled||t.params.history&&t.params.history.enabled)return;l=!0;const e=o.location.hash.replace("#","");if(e){const s=0,a=t.params.hashNavigation.getSlideIndex(t,e);t.slideTo(a||0,s,t.params.runCallbacksOnInit,!0)}t.params.hashNavigation.watchState&&d.addEventListener("hashchange",c)})()})),n("destroy",(()=>{t.params.hashNavigation.enabled&&t.params.hashNavigation.watchState&&d.removeEventListener("hashchange",c)})),n("transitionEnd _freeModeNoMomentumRelease",(()=>{l&&p()})),n("slideChange",(()=>{l&&t.params.cssMode&&p()}))},function(e){let t,s,{swiper:i,extendParams:r,on:n,emit:l,params:o}=e;i.autoplay={running:!1,paused:!1,timeLeft:0},r({autoplay:{enabled:!1,delay:3e3,waitForTransition:!0,disableOnInteraction:!1,stopOnLastSlide:!1,reverseDirection:!1,pauseOnMouseEnter:!1}});let d,c,p,u,m,h,f,g,v=o&&o.autoplay?o.autoplay.delay:3e3,w=o&&o.autoplay?o.autoplay.delay:3e3,b=(new Date).getTime();function y(e){i&&!i.destroyed&&i.wrapperEl&&e.target===i.wrapperEl&&(i.wrapperEl.removeEventListener("transitionend",y),g||e.detail&&e.detail.bySwiperTouchMove||C())}const E=()=>{if(i.destroyed||!i.autoplay.running)return;i.autoplay.paused?c=!0:c&&(w=d,c=!1);const e=i.autoplay.paused?d:b+w-(new Date).getTime();i.autoplay.timeLeft=e,l("autoplayTimeLeft",e,e/v),s=requestAnimationFrame((()=>{E()}))},x=e=>{if(i.destroyed||!i.autoplay.running)return;cancelAnimationFrame(s),E();let a=void 0===e?i.params.autoplay.delay:e;v=i.params.autoplay.delay,w=i.params.autoplay.delay;const r=(()=>{let e;if(e=i.virtual&&i.params.virtual.enabled?i.slides.find((e=>e.classList.contains("swiper-slide-active"))):i.slides[i.activeIndex],!e)return;return parseInt(e.getAttribute("data-swiper-autoplay"),10)})();!Number.isNaN(r)&&r>0&&void 0===e&&(a=r,v=r,w=r),d=a;const n=i.params.speed,o=()=>{i&&!i.destroyed&&(i.params.autoplay.reverseDirection?!i.isBeginning||i.params.loop||i.params.rewind?(i.slidePrev(n,!0,!0),l("autoplay")):i.params.autoplay.stopOnLastSlide||(i.slideTo(i.slides.length-1,n,!0,!0),l("autoplay")):!i.isEnd||i.params.loop||i.params.rewind?(i.slideNext(n,!0,!0),l("autoplay")):i.params.autoplay.stopOnLastSlide||(i.slideTo(0,n,!0,!0),l("autoplay")),i.params.cssMode&&(b=(new Date).getTime(),requestAnimationFrame((()=>{x()}))))};return a>0?(clearTimeout(t),t=setTimeout((()=>{o()}),a)):requestAnimationFrame((()=>{o()})),a},S=()=>{b=(new Date).getTime(),i.autoplay.running=!0,x(),l("autoplayStart")},T=()=>{i.autoplay.running=!1,clearTimeout(t),cancelAnimationFrame(s),l("autoplayStop")},M=(e,s)=>{if(i.destroyed||!i.autoplay.running)return;clearTimeout(t),e||(f=!0);const a=()=>{l("autoplayPause"),i.params.autoplay.waitForTransition?i.wrapperEl.addEventListener("transitionend",y):C()};if(i.autoplay.paused=!0,s)return h&&(d=i.params.autoplay.delay),h=!1,void a();const r=d||i.params.autoplay.delay;d=r-((new Date).getTime()-b),i.isEnd&&d<0&&!i.params.loop||(d<0&&(d=0),a())},C=()=>{i.isEnd&&d<0&&!i.params.loop||i.destroyed||!i.autoplay.running||(b=(new Date).getTime(),f?(f=!1,x(d)):x(),i.autoplay.paused=!1,l("autoplayResume"))},P=()=>{if(i.destroyed||!i.autoplay.running)return;const e=a();"hidden"===e.visibilityState&&(f=!0,M(!0)),"visible"===e.visibilityState&&C()},L=e=>{"mouse"===e.pointerType&&(f=!0,g=!0,i.animating||i.autoplay.paused||M(!0))},I=e=>{"mouse"===e.pointerType&&(g=!1,i.autoplay.paused&&C())};n("init",(()=>{i.params.autoplay.enabled&&(i.params.autoplay.pauseOnMouseEnter&&(i.el.addEventListener("pointerenter",L),i.el.addEventListener("pointerleave",I)),a().addEventListener("visibilitychange",P),S())})),n("destroy",(()=>{i.el&&"string"!=typeof i.el&&(i.el.removeEventListener("pointerenter",L),i.el.removeEventListener("pointerleave",I)),a().removeEventListener("visibilitychange",P),i.autoplay.running&&T()})),n("_freeModeStaticRelease",(()=>{(u||f)&&C()})),n("_freeModeNoMomentumRelease",(()=>{i.params.autoplay.disableOnInteraction?T():M(!0,!0)})),n("beforeTransitionStart",((e,t,s)=>{!i.destroyed&&i.autoplay.running&&(s||!i.params.autoplay.disableOnInteraction?M(!0,!0):T())})),n("sliderFirstMove",(()=>{!i.destroyed&&i.autoplay.running&&(i.params.autoplay.disableOnInteraction?T():(p=!0,u=!1,f=!1,m=setTimeout((()=>{f=!0,u=!0,M(!0)}),200)))})),n("touchEnd",(()=>{if(!i.destroyed&&i.autoplay.running&&p){if(clearTimeout(m),clearTimeout(t),i.params.autoplay.disableOnInteraction)return u=!1,void(p=!1);u&&i.params.cssMode&&C(),u=!1,p=!1}})),n("slideChange",(()=>{!i.destroyed&&i.autoplay.running&&(h=!0)})),Object.assign(i.autoplay,{start:S,stop:T,pause:M,resume:C})},function(e){let{swiper:t,extendParams:s,on:i}=e;s({thumbs:{swiper:null,multipleActiveThumbs:!0,autoScrollOffset:0,slideThumbActiveClass:"swiper-slide-thumb-active",thumbsContainerClass:"swiper-thumbs"}});let r=!1,n=!1;function l(){const e=t.thumbs.swiper;if(!e||e.destroyed)return;const s=e.clickedIndex,a=e.clickedSlide;if(a&&a.classList.contains(t.params.thumbs.slideThumbActiveClass))return;if(null==s)return;let i;i=e.params.loop?parseInt(e.clickedSlide.getAttribute("data-swiper-slide-index"),10):s,t.params.loop?t.slideToLoop(i):t.slideTo(i)}function o(){const{thumbs:e}=t.params;if(r)return!1;r=!0;const s=t.constructor;if(e.swiper instanceof s){if(e.swiper.destroyed)return r=!1,!1;t.thumbs.swiper=e.swiper,Object.assign(t.thumbs.swiper.originalParams,{watchSlidesProgress:!0,slideToClickedSlide:!1}),Object.assign(t.thumbs.swiper.params,{watchSlidesProgress:!0,slideToClickedSlide:!1}),t.thumbs.swiper.update()}else if(c(e.swiper)){const a=Object.assign({},e.swiper);Object.assign(a,{watchSlidesProgress:!0,slideToClickedSlide:!1}),t.thumbs.swiper=new s(a),n=!0}return t.thumbs.swiper.el.classList.add(t.params.thumbs.thumbsContainerClass),t.thumbs.swiper.on("tap",l),!0}function d(e){const s=t.thumbs.swiper;if(!s||s.destroyed)return;const a="auto"===s.params.slidesPerView?s.slidesPerViewDynamic():s.params.slidesPerView;let i=1;const r=t.params.thumbs.slideThumbActiveClass;if(t.params.slidesPerView>1&&!t.params.centeredSlides&&(i=t.params.slidesPerView),t.params.thumbs.multipleActiveThumbs||(i=1),i=Math.floor(i),s.slides.forEach((e=>e.classList.remove(r))),s.params.loop||s.params.virtual&&s.params.virtual.enabled)for(let e=0;e{e.classList.add(r)}));else for(let e=0;ee.getAttribute("data-swiper-slide-index")===`${t.realIndex}`));r=s.slides.indexOf(e),o=t.activeIndex>t.previousIndex?"next":"prev"}else r=t.realIndex,o=r>t.previousIndex?"next":"prev";l&&(r+="next"===o?n:-1*n),s.visibleSlidesIndexes&&s.visibleSlidesIndexes.indexOf(r)<0&&(s.params.centeredSlides?r=r>i?r-Math.floor(a/2)+1:r+Math.floor(a/2)-1:r>i&&s.params.slidesPerGroup,s.slideTo(r,e?0:void 0))}}t.thumbs={swiper:null},i("beforeInit",(()=>{const{thumbs:e}=t.params;if(e&&e.swiper)if("string"==typeof e.swiper||e.swiper instanceof HTMLElement){const s=a(),i=()=>{const a="string"==typeof e.swiper?s.querySelector(e.swiper):e.swiper;if(a&&a.swiper)e.swiper=a.swiper,o(),d(!0);else if(a){const s=`${t.params.eventsPrefix}init`,i=r=>{e.swiper=r.detail[0],a.removeEventListener(s,i),o(),d(!0),e.swiper.update(),t.update()};a.addEventListener(s,i)}return a},r=()=>{if(t.destroyed)return;i()||requestAnimationFrame(r)};requestAnimationFrame(r)}else o(),d(!0)})),i("slideChange update resize observerUpdate",(()=>{d()})),i("setTransition",((e,s)=>{const a=t.thumbs.swiper;a&&!a.destroyed&&a.setTransition(s)})),i("beforeDestroy",(()=>{const e=t.thumbs.swiper;e&&!e.destroyed&&n&&e.destroy()})),Object.assign(t.thumbs,{init:o,update:d})},function(e){let{swiper:t,extendParams:s,emit:a,once:i}=e;s({freeMode:{enabled:!1,momentum:!0,momentumRatio:1,momentumBounce:!0,momentumBounceRatio:1,momentumVelocityRatio:1,sticky:!1,minimumVelocity:.02}}),Object.assign(t,{freeMode:{onTouchStart:function(){if(t.params.cssMode)return;const e=t.getTranslate();t.setTranslate(e),t.setTransition(0),t.touchEventsData.velocities.length=0,t.freeMode.onTouchEnd({currentPos:t.rtl?t.translate:-t.translate})},onTouchMove:function(){if(t.params.cssMode)return;const{touchEventsData:e,touches:s}=t;0===e.velocities.length&&e.velocities.push({position:s[t.isHorizontal()?"startX":"startY"],time:e.touchStartTime}),e.velocities.push({position:s[t.isHorizontal()?"currentX":"currentY"],time:o()})},onTouchEnd:function(e){let{currentPos:s}=e;if(t.params.cssMode)return;const{params:r,wrapperEl:n,rtlTranslate:l,snapGrid:d,touchEventsData:c}=t,p=o()-c.touchStartTime;if(s<-t.minTranslate())t.slideTo(t.activeIndex);else if(s>-t.maxTranslate())t.slides.length1){const e=c.velocities.pop(),s=c.velocities.pop(),a=e.position-s.position,i=e.time-s.time;t.velocity=a/i,t.velocity/=2,Math.abs(t.velocity)150||o()-e.time>300)&&(t.velocity=0)}else t.velocity=0;t.velocity*=r.freeMode.momentumVelocityRatio,c.velocities.length=0;let e=1e3*r.freeMode.momentumRatio;const s=t.velocity*e;let p=t.translate+s;l&&(p=-p);let u,m=!1;const h=20*Math.abs(t.velocity)*r.freeMode.momentumBounceRatio;let f;if(pt.minTranslate())r.freeMode.momentumBounce?(p-t.minTranslate()>h&&(p=t.minTranslate()+h),u=t.minTranslate(),m=!0,c.allowMomentumBounce=!0):p=t.minTranslate(),r.loop&&r.centeredSlides&&(f=!0);else if(r.freeMode.sticky){let e;for(let t=0;t-p){e=t;break}p=Math.abs(d[e]-p){t.loopFix()})),0!==t.velocity){if(e=l?Math.abs((-p-t.translate)/t.velocity):Math.abs((p-t.translate)/t.velocity),r.freeMode.sticky){const s=Math.abs((l?-p:p)-t.translate),a=t.slidesSizesGrid[t.activeIndex];e=s{t&&!t.destroyed&&c.allowMomentumBounce&&(a("momentumBounce"),t.setTransition(r.speed),setTimeout((()=>{t.setTranslate(u),x(n,(()=>{t&&!t.destroyed&&t.transitionEnd()}))}),0))}))):t.velocity?(a("_freeModeNoMomentumRelease"),t.updateProgress(p),t.setTransition(e),t.setTranslate(p),t.transitionStart(!0,t.swipeDirection),t.animating||(t.animating=!0,x(n,(()=>{t&&!t.destroyed&&t.transitionEnd()})))):t.updateProgress(p),t.updateActiveIndex(),t.updateSlidesClasses()}else{if(r.freeMode.sticky)return void t.slideToClosest();r.freeMode&&a("_freeModeNoMomentumRelease")}(!r.freeMode.momentum||p>=r.longSwipesMs)&&(a("_freeModeStaticRelease"),t.updateProgress(),t.updateActiveIndex(),t.updateSlidesClasses())}}}})},function(e){let t,s,a,i,{swiper:r,extendParams:n,on:l}=e;n({grid:{rows:1,fill:"column"}});const o=()=>{let e=r.params.spaceBetween;return"string"==typeof e&&e.indexOf("%")>=0?e=parseFloat(e.replace("%",""))/100*r.size:"string"==typeof e&&(e=parseFloat(e)),e};l("init",(()=>{i=r.params.grid&&r.params.grid.rows>1})),l("update",(()=>{const{params:e,el:t}=r,s=e.grid&&e.grid.rows>1;i&&!s?(t.classList.remove(`${e.containerModifierClass}grid`,`${e.containerModifierClass}grid-column`),a=1,r.emitContainerClasses()):!i&&s&&(t.classList.add(`${e.containerModifierClass}grid`),"column"===e.grid.fill&&t.classList.add(`${e.containerModifierClass}grid-column`),r.emitContainerClasses()),i=s})),r.grid={initSlides:e=>{const{slidesPerView:i}=r.params,{rows:n,fill:l}=r.params.grid,o=r.virtual&&r.params.virtual.enabled?r.virtual.slides.length:e.length;a=Math.floor(o/n),t=Math.floor(o/n)===o/n?o:Math.ceil(o/n)*n,"auto"!==i&&"row"===l&&(t=Math.max(t,i*n)),s=t/n},unsetSlides:()=>{r.slides&&r.slides.forEach((e=>{e.swiperSlideGridSet&&(e.style.height="",e.style[r.getDirectionLabel("margin-top")]="")}))},updateSlide:(e,i,n)=>{const{slidesPerGroup:l}=r.params,d=o(),{rows:c,fill:p}=r.params.grid,u=r.virtual&&r.params.virtual.enabled?r.virtual.slides.length:n.length;let m,h,f;if("row"===p&&l>1){const s=Math.floor(e/(l*c)),a=e-c*l*s,r=0===s?l:Math.min(Math.ceil((u-s*c*l)/c),l);f=Math.floor(a/r),h=a-f*r+s*l,m=h+f*t/c,i.style.order=m}else"column"===p?(h=Math.floor(e/c),f=e-h*c,(h>a||h===a&&f===c-1)&&(f+=1,f>=c&&(f=0,h+=1))):(f=Math.floor(e/s),h=e-f*s);i.row=f,i.column=h,i.style.height=`calc((100% - ${(c-1)*d}px) / ${c})`,i.style[r.getDirectionLabel("margin-top")]=0!==f?d&&`${d}px`:"",i.swiperSlideGridSet=!0},updateWrapperSize:(e,s)=>{const{centeredSlides:a,roundLengths:i}=r.params,n=o(),{rows:l}=r.params.grid;if(r.virtualSize=(e+n)*t,r.virtualSize=Math.ceil(r.virtualSize/l)-n,r.params.cssMode||(r.wrapperEl.style[r.getDirectionLabel("width")]=`${r.virtualSize+n}px`),a){const e=[];for(let t=0;t{const{slides:e}=t;t.params.fadeEffect;for(let s=0;s{const s=t.slides.map((e=>h(e)));s.forEach((t=>{t.style.transitionDuration=`${e}ms`})),he({swiper:t,duration:e,transformElements:s,allSlides:!0})},overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!t.params.cssMode})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({cubeEffect:{slideShadows:!0,shadow:!0,shadowOffset:20,shadowScale:.94}});const i=(e,t,s)=>{let a=s?e.querySelector(".swiper-slide-shadow-left"):e.querySelector(".swiper-slide-shadow-top"),i=s?e.querySelector(".swiper-slide-shadow-right"):e.querySelector(".swiper-slide-shadow-bottom");a||(a=v("div",("swiper-slide-shadow-cube swiper-slide-shadow-"+(s?"left":"top")).split(" ")),e.append(a)),i||(i=v("div",("swiper-slide-shadow-cube swiper-slide-shadow-"+(s?"right":"bottom")).split(" ")),e.append(i)),a&&(a.style.opacity=Math.max(-t,0)),i&&(i.style.opacity=Math.max(t,0))};ue({effect:"cube",swiper:t,on:a,setTranslate:()=>{const{el:e,wrapperEl:s,slides:a,width:r,height:n,rtlTranslate:l,size:o,browser:d}=t,c=M(t),p=t.params.cubeEffect,u=t.isHorizontal(),m=t.virtual&&t.params.virtual.enabled;let h,f=0;p.shadow&&(u?(h=t.wrapperEl.querySelector(".swiper-cube-shadow"),h||(h=v("div","swiper-cube-shadow"),t.wrapperEl.append(h)),h.style.height=`${r}px`):(h=e.querySelector(".swiper-cube-shadow"),h||(h=v("div","swiper-cube-shadow"),e.append(h))));for(let e=0;e-1&&(f=90*s+90*d,l&&(f=90*-s-90*d)),t.style.transform=w,p.slideShadows&&i(t,d,u)}if(s.style.transformOrigin=`50% 50% -${o/2}px`,s.style["-webkit-transform-origin"]=`50% 50% -${o/2}px`,p.shadow)if(u)h.style.transform=`translate3d(0px, ${r/2+p.shadowOffset}px, ${-r/2}px) rotateX(89.99deg) rotateZ(0deg) scale(${p.shadowScale})`;else{const e=Math.abs(f)-90*Math.floor(Math.abs(f)/90),t=1.5-(Math.sin(2*e*Math.PI/360)/2+Math.cos(2*e*Math.PI/360)/2),s=p.shadowScale,a=p.shadowScale/t,i=p.shadowOffset;h.style.transform=`scale3d(${s}, 1, ${a}) translate3d(0px, ${n/2+i}px, ${-n/2/a}px) rotateX(-89.99deg)`}const g=(d.isSafari||d.isWebView)&&d.needPerspectiveFix?-o/2:0;s.style.transform=`translate3d(0px,0,${g}px) rotateX(${c(t.isHorizontal()?0:f)}deg) rotateY(${c(t.isHorizontal()?-f:0)}deg)`,s.style.setProperty("--swiper-cube-translate-z",`${g}px`)},setTransition:e=>{const{el:s,slides:a}=t;if(a.forEach((t=>{t.style.transitionDuration=`${e}ms`,t.querySelectorAll(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").forEach((t=>{t.style.transitionDuration=`${e}ms`}))})),t.params.cubeEffect.shadow&&!t.isHorizontal()){const t=s.querySelector(".swiper-cube-shadow");t&&(t.style.transitionDuration=`${e}ms`)}},recreateShadows:()=>{const e=t.isHorizontal();t.slides.forEach((t=>{const s=Math.max(Math.min(t.progress,1),-1);i(t,s,e)}))},getEffectParams:()=>t.params.cubeEffect,perspective:()=>!0,overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,resistanceRatio:0,spaceBetween:0,centeredSlides:!1,virtualTranslate:!0})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({flipEffect:{slideShadows:!0,limitRotation:!0}});const i=(e,s)=>{let a=t.isHorizontal()?e.querySelector(".swiper-slide-shadow-left"):e.querySelector(".swiper-slide-shadow-top"),i=t.isHorizontal()?e.querySelector(".swiper-slide-shadow-right"):e.querySelector(".swiper-slide-shadow-bottom");a||(a=fe("flip",e,t.isHorizontal()?"left":"top")),i||(i=fe("flip",e,t.isHorizontal()?"right":"bottom")),a&&(a.style.opacity=Math.max(-s,0)),i&&(i.style.opacity=Math.max(s,0))};ue({effect:"flip",swiper:t,on:a,setTranslate:()=>{const{slides:e,rtlTranslate:s}=t,a=t.params.flipEffect,r=M(t);for(let n=0;n{const s=t.slides.map((e=>h(e)));s.forEach((t=>{t.style.transitionDuration=`${e}ms`,t.querySelectorAll(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").forEach((t=>{t.style.transitionDuration=`${e}ms`}))})),he({swiper:t,duration:e,transformElements:s})},recreateShadows:()=>{t.params.flipEffect,t.slides.forEach((e=>{let s=e.progress;t.params.flipEffect.limitRotation&&(s=Math.max(Math.min(e.progress,1),-1)),i(e,s)}))},getEffectParams:()=>t.params.flipEffect,perspective:()=>!0,overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!t.params.cssMode})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({coverflowEffect:{rotate:50,stretch:0,depth:100,scale:1,modifier:1,slideShadows:!0}}),ue({effect:"coverflow",swiper:t,on:a,setTranslate:()=>{const{width:e,height:s,slides:a,slidesSizesGrid:i}=t,r=t.params.coverflowEffect,n=t.isHorizontal(),l=t.translate,o=n?e/2-l:s/2-l,d=n?r.rotate:-r.rotate,c=r.depth,p=M(t);for(let e=0,t=a.length;e0?u:0),s&&(s.style.opacity=-u>0?-u:0)}}},setTransition:e=>{t.slides.map((e=>h(e))).forEach((t=>{t.style.transitionDuration=`${e}ms`,t.querySelectorAll(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").forEach((t=>{t.style.transitionDuration=`${e}ms`}))}))},perspective:()=>!0,overwriteParams:()=>({watchSlidesProgress:!0})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({creativeEffect:{limitProgress:1,shadowPerProgress:!1,progressMultiplier:1,perspective:!0,prev:{translate:[0,0,0],rotate:[0,0,0],opacity:1,scale:1},next:{translate:[0,0,0],rotate:[0,0,0],opacity:1,scale:1}}});const i=e=>"string"==typeof e?e:`${e}px`;ue({effect:"creative",swiper:t,on:a,setTranslate:()=>{const{slides:e,wrapperEl:s,slidesSizesGrid:a}=t,r=t.params.creativeEffect,{progressMultiplier:n}=r,l=t.params.centeredSlides,o=M(t);if(l){const e=a[0]/2-t.params.slidesOffsetBefore||0;s.style.transform=`translateX(calc(50% - ${e}px))`}for(let s=0;s0&&(g=r.prev,f=!0),m.forEach(((e,t)=>{m[t]=`calc(${e}px + (${i(g.translate[t])} * ${Math.abs(c*n)}))`})),h.forEach(((e,t)=>{let s=g.rotate[t]*Math.abs(c*n);h[t]=s})),a.style.zIndex=-Math.abs(Math.round(d))+e.length;const v=m.join(", "),w=`rotateX(${o(h[0])}deg) rotateY(${o(h[1])}deg) rotateZ(${o(h[2])}deg)`,b=p<0?`scale(${1+(1-g.scale)*p*n})`:`scale(${1-(1-g.scale)*p*n})`,y=p<0?1+(1-g.opacity)*p*n:1-(1-g.opacity)*p*n,E=`translate3d(${v}) ${w} ${b}`;if(f&&g.shadow||!f){let e=a.querySelector(".swiper-slide-shadow");if(!e&&g.shadow&&(e=fe("creative",a)),e){const t=r.shadowPerProgress?c*(1/r.limitProgress):c;e.style.opacity=Math.min(Math.max(Math.abs(t),0),1)}}const x=me(0,a);x.style.transform=E,x.style.opacity=y,g.origin&&(x.style.transformOrigin=g.origin)}},setTransition:e=>{const s=t.slides.map((e=>h(e)));s.forEach((t=>{t.style.transitionDuration=`${e}ms`,t.querySelectorAll(".swiper-slide-shadow").forEach((t=>{t.style.transitionDuration=`${e}ms`}))})),he({swiper:t,duration:e,transformElements:s,allSlides:!0})},perspective:()=>t.params.creativeEffect.perspective,overwriteParams:()=>({watchSlidesProgress:!0,virtualTranslate:!t.params.cssMode})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({cardsEffect:{slideShadows:!0,rotate:!0,perSlideRotate:2,perSlideOffset:8}}),ue({effect:"cards",swiper:t,on:a,setTranslate:()=>{const{slides:e,activeIndex:s,rtlTranslate:a}=t,i=t.params.cardsEffect,{startTranslate:r,isTouched:n}=t.touchEventsData,l=a?-t.translate:t.translate;for(let o=0;o0&&p<1&&(n||t.params.cssMode)&&l-1&&(n||t.params.cssMode)&&l>r;if(y||E){const e=(1-Math.abs((Math.abs(p)-.5)/.5))**.5;v+=-28*p*e,g+=-.5*e,w+=96*e,h=-25*e*Math.abs(p)+"%"}if(m=p<0?`calc(${m}px ${a?"-":"+"} (${w*Math.abs(p)}%))`:p>0?`calc(${m}px ${a?"-":"+"} (-${w*Math.abs(p)}%))`:`${m}px`,!t.isHorizontal()){const e=h;h=m,m=e}const x=p<0?""+(1+(1-g)*p):""+(1-(1-g)*p),S=`\n translate3d(${m}, ${h}, ${f}px)\n rotateZ(${i.rotate?a?-v:v:0}deg)\n scale(${x})\n `;if(i.slideShadows){let e=d.querySelector(".swiper-slide-shadow");e||(e=fe("cards",d)),e&&(e.style.opacity=Math.min(Math.max((Math.abs(p)-.5)/.5,0),1))}d.style.zIndex=-Math.abs(Math.round(c))+e.length;me(0,d).style.transform=S}},setTransition:e=>{const s=t.slides.map((e=>h(e)));s.forEach((t=>{t.style.transitionDuration=`${e}ms`,t.querySelectorAll(".swiper-slide-shadow").forEach((t=>{t.style.transitionDuration=`${e}ms`}))})),he({swiper:t,duration:e,transformElements:s})},perspective:()=>!0,overwriteParams:()=>({_loopSwapReset:!1,watchSlidesProgress:!0,loopAdditionalSlides:t.params.cardsEffect.rotate?3:2,centeredSlides:!0,virtualTranslate:!t.params.cssMode})})}];return ie.use(ge),ie}(); -//# sourceMappingURL=swiper-bundle.min.js.map \ No newline at end of file diff --git a/static/assets/theme-switcher.js b/static/assets/theme-switcher.js deleted file mode 100644 index 0500df6f1bf3775a1e9c10d53728eb852c0c450d..0000000000000000000000000000000000000000 --- a/static/assets/theme-switcher.js +++ /dev/null @@ -1,68 +0,0 @@ -/** - * Switch between light and dark themes (color modes) - * Copyright 2025 Createx Studio - */ - -(() => { - 'use strict' - - const getStoredTheme = () => localStorage.getItem('theme') - const setStoredTheme = theme => localStorage.setItem('theme', theme) - - const getPreferredTheme = () => { - const storedTheme = getStoredTheme() - if (storedTheme) { - return storedTheme - } - - // Set default theme to 'light'. - // Possible options: 'dark' or system color mode (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') - return 'light' - } - - const setTheme = theme => { - if (theme === 'auto' && window.matchMedia('(prefers-color-scheme: dark)').matches) { - document.documentElement.setAttribute('data-bs-theme', 'dark') - } else { - document.documentElement.setAttribute('data-bs-theme', theme) - } - } - - setTheme(getPreferredTheme()) - - const showActiveTheme = (theme) => { - const themeSwitcher = document.querySelector('[data-bs-toggle="mode"]') - const themeSwitcherCheck = themeSwitcher.querySelector('input[type="checkbox"]') - - if (!themeSwitcher) { - return - } - - if (theme === 'dark') { - themeSwitcherCheck.checked = 'checked' - } else { - themeSwitcherCheck.checked = false - } - } - - window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', () => { - const storedTheme = getStoredTheme() - if (storedTheme !== 'light' && storedTheme !== 'dark') { - setTheme(getPreferredTheme()) - } - }) - - window.addEventListener('DOMContentLoaded', () => { - showActiveTheme(getPreferredTheme()) - - document.querySelectorAll('[data-bs-toggle="mode"]') - .forEach(toggle => { - toggle.addEventListener('click', () => { - const theme = toggle.querySelector('input[type="checkbox"]').checked === true ? 'dark' : 'light' - setStoredTheme(theme) - setTheme(theme) - showActiveTheme(theme, true) - }) - }) - }) -})() diff --git a/static/assets/theme.min.css b/static/assets/theme.min.css deleted file mode 100644 index 72893012b7752908b601fa9662ab1651d24cbf03..0000000000000000000000000000000000000000 --- a/static/assets/theme.min.css +++ /dev/null @@ -1,2 +0,0 @@ -@charset "UTF-8";@import url("https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&display=swap");.text-gradient-primary{background:linear-gradient(90deg,#6366f1,#8b5cf6,#d946ef);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.swap-image{display:inline-block;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none}.swap-image .swap-from,.swap-image .swap-to{display:block;transition:opacity .25s ease-in-out}.swap-image .swap-to{left:0;opacity:0;position:absolute;top:0}.swap-image.active .swap-from,.swap-image:hover .swap-from{opacity:0}.swap-image.active .swap-to,.swap-image:hover .swap-to{opacity:1}[data-bs-theme=dark] .d-dark-mode-none{display:none!important}[data-bs-theme=dark] .d-dark-mode-block{display:block!important}[data-bs-theme=dark] .d-dark-mode-inline{display:inline!important}[data-bs-theme=dark] .d-dark-mode-inline-block{display:inline-block!important}[data-bs-theme=dark] .d-dark-mode-inline-flex{display:inline-flex!important}[data-bs-theme=dark] .d-dark-mode-flex{display:flex!important}[data-bs-theme=dark] .text-dark:not(.badge){color:#fff!important}[data-bs-theme=dark] .text-nav:not(.badge.bg-white){color:hsla(0,0%,100%,.85)!important}[data-bs-theme=dark] .border-dark{border-color:var(--si-border-color)!important}[data-bs-theme=dark] .bg-light:not(.badge),[data-bs-theme=dark] .card.card-hover.bg-light{background-color:#0b0f19!important}[data-bs-theme=dark] .bg-secondary,[data-bs-theme=dark] .card.bg-light{background-color:var(--si-secondary-bg)!important}[data-bs-theme=dark] .bg-secondary.badge{color:var(--si-body-color)}[data-bs-theme=dark] .shadow-dark-mode-none{box-shadow:none!important}[data-bs-theme=dark] .dark-mode-img{display:block}[data-bs-theme=dark] .light-mode-img{display:none}:root,[data-bs-theme=light]{--si-blue:#0d6efd;--si-indigo:#6610f2;--si-purple:#6f42c1;--si-pink:#d63384;--si-red:#dc3545;--si-orange:#fd7e14;--si-yellow:#ffc107;--si-green:#198754;--si-teal:#20c997;--si-cyan:#0dcaf0;--si-black:#000;--si-white:#fff;--si-gray:#9397ad;--si-gray-dark:#33354d;--si-gray-100:#f3f6ff;--si-gray-200:#eff2fc;--si-gray-300:#e2e5f1;--si-gray-400:#d4d7e5;--si-gray-500:#b4b7c9;--si-gray-600:#9397ad;--si-gray-700:#565973;--si-gray-800:#33354d;--si-gray-900:#0b0f19;--si-primary:#6366f1;--si-secondary:#eff2fc;--si-success:#22c55e;--si-info:#4c82f7;--si-warning:#ffba08;--si-danger:#ef4444;--si-light:#fff;--si-dark:#0b0f19;--si-primary-rgb:99,102,241;--si-secondary-rgb:239,242,252;--si-success-rgb:34,197,94;--si-info-rgb:76,130,247;--si-warning-rgb:255,186,8;--si-danger-rgb:239,68,68;--si-light-rgb:255,255,255;--si-dark-rgb:11,15,25;--si-primary-text-emphasis:#3438ed;--si-secondary-text-emphasis:#565973;--si-success-text-emphasis:#1a9a49;--si-info-text-emphasis:#1b60f5;--si-warning-text-emphasis:#d49900;--si-danger-text-emphasis:#eb1515;--si-light-text-emphasis:#565973;--si-dark-text-emphasis:#0b0f19;--si-primary-bg-subtle:#eff0fe;--si-secondary-bg-subtle:#f3f6ff;--si-success-bg-subtle:#e9f9ef;--si-info-bg-subtle:#edf3fe;--si-warning-bg-subtle:#fff8e6;--si-danger-bg-subtle:#fdecec;--si-light-bg-subtle:#fff;--si-dark-bg-subtle:#ebeced;--si-primary-border-subtle:#d8d9fc;--si-secondary-border-subtle:#eff2fc;--si-success-border-subtle:#c8f1d7;--si-info-border-subtle:#d2e0fd;--si-warning-border-subtle:#ffeec1;--si-danger-border-subtle:#fbd0d0;--si-light-border-subtle:#f3f6ff;--si-dark-border-subtle:#eff2fc;--si-white-rgb:255,255,255;--si-black-rgb:0,0,0;--si-font-sans-serif:"Manrope",sans-serif;--si-font-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--si-gradient:linear-gradient(180deg,hsla(0,0%,100%,.15),hsla(0,0%,100%,0));--si-body-font-family:var(--si-font-sans-serif);--si-body-font-size:1rem;--si-body-font-weight:400;--si-body-line-height:1.6;--si-body-color:#565973;--si-body-color-rgb:86,89,115;--si-body-bg:#fff;--si-body-bg-rgb:255,255,255;--si-emphasis-color:#000;--si-emphasis-color-rgb:0,0,0;--si-secondary-color:rgba(86,89,115,.75);--si-secondary-color-rgb:86,89,115;--si-secondary-bg:#eff2fc;--si-secondary-bg-rgb:239,242,252;--si-tertiary-color:rgba(86,89,115,.5);--si-tertiary-color-rgb:86,89,115;--si-tertiary-bg:#f3f6ff;--si-tertiary-bg-rgb:243,246,255;--si-heading-color:var(--si-gray-900);--si-link-color:#6366f1;--si-link-color-rgb:99,102,241;--si-link-decoration:underline;--si-link-hover-color:#3e41ee;--si-link-hover-color-rgb:62,65,238;--si-link-hover-decoration:none;--si-code-color:#e3116c;--si-highlight-color:#565973;--si-highlight-bg:#fff3cd;--si-border-width:1px;--si-border-style:solid;--si-border-color:#e2e5f1;--si-border-color-translucent:rgba(0,0,0,.175);--si-border-radius:0.375rem;--si-border-radius-sm:0.25rem;--si-border-radius-lg:0.5rem;--si-border-radius-xl:0.75rem;--si-border-radius-xxl:1rem;--si-border-radius-2xl:var(--si-border-radius-xxl);--si-border-radius-pill:50rem;--si-box-shadow:0 0.275rem 1.25rem rgba(11,15,25,.05),0 0.25rem 0.5625rem rgba(11,15,25,.03);--si-box-shadow-sm:0 0.275rem 0.75rem -0.0625rem rgba(11,15,25,.06),0 0.125rem 0.4rem -0.0625rem rgba(11,15,25,.03);--si-box-shadow-lg:0 0.3rem 1.525rem -0.375rem rgba(11,15,25,.1),0 0.25rem 0.8125rem -0.125rem rgba(11,15,25,.06);--si-box-shadow-inset:inset 0 0 0 transparent;--si-focus-ring-width:0.25rem;--si-focus-ring-opacity:0.25;--si-focus-ring-color:rgba(99,102,241,.25);--si-form-valid-color:#22c55e;--si-form-valid-border-color:#22c55e;--si-form-invalid-color:#ef4444;--si-form-invalid-border-color:#ef4444}[data-bs-theme=dark]{color-scheme:dark;--si-body-color:hsla(0,0%,100%,.7);--si-body-color-rgb:255,255,255;--si-body-bg:#0b0f19;--si-body-bg-rgb:11,15,25;--si-emphasis-color:#fff;--si-emphasis-color-rgb:255,255,255;--si-secondary-color:hsla(0,0%,100%,.75);--si-secondary-color-rgb:255,255,255;--si-secondary-bg:#33354d;--si-secondary-bg-rgb:51,53,77;--si-tertiary-color:hsla(0,0%,100%,.5);--si-tertiary-color-rgb:255,255,255;--si-tertiary-bg:#1f2233;--si-tertiary-bg-rgb:31,34,51;--si-primary-text-emphasis:#4c4fef;--si-secondary-text-emphasis:#eff2fc;--si-success-text-emphasis:#1eaf54;--si-info-text-emphasis:#3471f6;--si-warning-text-emphasis:#eeab00;--si-danger-text-emphasis:#ed2d2d;--si-light-text-emphasis:#eff2fc;--si-dark-text-emphasis:#fff;--si-primary-bg-subtle:#0f0f24;--si-secondary-bg-subtle:#33354d;--si-success-bg-subtle:#051e0e;--si-info-bg-subtle:#0b1425;--si-warning-bg-subtle:#261c01;--si-danger-bg-subtle:#240a0a;--si-light-bg-subtle:#0b0f19;--si-dark-bg-subtle:#020204;--si-primary-border-subtle:#1e1f48;--si-secondary-border-subtle:#565973;--si-success-border-subtle:#0a3b1c;--si-info-border-subtle:#17274a;--si-warning-border-subtle:#4d3802;--si-danger-border-subtle:#481414;--si-light-border-subtle:#565973;--si-dark-border-subtle:#0b0f19;--si-heading-color:#fff;--si-link-color:#6366f1;--si-link-hover-color:#3e41ee;--si-link-color-rgb:99,102,241;--si-link-hover-color-rgb:62,65,238;--si-highlight-color:hsla(0,0%,100%,.7);--si-highlight-bg:#664d03;--si-border-color:hsla(0,0%,100%,.14);--si-border-color-translucent:hsla(0,0%,100%,.15);--si-form-valid-color:#22c55e;--si-form-valid-border-color:#75b798;--si-form-invalid-color:#ef4444;--si-form-invalid-border-color:#ea868f}*,:after,:before{box-sizing:border-box}body{background-color:var(--si-body-bg);color:var(--si-body-color);font-family:var(--si-body-font-family);font-size:var(--si-body-font-size);font-weight:var(--si-body-font-weight);line-height:var(--si-body-line-height);text-align:var(--si-body-text-align);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}body,hr{margin:0}hr{border:0;border-top:var(--si-border-width) solid;color:var(--si-border-color);opacity:1}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{color:var(--si-heading-color);font-weight:800;line-height:1.3;margin-bottom:1rem;margin-top:0}.h1,h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width:1200px){.h1,h1{font-size:2.5rem}}.h2,h2{font-size:calc(1.325rem + .9vw)}@media (min-width:1200px){.h2,h2{font-size:2rem}}.h3,h3{font-size:calc(1.3rem + .6vw)}@media (min-width:1200px){.h3,h3{font-size:1.75rem}}.h4,h4{font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){.h4,h4{font-size:1.5rem}}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}p{margin-bottom:1.25rem;margin-top:0}abbr[title]{cursor:help;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{font-style:normal;line-height:inherit;margin-bottom:1rem}ol,ul{padding-left:2rem}dl,ol,ul{margin-bottom:1rem;margin-top:0}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:800}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}.small,small{font-size:.875em}.mark,mark{background-color:var(--si-highlight-bg);color:var(--si-highlight-color);padding:.1875em}sub,sup{font-size:.75em;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:rgba(var(--si-link-color-rgb),var(--si-link-opacity,1));text-decoration:underline}a:hover{--si-link-color-rgb:var(--si-link-hover-color-rgb);text-decoration:none}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:var(--si-font-monospace);font-size:1em}pre{color:#33354d;display:block;font-size:.875em;margin-bottom:1rem;margin-top:0;overflow:auto}pre code{color:inherit;font-size:inherit;word-break:normal}code{color:var(--si-code-color);font-size:.875em;word-wrap:break-word}a>code{color:inherit}kbd{background-color:#0b0f19;border-radius:.25rem;color:#fff;font-size:.875em;padding:.1875rem .375rem}kbd kbd{font-size:1em;padding:0}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{border-collapse:collapse;caption-side:bottom}caption{color:var(--si-secondary-color);padding-bottom:.75rem;padding-top:.75rem;text-align:left}th{font-weight:700;text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border:0 solid;border-color:inherit}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit;margin:0}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{border-style:none;padding:0}textarea{resize:vertical}fieldset{border:0;margin:0;min-width:0;padding:0}legend{float:left;font-size:calc(1.275rem + .3vw);line-height:inherit;margin-bottom:.5rem;padding:0;width:100%}@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{-webkit-appearance:button;font:inherit}::file-selector-button{-webkit-appearance:button;font:inherit}output{display:inline-block}iframe{border:0}summary{cursor:pointer;display:list-item}progress{vertical-align:baseline}[hidden]{display:none!important}.lead{font-size:calc(1.275rem + .3vw);font-weight:400}@media (min-width:1200px){.lead{font-size:1.5rem}}.display-1{font-size:calc(1.625rem + 4.5vw);font-weight:800;line-height:1.3}@media (min-width:1200px){.display-1{font-size:5rem}}.display-2{font-size:calc(1.575rem + 3.9vw);font-weight:800;line-height:1.3}@media (min-width:1200px){.display-2{font-size:4.5rem}}.display-3{font-size:calc(1.525rem + 3.3vw);font-weight:800;line-height:1.3}@media (min-width:1200px){.display-3{font-size:4rem}}.display-4{font-size:calc(1.475rem + 2.7vw);font-weight:800;line-height:1.3}@media (min-width:1200px){.display-4{font-size:3.5rem}}.display-5{font-size:calc(1.425rem + 2.1vw);font-weight:800;line-height:1.3}@media (min-width:1200px){.display-5{font-size:3rem}}.display-6{font-size:calc(1.3875rem + 1.65vw);font-weight:800;line-height:1.3}@media (min-width:1200px){.display-6{font-size:2.625rem}}.list-inline,.list-unstyled{list-style:none;padding-left:0}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:1rem}.initialism{font-size:.875em;text-transform:uppercase}.blockquote{font-size:1rem;margin-bottom:1rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{color:var(--si-gray-600);font-size:.875rem;margin-bottom:1rem;margin-top:-1rem}.blockquote-footer:before{content:"— "}.img-fluid,.img-thumbnail{height:auto;max-width:100%}.img-thumbnail{background-color:var(--si-body-bg);border:0 solid var(--si-border-color);border-radius:var(--si-border-radius-lg);box-shadow:var(--si-box-shadow-sm);padding:.5rem}.figure{display:inline-block}.figure-img{line-height:1;margin-bottom:.5rem}.figure-caption{color:var(--si-gray-600);font-size:.875rem}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{--si-gutter-x:1.5rem;--si-gutter-y:0;margin-left:auto;margin-right:auto;padding-left:calc(var(--si-gutter-x)*.5);padding-right:calc(var(--si-gutter-x)*.5);width:100%}@media (min-width:500px){.container,.container-sm{max-width:97%}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:95%}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:95%}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:95%}}@media (min-width:1400px){.container,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{max-width:1320px}}:root{--si-breakpoint-xs:0;--si-breakpoint-sm:500px;--si-breakpoint-md:768px;--si-breakpoint-lg:992px;--si-breakpoint-xl:1200px;--si-breakpoint-xxl:1400px}.row{--si-gutter-x:1.5rem;--si-gutter-y:0;display:flex;flex-wrap:wrap;margin-left:calc(var(--si-gutter-x)*-.5);margin-right:calc(var(--si-gutter-x)*-.5);margin-top:calc(var(--si-gutter-y)*-1)}.row>*{flex-shrink:0;margin-top:var(--si-gutter-y);max-width:100%;padding-left:calc(var(--si-gutter-x)*.5);padding-right:calc(var(--si-gutter-x)*.5);width:100%}.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{--si-gutter-x:0}.g-0,.gy-0{--si-gutter-y:0}.g-1,.gx-1{--si-gutter-x:0.25rem}.g-1,.gy-1{--si-gutter-y:0.25rem}.g-2,.gx-2{--si-gutter-x:0.5rem}.g-2,.gy-2{--si-gutter-y:0.5rem}.g-3,.gx-3{--si-gutter-x:1rem}.g-3,.gy-3{--si-gutter-y:1rem}.g-4,.gx-4{--si-gutter-x:1.5rem}.g-4,.gy-4{--si-gutter-y:1.5rem}.g-5,.gx-5{--si-gutter-x:3rem}.g-5,.gy-5{--si-gutter-y:3rem}@media (min-width:500px){.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{--si-gutter-x:0}.g-sm-0,.gy-sm-0{--si-gutter-y:0}.g-sm-1,.gx-sm-1{--si-gutter-x:0.25rem}.g-sm-1,.gy-sm-1{--si-gutter-y:0.25rem}.g-sm-2,.gx-sm-2{--si-gutter-x:0.5rem}.g-sm-2,.gy-sm-2{--si-gutter-y:0.5rem}.g-sm-3,.gx-sm-3{--si-gutter-x:1rem}.g-sm-3,.gy-sm-3{--si-gutter-y:1rem}.g-sm-4,.gx-sm-4{--si-gutter-x:1.5rem}.g-sm-4,.gy-sm-4{--si-gutter-y:1.5rem}.g-sm-5,.gx-sm-5{--si-gutter-x:3rem}.g-sm-5,.gy-sm-5{--si-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{--si-gutter-x:0}.g-md-0,.gy-md-0{--si-gutter-y:0}.g-md-1,.gx-md-1{--si-gutter-x:0.25rem}.g-md-1,.gy-md-1{--si-gutter-y:0.25rem}.g-md-2,.gx-md-2{--si-gutter-x:0.5rem}.g-md-2,.gy-md-2{--si-gutter-y:0.5rem}.g-md-3,.gx-md-3{--si-gutter-x:1rem}.g-md-3,.gy-md-3{--si-gutter-y:1rem}.g-md-4,.gx-md-4{--si-gutter-x:1.5rem}.g-md-4,.gy-md-4{--si-gutter-y:1.5rem}.g-md-5,.gx-md-5{--si-gutter-x:3rem}.g-md-5,.gy-md-5{--si-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{--si-gutter-x:0}.g-lg-0,.gy-lg-0{--si-gutter-y:0}.g-lg-1,.gx-lg-1{--si-gutter-x:0.25rem}.g-lg-1,.gy-lg-1{--si-gutter-y:0.25rem}.g-lg-2,.gx-lg-2{--si-gutter-x:0.5rem}.g-lg-2,.gy-lg-2{--si-gutter-y:0.5rem}.g-lg-3,.gx-lg-3{--si-gutter-x:1rem}.g-lg-3,.gy-lg-3{--si-gutter-y:1rem}.g-lg-4,.gx-lg-4{--si-gutter-x:1.5rem}.g-lg-4,.gy-lg-4{--si-gutter-y:1.5rem}.g-lg-5,.gx-lg-5{--si-gutter-x:3rem}.g-lg-5,.gy-lg-5{--si-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{--si-gutter-x:0}.g-xl-0,.gy-xl-0{--si-gutter-y:0}.g-xl-1,.gx-xl-1{--si-gutter-x:0.25rem}.g-xl-1,.gy-xl-1{--si-gutter-y:0.25rem}.g-xl-2,.gx-xl-2{--si-gutter-x:0.5rem}.g-xl-2,.gy-xl-2{--si-gutter-y:0.5rem}.g-xl-3,.gx-xl-3{--si-gutter-x:1rem}.g-xl-3,.gy-xl-3{--si-gutter-y:1rem}.g-xl-4,.gx-xl-4{--si-gutter-x:1.5rem}.g-xl-4,.gy-xl-4{--si-gutter-y:1.5rem}.g-xl-5,.gx-xl-5{--si-gutter-x:3rem}.g-xl-5,.gy-xl-5{--si-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{--si-gutter-x:0}.g-xxl-0,.gy-xxl-0{--si-gutter-y:0}.g-xxl-1,.gx-xxl-1{--si-gutter-x:0.25rem}.g-xxl-1,.gy-xxl-1{--si-gutter-y:0.25rem}.g-xxl-2,.gx-xxl-2{--si-gutter-x:0.5rem}.g-xxl-2,.gy-xxl-2{--si-gutter-y:0.5rem}.g-xxl-3,.gx-xxl-3{--si-gutter-x:1rem}.g-xxl-3,.gy-xxl-3{--si-gutter-y:1rem}.g-xxl-4,.gx-xxl-4{--si-gutter-x:1.5rem}.g-xxl-4,.gy-xxl-4{--si-gutter-y:1.5rem}.g-xxl-5,.gx-xxl-5{--si-gutter-x:3rem}.g-xxl-5,.gy-xxl-5{--si-gutter-y:3rem}}.table{--si-table-color-type:initial;--si-table-bg-type:initial;--si-table-color-state:initial;--si-table-bg-state:initial;--si-table-color:var(--si-body-color);--si-table-bg:var(--si-body-bg);--si-table-border-color:var(--si-border-color);--si-table-accent-bg:transparent;--si-table-striped-color:var(--si-body-color);--si-table-striped-bg:rgba(var(--si-emphasis-color-rgb),0.0375);--si-table-active-color:var(--si-body-color);--si-table-active-bg:rgba(var(--si-emphasis-color-rgb),0.05);--si-table-hover-color:var(--si-body-color);--si-table-hover-bg:rgba(var(--si-emphasis-color-rgb),0.05);border-color:var(--si-table-border-color);margin-bottom:1rem;vertical-align:top;width:100%}.table>:not(caption)>*>*{background-color:var(--si-table-bg);border-bottom-width:var(--si-border-width);box-shadow:inset 0 0 0 9999px var(--si-table-bg-state,var(--si-table-bg-type,var(--si-table-accent-bg)));color:var(--si-table-color-state,var(--si-table-color-type,var(--si-table-color)));padding:.75rem}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table-group-divider{border-top:calc(var(--si-border-width)*2) solid}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.375rem}.table-bordered>:not(caption)>*{border-width:var(--si-border-width) 0}.table-bordered>:not(caption)>*>*{border-width:0 var(--si-border-width)}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-borderless>:not(:first-child){border-top-width:0}.table-striped-columns>:not(caption)>tr>:nth-child(2n),.table-striped>tbody>tr:nth-of-type(odd)>*{--si-table-color-type:var(--si-table-striped-color);--si-table-bg-type:var(--si-table-striped-bg)}.table-active{--si-table-color-state:var(--si-table-active-color);--si-table-bg-state:var(--si-table-active-bg)}.table-hover>tbody>tr:hover>*{--si-table-color-state:var(--si-table-hover-color);--si-table-bg-state:var(--si-table-hover-bg)}.table-dark{--si-table-color:#fff;--si-table-bg:#0b0f19;--si-table-border-color:#30333c;--si-table-striped-bg:#141822;--si-table-striped-color:#fff;--si-table-active-bg:#171b25;--si-table-active-color:#fff;--si-table-hover-bg:#171b25;--si-table-hover-color:#fff;border-color:var(--si-table-border-color);color:var(--si-table-color)}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width:499.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.form-label{font-size:.875rem;margin-bottom:.3125rem}.col-form-label,.form-label{color:#0b0f19;font-weight:600}.col-form-label{font-size:inherit;line-height:1.6;margin-bottom:0;padding-bottom:calc(.625rem + var(--si-border-width));padding-top:calc(.625rem + var(--si-border-width))}.col-form-label-lg{font-size:1rem;padding-bottom:calc(.785rem + var(--si-border-width));padding-top:calc(.785rem + var(--si-border-width))}.col-form-label-sm{font-size:.75rem;padding-bottom:calc(.475rem + var(--si-border-width));padding-top:calc(.475rem + var(--si-border-width))}.form-text{color:var(--si-gray-600);font-size:.75rem;margin-top:.25rem}.form-control{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-clip:padding-box;background-color:#fff;border:var(--si-border-width) solid #d4d7e5;border-radius:var(--si-border-radius);box-shadow:var(--si-box-shadow-inset);color:#565973;display:block;font-size:.875rem;font-weight:400;line-height:1.6;padding:.625rem 1rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;width:100%}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{background-color:#fff;border-color:rgba(99,102,241,.35);box-shadow:var(--si-box-shadow-inset),0 .5rem 1.125rem -.5rem rgba(99,102,241,.2);color:#565973;outline:0}.form-control::-webkit-date-and-time-value{height:1.6em;margin:0;min-width:85px}.form-control::-webkit-datetime-edit{display:block;padding:0}.form-control::-moz-placeholder{color:#b4b7c9;opacity:1}.form-control::placeholder{color:#b4b7c9;opacity:1}.form-control:disabled{background-color:#f3f6ff;opacity:1}.form-control::-webkit-file-upload-button{margin:-.625rem -1rem;padding:.625rem 1rem;-webkit-margin-end:1rem;background-color:var(--si-tertiary-bg);border:0 solid;border-color:inherit;border-inline-end-width:var(--si-border-width);border-radius:0;color:#565973;margin-inline-end:1rem;pointer-events:none;-webkit-transition:color .2s ease-in-out,background-color .2s ease-in-out,border-color .2s ease-in-out,box-shadow .2s ease-in-out;transition:color .2s ease-in-out,background-color .2s ease-in-out,border-color .2s ease-in-out,box-shadow .2s ease-in-out}.form-control::file-selector-button{margin:-.625rem -1rem;padding:.625rem 1rem;-webkit-margin-end:1rem;background-color:var(--si-tertiary-bg);border:0 solid;border-color:inherit;border-inline-end-width:var(--si-border-width);border-radius:0;color:#565973;margin-inline-end:1rem;pointer-events:none;transition:color .2s ease-in-out,background-color .2s ease-in-out,border-color .2s ease-in-out,box-shadow .2s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control::-webkit-file-upload-button{-webkit-transition:none;transition:none}.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:var(--si-secondary-bg)}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:var(--si-secondary-bg)}.form-control-plaintext{background-color:transparent;border:solid transparent;border-width:var(--si-border-width) 0;color:var(--si-body-color);display:block;line-height:1.6;margin-bottom:0;padding:.625rem 0;width:100%}.form-control-plaintext:focus{outline:0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-left:0;padding-right:0}.form-control-sm{border-radius:var(--si-border-radius-sm);font-size:.75rem;min-height:calc(1.6em + .95rem + var(--si-border-width)*2);padding:.475rem .875rem}.form-control-sm::-webkit-file-upload-button{margin:-.475rem -.875rem;padding:.475rem .875rem;-webkit-margin-end:.875rem;margin-inline-end:.875rem}.form-control-sm::file-selector-button{margin:-.475rem -.875rem;padding:.475rem .875rem;-webkit-margin-end:.875rem;margin-inline-end:.875rem}.form-control-lg{border-radius:var(--si-border-radius-lg);font-size:1rem;min-height:calc(1.6em + 1.57rem + var(--si-border-width)*2);padding:.785rem 1.125rem}.form-control-lg::-webkit-file-upload-button{margin:-.785rem -1.125rem;padding:.785rem 1.125rem;-webkit-margin-end:1.125rem;margin-inline-end:1.125rem}.form-control-lg::file-selector-button{margin:-.785rem -1.125rem;padding:.785rem 1.125rem;-webkit-margin-end:1.125rem;margin-inline-end:1.125rem}textarea.form-control{min-height:calc(1.6em + 1.25rem + var(--si-border-width)*2)}textarea.form-control-sm{min-height:calc(1.6em + .95rem + var(--si-border-width)*2)}textarea.form-control-lg{min-height:calc(1.6em + 1.57rem + var(--si-border-width)*2)}.form-control-color{height:calc(1.6em + 1.25rem + var(--si-border-width)*2);padding:.625rem;width:3rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{border:0!important;border-radius:var(--si-border-radius)}.form-control-color::-webkit-color-swatch{border:0!important;border-radius:var(--si-border-radius)}.form-control-color.form-control-sm{height:calc(1.6em + .95rem + var(--si-border-width)*2)}.form-control-color.form-control-lg{height:calc(1.6em + 1.57rem + var(--si-border-width)*2)}.form-select{--si-form-select-bg-img:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23565973' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3E%3C/svg%3E");-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;background-image:var(--si-form-select-bg-img),var(--si-form-select-bg-icon,none);background-position:right 1rem center;background-repeat:no-repeat;background-size:16px 12px;border:var(--si-border-width) solid #d4d7e5;border-radius:var(--si-border-radius);box-shadow:var(--si-box-shadow-inset);color:#565973;display:block;font-size:.875rem;font-weight:400;line-height:1.6;padding:.625rem 3rem .625rem 1rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;width:100%}@media (prefers-reduced-motion:reduce){.form-select{transition:none}}.form-select:focus{border-color:rgba(99,102,241,.35);box-shadow:var(--si-box-shadow-inset),0 0 0 0 rgba(99,102,241,.25);outline:0}.form-select[multiple],.form-select[size]:not([size="1"]){background-image:none;padding-right:1rem}.form-select:disabled{background-color:#f3f6ff}.form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #565973}.form-select-sm{border-radius:var(--si-border-radius-sm);font-size:.75rem;padding-bottom:.475rem;padding-left:.875rem;padding-top:.475rem}.form-select-lg{border-radius:var(--si-border-radius-lg);font-size:1rem;padding-bottom:.785rem;padding-left:1.125rem;padding-top:.785rem}[data-bs-theme=dark] .form-select{--si-form-select-bg-img:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='rgba(255, 255, 255, 0.7)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3E%3C/svg%3E")}.form-check{display:block;margin-bottom:.25rem;min-height:1.6rem;padding-left:1.5rem}.form-check .form-check-input{float:left;margin-left:-1.5rem}.form-check-reverse{padding-left:0;padding-right:1.5rem;text-align:right}.form-check-reverse .form-check-input{float:right;margin-left:0;margin-right:-1.5rem}.form-check-input{--si-form-check-bg:#fff;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--si-form-check-bg);background-image:var(--si-form-check-bg-image);background-position:50%;background-repeat:no-repeat;background-size:contain;border:2px solid #b4b7c9;flex-shrink:0;height:1rem;margin-top:.3rem;-webkit-print-color-adjust:exact;vertical-align:top;width:1rem;color-adjust:exact;print-color-adjust:exact}.form-check-input[type=checkbox]{border-radius:.1875em}.form-check-input[type=radio]{border-radius:50%}.form-check-input:active{filter:brightness(90%)}.form-check-input:focus{border-color:rgba(99,102,241,.35);box-shadow:0 0 0 .25rem rgba(99,102,241,.25);outline:0}.form-check-input:checked{background-color:#6366f1;border-color:#6366f1}.form-check-input:checked[type=checkbox]{--si-form-check-bg-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3E%3C/svg%3E")}.form-check-input:checked[type=radio]{--si-form-check-bg-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='2' fill='%23fff'/%3E%3C/svg%3E")}.form-check-input[type=checkbox]:indeterminate{background-color:#6366f1;border-color:#6366f1;--si-form-check-bg-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3E%3C/svg%3E")}.form-check-input:disabled{filter:none;opacity:.55;pointer-events:none}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{cursor:default;opacity:.55}.form-switch{padding-left:3.375em}.form-switch .form-check-input{--si-form-switch-bg:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E");background-image:var(--si-form-switch-bg);background-position:0;border-radius:2.875em;margin-left:-3.375em;transition:background-position .15s ease-in-out;width:2.875em}@media (prefers-reduced-motion:reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:checked,.form-switch .form-check-input:focus{--si-form-switch-bg:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E")}.form-switch .form-check-input:checked{background-position:100%}.form-switch.form-check-reverse{padding-left:0;padding-right:3.375em}.form-switch.form-check-reverse .form-check-input{margin-left:0;margin-right:-3.375em}.form-check-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.btn-check:disabled+.btn,.btn-check[disabled]+.btn{filter:none;opacity:.65;pointer-events:none}[data-bs-theme=dark] .form-switch .form-check-input:not(:checked):not(:focus){--si-form-switch-bg:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='rgba(255, 255, 255, 0.25)'/%3E%3C/svg%3E")}.form-range{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;height:1rem;padding:0;width:100%}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 .5rem 1.125rem -.5rem rgba(99,102,241,.2)}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 .5rem 1.125rem -.5rem rgba(99,102,241,.2)}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background-color:#6366f1;border:0;border-radius:1rem;box-shadow:0 .1rem .25rem rgba(0,0,0,.1);height:1rem;margin-top:-.25rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;width:1rem}@media (prefers-reduced-motion:reduce){.form-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#393ded}.form-range::-webkit-slider-runnable-track{background-color:#e9ebf4;border-color:transparent;border-radius:1rem;box-shadow:var(--si-box-shadow-inset);color:transparent;cursor:pointer;height:.5rem;width:100%}.form-range::-moz-range-thumb{-moz-appearance:none;appearance:none;background-color:#6366f1;border:0;border-radius:1rem;box-shadow:0 .1rem .25rem rgba(0,0,0,.1);height:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;width:1rem}@media (prefers-reduced-motion:reduce){.form-range::-moz-range-thumb{-moz-transition:none;transition:none}}.form-range::-moz-range-thumb:active{background-color:#393ded}.form-range::-moz-range-track{background-color:#e9ebf4;border-color:transparent;border-radius:1rem;box-shadow:var(--si-box-shadow-inset);color:transparent;cursor:pointer;height:.5rem;width:100%}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:var(--si-secondary-color)}.form-range:disabled::-moz-range-thumb{background-color:var(--si-secondary-color)}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-control-plaintext,.form-floating>.form-select{height:calc(3.5rem + var(--si-border-width)*2);line-height:1.25;min-height:calc(3.5rem + var(--si-border-width)*2)}.form-floating>label{border:var(--si-border-width) solid transparent;color:rgba(var(--si-body-color-rgb),.7);height:100%;left:0;max-width:100%;overflow:hidden;padding:1rem;pointer-events:none;position:absolute;text-align:start;text-overflow:ellipsis;top:0;transform-origin:0 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out;white-space:nowrap;z-index:2}@media (prefers-reduced-motion:reduce){.form-floating>label{transition:none}}.form-floating>.form-control,.form-floating>.form-control-plaintext{padding:1rem}.form-floating>.form-control-plaintext::-moz-placeholder,.form-floating>.form-control::-moz-placeholder{color:transparent}.form-floating>.form-control-plaintext::placeholder,.form-floating>.form-control::placeholder{color:transparent}.form-floating>.form-control-plaintext:not(:-moz-placeholder),.form-floating>.form-control:not(:-moz-placeholder){padding-bottom:.625rem;padding-top:1.625rem}.form-floating>.form-control-plaintext:focus,.form-floating>.form-control-plaintext:not(:placeholder-shown),.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown){padding-bottom:.625rem;padding-top:1.625rem}.form-floating>.form-control-plaintext:-webkit-autofill,.form-floating>.form-control:-webkit-autofill{padding-bottom:.625rem;padding-top:1.625rem}.form-floating>.form-select{padding-bottom:.625rem;padding-left:1rem;padding-top:1.625rem}.form-floating>.form-control:not(:-moz-placeholder)~label{transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control-plaintext~label,.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-select~label{transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control:-webkit-autofill~label{transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>textarea:not(:-moz-placeholder)~label:after{background-color:#fff;border-radius:var(--si-border-radius);content:"";height:1.5em;inset:1rem .5rem;position:absolute;z-index:-1}.form-floating>textarea:focus~label:after,.form-floating>textarea:not(:placeholder-shown)~label:after{background-color:#fff;border-radius:var(--si-border-radius);content:"";height:1.5em;inset:1rem .5rem;position:absolute;z-index:-1}.form-floating>textarea:disabled~label:after{background-color:#f3f6ff}.form-floating>.form-control-plaintext~label{border-width:var(--si-border-width) 0}.form-floating>.form-control:disabled~label,.form-floating>:disabled~label{color:#9397ad}.input-group{align-items:stretch;display:flex;flex-wrap:wrap;position:relative;width:100%}.input-group>.form-control,.input-group>.form-floating,.input-group>.form-select{flex:1 1 auto;min-width:0;position:relative;width:1%}.input-group>.form-control:focus,.input-group>.form-floating:focus-within,.input-group>.form-select:focus{z-index:5}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:5}.input-group-text{align-items:center;background-color:#fff;border:var(--si-border-width) solid #d4d7e5;border-radius:var(--si-border-radius);color:#565973;display:flex;font-size:.875rem;font-weight:400;line-height:1.6;padding:.625rem 1rem;text-align:center;white-space:nowrap}.input-group-lg>.btn,.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text{border-radius:var(--si-border-radius-lg);font-size:1rem;padding:.785rem 1.125rem}.input-group-sm>.btn,.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text{border-radius:var(--si-border-radius-sm);font-size:.75rem;padding:.475rem .875rem}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:4rem}.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4),.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-control,.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-select,.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-control,.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-select,.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating){border-bottom-right-radius:0;border-top-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){border-bottom-left-radius:0;border-top-left-radius:0;margin-left:calc(var(--si-border-width)*-1)}.input-group>.form-floating:not(:first-child)>.form-control,.input-group>.form-floating:not(:first-child)>.form-select{border-bottom-left-radius:0;border-top-left-radius:0}.valid-feedback{color:var(--si-form-valid-color);display:none;font-size:.75rem;margin-top:.25rem;width:100%}.valid-tooltip{background-color:var(--si-success);border-radius:.25rem;color:#fff;display:none;font-size:.75rem;margin-top:.1rem;max-width:100%;padding:.25rem .5rem;position:absolute;top:100%;z-index:5}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%2322c55e'%3E%3Cpath d='M10 1.667c-4.595 0-8.333 3.738-8.333 8.333S5.405 18.333 10 18.333s8.333-3.738 8.333-8.333S14.595 1.667 10 1.667m0 15c-3.676 0-6.667-2.991-6.667-6.667S6.324 3.333 10 3.333 16.667 6.324 16.667 10 13.676 16.667 10 16.667m-1.668-5.345L6.416 9.41 5.24 10.59l3.094 3.088 5.588-5.588-1.178-1.178-4.412 4.412z'/%3E%3C/svg%3E");background-position:right calc(.4em + .3125rem) center;background-repeat:no-repeat;background-size:calc(.8em + .625rem) calc(.8em + .625rem);border-color:var(--si-form-valid-border-color);padding-right:calc(1.6em + 1.25rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:var(--si-form-valid-border-color);box-shadow:var(--si-box-shadow-inset),0 0 0 0 rgba(var(--si-success-rgb),.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{background-position:top calc(.4em + .3125rem) right calc(.4em + .3125rem);padding-right:calc(1.6em + 1.25rem)}.form-select.is-valid,.was-validated .form-select:valid{border-color:var(--si-form-valid-border-color)}.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"],.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"]{--si-form-select-bg-icon:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%2322c55e'%3E%3Cpath d='M10 1.667c-4.595 0-8.333 3.738-8.333 8.333S5.405 18.333 10 18.333s8.333-3.738 8.333-8.333S14.595 1.667 10 1.667m0 15c-3.676 0-6.667-2.991-6.667-6.667S6.324 3.333 10 3.333 16.667 6.324 16.667 10 13.676 16.667 10 16.667m-1.668-5.345L6.416 9.41 5.24 10.59l3.094 3.088 5.588-5.588-1.178-1.178-4.412 4.412z'/%3E%3C/svg%3E");background-position:right 1rem center,center right 3rem;background-size:16px 12px,calc(.8em + .625rem) calc(.8em + .625rem);padding-right:5.5rem}.form-select.is-valid:focus,.was-validated .form-select:valid:focus{border-color:var(--si-form-valid-border-color);box-shadow:var(--si-box-shadow-inset),0 0 0 0 rgba(var(--si-success-rgb),.25)}.form-control-color.is-valid,.was-validated .form-control-color:valid{width:calc(4.25rem + 1.6em)}.form-check-input.is-valid,.was-validated .form-check-input:valid{border-color:var(--si-form-valid-border-color)}.form-check-input.is-valid:checked,.was-validated .form-check-input:valid:checked{background-color:var(--si-form-valid-color)}.form-check-input.is-valid:focus,.was-validated .form-check-input:valid:focus{box-shadow:0 0 0 0 rgba(var(--si-success-rgb),.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:var(--si-form-valid-color)}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.input-group>.form-control:not(:focus).is-valid,.input-group>.form-floating:not(:focus-within).is-valid,.input-group>.form-select:not(:focus).is-valid,.was-validated .input-group>.form-control:not(:focus):valid,.was-validated .input-group>.form-floating:not(:focus-within):valid,.was-validated .input-group>.form-select:not(:focus):valid{z-index:3}.invalid-feedback{color:var(--si-form-invalid-color);display:none;font-size:.75rem;margin-top:.25rem;width:100%}.invalid-tooltip{background-color:var(--si-danger);border-radius:.25rem;color:#fff;display:none;font-size:.75rem;margin-top:.1rem;max-width:100%;padding:.25rem .5rem;position:absolute;top:100%;z-index:5}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23ef4444'%3E%3Cpath d='M7.643 13.535 10 11.178l2.357 2.357 1.178-1.178L11.178 10l2.357-2.357-1.178-1.178L10 8.822 7.643 6.465 6.465 7.643 8.822 10l-2.357 2.357zM10 18.333c4.595 0 8.333-3.738 8.333-8.333S14.595 1.667 10 1.667 1.667 5.405 1.667 10 5.405 18.333 10 18.333m0-15c3.676 0 6.667 2.991 6.667 6.667S13.676 16.667 10 16.667 3.333 13.676 3.333 10 6.324 3.333 10 3.333'/%3E%3C/svg%3E");background-position:right calc(.4em + .3125rem) center;background-repeat:no-repeat;background-size:calc(.8em + .625rem) calc(.8em + .625rem);border-color:var(--si-form-invalid-border-color);padding-right:calc(1.6em + 1.25rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:var(--si-form-invalid-border-color);box-shadow:var(--si-box-shadow-inset),0 0 0 0 rgba(var(--si-danger-rgb),.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{background-position:top calc(.4em + .3125rem) right calc(.4em + .3125rem);padding-right:calc(1.6em + 1.25rem)}.form-select.is-invalid,.was-validated .form-select:invalid{border-color:var(--si-form-invalid-border-color)}.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"],.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"]{--si-form-select-bg-icon:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23ef4444'%3E%3Cpath d='M7.643 13.535 10 11.178l2.357 2.357 1.178-1.178L11.178 10l2.357-2.357-1.178-1.178L10 8.822 7.643 6.465 6.465 7.643 8.822 10l-2.357 2.357zM10 18.333c4.595 0 8.333-3.738 8.333-8.333S14.595 1.667 10 1.667 1.667 5.405 1.667 10 5.405 18.333 10 18.333m0-15c3.676 0 6.667 2.991 6.667 6.667S13.676 16.667 10 16.667 3.333 13.676 3.333 10 6.324 3.333 10 3.333'/%3E%3C/svg%3E");background-position:right 1rem center,center right 3rem;background-size:16px 12px,calc(.8em + .625rem) calc(.8em + .625rem);padding-right:5.5rem}.form-select.is-invalid:focus,.was-validated .form-select:invalid:focus{border-color:var(--si-form-invalid-border-color);box-shadow:var(--si-box-shadow-inset),0 0 0 0 rgba(var(--si-danger-rgb),.25)}.form-control-color.is-invalid,.was-validated .form-control-color:invalid{width:calc(4.25rem + 1.6em)}.form-check-input.is-invalid,.was-validated .form-check-input:invalid{border-color:var(--si-form-invalid-border-color)}.form-check-input.is-invalid:checked,.was-validated .form-check-input:invalid:checked{background-color:var(--si-form-invalid-color)}.form-check-input.is-invalid:focus,.was-validated .form-check-input:invalid:focus{box-shadow:0 0 0 0 rgba(var(--si-danger-rgb),.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:var(--si-form-invalid-color)}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.input-group>.form-control:not(:focus).is-invalid,.input-group>.form-floating:not(:focus-within).is-invalid,.input-group>.form-select:not(:focus).is-invalid,.was-validated .input-group>.form-control:not(:focus):invalid,.was-validated .input-group>.form-floating:not(:focus-within):invalid,.was-validated .input-group>.form-select:not(:focus):invalid{z-index:4}.btn{--si-btn-padding-x:1.75rem;--si-btn-padding-y:0.625rem;--si-btn-font-family: ;--si-btn-font-size:0.875rem;--si-btn-font-weight:600;--si-btn-line-height:1.6;--si-btn-color:#fff;--si-btn-bg:transparent;--si-btn-border-width:var(--si-border-width);--si-btn-border-color:transparent;--si-btn-border-radius:var(--si-border-radius);--si-btn-hover-border-color:transparent;--si-btn-box-shadow:unset;--si-btn-disabled-opacity:0.65;--si-btn-focus-box-shadow:0 0 0 0 rgba(var(--si-btn-focus-shadow-rgb),.5);background-color:var(--si-btn-bg);border:var(--si-btn-border-width) solid var(--si-btn-border-color);border-radius:var(--si-btn-border-radius);box-shadow:var(--si-btn-box-shadow);color:var(--si-btn-color);cursor:pointer;display:inline-block;font-family:var(--si-btn-font-family);font-size:var(--si-btn-font-size);font-weight:var(--si-btn-font-weight);line-height:var(--si-btn-line-height);padding:var(--si-btn-padding-y) var(--si-btn-padding-x);text-align:center;text-decoration:none;transition:color .2s ease-in-out,background-color .2s ease-in-out,border-color .2s ease-in-out,box-shadow .2s ease-in-out;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{background-color:var(--si-btn-hover-bg);border-color:var(--si-btn-hover-border-color);color:var(--si-btn-hover-color)}.btn-check+.btn:hover{background-color:var(--si-btn-bg);border-color:var(--si-btn-border-color);color:var(--si-btn-color)}.btn:focus-visible{background-color:var(--si-btn-hover-bg);border-color:var(--si-btn-hover-border-color);box-shadow:var(--si-btn-box-shadow),var(--si-btn-focus-box-shadow);color:var(--si-btn-hover-color);outline:0}.btn-check:focus-visible+.btn{border-color:var(--si-btn-hover-border-color);box-shadow:var(--si-btn-box-shadow),var(--si-btn-focus-box-shadow);outline:0}.btn-check:checked+.btn,.btn.active,.btn.show,.btn:first-child:active,:not(.btn-check)+.btn:active{background-color:var(--si-btn-active-bg);border-color:var(--si-btn-active-border-color);box-shadow:var(--si-btn-active-shadow);color:var(--si-btn-active-color)}.btn-check:checked+.btn:focus-visible,.btn.active:focus-visible,.btn.show:focus-visible,.btn:first-child:active:focus-visible,:not(.btn-check)+.btn:active:focus-visible{box-shadow:var(--si-btn-active-shadow),var(--si-btn-focus-box-shadow)}.btn-check:checked:focus-visible+.btn{box-shadow:var(--si-btn-active-shadow),var(--si-btn-focus-box-shadow)}.btn.disabled,.btn:disabled,fieldset:disabled .btn{background-color:var(--si-btn-disabled-bg);border-color:var(--si-btn-disabled-border-color);box-shadow:none;color:var(--si-btn-disabled-color);opacity:var(--si-btn-disabled-opacity);pointer-events:none}.btn-primary{--si-btn-color:#000;--si-btn-bg:#6366f1;--si-btn-border-color:#6366f1;--si-btn-hover-color:#000;--si-btn-hover-bg:#7a7df3;--si-btn-hover-border-color:#7375f2;--si-btn-focus-shadow-rgb:84,87,205;--si-btn-active-color:#000;--si-btn-active-bg:#8285f4;--si-btn-active-border-color:#7375f2;--si-btn-active-shadow:unset;--si-btn-disabled-color:#000;--si-btn-disabled-bg:#6366f1;--si-btn-disabled-border-color:#6366f1}.btn-secondary{--si-btn-color:#000;--si-btn-bg:#eff2fc;--si-btn-border-color:#eff2fc;--si-btn-hover-color:#000;--si-btn-hover-bg:#f1f4fc;--si-btn-hover-border-color:#f1f3fc;--si-btn-focus-shadow-rgb:203,206,214;--si-btn-active-color:#000;--si-btn-active-bg:#f2f5fd;--si-btn-active-border-color:#f1f3fc;--si-btn-active-shadow:unset;--si-btn-disabled-color:#000;--si-btn-disabled-bg:#eff2fc;--si-btn-disabled-border-color:#eff2fc}.btn-success{--si-btn-color:#000;--si-btn-bg:#22c55e;--si-btn-border-color:#22c55e;--si-btn-hover-color:#000;--si-btn-hover-bg:#43ce76;--si-btn-hover-border-color:#38cb6e;--si-btn-focus-shadow-rgb:29,167,80;--si-btn-active-color:#000;--si-btn-active-bg:#4ed17e;--si-btn-active-border-color:#38cb6e;--si-btn-active-shadow:unset;--si-btn-disabled-color:#000;--si-btn-disabled-bg:#22c55e;--si-btn-disabled-border-color:#22c55e}.btn-info{--si-btn-color:#000;--si-btn-bg:#4c82f7;--si-btn-border-color:#4c82f7;--si-btn-hover-color:#000;--si-btn-hover-bg:#6795f8;--si-btn-hover-border-color:#5e8ff8;--si-btn-focus-shadow-rgb:65,111,210;--si-btn-active-color:#000;--si-btn-active-bg:#709bf9;--si-btn-active-border-color:#5e8ff8;--si-btn-active-shadow:unset;--si-btn-disabled-color:#000;--si-btn-disabled-bg:#4c82f7;--si-btn-disabled-border-color:#4c82f7}.btn-warning{--si-btn-color:#000;--si-btn-bg:#ffba08;--si-btn-border-color:#ffba08;--si-btn-hover-color:#000;--si-btn-hover-bg:#ffc42d;--si-btn-hover-border-color:#ffc121;--si-btn-focus-shadow-rgb:217,158,7;--si-btn-active-color:#000;--si-btn-active-bg:#ffc839;--si-btn-active-border-color:#ffc121;--si-btn-active-shadow:unset;--si-btn-disabled-color:#000;--si-btn-disabled-bg:#ffba08;--si-btn-disabled-border-color:#ffba08}.btn-danger{--si-btn-color:#000;--si-btn-bg:#ef4444;--si-btn-border-color:#ef4444;--si-btn-hover-color:#000;--si-btn-hover-bg:#f16060;--si-btn-hover-border-color:#f15757;--si-btn-focus-shadow-rgb:203,58,58;--si-btn-active-color:#000;--si-btn-active-bg:#f26969;--si-btn-active-border-color:#f15757;--si-btn-active-shadow:unset;--si-btn-disabled-color:#000;--si-btn-disabled-bg:#ef4444;--si-btn-disabled-border-color:#ef4444}.btn-light{--si-btn-color:#000;--si-btn-bg:#fff;--si-btn-border-color:#fff;--si-btn-hover-color:#000;--si-btn-hover-bg:#d9d9d9;--si-btn-hover-border-color:#ccc;--si-btn-focus-shadow-rgb:217,217,217;--si-btn-active-color:#000;--si-btn-active-bg:#ccc;--si-btn-active-border-color:#bfbfbf;--si-btn-active-shadow:unset;--si-btn-disabled-color:#000;--si-btn-disabled-bg:#fff;--si-btn-disabled-border-color:#fff}.btn-dark{--si-btn-color:#fff;--si-btn-bg:#0b0f19;--si-btn-border-color:#0b0f19;--si-btn-hover-bg:#30333c;--si-btn-hover-border-color:#232730;--si-btn-focus-shadow-rgb:48,51,60;--si-btn-active-bg:#3c3f47;--si-btn-active-border-color:#232730;--si-btn-active-shadow:unset;--si-btn-disabled-bg:#0b0f19;--si-btn-disabled-border-color:#0b0f19}.btn-outline-primary{--si-btn-color:#6366f1;--si-btn-border-color:#6366f1;--si-btn-hover-color:#000;--si-btn-hover-bg:#6366f1;--si-btn-hover-border-color:#6366f1;--si-btn-focus-shadow-rgb:99,102,241;--si-btn-active-color:#000;--si-btn-active-bg:#6366f1;--si-btn-active-border-color:#6366f1;--si-btn-active-shadow:unset;--si-btn-disabled-color:#6366f1;--si-btn-disabled-bg:transparent;--si-btn-disabled-border-color:#6366f1;--si-gradient:none}.btn-outline-secondary{--si-btn-color:#eff2fc;--si-btn-border-color:#eff2fc;--si-btn-hover-color:#000;--si-btn-hover-bg:#eff2fc;--si-btn-hover-border-color:#eff2fc;--si-btn-focus-shadow-rgb:239,242,252;--si-btn-active-color:#000;--si-btn-active-bg:#eff2fc;--si-btn-active-border-color:#eff2fc;--si-btn-active-shadow:unset;--si-btn-disabled-color:#eff2fc;--si-btn-disabled-bg:transparent;--si-btn-disabled-border-color:#eff2fc;--si-gradient:none}.btn-outline-success{--si-btn-color:#22c55e;--si-btn-border-color:#22c55e;--si-btn-hover-color:#000;--si-btn-hover-bg:#22c55e;--si-btn-hover-border-color:#22c55e;--si-btn-focus-shadow-rgb:34,197,94;--si-btn-active-color:#000;--si-btn-active-bg:#22c55e;--si-btn-active-border-color:#22c55e;--si-btn-active-shadow:unset;--si-btn-disabled-color:#22c55e;--si-btn-disabled-bg:transparent;--si-btn-disabled-border-color:#22c55e;--si-gradient:none}.btn-outline-info{--si-btn-color:#4c82f7;--si-btn-border-color:#4c82f7;--si-btn-hover-color:#000;--si-btn-hover-bg:#4c82f7;--si-btn-hover-border-color:#4c82f7;--si-btn-focus-shadow-rgb:76,130,247;--si-btn-active-color:#000;--si-btn-active-bg:#4c82f7;--si-btn-active-border-color:#4c82f7;--si-btn-active-shadow:unset;--si-btn-disabled-color:#4c82f7;--si-btn-disabled-bg:transparent;--si-btn-disabled-border-color:#4c82f7;--si-gradient:none}.btn-outline-warning{--si-btn-color:#ffba08;--si-btn-border-color:#ffba08;--si-btn-hover-color:#000;--si-btn-hover-bg:#ffba08;--si-btn-hover-border-color:#ffba08;--si-btn-focus-shadow-rgb:255,186,8;--si-btn-active-color:#000;--si-btn-active-bg:#ffba08;--si-btn-active-border-color:#ffba08;--si-btn-active-shadow:unset;--si-btn-disabled-color:#ffba08;--si-btn-disabled-bg:transparent;--si-btn-disabled-border-color:#ffba08;--si-gradient:none}.btn-outline-danger{--si-btn-color:#ef4444;--si-btn-border-color:#ef4444;--si-btn-hover-color:#000;--si-btn-hover-bg:#ef4444;--si-btn-hover-border-color:#ef4444;--si-btn-focus-shadow-rgb:239,68,68;--si-btn-active-color:#000;--si-btn-active-bg:#ef4444;--si-btn-active-border-color:#ef4444;--si-btn-active-shadow:unset;--si-btn-disabled-color:#ef4444;--si-btn-disabled-bg:transparent;--si-btn-disabled-border-color:#ef4444;--si-gradient:none}.btn-outline-light{--si-btn-color:#fff;--si-btn-border-color:#fff;--si-btn-hover-color:#000;--si-btn-hover-border-color:#fff;--si-btn-focus-shadow-rgb:255,255,255;--si-btn-active-color:#000;--si-btn-active-border-color:#fff;--si-btn-active-shadow:unset;--si-btn-disabled-color:#fff;--si-btn-disabled-bg:transparent;--si-btn-disabled-border-color:#fff;--si-gradient:none}.btn-outline-dark{--si-btn-color:#0b0f19;--si-btn-border-color:#0b0f19;--si-btn-hover-color:#fff;--si-btn-hover-bg:#0b0f19;--si-btn-hover-border-color:#0b0f19;--si-btn-focus-shadow-rgb:11,15,25;--si-btn-active-color:#fff;--si-btn-active-bg:#0b0f19;--si-btn-active-border-color:#0b0f19;--si-btn-active-shadow:unset;--si-btn-disabled-color:#0b0f19;--si-btn-disabled-bg:transparent;--si-btn-disabled-border-color:#0b0f19;--si-gradient:none}.btn-link{--si-btn-font-weight:400;--si-btn-color:var(--si-link-color);--si-btn-bg:transparent;--si-btn-border-color:transparent;--si-btn-hover-color:var(--si-link-hover-color);--si-btn-hover-border-color:transparent;--si-btn-active-color:var(--si-link-hover-color);--si-btn-active-border-color:transparent;--si-btn-disabled-color:#9397ad;--si-btn-disabled-border-color:transparent;--si-btn-box-shadow:0 0 0 #000;--si-btn-focus-shadow-rgb:84,87,205;text-decoration:underline}.btn-link:focus-visible,.btn-link:hover{text-decoration:none}.btn-link:focus-visible{color:var(--si-btn-color)}.btn-link:hover{color:var(--si-btn-hover-color)}.btn-group-lg>.btn,.btn-lg{--si-btn-padding-y:0.785rem;--si-btn-padding-x:2rem;--si-btn-font-size:1rem;--si-btn-border-radius:var(--si-border-radius-lg)}.btn-group-sm>.btn,.btn-sm{--si-btn-padding-y:0.475rem;--si-btn-padding-x:1.25rem;--si-btn-font-size:0.75rem;--si-btn-border-radius:var(--si-border-radius-sm)}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{height:auto;transition:width .35s ease;width:0}@media (prefers-reduced-motion:reduce){.collapsing.collapse-horizontal{transition:none}}.dropdown,.dropdown-center,.dropend,.dropstart,.dropup,.dropup-center{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{border-bottom:0;border-left:.3em solid transparent;border-right:.3em solid transparent;border-top:.3em solid;content:"";display:inline-block;margin-left:.255em;vertical-align:.255em}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{--si-dropdown-zindex:1000;--si-dropdown-min-width:12rem;--si-dropdown-padding-x:0;--si-dropdown-padding-y:0.5rem;--si-dropdown-spacer:0.25rem;--si-dropdown-font-size:0.875rem;--si-dropdown-color:var(--si-body-color);--si-dropdown-bg:#fff;--si-dropdown-border-color:#fff;--si-dropdown-border-radius:0.5rem;--si-dropdown-border-width:var(--si-border-width);--si-dropdown-inner-border-radius:calc(0.5rem - var(--si-border-width));--si-dropdown-divider-bg:#e2e5f1;--si-dropdown-divider-margin-y:0.375rem;--si-dropdown-box-shadow:0 0.275rem 1.25rem rgba(11,15,25,.05),0 0.25rem 0.5625rem rgba(11,15,25,.03);--si-dropdown-link-color:#33354d;--si-dropdown-link-hover-color:#6366f1;--si-dropdown-link-hover-bg:transparent;--si-dropdown-link-active-color:#6366f1;--si-dropdown-link-active-bg:transparent;--si-dropdown-link-disabled-color:#9397ad;--si-dropdown-item-padding-x:1rem;--si-dropdown-item-padding-y:0.375rem;--si-dropdown-header-color:var(--si-gray-900);--si-dropdown-header-padding-x:1rem;--si-dropdown-header-padding-y:0.5rem;background-clip:padding-box;background-color:var(--si-dropdown-bg);border:var(--si-dropdown-border-width) solid var(--si-dropdown-border-color);border-radius:var(--si-dropdown-border-radius);box-shadow:var(--si-dropdown-box-shadow);color:var(--si-dropdown-color);display:none;font-size:var(--si-dropdown-font-size);list-style:none;margin:0;min-width:var(--si-dropdown-min-width);padding:var(--si-dropdown-padding-y) var(--si-dropdown-padding-x);position:absolute;text-align:left;z-index:var(--si-dropdown-zindex)}.dropdown-menu[data-bs-popper]{left:0;margin-top:var(--si-dropdown-spacer);top:100%}.dropdown-menu-start{--bs-position:start}.dropdown-menu-start[data-bs-popper]{left:0;right:auto}.dropdown-menu-end{--bs-position:end}.dropdown-menu-end[data-bs-popper]{left:auto;right:0}@media (min-width:500px){.dropdown-menu-sm-start{--bs-position:start}.dropdown-menu-sm-start[data-bs-popper]{left:0;right:auto}.dropdown-menu-sm-end{--bs-position:end}.dropdown-menu-sm-end[data-bs-popper]{left:auto;right:0}}@media (min-width:768px){.dropdown-menu-md-start{--bs-position:start}.dropdown-menu-md-start[data-bs-popper]{left:0;right:auto}.dropdown-menu-md-end{--bs-position:end}.dropdown-menu-md-end[data-bs-popper]{left:auto;right:0}}@media (min-width:992px){.dropdown-menu-lg-start{--bs-position:start}.dropdown-menu-lg-start[data-bs-popper]{left:0;right:auto}.dropdown-menu-lg-end{--bs-position:end}.dropdown-menu-lg-end[data-bs-popper]{left:auto;right:0}}@media (min-width:1200px){.dropdown-menu-xl-start{--bs-position:start}.dropdown-menu-xl-start[data-bs-popper]{left:0;right:auto}.dropdown-menu-xl-end{--bs-position:end}.dropdown-menu-xl-end[data-bs-popper]{left:auto;right:0}}@media (min-width:1400px){.dropdown-menu-xxl-start{--bs-position:start}.dropdown-menu-xxl-start[data-bs-popper]{left:0;right:auto}.dropdown-menu-xxl-end{--bs-position:end}.dropdown-menu-xxl-end[data-bs-popper]{left:auto;right:0}}.dropup .dropdown-menu[data-bs-popper]{bottom:100%;margin-bottom:var(--si-dropdown-spacer);margin-top:0;top:auto}.dropup .dropdown-toggle:after{border-bottom:.3em solid;border-left:.3em solid transparent;border-right:.3em solid transparent;border-top:0;content:"";display:inline-block;margin-left:.255em;vertical-align:.255em}.dropup .dropdown-toggle:empty:after{margin-left:0}.dropend .dropdown-menu[data-bs-popper]{left:100%;margin-left:var(--si-dropdown-spacer);margin-top:0;right:auto;top:0}.dropend .dropdown-toggle:after{border-bottom:.3em solid transparent;border-left:.3em solid;border-right:0;border-top:.3em solid transparent;content:"";display:inline-block;margin-left:.255em;vertical-align:.255em}.dropend .dropdown-toggle:empty:after{margin-left:0}.dropend .dropdown-toggle:after{vertical-align:0}.dropstart .dropdown-menu[data-bs-popper]{left:auto;margin-right:var(--si-dropdown-spacer);margin-top:0;right:100%;top:0}.dropstart .dropdown-toggle:after{content:"";display:inline-block;display:none;margin-left:.255em;vertical-align:.255em}.dropstart .dropdown-toggle:before{border-bottom:.3em solid transparent;border-right:.3em solid;border-top:.3em solid transparent;content:"";display:inline-block;margin-right:.255em;vertical-align:.255em}.dropstart .dropdown-toggle:empty:after{margin-left:0}.dropstart .dropdown-toggle:before{vertical-align:0}.dropdown-divider{border-top:1px solid var(--si-dropdown-divider-bg);height:0;margin:var(--si-dropdown-divider-margin-y) 0;opacity:1;overflow:hidden}.dropdown-item{background-color:transparent;border:0;border-radius:var(--si-dropdown-item-border-radius,0);clear:both;color:var(--si-dropdown-link-color);display:block;font-weight:400;padding:var(--si-dropdown-item-padding-y) var(--si-dropdown-item-padding-x);text-align:inherit;text-decoration:none;white-space:nowrap;width:100%}.dropdown-item:focus,.dropdown-item:hover{background-color:var(--si-dropdown-link-hover-bg);color:var(--si-dropdown-link-hover-color)}.dropdown-item.active,.dropdown-item:active{background-color:var(--si-dropdown-link-active-bg);color:var(--si-dropdown-link-active-color);text-decoration:none}.dropdown-item.disabled,.dropdown-item:disabled{background-color:transparent;color:var(--si-dropdown-link-disabled-color);pointer-events:none}.dropdown-menu.show{display:block}.dropdown-header{color:var(--si-dropdown-header-color);display:block;font-size:.875rem;margin-bottom:0;padding:var(--si-dropdown-header-padding-y) var(--si-dropdown-header-padding-x);white-space:nowrap}.dropdown-item-text{color:var(--si-dropdown-link-color);display:block;padding:var(--si-dropdown-item-padding-y) var(--si-dropdown-item-padding-x)}.dropdown-menu-dark,[data-bs-theme=dark] .dropdown-menu:not([data-bs-theme=light]){--si-dropdown-color:hsla(0,0%,100%,.7);--si-dropdown-bg:linear-gradient(0deg,hsla(0,0%,100%,.03),hsla(0,0%,100%,.03)),#0b0f19;--si-dropdown-border-color:hsla(0,0%,100%,.14);--si-dropdown-box-shadow: ;--si-dropdown-link-color:hsla(0,0%,100%,.85);--si-dropdown-link-hover-color:#6366f1;--si-dropdown-divider-bg:hsla(0,0%,100%,.14);--si-dropdown-link-hover-bg:transparent;--si-dropdown-link-active-color:#6366f1;--si-dropdown-link-active-bg:transparent;--si-dropdown-link-disabled-color:hsla(0,0%,100%,.4);--si-dropdown-header-color:#fff}.btn-group,.btn-group-vertical{display:inline-flex;position:relative;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{flex:1 1 auto;position:relative}.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group{border-radius:var(--si-border-radius)}.btn-group>.btn-group:not(:first-child),.btn-group>:not(.btn-check:first-child)+.btn{margin-left:calc(var(--si-border-width)*-1)}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn.dropdown-toggle-split:first-child,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:nth-child(n+3),.btn-group>:not(.btn-check)+.btn{border-bottom-left-radius:0;border-top-left-radius:0}.dropdown-toggle-split{padding-left:1.3125rem;padding-right:1.3125rem}.dropdown-toggle-split:after,.dropend .dropdown-toggle-split:after,.dropup .dropdown-toggle-split:after{margin-left:0}.dropstart .dropdown-toggle-split:before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-left:.9375rem;padding-right:.9375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-left:1.5rem;padding-right:1.5rem}.btn-group.show .dropdown-toggle{box-shadow:unset}.btn-group.show .dropdown-toggle.btn-link{box-shadow:none}.btn-group-vertical{align-items:flex-start;flex-direction:column;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:calc(var(--si-border-width)*-1)}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-left-radius:0;border-bottom-right-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:nth-child(n+3),.btn-group-vertical>:not(.btn-check)+.btn{border-top-left-radius:0;border-top-right-radius:0}.nav{--si-nav-link-padding-x:1rem;--si-nav-link-padding-y:0.535rem;--si-nav-link-font-weight:600;--si-nav-link-color:#33354d;--si-nav-link-hover-color:#6366f1;--si-nav-link-disabled-color:#9397ad;display:flex;flex-wrap:wrap;list-style:none;margin-bottom:0;padding-left:0}.nav-link{background:none;border:0;color:var(--si-nav-link-color);display:block;font-size:var(--si-nav-link-font-size);font-weight:var(--si-nav-link-font-weight);padding:var(--si-nav-link-padding-y) var(--si-nav-link-padding-x);text-decoration:none;transition:color .2s ease-in-out,background-color .2s ease-in-out,border-color .2s ease-in-out}@media (prefers-reduced-motion:reduce){.nav-link{transition:none}}.nav-link:focus,.nav-link:hover{color:var(--si-nav-link-hover-color)}.nav-link:focus-visible{box-shadow:0 0 0 .25rem rgba(99,102,241,.25);outline:0}.nav-link.disabled,.nav-link:disabled{color:var(--si-nav-link-disabled-color);cursor:default;pointer-events:none}.nav-tabs{--si-nav-tabs-border-width:0;--si-nav-tabs-border-color:transparent;--si-nav-tabs-border-radius:var(--si-border-radius);--si-nav-tabs-link-hover-border-color:transparent;--si-nav-tabs-link-active-color:#fff;--si-nav-tabs-link-active-bg:#6366f1;--si-nav-tabs-link-active-border-color:transparent;border-bottom:var(--si-nav-tabs-border-width) solid var(--si-nav-tabs-border-color)}.nav-tabs .nav-link{border:var(--si-nav-tabs-border-width) solid transparent;border-top-left-radius:var(--si-nav-tabs-border-radius);border-top-right-radius:var(--si-nav-tabs-border-radius);margin-bottom:calc(var(--si-nav-tabs-border-width)*-1)}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:var(--si-nav-tabs-link-hover-border-color);isolation:isolate}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{background-color:var(--si-nav-tabs-link-active-bg);border-color:var(--si-nav-tabs-link-active-border-color);color:var(--si-nav-tabs-link-active-color)}.nav-tabs .dropdown-menu{border-top-left-radius:0;border-top-right-radius:0;margin-top:calc(var(--si-nav-tabs-border-width)*-1)}.nav-pills{--si-nav-pills-border-radius:50rem;--si-nav-pills-link-active-color:#fff;--si-nav-pills-link-active-bg:#6366f1}.nav-pills .nav-link{border-radius:var(--si-nav-pills-border-radius)}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{background-color:var(--si-nav-pills-link-active-bg);color:var(--si-nav-pills-link-active-color)}.nav-underline{--si-nav-underline-gap:1rem;--si-nav-underline-border-width:0.125rem;--si-nav-underline-link-active-color:var(--si-emphasis-color);gap:var(--si-nav-underline-gap)}.nav-underline .nav-link{border-bottom:var(--si-nav-underline-border-width) solid transparent;padding-left:0;padding-right:0}.nav-underline .nav-link:focus,.nav-underline .nav-link:hover{border-bottom-color:currentcolor}.nav-underline .nav-link.active,.nav-underline .show>.nav-link{border-bottom-color:currentcolor;color:var(--si-nav-underline-link-active-color);font-weight:800}.nav-fill .nav-item,.nav-fill>.nav-link{flex:1 1 auto;text-align:center}.nav-justified .nav-item,.nav-justified>.nav-link{flex-basis:0;flex-grow:1;text-align:center}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{--si-navbar-padding-x:0;--si-navbar-padding-y:0.5rem;--si-navbar-color:#33354d;--si-navbar-hover-color:#6366f1;--si-navbar-disabled-color:#9397ad;--si-navbar-active-color:#6366f1;--si-navbar-brand-padding-y:0.5rem;--si-navbar-brand-margin-end:1rem;--si-navbar-brand-font-size:1.375rem;--si-navbar-brand-color:#0b0f19;--si-navbar-brand-hover-color:#0b0f19;--si-navbar-nav-link-padding-x:0.875rem;--si-navbar-toggler-padding-y:0.625rem;--si-navbar-toggler-padding-x:0.25rem;--si-navbar-toggler-font-size:1.125rem;--si-navbar-toggler-icon-bg:initial;--si-navbar-toggler-border-color:transparent;--si-navbar-toggler-border-radius:0;--si-navbar-toggler-focus-width:0;--si-navbar-toggler-transition:box-shadow 0.15s ease-in-out;align-items:center;display:flex;flex-wrap:wrap;justify-content:space-between;padding:var(--si-navbar-padding-y) var(--si-navbar-padding-x);position:relative}.navbar>.container,.navbar>.container-fluid,.navbar>.container-lg,.navbar>.container-md,.navbar>.container-sm,.navbar>.container-xl,.navbar>.container-xxl{align-items:center;display:flex;flex-wrap:inherit;justify-content:space-between}.navbar-brand{color:var(--si-navbar-brand-color);font-size:var(--si-navbar-brand-font-size);margin-right:var(--si-navbar-brand-margin-end);padding-bottom:var(--si-navbar-brand-padding-y);padding-top:var(--si-navbar-brand-padding-y);text-decoration:none;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{color:var(--si-navbar-brand-hover-color)}.navbar-nav{--si-nav-link-padding-x:0;--si-nav-link-padding-y:0.535rem;--si-nav-link-color:var(--si-navbar-color);--si-nav-link-hover-color:var(--si-navbar-hover-color);--si-nav-link-disabled-color:var(--si-navbar-disabled-color);display:flex;flex-direction:column;list-style:none;margin-bottom:0;padding-left:0}.navbar-nav .nav-link.active,.navbar-nav .nav-link.show{color:var(--si-navbar-active-color)}.navbar-nav .dropdown-menu{position:static}.navbar-text{color:var(--si-navbar-color);padding-bottom:.535rem;padding-top:.535rem}.navbar-text a,.navbar-text a:focus,.navbar-text a:hover{color:var(--si-navbar-active-color)}.navbar-collapse{align-items:center;flex-basis:100%;flex-grow:1}.navbar-toggler{background-color:transparent;border:var(--si-border-width) solid var(--si-navbar-toggler-border-color);border-radius:var(--si-navbar-toggler-border-radius);color:var(--si-navbar-color);font-size:var(--si-navbar-toggler-font-size);line-height:1;padding:var(--si-navbar-toggler-padding-y) var(--si-navbar-toggler-padding-x);transition:var(--si-navbar-toggler-transition)}@media (prefers-reduced-motion:reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{box-shadow:0 0 0 var(--si-navbar-toggler-focus-width);outline:0;text-decoration:none}.navbar-toggler-icon{background-image:var(--si-navbar-toggler-icon-bg);background-position:50%;background-repeat:no-repeat;background-size:100%;display:inline-block;height:1.5em;vertical-align:middle;width:1.5em}.navbar-nav-scroll{max-height:var(--si-scroll-height,75vh);overflow-y:auto}@media (min-width:500px){.navbar-expand-sm{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-left:var(--si-navbar-nav-link-padding-x);padding-right:var(--si-navbar-nav-link-padding-x)}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .offcanvas{background-color:transparent!important;border:0!important;box-shadow:none;flex-grow:1;height:auto!important;position:static;transform:none!important;transition:none;visibility:visible!important;width:auto!important;z-index:auto}.navbar-expand-sm .offcanvas .offcanvas-header{display:none}.navbar-expand-sm .offcanvas .offcanvas-body{display:flex;flex-grow:0;overflow-y:visible;padding:0}}@media (min-width:768px){.navbar-expand-md{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-left:var(--si-navbar-nav-link-padding-x);padding-right:var(--si-navbar-nav-link-padding-x)}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .offcanvas{background-color:transparent!important;border:0!important;box-shadow:none;flex-grow:1;height:auto!important;position:static;transform:none!important;transition:none;visibility:visible!important;width:auto!important;z-index:auto}.navbar-expand-md .offcanvas .offcanvas-header{display:none}.navbar-expand-md .offcanvas .offcanvas-body{display:flex;flex-grow:0;overflow-y:visible;padding:0}}@media (min-width:992px){.navbar-expand-lg{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-left:var(--si-navbar-nav-link-padding-x);padding-right:var(--si-navbar-nav-link-padding-x)}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .offcanvas{background-color:transparent!important;border:0!important;box-shadow:none;flex-grow:1;height:auto!important;position:static;transform:none!important;transition:none;visibility:visible!important;width:auto!important;z-index:auto}.navbar-expand-lg .offcanvas .offcanvas-header{display:none}.navbar-expand-lg .offcanvas .offcanvas-body{display:flex;flex-grow:0;overflow-y:visible;padding:0}}@media (min-width:1200px){.navbar-expand-xl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-left:var(--si-navbar-nav-link-padding-x);padding-right:var(--si-navbar-nav-link-padding-x)}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .offcanvas{background-color:transparent!important;border:0!important;box-shadow:none;flex-grow:1;height:auto!important;position:static;transform:none!important;transition:none;visibility:visible!important;width:auto!important;z-index:auto}.navbar-expand-xl .offcanvas .offcanvas-header{display:none}.navbar-expand-xl .offcanvas .offcanvas-body{display:flex;flex-grow:0;overflow-y:visible;padding:0}}@media (min-width:1400px){.navbar-expand-xxl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link{padding-left:var(--si-navbar-nav-link-padding-x);padding-right:var(--si-navbar-nav-link-padding-x)}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}.navbar-expand-xxl .offcanvas{background-color:transparent!important;border:0!important;box-shadow:none;flex-grow:1;height:auto!important;position:static;transform:none!important;transition:none;visibility:visible!important;width:auto!important;z-index:auto}.navbar-expand-xxl .offcanvas .offcanvas-header{display:none}.navbar-expand-xxl .offcanvas .offcanvas-body{display:flex;flex-grow:0;overflow-y:visible;padding:0}}.navbar-expand{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-left:var(--si-navbar-nav-link-padding-x);padding-right:var(--si-navbar-nav-link-padding-x)}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .offcanvas{border:0!important;flex-grow:1;height:auto!important;position:static;transform:none!important;transition:none;visibility:visible!important;width:auto!important;z-index:auto}.navbar-expand .offcanvas .offcanvas-header{display:none}.navbar-expand .offcanvas .offcanvas-body{display:flex;flex-grow:0;overflow-y:visible;padding:0}.navbar-dark,.navbar[data-bs-theme=dark]{--si-navbar-color:hsla(0,0%,100%,.85);--si-navbar-hover-color:#6366f1;--si-navbar-disabled-color:hsla(0,0%,100%,.4);--si-navbar-active-color:#6366f1;--si-navbar-brand-color:#fff;--si-navbar-brand-hover-color:#fff;--si-navbar-toggler-border-color:transparent;--si-navbar-toggler-icon-bg:initial}[data-bs-theme=dark] .navbar-toggler-icon{--si-navbar-toggler-icon-bg:initial}.card{--si-card-spacer-y:1.5rem;--si-card-spacer-x:1.5rem;--si-card-title-spacer-y:0.75rem;--si-card-title-color:var(--si-heading-color);--si-card-subtitle-color: ;--si-card-border-width:var(--si-border-width);--si-card-border-color:var(--si-border-color);--si-card-border-radius:0.5rem;--si-card-box-shadow: ;--si-card-inner-border-radius:calc(0.5rem - var(--si-border-width));--si-card-cap-padding-y:1.125rem;--si-card-cap-padding-x:1.5rem;--si-card-cap-bg:transparent;--si-card-cap-color: ;--si-card-height: ;--si-card-color: ;--si-card-bg:var(--si-body-bg);--si-card-img-overlay-padding:1.5rem;--si-card-group-margin:0.75rem;color:var(--si-body-color);display:flex;flex-direction:column;height:var(--si-card-height);min-width:0;position:relative;word-wrap:break-word;background-clip:border-box;background-color:var(--si-card-bg);border:var(--si-card-border-width) solid var(--si-card-border-color);border-radius:var(--si-card-border-radius);box-shadow:var(--si-card-box-shadow)}.card>hr{margin-left:0;margin-right:0}.card>.list-group{border-bottom:inherit;border-top:inherit}.card>.list-group:first-child{border-top-left-radius:var(--si-card-inner-border-radius);border-top-right-radius:var(--si-card-inner-border-radius);border-top-width:0}.card>.list-group:last-child{border-bottom-left-radius:var(--si-card-inner-border-radius);border-bottom-right-radius:var(--si-card-inner-border-radius);border-bottom-width:0}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{color:var(--si-card-color);flex:1 1 auto;padding:var(--si-card-spacer-y) var(--si-card-spacer-x)}.card-title{color:var(--si-card-title-color);margin-bottom:var(--si-card-title-spacer-y)}.card-subtitle{color:var(--si-card-subtitle-color);margin-top:calc(var(--si-card-title-spacer-y)*-.5)}.card-subtitle,.card-text:last-child{margin-bottom:0}.card-link+.card-link{margin-left:var(--si-card-spacer-x)}.card-header{background-color:var(--si-card-cap-bg);border-bottom:var(--si-card-border-width) solid var(--si-card-border-color);color:var(--si-card-cap-color);margin-bottom:0;padding:var(--si-card-cap-padding-y) var(--si-card-cap-padding-x)}.card-header:first-child{border-radius:var(--si-card-inner-border-radius) var(--si-card-inner-border-radius) 0 0}.card-footer{background-color:var(--si-card-cap-bg);border-top:var(--si-card-border-width) solid var(--si-card-border-color);color:var(--si-card-cap-color);padding:var(--si-card-cap-padding-y) var(--si-card-cap-padding-x)}.card-footer:last-child{border-radius:0 0 var(--si-card-inner-border-radius) var(--si-card-inner-border-radius)}.card-header-tabs{border-bottom:0;margin-bottom:calc(var(--si-card-cap-padding-y)*-1);margin-left:calc(var(--si-card-cap-padding-x)*-.5);margin-right:calc(var(--si-card-cap-padding-x)*-.5)}.card-header-tabs .nav-link.active{background-color:var(--si-card-bg);border-bottom-color:var(--si-card-bg)}.card-header-pills{margin-left:calc(var(--si-card-cap-padding-x)*-.5);margin-right:calc(var(--si-card-cap-padding-x)*-.5)}.card-img-overlay{border-radius:var(--si-card-inner-border-radius);bottom:0;left:0;padding:var(--si-card-img-overlay-padding);position:absolute;right:0;top:0}.card-img,.card-img-bottom,.card-img-top{width:100%}.card-img,.card-img-top{border-top-left-radius:var(--si-card-inner-border-radius);border-top-right-radius:var(--si-card-inner-border-radius)}.card-img,.card-img-bottom{border-bottom-left-radius:var(--si-card-inner-border-radius);border-bottom-right-radius:var(--si-card-inner-border-radius)}.card-group>.card{margin-bottom:var(--si-card-group-margin)}@media (min-width:500px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0;margin-bottom:0}.card-group>.card+.card{border-left:0;margin-left:0}.card-group>.card:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.accordion{--si-accordion-bg:var(--si-body-bg);--si-accordion-transition:color 0.2s ease-in-out,background-color 0.2s ease-in-out,border-color 0.2s ease-in-out,box-shadow 0.2s ease-in-out,border-radius 0.15s ease;--si-accordion-border-color:var(--si-border-color);--si-accordion-border-width:var(--si-border-width);--si-accordion-border-radius:0.5rem;--si-accordion-inner-border-radius:calc(0.5rem - var(--si-border-width));--si-accordion-btn-padding-x:1.5rem;--si-accordion-btn-padding-y:1rem;--si-accordion-btn-bg:var(--si-accordion-bg);--si-accordion-btn-icon:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%2333354d' viewBox='0 0 256 256'%3E%3Cpath d='M225.813 48.907 128 146.72 30.187 48.907 0 79.093l128 128 128-128z'/%3E%3C/svg%3E");--si-accordion-btn-icon-width:0.625rem;--si-accordion-btn-icon-transform:rotate(-180deg);--si-accordion-btn-icon-transition:transform 0.2s ease-in-out;--si-accordion-btn-active-icon:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 256 256'%3E%3Cpath d='M225.813 48.907 128 146.72 30.187 48.907 0 79.093l128 128 128-128z'/%3E%3C/svg%3E");--si-accordion-btn-focus-box-shadow:unset;--si-accordion-body-padding-x:1.5rem;--si-accordion-body-padding-y:1rem;--si-accordion-active-color:var(--si-heading-color);--si-accordion-active-bg:var(--si-body-bg)}.accordion-button{align-items:center;background-color:var(--si-accordion-btn-bg);border:0;border-radius:0;color:var(--si-accordion-btn-color);display:flex;font-size:1rem;overflow-anchor:none;padding:var(--si-accordion-btn-padding-y) var(--si-accordion-btn-padding-x);position:relative;text-align:left;transition:var(--si-accordion-transition);width:100%}@media (prefers-reduced-motion:reduce){.accordion-button{transition:none}}.accordion-button:not(.collapsed){background-color:var(--si-accordion-active-bg);color:var(--si-accordion-active-color)}.accordion-button:not(.collapsed):after{background-image:var(--si-accordion-btn-active-icon);transform:var(--si-accordion-btn-icon-transform)}.accordion-button:after{background-image:var(--si-accordion-btn-icon);background-repeat:no-repeat;background-size:var(--si-accordion-btn-icon-width);content:"";flex-shrink:0;height:var(--si-accordion-btn-icon-width);margin-left:auto;transition:var(--si-accordion-btn-icon-transition);width:var(--si-accordion-btn-icon-width)}@media (prefers-reduced-motion:reduce){.accordion-button:after{transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{box-shadow:var(--si-accordion-btn-focus-box-shadow);outline:0;z-index:3}.accordion-header{margin-bottom:0}.accordion-item{background-color:var(--si-accordion-bg);border:var(--si-accordion-border-width) solid var(--si-accordion-border-color);color:var(--si-accordion-color)}.accordion-item:first-of-type{border-top-left-radius:var(--si-accordion-border-radius);border-top-right-radius:var(--si-accordion-border-radius)}.accordion-item:first-of-type>.accordion-header .accordion-button{border-top-left-radius:var(--si-accordion-inner-border-radius);border-top-right-radius:var(--si-accordion-inner-border-radius)}.accordion-item:not(:first-of-type){border-top:0}.accordion-item:last-of-type{border-bottom-left-radius:var(--si-accordion-border-radius);border-bottom-right-radius:var(--si-accordion-border-radius)}.accordion-item:last-of-type>.accordion-header .accordion-button.collapsed{border-bottom-left-radius:var(--si-accordion-inner-border-radius);border-bottom-right-radius:var(--si-accordion-inner-border-radius)}.accordion-item:last-of-type>.accordion-collapse{border-bottom-left-radius:var(--si-accordion-border-radius);border-bottom-right-radius:var(--si-accordion-border-radius)}.accordion-body{padding:var(--si-accordion-body-padding-y) var(--si-accordion-body-padding-x)}.accordion-flush>.accordion-item{border-left:0;border-radius:0;border-right:0}.accordion-flush>.accordion-item:first-child{border-top:0}.accordion-flush>.accordion-item:last-child{border-bottom:0}.accordion-flush>.accordion-item>.accordion-collapse,.accordion-flush>.accordion-item>.accordion-header .accordion-button,.accordion-flush>.accordion-item>.accordion-header .accordion-button.collapsed{border-radius:0}[data-bs-theme=dark] .accordion-button:after{--si-accordion-btn-icon:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 256 256'%3E%3Cpath d='M225.813 48.907 128 146.72 30.187 48.907 0 79.093l128 128 128-128z'/%3E%3C/svg%3E");--si-accordion-btn-active-icon:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 256 256'%3E%3Cpath d='M225.813 48.907 128 146.72 30.187 48.907 0 79.093l128 128 128-128z'/%3E%3C/svg%3E")}.breadcrumb{--si-breadcrumb-padding-x:0;--si-breadcrumb-padding-y:0;--si-breadcrumb-margin-bottom:1rem;--si-breadcrumb-font-size:0.875rem;--si-breadcrumb-bg: ;--si-breadcrumb-border-radius: ;--si-breadcrumb-divider-color:var(--si-gray-600);--si-breadcrumb-item-padding-x:0.625rem;--si-breadcrumb-item-active-color:var(--si-primary);background-color:var(--si-breadcrumb-bg);border-radius:var(--si-breadcrumb-border-radius);display:flex;flex-wrap:wrap;font-size:var(--si-breadcrumb-font-size);list-style:none;margin-bottom:var(--si-breadcrumb-margin-bottom);padding:var(--si-breadcrumb-padding-y) var(--si-breadcrumb-padding-x)}.breadcrumb-item+.breadcrumb-item{padding-left:var(--si-breadcrumb-item-padding-x)}.breadcrumb-item+.breadcrumb-item:before{color:var(--si-breadcrumb-divider-color);content:var(--si-breadcrumb-divider,"\ea55");float:left;padding-right:var(--si-breadcrumb-item-padding-x)}.breadcrumb-item.active{color:var(--si-breadcrumb-item-active-color)}.pagination{--si-pagination-padding-x:0.875rem;--si-pagination-padding-y:0.45rem;--si-pagination-font-size:0.875rem;--si-pagination-color:#33354d;--si-pagination-bg:transparent;--si-pagination-border-width:0;--si-pagination-border-color:var(--si-border-color);--si-pagination-border-radius:var(--si-border-radius);--si-pagination-hover-color:#6366f1;--si-pagination-hover-bg:#eff2fc;--si-pagination-hover-border-color:var(--si-border-color);--si-pagination-focus-color:#6366f1;--si-pagination-focus-bg:var(--si-secondary-bg);--si-pagination-focus-box-shadow:0 0 0 0.25rem rgba(99,102,241,.25);--si-pagination-active-color:#fff;--si-pagination-active-bg:#6366f1;--si-pagination-active-border-color:#6366f1;--si-pagination-disabled-color:var(--si-secondary-color);--si-pagination-disabled-bg:transparent;--si-pagination-disabled-border-color:var(--si-border-color);display:flex;list-style:none;padding-left:0}.page-link{background-color:var(--si-pagination-bg);border:var(--si-pagination-border-width) solid var(--si-pagination-border-color);color:var(--si-pagination-color);display:block;font-size:var(--si-pagination-font-size);padding:var(--si-pagination-padding-y) var(--si-pagination-padding-x);position:relative;text-decoration:none;transition:color .2s ease-in-out,background-color .2s ease-in-out,border-color .2s ease-in-out,box-shadow .2s ease-in-out}@media (prefers-reduced-motion:reduce){.page-link{transition:none}}.page-link:hover{background-color:var(--si-pagination-hover-bg);border-color:var(--si-pagination-hover-border-color);color:var(--si-pagination-hover-color);z-index:2}.page-link:focus{background-color:var(--si-pagination-focus-bg);box-shadow:var(--si-pagination-focus-box-shadow);color:var(--si-pagination-focus-color);outline:0;z-index:3}.active>.page-link,.page-link.active{background-color:var(--si-pagination-active-bg);border-color:var(--si-pagination-active-border-color);color:var(--si-pagination-active-color);z-index:3}.disabled>.page-link,.page-link.disabled{background-color:var(--si-pagination-disabled-bg);border-color:var(--si-pagination-disabled-border-color);color:var(--si-pagination-disabled-color);pointer-events:none}.page-item:not(:first-child) .page-link{margin-left:0}.page-item:first-child .page-link{border-bottom-left-radius:var(--si-pagination-border-radius);border-top-left-radius:var(--si-pagination-border-radius)}.page-item:last-child .page-link{border-bottom-right-radius:var(--si-pagination-border-radius);border-top-right-radius:var(--si-pagination-border-radius)}.pagination-lg{--si-pagination-padding-x:1.125rem;--si-pagination-padding-y:0.625rem;--si-pagination-font-size:1.125rem}.pagination-sm{--si-pagination-padding-x:0.65rem;--si-pagination-padding-y:0.265rem;--si-pagination-font-size:0.875rem}.badge{--si-badge-padding-x:0.6em;--si-badge-padding-y:0.35em;--si-badge-font-size:0.8125em;--si-badge-font-weight:600;--si-badge-color:#fff;--si-badge-border-radius:0.25rem;border-radius:var(--si-badge-border-radius);color:var(--si-badge-color);display:inline-block;font-size:var(--si-badge-font-size);font-weight:var(--si-badge-font-weight);line-height:1;padding:var(--si-badge-padding-y) var(--si-badge-padding-x);text-align:center;vertical-align:baseline;white-space:nowrap}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{--si-alert-bg:transparent;--si-alert-padding-x:1rem;--si-alert-padding-y:1rem;--si-alert-margin-bottom:1rem;--si-alert-color:inherit;--si-alert-border-color:transparent;--si-alert-border:var(--si-border-width) solid var(--si-alert-border-color);--si-alert-border-radius:0.5rem;background-color:var(--si-alert-bg);border:var(--si-alert-border);border-radius:var(--si-alert-border-radius);color:var(--si-alert-color);margin-bottom:var(--si-alert-margin-bottom);padding:var(--si-alert-padding-y) var(--si-alert-padding-x);position:relative}.alert-heading{color:inherit}.alert-link{color:var(--si-alert-link-color);font-weight:600}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{padding:1.25rem 1rem;position:absolute;right:0;top:0;z-index:2}.alert-primary{--si-alert-color:var(--si-primary-text-emphasis);--si-alert-bg:var(--si-primary-bg-subtle);--si-alert-border-color:var(--si-primary-border-subtle);--si-alert-link-color:var(--si-primary-text-emphasis)}.alert-secondary{--si-alert-color:var(--si-secondary-text-emphasis);--si-alert-bg:var(--si-secondary-bg-subtle);--si-alert-border-color:var(--si-secondary-border-subtle);--si-alert-link-color:var(--si-secondary-text-emphasis)}.alert-success{--si-alert-color:var(--si-success-text-emphasis);--si-alert-bg:var(--si-success-bg-subtle);--si-alert-border-color:var(--si-success-border-subtle);--si-alert-link-color:var(--si-success-text-emphasis)}.alert-info{--si-alert-color:var(--si-info-text-emphasis);--si-alert-bg:var(--si-info-bg-subtle);--si-alert-border-color:var(--si-info-border-subtle);--si-alert-link-color:var(--si-info-text-emphasis)}.alert-warning{--si-alert-color:var(--si-warning-text-emphasis);--si-alert-bg:var(--si-warning-bg-subtle);--si-alert-border-color:var(--si-warning-border-subtle);--si-alert-link-color:var(--si-warning-text-emphasis)}.alert-danger{--si-alert-color:var(--si-danger-text-emphasis);--si-alert-bg:var(--si-danger-bg-subtle);--si-alert-border-color:var(--si-danger-border-subtle);--si-alert-link-color:var(--si-danger-text-emphasis)}.alert-light{--si-alert-color:var(--si-light-text-emphasis);--si-alert-bg:var(--si-light-bg-subtle);--si-alert-border-color:var(--si-light-border-subtle);--si-alert-link-color:var(--si-light-text-emphasis)}.alert-dark{--si-alert-color:var(--si-dark-text-emphasis);--si-alert-bg:var(--si-dark-bg-subtle);--si-alert-border-color:var(--si-dark-border-subtle);--si-alert-link-color:var(--si-dark-text-emphasis)}@keyframes progress-bar-stripes{0%{background-position-x:var(--si-progress-height)}}.progress,.progress-stacked{--si-progress-height:1rem;--si-progress-font-size:0.75rem;--si-progress-bg:#e9ebf4;--si-progress-border-radius:50rem;--si-progress-box-shadow:var(--si-box-shadow-inset);--si-progress-bar-color:#fff;--si-progress-bar-bg:#6366f1;--si-progress-bar-transition:width 0.6s ease;background-color:var(--si-progress-bg);border-radius:var(--si-progress-border-radius);box-shadow:var(--si-progress-box-shadow);display:flex;font-size:var(--si-progress-font-size);height:var(--si-progress-height);overflow:hidden}.progress-bar{background-color:var(--si-progress-bar-bg);color:var(--si-progress-bar-color);display:flex;flex-direction:column;justify-content:center;overflow:hidden;text-align:center;transition:var(--si-progress-bar-transition);white-space:nowrap}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-size:var(--si-progress-height) var(--si-progress-height)}.progress-stacked>.progress{overflow:visible}.progress-stacked>.progress>.progress-bar{width:100%}.progress-bar-animated{animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{animation:none}}.btn-close{--si-btn-close-color:#000;--si-btn-close-bg:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414'/%3E%3C/svg%3E");--si-btn-close-opacity:0.5;--si-btn-close-hover-opacity:0.75;--si-btn-close-focus-shadow:none;--si-btn-close-focus-opacity:1;--si-btn-close-disabled-opacity:0.25;background:transparent var(--si-btn-close-bg) center/.75em auto no-repeat;border:0;border-radius:.375rem;box-sizing:content-box;filter:var(--si-btn-close-filter);height:.75em;opacity:var(--si-btn-close-opacity);padding:.25em;width:.75em}.btn-close,.btn-close:hover{color:var(--si-btn-close-color)}.btn-close:hover{opacity:var(--si-btn-close-hover-opacity);text-decoration:none}.btn-close:focus{box-shadow:var(--si-btn-close-focus-shadow);opacity:var(--si-btn-close-focus-opacity);outline:0}.btn-close.disabled,.btn-close:disabled{opacity:var(--si-btn-close-disabled-opacity);pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.btn-close-white{--si-btn-close-filter:invert(1) grayscale(100%) brightness(200%)}:root,[data-bs-theme=light]{--si-btn-close-filter: }[data-bs-theme=dark]{--si-btn-close-filter:invert(1) grayscale(100%) brightness(200%)}.toast{--si-toast-zindex:1090;--si-toast-padding-x:1rem;--si-toast-padding-y:0.75rem;--si-toast-spacing:1.5rem;--si-toast-max-width:350px;--si-toast-font-size:0.875rem;--si-toast-color: ;--si-toast-bg:#fff;--si-toast-border-width:var(--si-border-width);--si-toast-border-color:transparent;--si-toast-border-radius:0.5rem;--si-toast-box-shadow:var(--si-box-shadow);--si-toast-header-color:var(--si-heading-color);--si-toast-header-bg:transparent;--si-toast-header-border-color:var(--si-border-color);background-clip:padding-box;background-color:var(--si-toast-bg);border:var(--si-toast-border-width) solid var(--si-toast-border-color);border-radius:var(--si-toast-border-radius);box-shadow:var(--si-toast-box-shadow);color:var(--si-toast-color);font-size:var(--si-toast-font-size);max-width:100%;pointer-events:auto;width:var(--si-toast-max-width)}.toast.showing{opacity:0}.toast:not(.show){display:none}.toast-container{--si-toast-zindex:1090;max-width:100%;pointer-events:none;position:absolute;width:-webkit-max-content;width:-moz-max-content;width:max-content;z-index:var(--si-toast-zindex)}.toast-container>:not(:last-child){margin-bottom:var(--si-toast-spacing)}.toast-header{align-items:center;background-clip:padding-box;background-color:var(--si-toast-header-bg);border-bottom:var(--si-toast-border-width) solid var(--si-toast-header-border-color);border-top-left-radius:calc(var(--si-toast-border-radius) - var(--si-toast-border-width));border-top-right-radius:calc(var(--si-toast-border-radius) - var(--si-toast-border-width));color:var(--si-toast-header-color);display:flex;padding:var(--si-toast-padding-y) var(--si-toast-padding-x)}.toast-header .btn-close{margin-left:var(--si-toast-padding-x);margin-right:calc(var(--si-toast-padding-x)*-.5)}.toast-body{padding:var(--si-toast-padding-x);word-wrap:break-word}.modal{--si-modal-zindex:1055;--si-modal-width:500px;--si-modal-padding:1.5rem;--si-modal-margin:0.5rem;--si-modal-color:var(--si-body-color);--si-modal-bg:var(--si-body-bg);--si-modal-border-color:var(--si-border-color);--si-modal-border-width:0;--si-modal-border-radius:var(--si-border-radius-lg);--si-modal-box-shadow:0 0.275rem 1.25rem rgba(11,15,25,.05),0 0.25rem 0.5625rem rgba(11,15,25,.03);--si-modal-inner-border-radius:calc(var(--si-border-radius-lg));--si-modal-header-padding-x:1.5rem;--si-modal-header-padding-y:1.125rem;--si-modal-header-padding:1.125rem 1.5rem;--si-modal-header-border-color:var(--si-border-color);--si-modal-header-border-width:1px;--si-modal-title-line-height:1.6;--si-modal-footer-gap:0.75rem;--si-modal-footer-bg: ;--si-modal-footer-border-color:var(--si-border-color);--si-modal-footer-border-width:1px;display:none;height:100%;left:0;outline:0;overflow-x:hidden;overflow-y:auto;position:fixed;top:0;width:100%;z-index:var(--si-modal-zindex)}.modal-dialog{margin:var(--si-modal-margin);pointer-events:none;position:relative;width:auto}.modal.fade .modal-dialog{transform:scale(.9);transition:transform .2s ease-out}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - var(--si-modal-margin)*2)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{align-items:center;display:flex;min-height:calc(100% - var(--si-modal-margin)*2)}.modal-content{background-clip:padding-box;background-color:var(--si-modal-bg);border:var(--si-modal-border-width) solid var(--si-modal-border-color);border-radius:var(--si-modal-border-radius);box-shadow:var(--si-modal-box-shadow);color:var(--si-modal-color);display:flex;flex-direction:column;outline:0;pointer-events:auto;position:relative;width:100%}.modal-backdrop{--si-backdrop-zindex:1050;--si-backdrop-bg:#000;--si-backdrop-opacity:0.65;background-color:var(--si-backdrop-bg);height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:var(--si-backdrop-zindex)}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:var(--si-backdrop-opacity)}.modal-header{align-items:center;border-bottom:var(--si-modal-header-border-width) solid var(--si-modal-header-border-color);border-top-left-radius:var(--si-modal-inner-border-radius);border-top-right-radius:var(--si-modal-inner-border-radius);display:flex;flex-shrink:0;padding:var(--si-modal-header-padding)}.modal-header .btn-close{margin-bottom:calc(var(--si-modal-header-padding-y)*-.5);margin-left:auto;margin-right:calc(var(--si-modal-header-padding-x)*-.5);margin-top:calc(var(--si-modal-header-padding-y)*-.5);padding:calc(var(--si-modal-header-padding-y)*.5) calc(var(--si-modal-header-padding-x)*.5)}.modal-title{line-height:var(--si-modal-title-line-height);margin-bottom:0}.modal-body{flex:1 1 auto;padding:var(--si-modal-padding);position:relative}.modal-footer{align-items:center;background-color:var(--si-modal-footer-bg);border-bottom-left-radius:var(--si-modal-inner-border-radius);border-bottom-right-radius:var(--si-modal-inner-border-radius);border-top:var(--si-modal-footer-border-width) solid var(--si-modal-footer-border-color);display:flex;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end;padding:calc(var(--si-modal-padding) - var(--si-modal-footer-gap)*.5)}.modal-footer>*{margin:calc(var(--si-modal-footer-gap)*.5)}@media (min-width:500px){.modal{--si-modal-margin:1.75rem;--si-modal-box-shadow:var(--si-box-shadow)}.modal-dialog{margin-left:auto;margin-right:auto;max-width:var(--si-modal-width)}.modal-sm{--si-modal-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{--si-modal-width:800px}}@media (min-width:1200px){.modal-xl{--si-modal-width:1140px}}.modal-fullscreen{height:100%;margin:0;max-width:none;width:100vw}.modal-fullscreen .modal-content{border:0;border-radius:0;height:100%}.modal-fullscreen .modal-footer,.modal-fullscreen .modal-header{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}@media (max-width:499.98px){.modal-fullscreen-sm-down{height:100%;margin:0;max-width:none;width:100vw}.modal-fullscreen-sm-down .modal-content{border:0;border-radius:0;height:100%}.modal-fullscreen-sm-down .modal-footer,.modal-fullscreen-sm-down .modal-header{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}}@media (max-width:767.98px){.modal-fullscreen-md-down{height:100%;margin:0;max-width:none;width:100vw}.modal-fullscreen-md-down .modal-content{border:0;border-radius:0;height:100%}.modal-fullscreen-md-down .modal-footer,.modal-fullscreen-md-down .modal-header{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}}@media (max-width:991.98px){.modal-fullscreen-lg-down{height:100%;margin:0;max-width:none;width:100vw}.modal-fullscreen-lg-down .modal-content{border:0;border-radius:0;height:100%}.modal-fullscreen-lg-down .modal-footer,.modal-fullscreen-lg-down .modal-header{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}}@media (max-width:1199.98px){.modal-fullscreen-xl-down{height:100%;margin:0;max-width:none;width:100vw}.modal-fullscreen-xl-down .modal-content{border:0;border-radius:0;height:100%}.modal-fullscreen-xl-down .modal-footer,.modal-fullscreen-xl-down .modal-header{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}}@media (max-width:1399.98px){.modal-fullscreen-xxl-down{height:100%;margin:0;max-width:none;width:100vw}.modal-fullscreen-xxl-down .modal-content{border:0;border-radius:0;height:100%}.modal-fullscreen-xxl-down .modal-footer,.modal-fullscreen-xxl-down .modal-header{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}}.tooltip{--si-tooltip-zindex:1080;--si-tooltip-max-width:200px;--si-tooltip-padding-x:0.5rem;--si-tooltip-padding-y:0.25rem;--si-tooltip-margin: ;--si-tooltip-font-size:0.8125rem;--si-tooltip-color:var(--si-body-bg);--si-tooltip-bg:var(--si-emphasis-color);--si-tooltip-border-radius:0.25rem;--si-tooltip-opacity:0.9;--si-tooltip-arrow-width:0.8rem;--si-tooltip-arrow-height:0.4rem;display:block;font-family:var(--si-font-sans-serif);font-size:var(--si-tooltip-font-size);font-style:normal;font-weight:400;letter-spacing:normal;line-break:auto;line-height:1.6;margin:var(--si-tooltip-margin);text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;z-index:var(--si-tooltip-zindex);word-wrap:break-word;opacity:0}.tooltip.show{opacity:var(--si-tooltip-opacity)}.tooltip .tooltip-arrow{display:block;height:var(--si-tooltip-arrow-height);width:var(--si-tooltip-arrow-width)}.tooltip .tooltip-arrow:before{border-color:transparent;border-style:solid;content:"";position:absolute}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow,.bs-tooltip-top .tooltip-arrow{bottom:calc(var(--si-tooltip-arrow-height)*-1)}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow:before,.bs-tooltip-top .tooltip-arrow:before{border-top-color:var(--si-tooltip-bg);border-width:var(--si-tooltip-arrow-height) calc(var(--si-tooltip-arrow-width)*.5) 0;top:-1px}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow,.bs-tooltip-end .tooltip-arrow{height:var(--si-tooltip-arrow-width);left:calc(var(--si-tooltip-arrow-height)*-1);width:var(--si-tooltip-arrow-height)}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow:before,.bs-tooltip-end .tooltip-arrow:before{border-right-color:var(--si-tooltip-bg);border-width:calc(var(--si-tooltip-arrow-width)*.5) var(--si-tooltip-arrow-height) calc(var(--si-tooltip-arrow-width)*.5) 0;right:-1px}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow,.bs-tooltip-bottom .tooltip-arrow{top:calc(var(--si-tooltip-arrow-height)*-1)}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow:before,.bs-tooltip-bottom .tooltip-arrow:before{border-bottom-color:var(--si-tooltip-bg);border-width:0 calc(var(--si-tooltip-arrow-width)*.5) var(--si-tooltip-arrow-height);bottom:-1px}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow,.bs-tooltip-start .tooltip-arrow{height:var(--si-tooltip-arrow-width);right:calc(var(--si-tooltip-arrow-height)*-1);width:var(--si-tooltip-arrow-height)}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow:before,.bs-tooltip-start .tooltip-arrow:before{border-left-color:var(--si-tooltip-bg);border-width:calc(var(--si-tooltip-arrow-width)*.5) 0 calc(var(--si-tooltip-arrow-width)*.5) var(--si-tooltip-arrow-height);left:-1px}.tooltip-inner{background-color:var(--si-tooltip-bg);border-radius:var(--si-tooltip-border-radius);color:var(--si-tooltip-color);max-width:var(--si-tooltip-max-width);padding:var(--si-tooltip-padding-y) var(--si-tooltip-padding-x);text-align:center}.popover{--si-popover-zindex:1070;--si-popover-max-width:276px;--si-popover-font-size:0.875rem;--si-popover-bg:var(--si-body-bg);--si-popover-border-width:var(--si-border-width);--si-popover-border-color:var(--si-border-color);--si-popover-border-radius:var(--si-border-radius-lg);--si-popover-inner-border-radius:calc(var(--si-border-radius-lg) - var(--si-border-width));--si-popover-box-shadow:0 0.275rem 0.75rem -0.0625rem rgba(11,15,25,.06),0 0.125rem 0.4rem -0.0625rem rgba(11,15,25,.03);--si-popover-header-padding-x:1rem;--si-popover-header-padding-y:0.75rem;--si-popover-header-font-size:1rem;--si-popover-header-color:var(--si-heading-color);--si-popover-header-bg:transparent;--si-popover-body-padding-x:1rem;--si-popover-body-padding-y:1rem;--si-popover-body-color:var(--si-body-color);--si-popover-arrow-width:1rem;--si-popover-arrow-height:0.5rem;--si-popover-arrow-border:var(--si-popover-border-color);display:block;font-family:var(--si-font-sans-serif);font-size:var(--si-popover-font-size);font-style:normal;font-weight:400;letter-spacing:normal;line-break:auto;line-height:1.6;max-width:var(--si-popover-max-width);text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;z-index:var(--si-popover-zindex);word-wrap:break-word;background-clip:padding-box;background-color:var(--si-popover-bg);border:var(--si-popover-border-width) solid var(--si-popover-border-color);border-radius:var(--si-popover-border-radius);box-shadow:var(--si-popover-box-shadow)}.popover .popover-arrow{display:block;height:var(--si-popover-arrow-height);width:var(--si-popover-arrow-width)}.popover .popover-arrow:after,.popover .popover-arrow:before{border:0 solid transparent;content:"";display:block;position:absolute}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow,.bs-popover-top>.popover-arrow{bottom:calc((var(--si-popover-arrow-height))*-1 - var(--si-popover-border-width))}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:before,.bs-popover-top>.popover-arrow:after,.bs-popover-top>.popover-arrow:before{border-width:var(--si-popover-arrow-height) calc(var(--si-popover-arrow-width)*.5) 0}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:before,.bs-popover-top>.popover-arrow:before{border-top-color:var(--si-popover-arrow-border);bottom:0}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:after,.bs-popover-top>.popover-arrow:after{border-top-color:var(--si-popover-bg);bottom:var(--si-popover-border-width)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow,.bs-popover-end>.popover-arrow{height:var(--si-popover-arrow-width);left:calc((var(--si-popover-arrow-height))*-1 - var(--si-popover-border-width));width:var(--si-popover-arrow-height)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:before,.bs-popover-end>.popover-arrow:after,.bs-popover-end>.popover-arrow:before{border-width:calc(var(--si-popover-arrow-width)*.5) var(--si-popover-arrow-height) calc(var(--si-popover-arrow-width)*.5) 0}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:before,.bs-popover-end>.popover-arrow:before{border-right-color:var(--si-popover-arrow-border);left:0}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:after,.bs-popover-end>.popover-arrow:after{border-right-color:var(--si-popover-bg);left:var(--si-popover-border-width)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow,.bs-popover-bottom>.popover-arrow{top:calc((var(--si-popover-arrow-height))*-1 - var(--si-popover-border-width))}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:before,.bs-popover-bottom>.popover-arrow:after,.bs-popover-bottom>.popover-arrow:before{border-width:0 calc(var(--si-popover-arrow-width)*.5) var(--si-popover-arrow-height)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:before,.bs-popover-bottom>.popover-arrow:before{border-bottom-color:var(--si-popover-arrow-border);top:0}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:after,.bs-popover-bottom>.popover-arrow:after{border-bottom-color:var(--si-popover-bg);top:var(--si-popover-border-width)}.bs-popover-auto[data-popper-placement^=bottom] .popover-header:before,.bs-popover-bottom .popover-header:before{border-bottom:var(--si-popover-border-width) solid var(--si-popover-header-bg);content:"";display:block;left:50%;margin-left:calc(var(--si-popover-arrow-width)*-.5);position:absolute;top:0;width:var(--si-popover-arrow-width)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow,.bs-popover-start>.popover-arrow{height:var(--si-popover-arrow-width);right:calc((var(--si-popover-arrow-height))*-1 - var(--si-popover-border-width));width:var(--si-popover-arrow-height)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:before,.bs-popover-start>.popover-arrow:after,.bs-popover-start>.popover-arrow:before{border-width:calc(var(--si-popover-arrow-width)*.5) 0 calc(var(--si-popover-arrow-width)*.5) var(--si-popover-arrow-height)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:before,.bs-popover-start>.popover-arrow:before{border-left-color:var(--si-popover-arrow-border);right:0}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:after,.bs-popover-start>.popover-arrow:after{border-left-color:var(--si-popover-bg);right:var(--si-popover-border-width)}.popover-header{background-color:var(--si-popover-header-bg);border-bottom:var(--si-popover-border-width) solid var(--si-popover-border-color);border-top-left-radius:var(--si-popover-inner-border-radius);border-top-right-radius:var(--si-popover-inner-border-radius);color:var(--si-popover-header-color);font-size:var(--si-popover-header-font-size);margin-bottom:0;padding:var(--si-popover-header-padding-y) var(--si-popover-header-padding-x)}.popover-header:empty{display:none}.popover-body{color:var(--si-popover-body-color);padding:var(--si-popover-body-padding-y) var(--si-popover-body-padding-x)}.spinner-border,.spinner-grow{animation:var(--si-spinner-animation-speed) linear infinite var(--si-spinner-animation-name);border-radius:50%;display:inline-block;height:var(--si-spinner-height);vertical-align:var(--si-spinner-vertical-align);width:var(--si-spinner-width)}@keyframes spinner-border{to{transform:rotate(1turn)}}.spinner-border{--si-spinner-width:2rem;--si-spinner-height:2rem;--si-spinner-vertical-align:-0.125em;--si-spinner-border-width:0.15em;--si-spinner-animation-speed:0.75s;--si-spinner-animation-name:spinner-border;border-right-color:currentcolor;border:var(--si-spinner-border-width) solid;border-right:var(--si-spinner-border-width) solid transparent}.spinner-border-sm{--si-spinner-width:1rem;--si-spinner-height:1rem;--si-spinner-border-width:0.1em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{--si-spinner-width:2rem;--si-spinner-height:2rem;--si-spinner-vertical-align:-0.125em;--si-spinner-animation-speed:0.75s;--si-spinner-animation-name:spinner-grow;background-color:currentcolor;opacity:0}.spinner-grow-sm{--si-spinner-width:1rem;--si-spinner-height:1rem}@media (prefers-reduced-motion:reduce){.spinner-border,.spinner-grow{--si-spinner-animation-speed:1.5s}}.offcanvas,.offcanvas-lg,.offcanvas-md,.offcanvas-sm,.offcanvas-xl,.offcanvas-xxl{--si-offcanvas-zindex:1045;--si-offcanvas-width:21rem;--si-offcanvas-height:30vh;--si-offcanvas-padding-x:1.5rem;--si-offcanvas-padding-y:1.5rem;--si-offcanvas-color:var(--si-body-color);--si-offcanvas-bg:var(--si-body-bg);--si-offcanvas-border-width:0;--si-offcanvas-border-color:var(--si-border-color);--si-offcanvas-box-shadow:0 0.275rem 1.25rem rgba(11,15,25,.05),0 0.25rem 0.5625rem rgba(11,15,25,.03);--si-offcanvas-transition:transform 0.3s ease-in-out;--si-offcanvas-title-line-height:1.6}@media (max-width:499.98px){.offcanvas-sm{background-clip:padding-box;background-color:var(--si-offcanvas-bg);bottom:0;box-shadow:var(--si-offcanvas-box-shadow);color:var(--si-offcanvas-color);display:flex;flex-direction:column;max-width:100%;outline:0;position:fixed;transition:var(--si-offcanvas-transition);visibility:hidden;z-index:var(--si-offcanvas-zindex)}}@media (max-width:499.98px) and (prefers-reduced-motion:reduce){.offcanvas-sm{transition:none}}@media (max-width:499.98px){.offcanvas-sm.offcanvas-start{border-right:var(--si-offcanvas-border-width) solid var(--si-offcanvas-border-color);left:0;top:0;transform:translateX(-100%);width:var(--si-offcanvas-width)}.offcanvas-sm.offcanvas-end{border-left:var(--si-offcanvas-border-width) solid var(--si-offcanvas-border-color);right:0;top:0;transform:translateX(100%);width:var(--si-offcanvas-width)}.offcanvas-sm.offcanvas-top{border-bottom:var(--si-offcanvas-border-width) solid var(--si-offcanvas-border-color);top:0;transform:translateY(-100%)}.offcanvas-sm.offcanvas-bottom,.offcanvas-sm.offcanvas-top{height:var(--si-offcanvas-height);left:0;max-height:100%;right:0}.offcanvas-sm.offcanvas-bottom{border-top:var(--si-offcanvas-border-width) solid var(--si-offcanvas-border-color);transform:translateY(100%)}.offcanvas-sm.show:not(.hiding),.offcanvas-sm.showing{transform:none}.offcanvas-sm.hiding,.offcanvas-sm.show,.offcanvas-sm.showing{visibility:visible}}@media (min-width:500px){.offcanvas-sm{--si-offcanvas-height:auto;--si-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-sm .offcanvas-header{display:none}.offcanvas-sm .offcanvas-body{background-color:transparent!important;display:flex;flex-grow:0;overflow-y:visible;padding:0}}@media (max-width:767.98px){.offcanvas-md{background-clip:padding-box;background-color:var(--si-offcanvas-bg);bottom:0;box-shadow:var(--si-offcanvas-box-shadow);color:var(--si-offcanvas-color);display:flex;flex-direction:column;max-width:100%;outline:0;position:fixed;transition:var(--si-offcanvas-transition);visibility:hidden;z-index:var(--si-offcanvas-zindex)}}@media (max-width:767.98px) and (prefers-reduced-motion:reduce){.offcanvas-md{transition:none}}@media (max-width:767.98px){.offcanvas-md.offcanvas-start{border-right:var(--si-offcanvas-border-width) solid var(--si-offcanvas-border-color);left:0;top:0;transform:translateX(-100%);width:var(--si-offcanvas-width)}.offcanvas-md.offcanvas-end{border-left:var(--si-offcanvas-border-width) solid var(--si-offcanvas-border-color);right:0;top:0;transform:translateX(100%);width:var(--si-offcanvas-width)}.offcanvas-md.offcanvas-top{border-bottom:var(--si-offcanvas-border-width) solid var(--si-offcanvas-border-color);top:0;transform:translateY(-100%)}.offcanvas-md.offcanvas-bottom,.offcanvas-md.offcanvas-top{height:var(--si-offcanvas-height);left:0;max-height:100%;right:0}.offcanvas-md.offcanvas-bottom{border-top:var(--si-offcanvas-border-width) solid var(--si-offcanvas-border-color);transform:translateY(100%)}.offcanvas-md.show:not(.hiding),.offcanvas-md.showing{transform:none}.offcanvas-md.hiding,.offcanvas-md.show,.offcanvas-md.showing{visibility:visible}}@media (min-width:768px){.offcanvas-md{--si-offcanvas-height:auto;--si-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-md .offcanvas-header{display:none}.offcanvas-md .offcanvas-body{background-color:transparent!important;display:flex;flex-grow:0;overflow-y:visible;padding:0}}@media (max-width:991.98px){.offcanvas-lg{background-clip:padding-box;background-color:var(--si-offcanvas-bg);bottom:0;box-shadow:var(--si-offcanvas-box-shadow);color:var(--si-offcanvas-color);display:flex;flex-direction:column;max-width:100%;outline:0;position:fixed;transition:var(--si-offcanvas-transition);visibility:hidden;z-index:var(--si-offcanvas-zindex)}}@media (max-width:991.98px) and (prefers-reduced-motion:reduce){.offcanvas-lg{transition:none}}@media (max-width:991.98px){.offcanvas-lg.offcanvas-start{border-right:var(--si-offcanvas-border-width) solid var(--si-offcanvas-border-color);left:0;top:0;transform:translateX(-100%);width:var(--si-offcanvas-width)}.offcanvas-lg.offcanvas-end{border-left:var(--si-offcanvas-border-width) solid var(--si-offcanvas-border-color);right:0;top:0;transform:translateX(100%);width:var(--si-offcanvas-width)}.offcanvas-lg.offcanvas-top{border-bottom:var(--si-offcanvas-border-width) solid var(--si-offcanvas-border-color);top:0;transform:translateY(-100%)}.offcanvas-lg.offcanvas-bottom,.offcanvas-lg.offcanvas-top{height:var(--si-offcanvas-height);left:0;max-height:100%;right:0}.offcanvas-lg.offcanvas-bottom{border-top:var(--si-offcanvas-border-width) solid var(--si-offcanvas-border-color);transform:translateY(100%)}.offcanvas-lg.show:not(.hiding),.offcanvas-lg.showing{transform:none}.offcanvas-lg.hiding,.offcanvas-lg.show,.offcanvas-lg.showing{visibility:visible}}@media (min-width:992px){.offcanvas-lg{--si-offcanvas-height:auto;--si-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-lg .offcanvas-header{display:none}.offcanvas-lg .offcanvas-body{background-color:transparent!important;display:flex;flex-grow:0;overflow-y:visible;padding:0}}@media (max-width:1199.98px){.offcanvas-xl{background-clip:padding-box;background-color:var(--si-offcanvas-bg);bottom:0;box-shadow:var(--si-offcanvas-box-shadow);color:var(--si-offcanvas-color);display:flex;flex-direction:column;max-width:100%;outline:0;position:fixed;transition:var(--si-offcanvas-transition);visibility:hidden;z-index:var(--si-offcanvas-zindex)}}@media (max-width:1199.98px) and (prefers-reduced-motion:reduce){.offcanvas-xl{transition:none}}@media (max-width:1199.98px){.offcanvas-xl.offcanvas-start{border-right:var(--si-offcanvas-border-width) solid var(--si-offcanvas-border-color);left:0;top:0;transform:translateX(-100%);width:var(--si-offcanvas-width)}.offcanvas-xl.offcanvas-end{border-left:var(--si-offcanvas-border-width) solid var(--si-offcanvas-border-color);right:0;top:0;transform:translateX(100%);width:var(--si-offcanvas-width)}.offcanvas-xl.offcanvas-top{border-bottom:var(--si-offcanvas-border-width) solid var(--si-offcanvas-border-color);top:0;transform:translateY(-100%)}.offcanvas-xl.offcanvas-bottom,.offcanvas-xl.offcanvas-top{height:var(--si-offcanvas-height);left:0;max-height:100%;right:0}.offcanvas-xl.offcanvas-bottom{border-top:var(--si-offcanvas-border-width) solid var(--si-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xl.show:not(.hiding),.offcanvas-xl.showing{transform:none}.offcanvas-xl.hiding,.offcanvas-xl.show,.offcanvas-xl.showing{visibility:visible}}@media (min-width:1200px){.offcanvas-xl{--si-offcanvas-height:auto;--si-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-xl .offcanvas-header{display:none}.offcanvas-xl .offcanvas-body{background-color:transparent!important;display:flex;flex-grow:0;overflow-y:visible;padding:0}}@media (max-width:1399.98px){.offcanvas-xxl{background-clip:padding-box;background-color:var(--si-offcanvas-bg);bottom:0;box-shadow:var(--si-offcanvas-box-shadow);color:var(--si-offcanvas-color);display:flex;flex-direction:column;max-width:100%;outline:0;position:fixed;transition:var(--si-offcanvas-transition);visibility:hidden;z-index:var(--si-offcanvas-zindex)}}@media (max-width:1399.98px) and (prefers-reduced-motion:reduce){.offcanvas-xxl{transition:none}}@media (max-width:1399.98px){.offcanvas-xxl.offcanvas-start{border-right:var(--si-offcanvas-border-width) solid var(--si-offcanvas-border-color);left:0;top:0;transform:translateX(-100%);width:var(--si-offcanvas-width)}.offcanvas-xxl.offcanvas-end{border-left:var(--si-offcanvas-border-width) solid var(--si-offcanvas-border-color);right:0;top:0;transform:translateX(100%);width:var(--si-offcanvas-width)}.offcanvas-xxl.offcanvas-top{border-bottom:var(--si-offcanvas-border-width) solid var(--si-offcanvas-border-color);top:0;transform:translateY(-100%)}.offcanvas-xxl.offcanvas-bottom,.offcanvas-xxl.offcanvas-top{height:var(--si-offcanvas-height);left:0;max-height:100%;right:0}.offcanvas-xxl.offcanvas-bottom{border-top:var(--si-offcanvas-border-width) solid var(--si-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xxl.show:not(.hiding),.offcanvas-xxl.showing{transform:none}.offcanvas-xxl.hiding,.offcanvas-xxl.show,.offcanvas-xxl.showing{visibility:visible}}@media (min-width:1400px){.offcanvas-xxl{--si-offcanvas-height:auto;--si-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-xxl .offcanvas-header{display:none}.offcanvas-xxl .offcanvas-body{background-color:transparent!important;display:flex;flex-grow:0;overflow-y:visible;padding:0}}.offcanvas{background-clip:padding-box;background-color:var(--si-offcanvas-bg);bottom:0;box-shadow:var(--si-offcanvas-box-shadow);color:var(--si-offcanvas-color);display:flex;flex-direction:column;max-width:100%;outline:0;position:fixed;transition:var(--si-offcanvas-transition);visibility:hidden;z-index:var(--si-offcanvas-zindex)}@media (prefers-reduced-motion:reduce){.offcanvas{transition:none}}.offcanvas.offcanvas-start{border-right:var(--si-offcanvas-border-width) solid var(--si-offcanvas-border-color);left:0;top:0;transform:translateX(-100%);width:var(--si-offcanvas-width)}.offcanvas.offcanvas-end{border-left:var(--si-offcanvas-border-width) solid var(--si-offcanvas-border-color);right:0;top:0;transform:translateX(100%);width:var(--si-offcanvas-width)}.offcanvas.offcanvas-top{border-bottom:var(--si-offcanvas-border-width) solid var(--si-offcanvas-border-color);top:0;transform:translateY(-100%)}.offcanvas.offcanvas-bottom,.offcanvas.offcanvas-top{height:var(--si-offcanvas-height);left:0;max-height:100%;right:0}.offcanvas.offcanvas-bottom{border-top:var(--si-offcanvas-border-width) solid var(--si-offcanvas-border-color);transform:translateY(100%)}.offcanvas.show:not(.hiding),.offcanvas.showing{transform:none}.offcanvas.hiding,.offcanvas.show,.offcanvas.showing{visibility:visible}.offcanvas-backdrop{background-color:#000;height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:1040}.offcanvas-backdrop.fade{opacity:0}.offcanvas-backdrop.show{opacity:.65}.offcanvas-header{align-items:center;display:flex;padding:var(--si-offcanvas-padding-y) var(--si-offcanvas-padding-x)}.offcanvas-header .btn-close{margin-bottom:calc(var(--si-offcanvas-padding-y)*-.5);margin-left:auto;margin-right:calc(var(--si-offcanvas-padding-x)*-.5);margin-top:calc(var(--si-offcanvas-padding-y)*-.5);padding:calc(var(--si-offcanvas-padding-y)*.5) calc(var(--si-offcanvas-padding-x)*.5)}.offcanvas-title{line-height:var(--si-offcanvas-title-line-height);margin-bottom:0}.offcanvas-body{flex-grow:1;overflow-y:auto;padding:var(--si-offcanvas-padding-y) var(--si-offcanvas-padding-x)}.placeholder{background-color:currentcolor;cursor:wait;display:inline-block;min-height:1em;opacity:.35;vertical-align:middle}.placeholder.btn:before{content:"";display:inline-block}.placeholder-xs{min-height:.6em}.placeholder-sm{min-height:.8em}.placeholder-lg{min-height:1.2em}.placeholder-glow .placeholder{animation:placeholder-glow 2s ease-in-out infinite}.placeholder-wave{animation:placeholder-wave 2s linear infinite;-webkit-mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,.88) 75%,#000 95%);mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,.88) 75%,#000 95%);-webkit-mask-size:200% 100%;mask-size:200% 100%}@keyframes placeholder-wave{to{-webkit-mask-position:-200% 0;mask-position:-200% 0}}.clearfix:after{clear:both;content:"";display:block}.text-bg-primary{background-color:RGBA(var(--si-primary-rgb),var(--si-bg-opacity,1))!important;color:#000!important}.text-bg-secondary{background-color:RGBA(var(--si-secondary-rgb),var(--si-bg-opacity,1))!important;color:#000!important}.text-bg-success{background-color:RGBA(var(--si-success-rgb),var(--si-bg-opacity,1))!important;color:#000!important}.text-bg-info{background-color:RGBA(var(--si-info-rgb),var(--si-bg-opacity,1))!important;color:#000!important}.text-bg-warning{background-color:RGBA(var(--si-warning-rgb),var(--si-bg-opacity,1))!important;color:#000!important}.text-bg-danger{background-color:RGBA(var(--si-danger-rgb),var(--si-bg-opacity,1))!important;color:#000!important}.text-bg-light{background-color:RGBA(var(--si-light-rgb),var(--si-bg-opacity,1))!important;color:#000!important}.text-bg-dark{background-color:RGBA(var(--si-dark-rgb),var(--si-bg-opacity,1))!important;color:#fff!important}.link-primary{color:RGBA(var(--si-primary-rgb),var(--si-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--si-primary-rgb),var(--si-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--si-primary-rgb),var(--si-link-underline-opacity,1))!important}.link-primary:focus,.link-primary:hover{color:RGBA(130,133,244,var(--si-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(130,133,244,var(--si-link-underline-opacity,1))!important;text-decoration-color:RGBA(130,133,244,var(--si-link-underline-opacity,1))!important}.link-secondary{color:RGBA(var(--si-secondary-rgb),var(--si-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--si-secondary-rgb),var(--si-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--si-secondary-rgb),var(--si-link-underline-opacity,1))!important}.link-secondary:focus,.link-secondary:hover{color:RGBA(242,245,253,var(--si-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(242,245,253,var(--si-link-underline-opacity,1))!important;text-decoration-color:RGBA(242,245,253,var(--si-link-underline-opacity,1))!important}.link-success{color:RGBA(var(--si-success-rgb),var(--si-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--si-success-rgb),var(--si-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--si-success-rgb),var(--si-link-underline-opacity,1))!important}.link-success:focus,.link-success:hover{color:RGBA(78,209,126,var(--si-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(78,209,126,var(--si-link-underline-opacity,1))!important;text-decoration-color:RGBA(78,209,126,var(--si-link-underline-opacity,1))!important}.link-info{color:RGBA(var(--si-info-rgb),var(--si-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--si-info-rgb),var(--si-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--si-info-rgb),var(--si-link-underline-opacity,1))!important}.link-info:focus,.link-info:hover{color:RGBA(112,155,249,var(--si-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(112,155,249,var(--si-link-underline-opacity,1))!important;text-decoration-color:RGBA(112,155,249,var(--si-link-underline-opacity,1))!important}.link-warning{color:RGBA(var(--si-warning-rgb),var(--si-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--si-warning-rgb),var(--si-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--si-warning-rgb),var(--si-link-underline-opacity,1))!important}.link-warning:focus,.link-warning:hover{color:RGBA(255,200,57,var(--si-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(255,200,57,var(--si-link-underline-opacity,1))!important;text-decoration-color:RGBA(255,200,57,var(--si-link-underline-opacity,1))!important}.link-danger{color:RGBA(var(--si-danger-rgb),var(--si-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--si-danger-rgb),var(--si-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--si-danger-rgb),var(--si-link-underline-opacity,1))!important}.link-danger:focus,.link-danger:hover{color:RGBA(242,105,105,var(--si-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(242,105,105,var(--si-link-underline-opacity,1))!important;text-decoration-color:RGBA(242,105,105,var(--si-link-underline-opacity,1))!important}.link-light{color:RGBA(var(--si-light-rgb),var(--si-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--si-light-rgb),var(--si-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--si-light-rgb),var(--si-link-underline-opacity,1))!important}.link-light:focus,.link-light:hover{color:RGBA(255,255,255,var(--si-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(255,255,255,var(--si-link-underline-opacity,1))!important;text-decoration-color:RGBA(255,255,255,var(--si-link-underline-opacity,1))!important}.link-dark{color:RGBA(var(--si-dark-rgb),var(--si-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--si-dark-rgb),var(--si-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--si-dark-rgb),var(--si-link-underline-opacity,1))!important}.link-dark:focus,.link-dark:hover{color:RGBA(9,12,20,var(--si-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(9,12,20,var(--si-link-underline-opacity,1))!important;text-decoration-color:RGBA(9,12,20,var(--si-link-underline-opacity,1))!important}.link-body-emphasis{color:RGBA(var(--si-emphasis-color-rgb),var(--si-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--si-emphasis-color-rgb),var(--si-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--si-emphasis-color-rgb),var(--si-link-underline-opacity,1))!important}.link-body-emphasis:focus,.link-body-emphasis:hover{color:RGBA(var(--si-emphasis-color-rgb),var(--si-link-opacity,.75))!important;-webkit-text-decoration-color:RGBA(var(--si-emphasis-color-rgb),var(--si-link-underline-opacity,.75))!important;text-decoration-color:RGBA(var(--si-emphasis-color-rgb),var(--si-link-underline-opacity,.75))!important}.focus-ring:focus{box-shadow:var(--si-focus-ring-x,0) var(--si-focus-ring-y,0) var(--si-focus-ring-blur,0) var(--si-focus-ring-width) var(--si-focus-ring-color);outline:0}.icon-link{align-items:center;-webkit-backface-visibility:hidden;backface-visibility:hidden;display:inline-flex;gap:.375rem;-webkit-text-decoration-color:rgba(var(--si-link-color-rgb),var(--si-link-opacity,.5));text-decoration-color:rgba(var(--si-link-color-rgb),var(--si-link-opacity,.5));text-underline-offset:.25em}.icon-link>.bi{flex-shrink:0;height:1em;width:1em;fill:currentcolor;transition:transform .2s ease-in-out}@media (prefers-reduced-motion:reduce){.icon-link>.bi{transition:none}}.icon-link-hover:focus-visible>.bi,.icon-link-hover:hover>.bi{transform:var(--si-icon-link-transform,translate3d(.25em,0,0))}.ratio{position:relative;width:100%}.ratio:before{content:"";display:block;padding-top:var(--si-aspect-ratio)}.ratio>*{height:100%;left:0;position:absolute;top:0;width:100%}.ratio-1x1{--si-aspect-ratio:100%}.ratio-4x3{--si-aspect-ratio:75%}.ratio-16x9{--si-aspect-ratio:56.25%}.ratio-21x9{--si-aspect-ratio:42.8571428571%}.fixed-top{top:0}.fixed-bottom,.fixed-top{left:0;position:fixed;right:0;z-index:1030}.fixed-bottom{bottom:0}.sticky-top{top:0}.sticky-bottom,.sticky-top{position:-webkit-sticky;position:sticky;z-index:1020}.sticky-bottom{bottom:0}@media (min-width:500px){.sticky-sm-top{top:0}.sticky-sm-bottom,.sticky-sm-top{position:-webkit-sticky;position:sticky;z-index:1020}.sticky-sm-bottom{bottom:0}}@media (min-width:768px){.sticky-md-top{top:0}.sticky-md-bottom,.sticky-md-top{position:-webkit-sticky;position:sticky;z-index:1020}.sticky-md-bottom{bottom:0}}@media (min-width:992px){.sticky-lg-top{top:0}.sticky-lg-bottom,.sticky-lg-top{position:-webkit-sticky;position:sticky;z-index:1020}.sticky-lg-bottom{bottom:0}}@media (min-width:1200px){.sticky-xl-top{top:0}.sticky-xl-bottom,.sticky-xl-top{position:-webkit-sticky;position:sticky;z-index:1020}.sticky-xl-bottom{bottom:0}}@media (min-width:1400px){.sticky-xxl-top{top:0}.sticky-xxl-bottom,.sticky-xxl-top{position:-webkit-sticky;position:sticky;z-index:1020}.sticky-xxl-bottom{bottom:0}}.hstack{align-items:center;flex-direction:row}.hstack,.vstack{align-self:stretch;display:flex}.vstack{flex:1 1 auto;flex-direction:column}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){height:1px!important;margin:-1px!important;overflow:hidden!important;padding:0!important;width:1px!important;clip:rect(0,0,0,0)!important;border:0!important;white-space:nowrap!important}.visually-hidden-focusable:not(:focus):not(:focus-within):not(caption),.visually-hidden:not(caption){position:absolute!important}.stretched-link:after{bottom:0;content:"";left:0;position:absolute;right:0;top:0;z-index:1}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{align-self:stretch;background-color:currentcolor;display:inline-block;min-height:1em;opacity:1;width:var(--si-border-width)}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.float-start{float:left!important}.float-end{float:right!important}.float-none{float:none!important}.object-fit-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-none{-o-object-fit:none!important;object-fit:none!important}.opacity-8{opacity:.08!important}.opacity-10{opacity:.1!important}.opacity-15{opacity:.15!important}.opacity-25{opacity:.25!important}.opacity-35{opacity:.35!important}.opacity-40{opacity:.4!important}.opacity-50{opacity:.5!important}.opacity-60{opacity:.6!important}.opacity-70{opacity:.7!important}.opacity-75{opacity:.75!important}.opacity-80{opacity:.8!important}.opacity-90{opacity:.9!important}.opacity-100{opacity:1!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.overflow-visible{overflow:visible!important}.overflow-scroll{overflow:scroll!important}.overflow-x-auto{overflow-x:auto!important}.overflow-x-hidden{overflow-x:hidden!important}.overflow-x-visible{overflow-x:visible!important}.overflow-x-scroll{overflow-x:scroll!important}.overflow-y-auto{overflow-y:auto!important}.overflow-y-hidden{overflow-y:hidden!important}.overflow-y-visible{overflow-y:visible!important}.overflow-y-scroll{overflow-y:scroll!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-grid{display:grid!important}.d-inline-grid{display:inline-grid!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.d-none{display:none!important}.shadow{box-shadow:0 .275rem 1.25rem rgba(11,15,25,.05),0 .25rem .5625rem rgba(11,15,25,.03)!important}.shadow-sm{box-shadow:0 .275rem .75rem -.0625rem rgba(11,15,25,.06),0 .125rem .4rem -.0625rem rgba(11,15,25,.03)!important}.shadow-lg{box-shadow:0 .3rem 1.525rem -.375rem rgba(11,15,25,.1),0 .25rem .8125rem -.125rem rgba(11,15,25,.06)!important}.shadow-none{box-shadow:none!important}.shadow-primary{box-shadow:0 .5rem 1.125rem -.5rem rgba(99,102,241,.9)!important}.shadow-secondary{box-shadow:0 .5rem 1.125rem -.5rem rgba(11,15,25,.15)!important}.shadow-info{box-shadow:0 .5rem 1.125rem -.5rem rgba(76,130,247,.9)!important}.shadow-success{box-shadow:0 .5rem 1.125rem -.5rem rgba(34,197,94,.9)!important}.shadow-warning{box-shadow:0 .5rem 1.125rem -.5rem rgba(255,186,8,.9)!important}.shadow-danger{box-shadow:0 .5rem 1.125rem -.5rem rgba(239,68,68,.9)!important}.shadow-dark{box-shadow:0 .5rem 1.125rem -.5rem rgba(11,15,25,.9)!important}.focus-ring-primary{--si-focus-ring-color:rgba(var(--si-primary-rgb),var(--si-focus-ring-opacity))}.focus-ring-secondary{--si-focus-ring-color:rgba(var(--si-secondary-rgb),var(--si-focus-ring-opacity))}.focus-ring-success{--si-focus-ring-color:rgba(var(--si-success-rgb),var(--si-focus-ring-opacity))}.focus-ring-info{--si-focus-ring-color:rgba(var(--si-info-rgb),var(--si-focus-ring-opacity))}.focus-ring-warning{--si-focus-ring-color:rgba(var(--si-warning-rgb),var(--si-focus-ring-opacity))}.focus-ring-danger{--si-focus-ring-color:rgba(var(--si-danger-rgb),var(--si-focus-ring-opacity))}.focus-ring-light{--si-focus-ring-color:rgba(var(--si-light-rgb),var(--si-focus-ring-opacity))}.focus-ring-dark{--si-focus-ring-color:rgba(var(--si-dark-rgb),var(--si-focus-ring-opacity))}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.top-0{top:0!important}.top-50{top:50%!important}.top-100{top:100%!important}.bottom-0{bottom:0!important}.bottom-50{bottom:50%!important}.bottom-100{bottom:100%!important}.start-0{left:0!important}.start-50{left:50%!important}.start-100{left:100%!important}.end-0{right:0!important}.end-50{right:50%!important}.end-100{right:100%!important}.translate-middle{transform:translate(-50%,-50%)!important}.translate-middle-x{transform:translateX(-50%)!important}.translate-middle-y{transform:translateY(-50%)!important}.border{border:var(--si-border-width) var(--si-border-style) var(--si-border-color)!important}.border-0{border:0!important}.border-top{border-top:var(--si-border-width) var(--si-border-style) var(--si-border-color)!important}.border-top-0{border-top:0!important}.border-end{border-right:var(--si-border-width) var(--si-border-style) var(--si-border-color)!important}.border-end-0{border-right:0!important}.border-bottom{border-bottom:var(--si-border-width) var(--si-border-style) var(--si-border-color)!important}.border-bottom-0{border-bottom:0!important}.border-start{border-left:var(--si-border-width) var(--si-border-style) var(--si-border-color)!important}.border-start-0{border-left:0!important}.border-primary{border-color:rgba(99,102,241,.35)!important}.border-success{border-color:rgba(34,197,94,.35)!important}.border-info{border-color:rgba(76,130,247,.35)!important}.border-warning{border-color:rgba(255,186,8,.35)!important}.border-danger{border-color:rgba(239,68,68,.35)!important}.border-light{border-color:hsla(0,0%,100%,.14)!important}.border-dark{border-color:rgba(11,15,25,.35)!important}.border-white{border-color:hsla(0,0%,100%,.35)!important}.border-primary-subtle{border-color:var(--si-primary-border-subtle)!important}.border-secondary-subtle{border-color:var(--si-secondary-border-subtle)!important}.border-success-subtle{border-color:var(--si-success-border-subtle)!important}.border-info-subtle{border-color:var(--si-info-border-subtle)!important}.border-warning-subtle{border-color:var(--si-warning-border-subtle)!important}.border-danger-subtle{border-color:var(--si-danger-border-subtle)!important}.border-light-subtle{border-color:var(--si-light-border-subtle)!important}.border-dark-subtle{border-color:var(--si-dark-border-subtle)!important}.border-1{border-width:1px!important}.border-2{border-width:2px!important}.border-3{border-width:3px!important}.border-4{border-width:4px!important}.border-5{border-width:5px!important}.border-opacity-10{--si-border-opacity:0.1}.border-opacity-25{--si-border-opacity:0.25}.border-opacity-50{--si-border-opacity:0.5}.border-opacity-75{--si-border-opacity:0.75}.border-opacity-100{--si-border-opacity:1}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.w-1{width:1px!important}.w-2{width:2px!important}.w-3{width:3px!important}.w-33{width:33.33%!important}.mw-100{max-width:100%!important}.vw-100{width:100vw!important}.min-vw-100{min-width:100vw!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.h-1{height:1px!important}.mh-100{max-height:100%!important}.vh-100{height:100vh!important}.min-vh-100{min-height:100vh!important}.flex-fill{flex:1 1 auto!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.justify-content-evenly{justify-content:space-evenly!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-last{order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:1.5rem!important}.m-5{margin:3rem!important}.m-auto{margin:auto!important}.mx-0{margin-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-bottom:0!important;margin-top:0!important}.my-1{margin-bottom:.25rem!important;margin-top:.25rem!important}.my-2{margin-bottom:.5rem!important;margin-top:.5rem!important}.my-3{margin-bottom:1rem!important;margin-top:1rem!important}.my-4{margin-bottom:1.5rem!important;margin-top:1.5rem!important}.my-5{margin-bottom:3rem!important;margin-top:3rem!important}.my-auto{margin-bottom:auto!important;margin-top:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:3rem!important}.mt-auto{margin-top:auto!important}.me-0{margin-right:0!important}.me-1{margin-right:.25rem!important}.me-2{margin-right:.5rem!important}.me-3{margin-right:1rem!important}.me-4{margin-right:1.5rem!important}.me-5{margin-right:3rem!important}.me-auto{margin-right:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:3rem!important}.mb-auto{margin-bottom:auto!important}.ms-0{margin-left:0!important}.ms-1{margin-left:.25rem!important}.ms-2{margin-left:.5rem!important}.ms-3{margin-left:1rem!important}.ms-4{margin-left:1.5rem!important}.ms-5{margin-left:3rem!important}.ms-auto{margin-left:auto!important}.m-n1{margin:-.25rem!important}.m-n2{margin:-.5rem!important}.m-n3{margin:-1rem!important}.m-n4{margin:-1.5rem!important}.m-n5{margin:-3rem!important}.mx-n1{margin-left:-.25rem!important;margin-right:-.25rem!important}.mx-n2{margin-left:-.5rem!important;margin-right:-.5rem!important}.mx-n3{margin-left:-1rem!important;margin-right:-1rem!important}.mx-n4{margin-left:-1.5rem!important;margin-right:-1.5rem!important}.mx-n5{margin-left:-3rem!important;margin-right:-3rem!important}.my-n1{margin-bottom:-.25rem!important;margin-top:-.25rem!important}.my-n2{margin-bottom:-.5rem!important;margin-top:-.5rem!important}.my-n3{margin-bottom:-1rem!important;margin-top:-1rem!important}.my-n4{margin-bottom:-1.5rem!important;margin-top:-1.5rem!important}.my-n5{margin-bottom:-3rem!important;margin-top:-3rem!important}.mt-n1{margin-top:-.25rem!important}.mt-n2{margin-top:-.5rem!important}.mt-n3{margin-top:-1rem!important}.mt-n4{margin-top:-1.5rem!important}.mt-n5{margin-top:-3rem!important}.me-n1{margin-right:-.25rem!important}.me-n2{margin-right:-.5rem!important}.me-n3{margin-right:-1rem!important}.me-n4{margin-right:-1.5rem!important}.me-n5{margin-right:-3rem!important}.mb-n1{margin-bottom:-.25rem!important}.mb-n2{margin-bottom:-.5rem!important}.mb-n3{margin-bottom:-1rem!important}.mb-n4{margin-bottom:-1.5rem!important}.mb-n5{margin-bottom:-3rem!important}.ms-n1{margin-left:-.25rem!important}.ms-n2{margin-left:-.5rem!important}.ms-n3{margin-left:-1rem!important}.ms-n4{margin-left:-1.5rem!important}.ms-n5{margin-left:-3rem!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}.p-5{padding:3rem!important}.px-0{padding-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-bottom:0!important;padding-top:0!important}.py-1{padding-bottom:.25rem!important;padding-top:.25rem!important}.py-2{padding-bottom:.5rem!important;padding-top:.5rem!important}.py-3{padding-bottom:1rem!important;padding-top:1rem!important}.py-4{padding-bottom:1.5rem!important;padding-top:1.5rem!important}.py-5{padding-bottom:3rem!important;padding-top:3rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:1.5rem!important}.pt-5{padding-top:3rem!important}.pe-0{padding-right:0!important}.pe-1{padding-right:.25rem!important}.pe-2{padding-right:.5rem!important}.pe-3{padding-right:1rem!important}.pe-4{padding-right:1.5rem!important}.pe-5{padding-right:3rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:1.5rem!important}.pb-5{padding-bottom:3rem!important}.ps-0{padding-left:0!important}.ps-1{padding-left:.25rem!important}.ps-2{padding-left:.5rem!important}.ps-3{padding-left:1rem!important}.ps-4{padding-left:1.5rem!important}.ps-5{padding-left:3rem!important}.gap-0{gap:0!important}.gap-1{gap:.25rem!important}.gap-2{gap:.5rem!important}.gap-3{gap:1rem!important}.gap-4{gap:1.5rem!important}.gap-5{gap:3rem!important}.row-gap-0{row-gap:0!important}.row-gap-1{row-gap:.25rem!important}.row-gap-2{row-gap:.5rem!important}.row-gap-3{row-gap:1rem!important}.row-gap-4{row-gap:1.5rem!important}.row-gap-5{row-gap:3rem!important}.column-gap-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-1{-moz-column-gap:.25rem!important;column-gap:.25rem!important}.column-gap-2{-moz-column-gap:.5rem!important;column-gap:.5rem!important}.column-gap-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.font-monospace{font-family:var(--si-font-monospace)!important}.fs-1{font-size:calc(1.375rem + 1.5vw)!important}.fs-2{font-size:calc(1.325rem + .9vw)!important}.fs-3{font-size:calc(1.3rem + .6vw)!important}.fs-4{font-size:calc(1.275rem + .3vw)!important}.fs-5{font-size:1.25rem!important}.fs-6{font-size:1rem!important}.fs-xl{font-size:1.25rem!important}.fs-lg{font-size:1.125rem!important}.fs-base{font-size:1rem!important}.fs-sm{font-size:.875rem!important}.fs-xs{font-size:.75rem!important}.fst-italic{font-style:italic!important}.fst-normal{font-style:normal!important}.fw-lighter{font-weight:lighter!important}.fw-light{font-weight:300!important}.fw-normal{font-weight:400!important}.fw-medium{font-weight:600!important}.fw-semibold{font-weight:700!important}.fw-bold{font-weight:800!important}.fw-bolder{font-weight:bolder!important}.fw-500{font-weight:500!important}.lh-1{line-height:1!important}.lh-sm{line-height:1.4!important}.lh-base{line-height:1.6!important}.lh-lg{line-height:1.8!important}.text-start{text-align:left!important}.text-end{text-align:right!important}.text-center{text-align:center!important}.text-decoration-none{text-decoration:none!important}.text-decoration-underline{text-decoration:underline!important}.text-decoration-line-through{text-decoration:line-through!important}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-break{word-wrap:break-word!important;word-break:break-word!important}.text-primary{color:#6366f1!important}.text-secondary{color:#eff2fc!important}.text-success{color:#22c55e!important}.text-info{color:#4c82f7!important}.text-warning{color:#ffba08!important}.text-danger{color:#ef4444!important}.text-light{color:#fff!important}.text-dark{color:#0b0f19!important}.text-white{color:#fff!important}.text-body{color:var(--si-body-color)!important}.text-muted{color:var(--si-gray-600)!important}.text-nav{color:#33354d!important}.text-border{color:var(--si-border-color)!important}.text-reset{color:inherit!important}.text-opacity-25{--si-text-opacity:0.25}.text-opacity-50{--si-text-opacity:0.5}.text-opacity-75{--si-text-opacity:0.75}.text-opacity-100{--si-text-opacity:1}.text-primary-emphasis{color:var(--si-primary-text-emphasis)!important}.text-secondary-emphasis{color:var(--si-secondary-text-emphasis)!important}.text-success-emphasis{color:var(--si-success-text-emphasis)!important}.text-info-emphasis{color:var(--si-info-text-emphasis)!important}.text-warning-emphasis{color:var(--si-warning-text-emphasis)!important}.text-danger-emphasis{color:var(--si-danger-text-emphasis)!important}.text-light-emphasis{color:var(--si-light-text-emphasis)!important}.text-dark-emphasis{color:var(--si-dark-text-emphasis)!important}.link-opacity-10,.link-opacity-10-hover:hover{--si-link-opacity:0.1}.link-opacity-25,.link-opacity-25-hover:hover{--si-link-opacity:0.25}.link-opacity-50,.link-opacity-50-hover:hover{--si-link-opacity:0.5}.link-opacity-75,.link-opacity-75-hover:hover{--si-link-opacity:0.75}.link-opacity-100,.link-opacity-100-hover:hover{--si-link-opacity:1}.link-offset-1,.link-offset-1-hover:hover{text-underline-offset:.125em!important}.link-offset-2,.link-offset-2-hover:hover{text-underline-offset:.25em!important}.link-offset-3,.link-offset-3-hover:hover{text-underline-offset:.375em!important}.link-underline-primary{--si-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--si-primary-rgb),var(--si-link-underline-opacity))!important;text-decoration-color:rgba(var(--si-primary-rgb),var(--si-link-underline-opacity))!important}.link-underline-secondary{--si-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--si-secondary-rgb),var(--si-link-underline-opacity))!important;text-decoration-color:rgba(var(--si-secondary-rgb),var(--si-link-underline-opacity))!important}.link-underline-success{--si-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--si-success-rgb),var(--si-link-underline-opacity))!important;text-decoration-color:rgba(var(--si-success-rgb),var(--si-link-underline-opacity))!important}.link-underline-info{--si-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--si-info-rgb),var(--si-link-underline-opacity))!important;text-decoration-color:rgba(var(--si-info-rgb),var(--si-link-underline-opacity))!important}.link-underline-warning{--si-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--si-warning-rgb),var(--si-link-underline-opacity))!important;text-decoration-color:rgba(var(--si-warning-rgb),var(--si-link-underline-opacity))!important}.link-underline-danger{--si-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--si-danger-rgb),var(--si-link-underline-opacity))!important;text-decoration-color:rgba(var(--si-danger-rgb),var(--si-link-underline-opacity))!important}.link-underline-light{--si-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--si-light-rgb),var(--si-link-underline-opacity))!important;text-decoration-color:rgba(var(--si-light-rgb),var(--si-link-underline-opacity))!important}.link-underline-dark{--si-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--si-dark-rgb),var(--si-link-underline-opacity))!important;text-decoration-color:rgba(var(--si-dark-rgb),var(--si-link-underline-opacity))!important}.link-underline{--si-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--si-link-color-rgb),var(--si-link-underline-opacity,1))!important;text-decoration-color:rgba(var(--si-link-color-rgb),var(--si-link-underline-opacity,1))!important}.link-underline-opacity-0,.link-underline-opacity-0-hover:hover{--si-link-underline-opacity:0}.link-underline-opacity-10,.link-underline-opacity-10-hover:hover{--si-link-underline-opacity:0.1}.link-underline-opacity-25,.link-underline-opacity-25-hover:hover{--si-link-underline-opacity:0.25}.link-underline-opacity-50,.link-underline-opacity-50-hover:hover{--si-link-underline-opacity:0.5}.link-underline-opacity-75,.link-underline-opacity-75-hover:hover{--si-link-underline-opacity:0.75}.link-underline-opacity-100,.link-underline-opacity-100-hover:hover{--si-link-underline-opacity:1}.bg-primary{--si-bg-opacity:1;background-color:rgba(var(--si-primary-rgb),var(--si-bg-opacity))!important}.bg-secondary{--si-bg-opacity:1;background-color:#f3f6ff!important}.bg-success{--si-bg-opacity:1;background-color:rgba(var(--si-success-rgb),var(--si-bg-opacity))!important}.bg-info{--si-bg-opacity:1;background-color:rgba(var(--si-info-rgb),var(--si-bg-opacity))!important}.bg-warning{--si-bg-opacity:1;background-color:rgba(var(--si-warning-rgb),var(--si-bg-opacity))!important}.bg-danger{--si-bg-opacity:1;background-color:rgba(var(--si-danger-rgb),var(--si-bg-opacity))!important}.bg-light{--si-bg-opacity:1;background-color:rgba(var(--si-light-rgb),var(--si-bg-opacity))!important}.bg-dark{--si-bg-opacity:1;background-color:#0b0f19!important}.bg-black{--si-bg-opacity:1;background-color:#000!important}.bg-white{--si-bg-opacity:1;background-color:rgba(var(--si-white-rgb),var(--si-bg-opacity))!important}.bg-body{--si-bg-opacity:1;background-color:rgba(var(--si-body-bg-rgb),var(--si-bg-opacity))!important}.bg-transparent{--si-bg-opacity:1;background-color:transparent!important}.bg-body-secondary{--si-bg-opacity:1;background-color:rgba(var(--si-secondary-bg-rgb),var(--si-bg-opacity))!important}.bg-body-tertiary{--si-bg-opacity:1;background-color:rgba(var(--si-tertiary-bg-rgb),var(--si-bg-opacity))!important}.bg-none{--si-bg-opacity:1;background-color:transparent!important}.bg-opacity-10{--si-bg-opacity:0.1}.bg-opacity-25{--si-bg-opacity:0.25}.bg-opacity-50{--si-bg-opacity:0.5}.bg-opacity-75{--si-bg-opacity:0.75}.bg-opacity-100{--si-bg-opacity:1}.bg-primary-subtle{background-color:var(--si-primary-bg-subtle)!important}.bg-secondary-subtle{background-color:var(--si-secondary-bg-subtle)!important}.bg-success-subtle{background-color:var(--si-success-bg-subtle)!important}.bg-info-subtle{background-color:var(--si-info-bg-subtle)!important}.bg-warning-subtle{background-color:var(--si-warning-bg-subtle)!important}.bg-danger-subtle{background-color:var(--si-danger-bg-subtle)!important}.bg-light-subtle{background-color:var(--si-light-bg-subtle)!important}.bg-dark-subtle{background-color:var(--si-dark-bg-subtle)!important}.bg-gradient{background-image:linear-gradient(180deg,hsla(0,0%,100%,.18),hsla(0,0%,100%,0))!important}.user-select-all{-webkit-user-select:all!important;-moz-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;-moz-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important}.pe-none{pointer-events:none!important}.pe-auto{pointer-events:auto!important}.rounded{border-radius:var(--si-border-radius)!important}.rounded-0{border-radius:0!important}.rounded-1{border-radius:var(--si-border-radius-sm)!important}.rounded-2{border-radius:var(--si-border-radius)!important}.rounded-3{border-radius:var(--si-border-radius-lg)!important}.rounded-4{border-radius:var(--si-border-radius-xl)!important}.rounded-5{border-radius:var(--si-border-radius-xxl)!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:var(--si-border-radius-pill)!important}.rounded-top{border-top-left-radius:var(--si-border-radius)!important;border-top-right-radius:var(--si-border-radius)!important}.rounded-top-0{border-top-left-radius:0!important;border-top-right-radius:0!important}.rounded-top-1{border-top-left-radius:var(--si-border-radius-sm)!important;border-top-right-radius:var(--si-border-radius-sm)!important}.rounded-top-2{border-top-left-radius:var(--si-border-radius)!important;border-top-right-radius:var(--si-border-radius)!important}.rounded-top-3{border-top-left-radius:var(--si-border-radius-lg)!important;border-top-right-radius:var(--si-border-radius-lg)!important}.rounded-top-4{border-top-left-radius:var(--si-border-radius-xl)!important;border-top-right-radius:var(--si-border-radius-xl)!important}.rounded-top-5{border-top-left-radius:var(--si-border-radius-xxl)!important;border-top-right-radius:var(--si-border-radius-xxl)!important}.rounded-top-circle{border-top-left-radius:50%!important;border-top-right-radius:50%!important}.rounded-top-pill{border-top-left-radius:var(--si-border-radius-pill)!important;border-top-right-radius:var(--si-border-radius-pill)!important}.rounded-end{border-bottom-right-radius:var(--si-border-radius)!important;border-top-right-radius:var(--si-border-radius)!important}.rounded-end-0{border-bottom-right-radius:0!important;border-top-right-radius:0!important}.rounded-end-1{border-bottom-right-radius:var(--si-border-radius-sm)!important;border-top-right-radius:var(--si-border-radius-sm)!important}.rounded-end-2{border-bottom-right-radius:var(--si-border-radius)!important;border-top-right-radius:var(--si-border-radius)!important}.rounded-end-3{border-bottom-right-radius:var(--si-border-radius-lg)!important;border-top-right-radius:var(--si-border-radius-lg)!important}.rounded-end-4{border-bottom-right-radius:var(--si-border-radius-xl)!important;border-top-right-radius:var(--si-border-radius-xl)!important}.rounded-end-5{border-bottom-right-radius:var(--si-border-radius-xxl)!important;border-top-right-radius:var(--si-border-radius-xxl)!important}.rounded-end-circle{border-bottom-right-radius:50%!important;border-top-right-radius:50%!important}.rounded-end-pill{border-bottom-right-radius:var(--si-border-radius-pill)!important;border-top-right-radius:var(--si-border-radius-pill)!important}.rounded-bottom{border-bottom-left-radius:var(--si-border-radius)!important;border-bottom-right-radius:var(--si-border-radius)!important}.rounded-bottom-0{border-bottom-left-radius:0!important;border-bottom-right-radius:0!important}.rounded-bottom-1{border-bottom-left-radius:var(--si-border-radius-sm)!important;border-bottom-right-radius:var(--si-border-radius-sm)!important}.rounded-bottom-2{border-bottom-left-radius:var(--si-border-radius)!important;border-bottom-right-radius:var(--si-border-radius)!important}.rounded-bottom-3{border-bottom-left-radius:var(--si-border-radius-lg)!important;border-bottom-right-radius:var(--si-border-radius-lg)!important}.rounded-bottom-4{border-bottom-left-radius:var(--si-border-radius-xl)!important;border-bottom-right-radius:var(--si-border-radius-xl)!important}.rounded-bottom-5{border-bottom-left-radius:var(--si-border-radius-xxl)!important;border-bottom-right-radius:var(--si-border-radius-xxl)!important}.rounded-bottom-circle{border-bottom-left-radius:50%!important;border-bottom-right-radius:50%!important}.rounded-bottom-pill{border-bottom-left-radius:var(--si-border-radius-pill)!important;border-bottom-right-radius:var(--si-border-radius-pill)!important}.rounded-start{border-bottom-left-radius:var(--si-border-radius)!important;border-top-left-radius:var(--si-border-radius)!important}.rounded-start-0{border-bottom-left-radius:0!important;border-top-left-radius:0!important}.rounded-start-1{border-bottom-left-radius:var(--si-border-radius-sm)!important;border-top-left-radius:var(--si-border-radius-sm)!important}.rounded-start-2{border-bottom-left-radius:var(--si-border-radius)!important;border-top-left-radius:var(--si-border-radius)!important}.rounded-start-3{border-bottom-left-radius:var(--si-border-radius-lg)!important;border-top-left-radius:var(--si-border-radius-lg)!important}.rounded-start-4{border-bottom-left-radius:var(--si-border-radius-xl)!important;border-top-left-radius:var(--si-border-radius-xl)!important}.rounded-start-5{border-bottom-left-radius:var(--si-border-radius-xxl)!important;border-top-left-radius:var(--si-border-radius-xxl)!important}.rounded-start-circle{border-bottom-left-radius:50%!important;border-top-left-radius:50%!important}.rounded-start-pill{border-bottom-left-radius:var(--si-border-radius-pill)!important;border-top-left-radius:var(--si-border-radius-pill)!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}.zindex-1{z-index:1!important}.zindex-2{z-index:2!important}.zindex-3{z-index:3!important}.zindex-4{z-index:4!important}.zindex-5{z-index:5!important}.zindex-6{z-index:6!important}.bg-faded-primary{background-color:rgba(99,102,241,.12)!important}.bg-faded-success{background-color:rgba(34,197,94,.12)!important}.bg-faded-info{background-color:rgba(76,130,247,.12)!important}.bg-faded-warning{background-color:rgba(255,186,8,.12)!important}.bg-faded-danger{background-color:rgba(239,68,68,.12)!important}.bg-faded-light{background-color:hsla(0,0%,100%,.05)!important}.bg-faded-dark{background-color:rgba(11,15,25,.12)!important}.bg-size-cover{background-size:cover!important}.bg-size-contain{background-size:contain!important}.bg-position-center{background-position:50%!important}.bg-position-center-y{background-position:0!important}.bg-position-center-x{background-position:top!important}.bg-position-top-end{background-position:100% 0!important}.bg-position-top-start{background-position:0 0!important}.bg-position-top-center{background-position:top!important}.bg-position-center-end{background-position:100%!important}.bg-position-center-start{background-position:0!important}.bg-position-center-bottom{background-position:bottom!important}.bg-position-bottom-end{background-position:100% 100%!important}.bg-position-bottom-start{background-position:0 100%!important}.bg-position-bottom-center{background-position:bottom!important}.bg-repeat-0{background-repeat:no-repeat!important}.bg-repeat-x{background-repeat:repeat-x!important}.bg-repeat-y{background-repeat:repeat-y!important}.bg-attachment-fixed{background-attachment:fixed!important}.bg-gradient-primary{background:linear-gradient(90deg,#6366f1,#8b5cf6 50%,#d946ef)!important}.bg-gradient-primary-translucent{background:linear-gradient(180deg,rgba(99,102,241,0),rgba(99,102,241,.6) 120%)!important}.bg-gradient-dark-translucent{background:linear-gradient(180deg,rgba(11,15,25,.58),rgba(11,15,25,.78))!important}.bg-image-none{background-image:none!important}.text-shadow{text-shadow:0 .0625rem #0b0f19!important}.table-layout-fixed{table-layout:fixed!important}@media (min-width:500px){.float-sm-start{float:left!important}.float-sm-end{float:right!important}.float-sm-none{float:none!important}.object-fit-sm-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-sm-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-sm-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-sm-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-sm-none{-o-object-fit:none!important;object-fit:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-grid{display:grid!important}.d-sm-inline-grid{display:inline-grid!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}.d-sm-none{display:none!important}.position-sm-static{position:static!important}.position-sm-relative{position:relative!important}.position-sm-absolute{position:absolute!important}.position-sm-fixed{position:fixed!important}.position-sm-sticky{position:-webkit-sticky!important;position:sticky!important}.translate-middle-sm{transform:translate(-50%,-50%)!important}.translate-middle-sm-x{transform:translateX(-50%)!important}.translate-middle-sm-y{transform:translateY(-50%)!important}.border-sm{border:var(--si-border-width) var(--si-border-style) var(--si-border-color)!important}.border-sm-0{border:0!important}.border-top-sm{border-top:var(--si-border-width) var(--si-border-style) var(--si-border-color)!important}.border-top-sm-0{border-top:0!important}.border-end-sm{border-right:var(--si-border-width) var(--si-border-style) var(--si-border-color)!important}.border-end-sm-0{border-right:0!important}.border-bottom-sm{border-bottom:var(--si-border-width) var(--si-border-style) var(--si-border-color)!important}.border-bottom-sm-0{border-bottom:0!important}.border-start-sm{border-left:var(--si-border-width) var(--si-border-style) var(--si-border-color)!important}.border-start-sm-0{border-left:0!important}.w-sm-25{width:25%!important}.w-sm-50{width:50%!important}.w-sm-75{width:75%!important}.w-sm-100{width:100%!important}.w-sm-auto{width:auto!important}.w-sm-1{width:1px!important}.w-sm-2{width:2px!important}.w-sm-3{width:3px!important}.w-sm-33{width:33.33%!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-bottom:0!important;margin-top:0!important}.my-sm-1{margin-bottom:.25rem!important;margin-top:.25rem!important}.my-sm-2{margin-bottom:.5rem!important;margin-top:.5rem!important}.my-sm-3{margin-bottom:1rem!important;margin-top:1rem!important}.my-sm-4{margin-bottom:1.5rem!important;margin-top:1.5rem!important}.my-sm-5{margin-bottom:3rem!important;margin-top:3rem!important}.my-sm-auto{margin-bottom:auto!important;margin-top:auto!important}.mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:.25rem!important}.mt-sm-2{margin-top:.5rem!important}.mt-sm-3{margin-top:1rem!important}.mt-sm-4{margin-top:1.5rem!important}.mt-sm-5{margin-top:3rem!important}.mt-sm-auto{margin-top:auto!important}.me-sm-0{margin-right:0!important}.me-sm-1{margin-right:.25rem!important}.me-sm-2{margin-right:.5rem!important}.me-sm-3{margin-right:1rem!important}.me-sm-4{margin-right:1.5rem!important}.me-sm-5{margin-right:3rem!important}.me-sm-auto{margin-right:auto!important}.mb-sm-0{margin-bottom:0!important}.mb-sm-1{margin-bottom:.25rem!important}.mb-sm-2{margin-bottom:.5rem!important}.mb-sm-3{margin-bottom:1rem!important}.mb-sm-4{margin-bottom:1.5rem!important}.mb-sm-5{margin-bottom:3rem!important}.mb-sm-auto{margin-bottom:auto!important}.ms-sm-0{margin-left:0!important}.ms-sm-1{margin-left:.25rem!important}.ms-sm-2{margin-left:.5rem!important}.ms-sm-3{margin-left:1rem!important}.ms-sm-4{margin-left:1.5rem!important}.ms-sm-5{margin-left:3rem!important}.ms-sm-auto{margin-left:auto!important}.m-sm-n1{margin:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.m-sm-n3{margin:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mx-sm-n1{margin-left:-.25rem!important;margin-right:-.25rem!important}.mx-sm-n2{margin-left:-.5rem!important;margin-right:-.5rem!important}.mx-sm-n3{margin-left:-1rem!important;margin-right:-1rem!important}.mx-sm-n4{margin-left:-1.5rem!important;margin-right:-1.5rem!important}.mx-sm-n5{margin-left:-3rem!important;margin-right:-3rem!important}.my-sm-n1{margin-bottom:-.25rem!important;margin-top:-.25rem!important}.my-sm-n2{margin-bottom:-.5rem!important;margin-top:-.5rem!important}.my-sm-n3{margin-bottom:-1rem!important;margin-top:-1rem!important}.my-sm-n4{margin-bottom:-1.5rem!important;margin-top:-1.5rem!important}.my-sm-n5{margin-bottom:-3rem!important;margin-top:-3rem!important}.mt-sm-n1{margin-top:-.25rem!important}.mt-sm-n2{margin-top:-.5rem!important}.mt-sm-n3{margin-top:-1rem!important}.mt-sm-n4{margin-top:-1.5rem!important}.mt-sm-n5{margin-top:-3rem!important}.me-sm-n1{margin-right:-.25rem!important}.me-sm-n2{margin-right:-.5rem!important}.me-sm-n3{margin-right:-1rem!important}.me-sm-n4{margin-right:-1.5rem!important}.me-sm-n5{margin-right:-3rem!important}.mb-sm-n1{margin-bottom:-.25rem!important}.mb-sm-n2{margin-bottom:-.5rem!important}.mb-sm-n3{margin-bottom:-1rem!important}.mb-sm-n4{margin-bottom:-1.5rem!important}.mb-sm-n5{margin-bottom:-3rem!important}.ms-sm-n1{margin-left:-.25rem!important}.ms-sm-n2{margin-left:-.5rem!important}.ms-sm-n3{margin-left:-1rem!important}.ms-sm-n4{margin-left:-1.5rem!important}.ms-sm-n5{margin-left:-3rem!important}.p-sm-0{padding:0!important}.p-sm-1{padding:.25rem!important}.p-sm-2{padding:.5rem!important}.p-sm-3{padding:1rem!important}.p-sm-4{padding:1.5rem!important}.p-sm-5{padding:3rem!important}.px-sm-0{padding-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-bottom:0!important;padding-top:0!important}.py-sm-1{padding-bottom:.25rem!important;padding-top:.25rem!important}.py-sm-2{padding-bottom:.5rem!important;padding-top:.5rem!important}.py-sm-3{padding-bottom:1rem!important;padding-top:1rem!important}.py-sm-4{padding-bottom:1.5rem!important;padding-top:1.5rem!important}.py-sm-5{padding-bottom:3rem!important;padding-top:3rem!important}.pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:.25rem!important}.pt-sm-2{padding-top:.5rem!important}.pt-sm-3{padding-top:1rem!important}.pt-sm-4{padding-top:1.5rem!important}.pt-sm-5{padding-top:3rem!important}.pe-sm-0{padding-right:0!important}.pe-sm-1{padding-right:.25rem!important}.pe-sm-2{padding-right:.5rem!important}.pe-sm-3{padding-right:1rem!important}.pe-sm-4{padding-right:1.5rem!important}.pe-sm-5{padding-right:3rem!important}.pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:.25rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pb-sm-3{padding-bottom:1rem!important}.pb-sm-4{padding-bottom:1.5rem!important}.pb-sm-5{padding-bottom:3rem!important}.ps-sm-0{padding-left:0!important}.ps-sm-1{padding-left:.25rem!important}.ps-sm-2{padding-left:.5rem!important}.ps-sm-3{padding-left:1rem!important}.ps-sm-4{padding-left:1.5rem!important}.ps-sm-5{padding-left:3rem!important}.gap-sm-0{gap:0!important}.gap-sm-1{gap:.25rem!important}.gap-sm-2{gap:.5rem!important}.gap-sm-3{gap:1rem!important}.gap-sm-4{gap:1.5rem!important}.gap-sm-5{gap:3rem!important}.row-gap-sm-0{row-gap:0!important}.row-gap-sm-1{row-gap:.25rem!important}.row-gap-sm-2{row-gap:.5rem!important}.row-gap-sm-3{row-gap:1rem!important}.row-gap-sm-4{row-gap:1.5rem!important}.row-gap-sm-5{row-gap:3rem!important}.column-gap-sm-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-sm-1{-moz-column-gap:.25rem!important;column-gap:.25rem!important}.column-gap-sm-2{-moz-column-gap:.5rem!important;column-gap:.5rem!important}.column-gap-sm-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-sm-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-sm-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.text-sm-start{text-align:left!important}.text-sm-end{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.float-md-start{float:left!important}.float-md-end{float:right!important}.float-md-none{float:none!important}.object-fit-md-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-md-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-md-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-md-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-md-none{-o-object-fit:none!important;object-fit:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-grid{display:grid!important}.d-md-inline-grid{display:inline-grid!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}.d-md-none{display:none!important}.position-md-static{position:static!important}.position-md-relative{position:relative!important}.position-md-absolute{position:absolute!important}.position-md-fixed{position:fixed!important}.position-md-sticky{position:-webkit-sticky!important;position:sticky!important}.translate-middle-md{transform:translate(-50%,-50%)!important}.translate-middle-md-x{transform:translateX(-50%)!important}.translate-middle-md-y{transform:translateY(-50%)!important}.border-md{border:var(--si-border-width) var(--si-border-style) var(--si-border-color)!important}.border-md-0{border:0!important}.border-top-md{border-top:var(--si-border-width) var(--si-border-style) var(--si-border-color)!important}.border-top-md-0{border-top:0!important}.border-end-md{border-right:var(--si-border-width) var(--si-border-style) var(--si-border-color)!important}.border-end-md-0{border-right:0!important}.border-bottom-md{border-bottom:var(--si-border-width) var(--si-border-style) var(--si-border-color)!important}.border-bottom-md-0{border-bottom:0!important}.border-start-md{border-left:var(--si-border-width) var(--si-border-style) var(--si-border-color)!important}.border-start-md-0{border-left:0!important}.w-md-25{width:25%!important}.w-md-50{width:50%!important}.w-md-75{width:75%!important}.w-md-100{width:100%!important}.w-md-auto{width:auto!important}.w-md-1{width:1px!important}.w-md-2{width:2px!important}.w-md-3{width:3px!important}.w-md-33{width:33.33%!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-bottom:0!important;margin-top:0!important}.my-md-1{margin-bottom:.25rem!important;margin-top:.25rem!important}.my-md-2{margin-bottom:.5rem!important;margin-top:.5rem!important}.my-md-3{margin-bottom:1rem!important;margin-top:1rem!important}.my-md-4{margin-bottom:1.5rem!important;margin-top:1.5rem!important}.my-md-5{margin-bottom:3rem!important;margin-top:3rem!important}.my-md-auto{margin-bottom:auto!important;margin-top:auto!important}.mt-md-0{margin-top:0!important}.mt-md-1{margin-top:.25rem!important}.mt-md-2{margin-top:.5rem!important}.mt-md-3{margin-top:1rem!important}.mt-md-4{margin-top:1.5rem!important}.mt-md-5{margin-top:3rem!important}.mt-md-auto{margin-top:auto!important}.me-md-0{margin-right:0!important}.me-md-1{margin-right:.25rem!important}.me-md-2{margin-right:.5rem!important}.me-md-3{margin-right:1rem!important}.me-md-4{margin-right:1.5rem!important}.me-md-5{margin-right:3rem!important}.me-md-auto{margin-right:auto!important}.mb-md-0{margin-bottom:0!important}.mb-md-1{margin-bottom:.25rem!important}.mb-md-2{margin-bottom:.5rem!important}.mb-md-3{margin-bottom:1rem!important}.mb-md-4{margin-bottom:1.5rem!important}.mb-md-5{margin-bottom:3rem!important}.mb-md-auto{margin-bottom:auto!important}.ms-md-0{margin-left:0!important}.ms-md-1{margin-left:.25rem!important}.ms-md-2{margin-left:.5rem!important}.ms-md-3{margin-left:1rem!important}.ms-md-4{margin-left:1.5rem!important}.ms-md-5{margin-left:3rem!important}.ms-md-auto{margin-left:auto!important}.m-md-n1{margin:-.25rem!important}.m-md-n2{margin:-.5rem!important}.m-md-n3{margin:-1rem!important}.m-md-n4{margin:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mx-md-n1{margin-left:-.25rem!important;margin-right:-.25rem!important}.mx-md-n2{margin-left:-.5rem!important;margin-right:-.5rem!important}.mx-md-n3{margin-left:-1rem!important;margin-right:-1rem!important}.mx-md-n4{margin-left:-1.5rem!important;margin-right:-1.5rem!important}.mx-md-n5{margin-left:-3rem!important;margin-right:-3rem!important}.my-md-n1{margin-bottom:-.25rem!important;margin-top:-.25rem!important}.my-md-n2{margin-bottom:-.5rem!important;margin-top:-.5rem!important}.my-md-n3{margin-bottom:-1rem!important;margin-top:-1rem!important}.my-md-n4{margin-bottom:-1.5rem!important;margin-top:-1.5rem!important}.my-md-n5{margin-bottom:-3rem!important;margin-top:-3rem!important}.mt-md-n1{margin-top:-.25rem!important}.mt-md-n2{margin-top:-.5rem!important}.mt-md-n3{margin-top:-1rem!important}.mt-md-n4{margin-top:-1.5rem!important}.mt-md-n5{margin-top:-3rem!important}.me-md-n1{margin-right:-.25rem!important}.me-md-n2{margin-right:-.5rem!important}.me-md-n3{margin-right:-1rem!important}.me-md-n4{margin-right:-1.5rem!important}.me-md-n5{margin-right:-3rem!important}.mb-md-n1{margin-bottom:-.25rem!important}.mb-md-n2{margin-bottom:-.5rem!important}.mb-md-n3{margin-bottom:-1rem!important}.mb-md-n4{margin-bottom:-1.5rem!important}.mb-md-n5{margin-bottom:-3rem!important}.ms-md-n1{margin-left:-.25rem!important}.ms-md-n2{margin-left:-.5rem!important}.ms-md-n3{margin-left:-1rem!important}.ms-md-n4{margin-left:-1.5rem!important}.ms-md-n5{margin-left:-3rem!important}.p-md-0{padding:0!important}.p-md-1{padding:.25rem!important}.p-md-2{padding:.5rem!important}.p-md-3{padding:1rem!important}.p-md-4{padding:1.5rem!important}.p-md-5{padding:3rem!important}.px-md-0{padding-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-bottom:0!important;padding-top:0!important}.py-md-1{padding-bottom:.25rem!important;padding-top:.25rem!important}.py-md-2{padding-bottom:.5rem!important;padding-top:.5rem!important}.py-md-3{padding-bottom:1rem!important;padding-top:1rem!important}.py-md-4{padding-bottom:1.5rem!important;padding-top:1.5rem!important}.py-md-5{padding-bottom:3rem!important;padding-top:3rem!important}.pt-md-0{padding-top:0!important}.pt-md-1{padding-top:.25rem!important}.pt-md-2{padding-top:.5rem!important}.pt-md-3{padding-top:1rem!important}.pt-md-4{padding-top:1.5rem!important}.pt-md-5{padding-top:3rem!important}.pe-md-0{padding-right:0!important}.pe-md-1{padding-right:.25rem!important}.pe-md-2{padding-right:.5rem!important}.pe-md-3{padding-right:1rem!important}.pe-md-4{padding-right:1.5rem!important}.pe-md-5{padding-right:3rem!important}.pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:.25rem!important}.pb-md-2{padding-bottom:.5rem!important}.pb-md-3{padding-bottom:1rem!important}.pb-md-4{padding-bottom:1.5rem!important}.pb-md-5{padding-bottom:3rem!important}.ps-md-0{padding-left:0!important}.ps-md-1{padding-left:.25rem!important}.ps-md-2{padding-left:.5rem!important}.ps-md-3{padding-left:1rem!important}.ps-md-4{padding-left:1.5rem!important}.ps-md-5{padding-left:3rem!important}.gap-md-0{gap:0!important}.gap-md-1{gap:.25rem!important}.gap-md-2{gap:.5rem!important}.gap-md-3{gap:1rem!important}.gap-md-4{gap:1.5rem!important}.gap-md-5{gap:3rem!important}.row-gap-md-0{row-gap:0!important}.row-gap-md-1{row-gap:.25rem!important}.row-gap-md-2{row-gap:.5rem!important}.row-gap-md-3{row-gap:1rem!important}.row-gap-md-4{row-gap:1.5rem!important}.row-gap-md-5{row-gap:3rem!important}.column-gap-md-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-md-1{-moz-column-gap:.25rem!important;column-gap:.25rem!important}.column-gap-md-2{-moz-column-gap:.5rem!important;column-gap:.5rem!important}.column-gap-md-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-md-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-md-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.text-md-start{text-align:left!important}.text-md-end{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.float-lg-start{float:left!important}.float-lg-end{float:right!important}.float-lg-none{float:none!important}.object-fit-lg-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-lg-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-lg-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-lg-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-lg-none{-o-object-fit:none!important;object-fit:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-grid{display:grid!important}.d-lg-inline-grid{display:inline-grid!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}.d-lg-none{display:none!important}.position-lg-static{position:static!important}.position-lg-relative{position:relative!important}.position-lg-absolute{position:absolute!important}.position-lg-fixed{position:fixed!important}.position-lg-sticky{position:-webkit-sticky!important;position:sticky!important}.translate-middle-lg{transform:translate(-50%,-50%)!important}.translate-middle-lg-x{transform:translateX(-50%)!important}.translate-middle-lg-y{transform:translateY(-50%)!important}.border-lg{border:var(--si-border-width) var(--si-border-style) var(--si-border-color)!important}.border-lg-0{border:0!important}.border-top-lg{border-top:var(--si-border-width) var(--si-border-style) var(--si-border-color)!important}.border-top-lg-0{border-top:0!important}.border-end-lg{border-right:var(--si-border-width) var(--si-border-style) var(--si-border-color)!important}.border-end-lg-0{border-right:0!important}.border-bottom-lg{border-bottom:var(--si-border-width) var(--si-border-style) var(--si-border-color)!important}.border-bottom-lg-0{border-bottom:0!important}.border-start-lg{border-left:var(--si-border-width) var(--si-border-style) var(--si-border-color)!important}.border-start-lg-0{border-left:0!important}.w-lg-25{width:25%!important}.w-lg-50{width:50%!important}.w-lg-75{width:75%!important}.w-lg-100{width:100%!important}.w-lg-auto{width:auto!important}.w-lg-1{width:1px!important}.w-lg-2{width:2px!important}.w-lg-3{width:3px!important}.w-lg-33{width:33.33%!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-bottom:0!important;margin-top:0!important}.my-lg-1{margin-bottom:.25rem!important;margin-top:.25rem!important}.my-lg-2{margin-bottom:.5rem!important;margin-top:.5rem!important}.my-lg-3{margin-bottom:1rem!important;margin-top:1rem!important}.my-lg-4{margin-bottom:1.5rem!important;margin-top:1.5rem!important}.my-lg-5{margin-bottom:3rem!important;margin-top:3rem!important}.my-lg-auto{margin-bottom:auto!important;margin-top:auto!important}.mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:.25rem!important}.mt-lg-2{margin-top:.5rem!important}.mt-lg-3{margin-top:1rem!important}.mt-lg-4{margin-top:1.5rem!important}.mt-lg-5{margin-top:3rem!important}.mt-lg-auto{margin-top:auto!important}.me-lg-0{margin-right:0!important}.me-lg-1{margin-right:.25rem!important}.me-lg-2{margin-right:.5rem!important}.me-lg-3{margin-right:1rem!important}.me-lg-4{margin-right:1.5rem!important}.me-lg-5{margin-right:3rem!important}.me-lg-auto{margin-right:auto!important}.mb-lg-0{margin-bottom:0!important}.mb-lg-1{margin-bottom:.25rem!important}.mb-lg-2{margin-bottom:.5rem!important}.mb-lg-3{margin-bottom:1rem!important}.mb-lg-4{margin-bottom:1.5rem!important}.mb-lg-5{margin-bottom:3rem!important}.mb-lg-auto{margin-bottom:auto!important}.ms-lg-0{margin-left:0!important}.ms-lg-1{margin-left:.25rem!important}.ms-lg-2{margin-left:.5rem!important}.ms-lg-3{margin-left:1rem!important}.ms-lg-4{margin-left:1.5rem!important}.ms-lg-5{margin-left:3rem!important}.ms-lg-auto{margin-left:auto!important}.m-lg-n1{margin:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.m-lg-n3{margin:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mx-lg-n1{margin-left:-.25rem!important;margin-right:-.25rem!important}.mx-lg-n2{margin-left:-.5rem!important;margin-right:-.5rem!important}.mx-lg-n3{margin-left:-1rem!important;margin-right:-1rem!important}.mx-lg-n4{margin-left:-1.5rem!important;margin-right:-1.5rem!important}.mx-lg-n5{margin-left:-3rem!important;margin-right:-3rem!important}.my-lg-n1{margin-bottom:-.25rem!important;margin-top:-.25rem!important}.my-lg-n2{margin-bottom:-.5rem!important;margin-top:-.5rem!important}.my-lg-n3{margin-bottom:-1rem!important;margin-top:-1rem!important}.my-lg-n4{margin-bottom:-1.5rem!important;margin-top:-1.5rem!important}.my-lg-n5{margin-bottom:-3rem!important;margin-top:-3rem!important}.mt-lg-n1{margin-top:-.25rem!important}.mt-lg-n2{margin-top:-.5rem!important}.mt-lg-n3{margin-top:-1rem!important}.mt-lg-n4{margin-top:-1.5rem!important}.mt-lg-n5{margin-top:-3rem!important}.me-lg-n1{margin-right:-.25rem!important}.me-lg-n2{margin-right:-.5rem!important}.me-lg-n3{margin-right:-1rem!important}.me-lg-n4{margin-right:-1.5rem!important}.me-lg-n5{margin-right:-3rem!important}.mb-lg-n1{margin-bottom:-.25rem!important}.mb-lg-n2{margin-bottom:-.5rem!important}.mb-lg-n3{margin-bottom:-1rem!important}.mb-lg-n4{margin-bottom:-1.5rem!important}.mb-lg-n5{margin-bottom:-3rem!important}.ms-lg-n1{margin-left:-.25rem!important}.ms-lg-n2{margin-left:-.5rem!important}.ms-lg-n3{margin-left:-1rem!important}.ms-lg-n4{margin-left:-1.5rem!important}.ms-lg-n5{margin-left:-3rem!important}.p-lg-0{padding:0!important}.p-lg-1{padding:.25rem!important}.p-lg-2{padding:.5rem!important}.p-lg-3{padding:1rem!important}.p-lg-4{padding:1.5rem!important}.p-lg-5{padding:3rem!important}.px-lg-0{padding-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-bottom:0!important;padding-top:0!important}.py-lg-1{padding-bottom:.25rem!important;padding-top:.25rem!important}.py-lg-2{padding-bottom:.5rem!important;padding-top:.5rem!important}.py-lg-3{padding-bottom:1rem!important;padding-top:1rem!important}.py-lg-4{padding-bottom:1.5rem!important;padding-top:1.5rem!important}.py-lg-5{padding-bottom:3rem!important;padding-top:3rem!important}.pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:.25rem!important}.pt-lg-2{padding-top:.5rem!important}.pt-lg-3{padding-top:1rem!important}.pt-lg-4{padding-top:1.5rem!important}.pt-lg-5{padding-top:3rem!important}.pe-lg-0{padding-right:0!important}.pe-lg-1{padding-right:.25rem!important}.pe-lg-2{padding-right:.5rem!important}.pe-lg-3{padding-right:1rem!important}.pe-lg-4{padding-right:1.5rem!important}.pe-lg-5{padding-right:3rem!important}.pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:.25rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pb-lg-3{padding-bottom:1rem!important}.pb-lg-4{padding-bottom:1.5rem!important}.pb-lg-5{padding-bottom:3rem!important}.ps-lg-0{padding-left:0!important}.ps-lg-1{padding-left:.25rem!important}.ps-lg-2{padding-left:.5rem!important}.ps-lg-3{padding-left:1rem!important}.ps-lg-4{padding-left:1.5rem!important}.ps-lg-5{padding-left:3rem!important}.gap-lg-0{gap:0!important}.gap-lg-1{gap:.25rem!important}.gap-lg-2{gap:.5rem!important}.gap-lg-3{gap:1rem!important}.gap-lg-4{gap:1.5rem!important}.gap-lg-5{gap:3rem!important}.row-gap-lg-0{row-gap:0!important}.row-gap-lg-1{row-gap:.25rem!important}.row-gap-lg-2{row-gap:.5rem!important}.row-gap-lg-3{row-gap:1rem!important}.row-gap-lg-4{row-gap:1.5rem!important}.row-gap-lg-5{row-gap:3rem!important}.column-gap-lg-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-lg-1{-moz-column-gap:.25rem!important;column-gap:.25rem!important}.column-gap-lg-2{-moz-column-gap:.5rem!important;column-gap:.5rem!important}.column-gap-lg-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-lg-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-lg-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.text-lg-start{text-align:left!important}.text-lg-end{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.float-xl-start{float:left!important}.float-xl-end{float:right!important}.float-xl-none{float:none!important}.object-fit-xl-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-xl-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-xl-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-xl-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-xl-none{-o-object-fit:none!important;object-fit:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-grid{display:grid!important}.d-xl-inline-grid{display:inline-grid!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}.d-xl-none{display:none!important}.position-xl-static{position:static!important}.position-xl-relative{position:relative!important}.position-xl-absolute{position:absolute!important}.position-xl-fixed{position:fixed!important}.position-xl-sticky{position:-webkit-sticky!important;position:sticky!important}.translate-middle-xl{transform:translate(-50%,-50%)!important}.translate-middle-xl-x{transform:translateX(-50%)!important}.translate-middle-xl-y{transform:translateY(-50%)!important}.border-xl{border:var(--si-border-width) var(--si-border-style) var(--si-border-color)!important}.border-xl-0{border:0!important}.border-top-xl{border-top:var(--si-border-width) var(--si-border-style) var(--si-border-color)!important}.border-top-xl-0{border-top:0!important}.border-end-xl{border-right:var(--si-border-width) var(--si-border-style) var(--si-border-color)!important}.border-end-xl-0{border-right:0!important}.border-bottom-xl{border-bottom:var(--si-border-width) var(--si-border-style) var(--si-border-color)!important}.border-bottom-xl-0{border-bottom:0!important}.border-start-xl{border-left:var(--si-border-width) var(--si-border-style) var(--si-border-color)!important}.border-start-xl-0{border-left:0!important}.w-xl-25{width:25%!important}.w-xl-50{width:50%!important}.w-xl-75{width:75%!important}.w-xl-100{width:100%!important}.w-xl-auto{width:auto!important}.w-xl-1{width:1px!important}.w-xl-2{width:2px!important}.w-xl-3{width:3px!important}.w-xl-33{width:33.33%!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-bottom:0!important;margin-top:0!important}.my-xl-1{margin-bottom:.25rem!important;margin-top:.25rem!important}.my-xl-2{margin-bottom:.5rem!important;margin-top:.5rem!important}.my-xl-3{margin-bottom:1rem!important;margin-top:1rem!important}.my-xl-4{margin-bottom:1.5rem!important;margin-top:1.5rem!important}.my-xl-5{margin-bottom:3rem!important;margin-top:3rem!important}.my-xl-auto{margin-bottom:auto!important;margin-top:auto!important}.mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:.25rem!important}.mt-xl-2{margin-top:.5rem!important}.mt-xl-3{margin-top:1rem!important}.mt-xl-4{margin-top:1.5rem!important}.mt-xl-5{margin-top:3rem!important}.mt-xl-auto{margin-top:auto!important}.me-xl-0{margin-right:0!important}.me-xl-1{margin-right:.25rem!important}.me-xl-2{margin-right:.5rem!important}.me-xl-3{margin-right:1rem!important}.me-xl-4{margin-right:1.5rem!important}.me-xl-5{margin-right:3rem!important}.me-xl-auto{margin-right:auto!important}.mb-xl-0{margin-bottom:0!important}.mb-xl-1{margin-bottom:.25rem!important}.mb-xl-2{margin-bottom:.5rem!important}.mb-xl-3{margin-bottom:1rem!important}.mb-xl-4{margin-bottom:1.5rem!important}.mb-xl-5{margin-bottom:3rem!important}.mb-xl-auto{margin-bottom:auto!important}.ms-xl-0{margin-left:0!important}.ms-xl-1{margin-left:.25rem!important}.ms-xl-2{margin-left:.5rem!important}.ms-xl-3{margin-left:1rem!important}.ms-xl-4{margin-left:1.5rem!important}.ms-xl-5{margin-left:3rem!important}.ms-xl-auto{margin-left:auto!important}.m-xl-n1{margin:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.m-xl-n3{margin:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mx-xl-n1{margin-left:-.25rem!important;margin-right:-.25rem!important}.mx-xl-n2{margin-left:-.5rem!important;margin-right:-.5rem!important}.mx-xl-n3{margin-left:-1rem!important;margin-right:-1rem!important}.mx-xl-n4{margin-left:-1.5rem!important;margin-right:-1.5rem!important}.mx-xl-n5{margin-left:-3rem!important;margin-right:-3rem!important}.my-xl-n1{margin-bottom:-.25rem!important;margin-top:-.25rem!important}.my-xl-n2{margin-bottom:-.5rem!important;margin-top:-.5rem!important}.my-xl-n3{margin-bottom:-1rem!important;margin-top:-1rem!important}.my-xl-n4{margin-bottom:-1.5rem!important;margin-top:-1.5rem!important}.my-xl-n5{margin-bottom:-3rem!important;margin-top:-3rem!important}.mt-xl-n1{margin-top:-.25rem!important}.mt-xl-n2{margin-top:-.5rem!important}.mt-xl-n3{margin-top:-1rem!important}.mt-xl-n4{margin-top:-1.5rem!important}.mt-xl-n5{margin-top:-3rem!important}.me-xl-n1{margin-right:-.25rem!important}.me-xl-n2{margin-right:-.5rem!important}.me-xl-n3{margin-right:-1rem!important}.me-xl-n4{margin-right:-1.5rem!important}.me-xl-n5{margin-right:-3rem!important}.mb-xl-n1{margin-bottom:-.25rem!important}.mb-xl-n2{margin-bottom:-.5rem!important}.mb-xl-n3{margin-bottom:-1rem!important}.mb-xl-n4{margin-bottom:-1.5rem!important}.mb-xl-n5{margin-bottom:-3rem!important}.ms-xl-n1{margin-left:-.25rem!important}.ms-xl-n2{margin-left:-.5rem!important}.ms-xl-n3{margin-left:-1rem!important}.ms-xl-n4{margin-left:-1.5rem!important}.ms-xl-n5{margin-left:-3rem!important}.p-xl-0{padding:0!important}.p-xl-1{padding:.25rem!important}.p-xl-2{padding:.5rem!important}.p-xl-3{padding:1rem!important}.p-xl-4{padding:1.5rem!important}.p-xl-5{padding:3rem!important}.px-xl-0{padding-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-bottom:0!important;padding-top:0!important}.py-xl-1{padding-bottom:.25rem!important;padding-top:.25rem!important}.py-xl-2{padding-bottom:.5rem!important;padding-top:.5rem!important}.py-xl-3{padding-bottom:1rem!important;padding-top:1rem!important}.py-xl-4{padding-bottom:1.5rem!important;padding-top:1.5rem!important}.py-xl-5{padding-bottom:3rem!important;padding-top:3rem!important}.pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:.25rem!important}.pt-xl-2{padding-top:.5rem!important}.pt-xl-3{padding-top:1rem!important}.pt-xl-4{padding-top:1.5rem!important}.pt-xl-5{padding-top:3rem!important}.pe-xl-0{padding-right:0!important}.pe-xl-1{padding-right:.25rem!important}.pe-xl-2{padding-right:.5rem!important}.pe-xl-3{padding-right:1rem!important}.pe-xl-4{padding-right:1.5rem!important}.pe-xl-5{padding-right:3rem!important}.pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:.25rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pb-xl-3{padding-bottom:1rem!important}.pb-xl-4{padding-bottom:1.5rem!important}.pb-xl-5{padding-bottom:3rem!important}.ps-xl-0{padding-left:0!important}.ps-xl-1{padding-left:.25rem!important}.ps-xl-2{padding-left:.5rem!important}.ps-xl-3{padding-left:1rem!important}.ps-xl-4{padding-left:1.5rem!important}.ps-xl-5{padding-left:3rem!important}.gap-xl-0{gap:0!important}.gap-xl-1{gap:.25rem!important}.gap-xl-2{gap:.5rem!important}.gap-xl-3{gap:1rem!important}.gap-xl-4{gap:1.5rem!important}.gap-xl-5{gap:3rem!important}.row-gap-xl-0{row-gap:0!important}.row-gap-xl-1{row-gap:.25rem!important}.row-gap-xl-2{row-gap:.5rem!important}.row-gap-xl-3{row-gap:1rem!important}.row-gap-xl-4{row-gap:1.5rem!important}.row-gap-xl-5{row-gap:3rem!important}.column-gap-xl-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-xl-1{-moz-column-gap:.25rem!important;column-gap:.25rem!important}.column-gap-xl-2{-moz-column-gap:.5rem!important;column-gap:.5rem!important}.column-gap-xl-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-xl-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-xl-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.text-xl-start{text-align:left!important}.text-xl-end{text-align:right!important}.text-xl-center{text-align:center!important}}@media (min-width:1400px){.float-xxl-start{float:left!important}.float-xxl-end{float:right!important}.float-xxl-none{float:none!important}.object-fit-xxl-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-xxl-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-xxl-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-xxl-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-xxl-none{-o-object-fit:none!important;object-fit:none!important}.d-xxl-inline{display:inline!important}.d-xxl-inline-block{display:inline-block!important}.d-xxl-block{display:block!important}.d-xxl-grid{display:grid!important}.d-xxl-inline-grid{display:inline-grid!important}.d-xxl-table{display:table!important}.d-xxl-table-row{display:table-row!important}.d-xxl-table-cell{display:table-cell!important}.d-xxl-flex{display:flex!important}.d-xxl-inline-flex{display:inline-flex!important}.d-xxl-none{display:none!important}.position-xxl-static{position:static!important}.position-xxl-relative{position:relative!important}.position-xxl-absolute{position:absolute!important}.position-xxl-fixed{position:fixed!important}.position-xxl-sticky{position:-webkit-sticky!important;position:sticky!important}.translate-middle-xxl{transform:translate(-50%,-50%)!important}.translate-middle-xxl-x{transform:translateX(-50%)!important}.translate-middle-xxl-y{transform:translateY(-50%)!important}.border-xxl{border:var(--si-border-width) var(--si-border-style) var(--si-border-color)!important}.border-xxl-0{border:0!important}.border-top-xxl{border-top:var(--si-border-width) var(--si-border-style) var(--si-border-color)!important}.border-top-xxl-0{border-top:0!important}.border-end-xxl{border-right:var(--si-border-width) var(--si-border-style) var(--si-border-color)!important}.border-end-xxl-0{border-right:0!important}.border-bottom-xxl{border-bottom:var(--si-border-width) var(--si-border-style) var(--si-border-color)!important}.border-bottom-xxl-0{border-bottom:0!important}.border-start-xxl{border-left:var(--si-border-width) var(--si-border-style) var(--si-border-color)!important}.border-start-xxl-0{border-left:0!important}.w-xxl-25{width:25%!important}.w-xxl-50{width:50%!important}.w-xxl-75{width:75%!important}.w-xxl-100{width:100%!important}.w-xxl-auto{width:auto!important}.w-xxl-1{width:1px!important}.w-xxl-2{width:2px!important}.w-xxl-3{width:3px!important}.w-xxl-33{width:33.33%!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-bottom:0!important;margin-top:0!important}.my-xxl-1{margin-bottom:.25rem!important;margin-top:.25rem!important}.my-xxl-2{margin-bottom:.5rem!important;margin-top:.5rem!important}.my-xxl-3{margin-bottom:1rem!important;margin-top:1rem!important}.my-xxl-4{margin-bottom:1.5rem!important;margin-top:1.5rem!important}.my-xxl-5{margin-bottom:3rem!important;margin-top:3rem!important}.my-xxl-auto{margin-bottom:auto!important;margin-top:auto!important}.mt-xxl-0{margin-top:0!important}.mt-xxl-1{margin-top:.25rem!important}.mt-xxl-2{margin-top:.5rem!important}.mt-xxl-3{margin-top:1rem!important}.mt-xxl-4{margin-top:1.5rem!important}.mt-xxl-5{margin-top:3rem!important}.mt-xxl-auto{margin-top:auto!important}.me-xxl-0{margin-right:0!important}.me-xxl-1{margin-right:.25rem!important}.me-xxl-2{margin-right:.5rem!important}.me-xxl-3{margin-right:1rem!important}.me-xxl-4{margin-right:1.5rem!important}.me-xxl-5{margin-right:3rem!important}.me-xxl-auto{margin-right:auto!important}.mb-xxl-0{margin-bottom:0!important}.mb-xxl-1{margin-bottom:.25rem!important}.mb-xxl-2{margin-bottom:.5rem!important}.mb-xxl-3{margin-bottom:1rem!important}.mb-xxl-4{margin-bottom:1.5rem!important}.mb-xxl-5{margin-bottom:3rem!important}.mb-xxl-auto{margin-bottom:auto!important}.ms-xxl-0{margin-left:0!important}.ms-xxl-1{margin-left:.25rem!important}.ms-xxl-2{margin-left:.5rem!important}.ms-xxl-3{margin-left:1rem!important}.ms-xxl-4{margin-left:1.5rem!important}.ms-xxl-5{margin-left:3rem!important}.ms-xxl-auto{margin-left:auto!important}.m-xxl-n1{margin:-.25rem!important}.m-xxl-n2{margin:-.5rem!important}.m-xxl-n3{margin:-1rem!important}.m-xxl-n4{margin:-1.5rem!important}.m-xxl-n5{margin:-3rem!important}.mx-xxl-n1{margin-left:-.25rem!important;margin-right:-.25rem!important}.mx-xxl-n2{margin-left:-.5rem!important;margin-right:-.5rem!important}.mx-xxl-n3{margin-left:-1rem!important;margin-right:-1rem!important}.mx-xxl-n4{margin-left:-1.5rem!important;margin-right:-1.5rem!important}.mx-xxl-n5{margin-left:-3rem!important;margin-right:-3rem!important}.my-xxl-n1{margin-bottom:-.25rem!important;margin-top:-.25rem!important}.my-xxl-n2{margin-bottom:-.5rem!important;margin-top:-.5rem!important}.my-xxl-n3{margin-bottom:-1rem!important;margin-top:-1rem!important}.my-xxl-n4{margin-bottom:-1.5rem!important;margin-top:-1.5rem!important}.my-xxl-n5{margin-bottom:-3rem!important;margin-top:-3rem!important}.mt-xxl-n1{margin-top:-.25rem!important}.mt-xxl-n2{margin-top:-.5rem!important}.mt-xxl-n3{margin-top:-1rem!important}.mt-xxl-n4{margin-top:-1.5rem!important}.mt-xxl-n5{margin-top:-3rem!important}.me-xxl-n1{margin-right:-.25rem!important}.me-xxl-n2{margin-right:-.5rem!important}.me-xxl-n3{margin-right:-1rem!important}.me-xxl-n4{margin-right:-1.5rem!important}.me-xxl-n5{margin-right:-3rem!important}.mb-xxl-n1{margin-bottom:-.25rem!important}.mb-xxl-n2{margin-bottom:-.5rem!important}.mb-xxl-n3{margin-bottom:-1rem!important}.mb-xxl-n4{margin-bottom:-1.5rem!important}.mb-xxl-n5{margin-bottom:-3rem!important}.ms-xxl-n1{margin-left:-.25rem!important}.ms-xxl-n2{margin-left:-.5rem!important}.ms-xxl-n3{margin-left:-1rem!important}.ms-xxl-n4{margin-left:-1.5rem!important}.ms-xxl-n5{margin-left:-3rem!important}.p-xxl-0{padding:0!important}.p-xxl-1{padding:.25rem!important}.p-xxl-2{padding:.5rem!important}.p-xxl-3{padding:1rem!important}.p-xxl-4{padding:1.5rem!important}.p-xxl-5{padding:3rem!important}.px-xxl-0{padding-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-bottom:0!important;padding-top:0!important}.py-xxl-1{padding-bottom:.25rem!important;padding-top:.25rem!important}.py-xxl-2{padding-bottom:.5rem!important;padding-top:.5rem!important}.py-xxl-3{padding-bottom:1rem!important;padding-top:1rem!important}.py-xxl-4{padding-bottom:1.5rem!important;padding-top:1.5rem!important}.py-xxl-5{padding-bottom:3rem!important;padding-top:3rem!important}.pt-xxl-0{padding-top:0!important}.pt-xxl-1{padding-top:.25rem!important}.pt-xxl-2{padding-top:.5rem!important}.pt-xxl-3{padding-top:1rem!important}.pt-xxl-4{padding-top:1.5rem!important}.pt-xxl-5{padding-top:3rem!important}.pe-xxl-0{padding-right:0!important}.pe-xxl-1{padding-right:.25rem!important}.pe-xxl-2{padding-right:.5rem!important}.pe-xxl-3{padding-right:1rem!important}.pe-xxl-4{padding-right:1.5rem!important}.pe-xxl-5{padding-right:3rem!important}.pb-xxl-0{padding-bottom:0!important}.pb-xxl-1{padding-bottom:.25rem!important}.pb-xxl-2{padding-bottom:.5rem!important}.pb-xxl-3{padding-bottom:1rem!important}.pb-xxl-4{padding-bottom:1.5rem!important}.pb-xxl-5{padding-bottom:3rem!important}.ps-xxl-0{padding-left:0!important}.ps-xxl-1{padding-left:.25rem!important}.ps-xxl-2{padding-left:.5rem!important}.ps-xxl-3{padding-left:1rem!important}.ps-xxl-4{padding-left:1.5rem!important}.ps-xxl-5{padding-left:3rem!important}.gap-xxl-0{gap:0!important}.gap-xxl-1{gap:.25rem!important}.gap-xxl-2{gap:.5rem!important}.gap-xxl-3{gap:1rem!important}.gap-xxl-4{gap:1.5rem!important}.gap-xxl-5{gap:3rem!important}.row-gap-xxl-0{row-gap:0!important}.row-gap-xxl-1{row-gap:.25rem!important}.row-gap-xxl-2{row-gap:.5rem!important}.row-gap-xxl-3{row-gap:1rem!important}.row-gap-xxl-4{row-gap:1.5rem!important}.row-gap-xxl-5{row-gap:3rem!important}.column-gap-xxl-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-xxl-1{-moz-column-gap:.25rem!important;column-gap:.25rem!important}.column-gap-xxl-2{-moz-column-gap:.5rem!important;column-gap:.5rem!important}.column-gap-xxl-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-xxl-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-xxl-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.text-xxl-start{text-align:left!important}.text-xxl-end{text-align:right!important}.text-xxl-center{text-align:center!important}}@media (min-width:1200px){.fs-1{font-size:2.5rem!important}.fs-2{font-size:2rem!important}.fs-3{font-size:1.75rem!important}.fs-4{font-size:1.5rem!important}}@media print{.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-grid{display:grid!important}.d-print-inline-grid{display:inline-grid!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}.d-print-none{display:none!important}}:root,[data-bs-theme=light]{--si-user-selection-color:rgba(var(--si-primary-rgb),0.22);--si-heading-link-color:#33354d;--si-heading-link-hover-color:#6366f1}[data-bs-theme=dark]{--si-gray-600:hsla(0,0%,100%,.5);--si-gray-700:hsla(0,0%,100%,.7);--si-gray-800:hsla(0,0%,100%,.85);--si-gray-900:#fff;--si-secondary-bg:hsla(0,0%,100%,.04);--si-heading-link-color:hsla(0,0%,100%,.85);--si-heading-link-hover-color:#6366f1;--si-nav-link-color:hsla(0,0%,100%,.85);--si-code-color:#ee70a7}html *{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body,html{height:100%}body{display:flex;flex-direction:column}.page-wrapper{flex:1 0 auto}.footer{flex-shrink:0}a{transition:color .2s ease-in-out}a:focus{outline:none}a[class*=bg-]:not(.btn),a[class^=bg-]:not(.btn){transition:background-color .25s ease}figure,img{height:auto;vertical-align:middle}figure,img,svg{max-width:100%}.dark-mode-img{display:none}iframe{width:100%}::-moz-selection{background:var(--si-user-selection-color)}::selection{background:var(--si-user-selection-color)}b,strong{font-weight:800}.small,small{font-weight:inherit}button:focus{outline:none}.img-thumbnail{background-color:hsla(0,0%,100%,.1)}@media (min-width:992px){.docs-container{padding-left:21rem}}@media (min-width:1400px){.docs-container{padding-right:20rem}}.fs-4,.fs-5,.fs-6,.h4,.h5,.h6,h4,h5,h6{line-height:1.4}.h1>a,.h2>a,.h3>a,.h4>a,.h5>a,.h6>a,h1>a,h2>a,h3>a,h4>a,h5>a,h6>a{color:var(--si-heading-link-color);text-decoration:none}.h1>a:hover,.h2>a:hover,.h3>a:hover,.h4>a:hover,.h5>a:hover,.h6>a:hover,h1>a:hover,h2>a:hover,h3>a:hover,h4>a:hover,h5>a:hover,h6>a:hover{color:var(--si-heading-link-hover-color)}dt{color:var(--si-heading-color)}body .dark-mode dd,body .dark-mode ol,body .dark-mode p,body .dark-mode span:not(.badge),body .dark-mode ul{color:var(--si-body-color)}:not(pre)>code[class*=language-],pre,pre[class*=language-]{--si-pre-border-width:var(--si-border-width);--si-pre-border-color:var(--si-border-color);--si-pre-bg:#fff;--si-pre-font-size:0.875em;--si-pre-line-numbers-border-width:1px;--si-pre-line-numbers-border-color:#e2e5f1;--si-pre-line-numbers-color:#a2a6bc;--si-pre-tag-color:#4e54c8;--si-pre-comment-color:#a2a6bc;--si-pre-attr-name-color:#4091e3;--si-pre-attr-value-color:#e3116c;--si-pre-class-name-color:#36acaa;background-color:var(--si-pre-bg);border:var(--si-pre-border-width) solid var(--si-pre-border-color);border-radius:.5rem;box-shadow:0 .275rem .75rem -.0625rem rgba(11,15,25,.06),0 .125rem .4rem -.0625rem rgba(11,15,25,.03);font-size:var(--si-pre-font-size);margin:0;max-width:100%;padding:1.5rem}.code-toolbar :not(pre)>code[class*=language-],.code-toolbar pre[class*=language-]{padding-top:2.25rem}code[class*=language-],pre,pre[class*=language-]{--si-pre-color:#33354d;color:var(--si-pre-color);text-shadow:none}.line-numbers .line-numbers-rows{border-right:var(--si-pre-line-numbers-border-width) solid var(--si-pre-line-numbers-border-color)}.line-numbers .line-numbers-rows>span:before{color:var(--si-pre-line-numbers-color)}div.code-toolbar>.toolbar{opacity:1}div.code-toolbar>.toolbar .toolbar-item>span,div.code-toolbar>.toolbar>.toolbar-item>a,div.code-toolbar>.toolbar>.toolbar-item>button{background-color:transparent;border:1px solid rgba(99,102,241,.35);border-radius:.25rem;box-shadow:none;color:#6366f1!important;display:inline-block;font-size:.75rem;font-weight:600;margin:.375rem .5rem;padding:.25rem .75rem;transition:color .2s ease-in-out,background-color .2s ease-in-out,border-color .2s ease-in-out,box-shadow .2s ease-in-out}div.code-toolbar>.toolbar .toolbar-item>span:focus,div.code-toolbar>.toolbar>.toolbar-item>a:focus,div.code-toolbar>.toolbar>.toolbar-item>button:focus{box-shadow:none;outline:none}div.code-toolbar>.toolbar .toolbar-item>span:hover,div.code-toolbar>.toolbar>.toolbar-item>a:hover,div.code-toolbar>.toolbar>.toolbar-item>button:hover{background-color:#6366f1;color:#fff!important}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:var(--si-pre-tag-color)}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:var(--si-pre-comment-color)}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector{color:var(--si-pre-attr-name-color)}.token.atrule,.token.attr-value,.token.keyword,.token.string{color:var(--si-pre-attr-value-color)}.language-css .token.string,.style .token.string,.token.class-name,.token.entity,.token.function,.token.operator,.token.url{background:none;color:var(--si-pre-class-name-color)}[data-bs-theme=dark] :not(pre)>code[class*=language-],[data-bs-theme=dark] pre,[data-bs-theme=dark] pre[class*=language-]{--si-pre-bg:hsla(0,0%,100%,.04);--si-pre-line-numbers-border-color:hsla(0,0%,100%,.14);--si-pre-line-numbers-color:hsla(0,0%,100%,.5);--si-pre-tag-color:#5960f3;--si-pre-comment-color:hsla(0,0%,100%,.5);--si-pre-attr-name-color:#4da2f7;--si-pre-attr-value-color:#f33185;--si-pre-class-name-color:#4ddcda;box-shadow:none}[data-bs-theme=dark] code[class*=language-],[data-bs-theme=dark] pre,[data-bs-theme=dark] pre>code,[data-bs-theme=dark] pre[class*=language-]{--si-pre-color:#fff}[data-bs-theme=dark] kbd{background-color:#000;color:#fff}.table{--si-table-th-color:var(--si-gray-900);--si-table-dark-color:hsla(0,0%,100%,.7)}.table:not(.table-dark) tbody th,.table:not(.table-dark) thead:not(.thead-dark) th{color:var(--si-table-th-color)}.table.table-dark td{color:var(--si-table-dark-color)}.table>:not(:last-child)>:last-child>*{border-bottom-color:#b9c0dd}.table.table-dark>:not(:last-child)>:last-child>*{border-bottom-color:hsla(0,0%,100%,.3)}.table>:not(:first-child){border-top:0}[data-bs-theme=dark] .table:not([data-bs-theme=light]){--si-table-striped-bg:hsla(0,0%,100%,.038);--si-table-hover-bg:hsla(0,0%,100%,.05);--si-table-hover-color:var(--si-body-color)}[data-bs-theme=dark] .table:not([data-bs-theme=light])>:not(:last-child)>:last-child>*{border-bottom-color:hsla(0,0%,100%,.3)}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration,input[type=search]::-webkit-search-results-button,input[type=search]::-webkit-search-results-decoration{display:none}input[type=time]::-webkit-calendar-picker-indicator{background:none}.form-select:focus{box-shadow:0 .5rem 1.125rem -.5rem rgba(99,102,241,.2)}.form-control:disabled,.form-select:disabled{box-shadow:none!important;cursor:not-allowed}.form-control:disabled,.form-control[readonly]{box-shadow:none!important}.form-control:disabled::-moz-placeholder,.form-control[readonly]::-moz-placeholder{color:#9397ad}.form-control:disabled::placeholder,.form-control[readonly]::placeholder{color:#9397ad}label{font-size:.875rem}.form-floating>label{font-weight:600}.form-floating>label:after{background-color:transparent!important}.input-group-text .form-check-input{margin-top:0}.form-check-input:focus{box-shadow:none}.form-switch{margin-bottom:.5rem}.form-switch .form-check-input{background-color:#b4b7c9;border:unset;filter:none;height:1.5rem;margin-top:unset}.form-switch .form-check-input:checked{background-color:#6366f1;box-shadow:0 .5rem 1.125rem -.5rem rgba(99,102,241,.9)}.form-switch .form-check-input:disabled{box-shadow:none}.form-switch.mode-switch,.form-switch.price-switch{display:flex;margin-bottom:0;padding-left:0}.form-switch.mode-switch .form-check-label,.form-switch.price-switch .form-check-label{font-size:1rem;font-weight:600;transition:color .15s ease-in-out}.form-switch.mode-switch .form-check-label:first-of-type,.form-switch.price-switch .form-check-label:first-of-type{color:#0b0f19;margin-right:.75rem;order:1}.form-switch.mode-switch .form-check-label:last-of-type,.form-switch.price-switch .form-check-label:last-of-type{margin-left:.75rem;order:3}.form-switch.mode-switch .form-check-input,.form-switch.price-switch .form-check-input{background-color:#6366f1;box-shadow:0 .5rem 1.125rem -.5rem rgba(99,102,241,.9);margin-left:0;order:2}.form-switch.mode-switch .form-check-input:checked~.form-check-label:first-of-type,.form-switch.price-switch .form-check-input:checked~.form-check-label:first-of-type{color:#565973}.form-switch.mode-switch .form-check-input:checked~.form-check-label:last-of-type,.form-switch.price-switch .form-check-input:checked~.form-check-label:last-of-type{color:#0b0f19}.form-switch.mode-switch .form-check-input:checked{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 21 26'%3E%3Cpath fill='%23fff' d='M4 22.168C7.532 20.625 10 17.1 10 13S7.532 5.375 4 3.832A10 10 0 0 1 8 3c5.523 0 10 4.477 10 10S13.523 23 8 23a10 10 0 0 1-4-.832'/%3E%3C/svg%3E")}.form-switch.form-switch-success .form-check-input:checked{background-color:#22c55e;box-shadow:0 .5rem 1.125rem -.5rem rgba(34,197,94,.9)}.password-toggle{position:relative}.password-toggle .form-control{padding-right:3rem}.password-toggle-btn{cursor:pointer;font-size:1rem;line-height:1;margin-bottom:0;padding:.5rem;position:absolute;right:.625rem;top:50%;transform:translateY(-50%)}.password-toggle-btn .password-toggle-indicator{color:#9397ad;font-family:boxicons;font-size:1.25em;font-style:normal;transition:color .2s ease-in-out}.password-toggle-btn .password-toggle-indicator:before{content:"\ec0d"}.password-toggle-btn .password-toggle-indicator:hover{color:#33354d}.password-toggle-btn .password-toggle-check{height:1.25rem;left:0;opacity:0;position:absolute;width:1rem;z-index:-1}.password-toggle-btn .password-toggle-check:checked~.password-toggle-indicator:before{content:"\eb0e"}.valid-tooltip{background-color:rgba(34,197,94,.12);color:#22c55e;position:static}.invalid-tooltip{background-color:rgba(239,68,68,.12);color:#ef4444;position:static}.is-invalid~.invalid-tooltip,.is-valid~.valid-tooltip,.was-validated :invalid~.invalid-tooltip,.was-validated :valid~.valid-tooltip{display:table}.is-valid:not(:required):not(.btn):not(.form-check-input),.was-validated :valid:not(:required):not(.btn):not(.form-check-input){background-image:none;border-color:#d4d7e5!important}.is-valid:not(:required):not(.btn):not(.form-check-input):focus,.was-validated :valid:not(:required):not(.btn):not(.form-check-input):focus{border-color:rgba(99,102,241,.35)!important;box-shadow:0 .5rem 1.125rem -.5rem rgba(99,102,241,.2)}.was-validated .password-toggle .form-control.is-invalid,.was-validated .password-toggle .form-control.is-valid,.was-validated .password-toggle .form-control:invalid,.was-validated .password-toggle .form-control:valid{padding-right:4rem}.was-validated .password-toggle .form-control.is-invalid+.password-toggle-btn,.was-validated .password-toggle .form-control.is-valid+.password-toggle-btn,.was-validated .password-toggle .form-control:invalid+.password-toggle-btn,.was-validated .password-toggle .form-control:valid+.password-toggle-btn{right:2.1rem}.was-validated .input-group .form-control:invalid,.was-validated .input-group .form-control:valid{z-index:4}.form-check-input.is-valid:checked,.was-validated .form-check-input:valid:checked{background-color:#6366f1;border-color:#6366f1;box-shadow:none}.form-check-input.is-invalid:checked,.was-validated .form-check-input:invalid:checked{background-color:transparent;border-color:2px solid #b4b7c9}.was-validated .form-check-input.is-valid,.was-validated .form-check-input:valid{border-color:#b4b7c9}.was-validated .form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:inherit}.range-slider{--si-range-slider-hight:0.1875rem;--si-range-slider-bg:#e5e8f3;--si-range-slider-connect-bg:#6366f1;--si-range-slider-handle-size:1.375rem;--si-range-slider-handle-bg:#fff;--si-range-slider-handle-border-radius:50%;--si-range-slider-handle-shadow:0 0.125rem 0.5625rem -0.125rem rgba(0,0,0,.25);--si-range-slider-pips-color:var(--si-body-color);--si-range-slider-pips-font-size:0.8125rem;--si-range-slider-pips-border-width:var(--si-border-width);--si-range-slider-pips-border-color:#cdd2e7;--si-range-slider-tooltip-padding-y:0.25rem;--si-range-slider-tooltip-padding-x:0.5rem;--si-range-slider-tooltip-bg:#1f202e;--si-range-slider-tooltip-color:#fff;--si-range-slider-tooltip-font-size:0.75rem;--si-range-slider-tooltip-border-radius:0.25rem}.range-slider-ui{background-color:var(--si-range-slider-bg);border:0;box-shadow:none;height:var(--si-range-slider-hight);margin:3.25rem 0 1.75rem}[data-pips] .range-slider-ui{margin-bottom:3.5rem}.range-slider-ui .noUi-connect{background-color:var(--si-range-slider-connect-bg)}.range-slider-ui .noUi-handle{background-color:var(--si-range-slider-handle-bg);border:0;border-radius:var(--si-range-slider-handle-border-radius);box-shadow:var(--si-range-slider-handle-shadow);height:var(--si-range-slider-handle-size);margin-top:calc(var(--si-range-slider-handle-size)*-.5);top:50%;width:var(--si-range-slider-handle-size)}.range-slider-ui .noUi-handle:after,.range-slider-ui .noUi-handle:before{display:none}.range-slider-ui .noUi-handle:focus{outline:none}.range-slider-ui .noUi-marker-normal{display:none}.range-slider-ui .noUi-marker-horizontal.noUi-marker{background-color:var(--si-range-slider-pips-border-color);width:var(--si-range-slider-pips-border-width)}.range-slider-ui .noUi-marker-horizontal.noUi-marker-large{height:.75rem}.range-slider-ui .noUi-value{color:var(--si-range-slider-pips-color);font-size:var(--si-range-slider-pips-font-size);padding-top:.125rem}.range-slider-ui .noUi-tooltip{background-color:var(--si-range-slider-tooltip-bg);border:0;border-radius:var(--si-range-slider-tooltip-border-radius);color:var(--si-range-slider-tooltip-color);font-size:var(--si-range-slider-tooltip-font-size);line-height:1.2;padding:var(--si-range-slider-tooltip-padding-y) var(--si-range-slider-tooltip-padding-x)}html:not([dir=rtl]) .range-slider-ui.noUi-horizontal .noUi-handle{right:calc(var(--si-range-slider-handle-size)*-.5)}.subscription-status{border-radius:.25rem;display:table;font-size:.8125rem}.subscription-status.status-error,.subscription-status.status-success{margin-top:.5rem;padding:.25rem .5rem}.subscription-status.status-success{background-color:rgba(34,197,94,.1);color:#1a9a49}.subscription-status.status-error{background-color:rgba(239,68,68,.1);color:#ef4444}.credit-card-icon{background-image:url(../img/credit-cards.png);background-position:0 0;background-repeat:no-repeat;background-size:cover;height:26px;width:40px}.credit-card-icon.amex{background-position:0 -52px!important}.credit-card-icon.diners{background-position:0 -78px!important}.credit-card-icon.discover{background-position:0 -104px!important}.credit-card-icon.jcb{background-position:0 -130px!important}.credit-card-icon.mastercard{background-position:0 -156px!important}.credit-card-icon.visa{background-position:0 -182px!important}[data-bs-theme=dark] .col-form-label,[data-bs-theme=dark] .form-label{color:#fff}[data-bs-theme=dark] .form-text{color:hsla(0,0%,100%,.5)}[data-bs-theme=dark] .form-control:not([data-bs-theme=light]),[data-bs-theme=dark] .form-select:not([data-bs-theme=light]){background-color:hsla(0,0%,100%,.02);border-color:hsla(0,0%,100%,.18);color:hsla(0,0%,100%,.7)}[data-bs-theme=dark] .form-control:not([data-bs-theme=light]):focus,[data-bs-theme=dark] .form-select:not([data-bs-theme=light]):focus{border-color:hsla(0,0%,100%,.35);box-shadow:none}[data-bs-theme=dark] .form-control:not([data-bs-theme=light]):disabled,[data-bs-theme=dark] .form-control:not([data-bs-theme=light])[readonly],[data-bs-theme=dark] .form-select:not([data-bs-theme=light]):disabled,[data-bs-theme=dark] .form-select:not([data-bs-theme=light])[readonly]{background-color:hsla(0,0%,100%,.01);border-color:hsla(0,0%,100%,.1)}[data-bs-theme=dark] .form-select:not([data-bs-theme=light]) option{background-color:#0b0f19}[data-bs-theme=dark] .form-control:not([data-bs-theme=light])::-moz-placeholder{color:hsla(0,0%,100%,.4)}[data-bs-theme=dark] .form-control:not([data-bs-theme=light])::placeholder{color:hsla(0,0%,100%,.4)}[data-bs-theme=dark] .form-control:not([data-bs-theme=light])::file-selector-button{background-color:hsla(0,0%,100%,.02);color:hsla(0,0%,100%,.7)}[data-bs-theme=dark] .form-control:not([data-bs-theme=light]):hover:not(:disabled):not([readonly])::file-selector-button{background-color:hsla(0,0%,100%,.02);color:hsla(0,0%,100%,.7)}[data-bs-theme=dark] .form-control:not([data-bs-theme=light])::-webkit-file-upload-button,[data-bs-theme=dark] .form-control:not([data-bs-theme=light]):hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:hsla(0,0%,100%,.02);color:hsla(0,0%,100%,.7)}[data-bs-theme=dark] .form-control:not([data-bs-theme=light]):focus:not(:disabled):not([readonly])::file-selector-button{background-color:var(--si-secondary-bg);color:#565973}[data-bs-theme=dark] .form-control:not([data-bs-theme=light]):focus:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:var(--si-secondary-bg);color:#565973}[data-bs-theme=dark] .form-select:not([data-bs-theme=light]){background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='rgba(255, 255, 255, 0.7)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3E%3C/svg%3E")}[data-bs-theme=dark] .form-floating:not([data-bs-theme=light]) .form-control::-moz-placeholder,[data-bs-theme=dark] .form-floating:not([data-bs-theme=light]) .form-select::-moz-placeholder{color:transparent}[data-bs-theme=dark] .form-floating:not([data-bs-theme=light]) .form-control::placeholder,[data-bs-theme=dark] .form-floating:not([data-bs-theme=light]) .form-select::placeholder{color:transparent}[data-bs-theme=dark] .form-floating:not([data-bs-theme=light]) .form-control:focus~label,[data-bs-theme=dark] .form-floating:not([data-bs-theme=light]) .form-select:focus~label{color:hsla(0,0%,100%,.7)}[data-bs-theme=dark] .form-range:not([data-bs-theme=light])::-webkit-slider-runnable-track{background-color:hsla(0,0%,100%,.09)}[data-bs-theme=dark] .form-range:not([data-bs-theme=light])::-moz-range-track{background-color:hsla(0,0%,100%,.09)}[data-bs-theme=dark] .form-check:not([data-bs-theme=light]) .form-check-label{color:hsla(0,0%,100%,.7)}[data-bs-theme=dark] .form-check:not([data-bs-theme=light]) .form-check-input:not(:checked):not(.is-invalid):not(:invalid){border-color:hsla(0,0%,100%,.5)}[data-bs-theme=dark] .form-check:not([data-bs-theme=light]) .form-check-input:not(:checked){background-color:transparent}[data-bs-theme=dark] .form-check:not([data-bs-theme=light]) .form-check-input:checked:not(.is-invalid):not(:invalid){border-color:#6366f1!important}[data-bs-theme=dark] .form-switch:not([data-bs-theme=light]) .form-check-input{background-color:hsla(0,0%,100%,.25)!important}[data-bs-theme=dark] .form-switch:not([data-bs-theme=light]) .form-check-input:checked{background-color:#6366f1!important}[data-bs-theme=dark] .form-switch:not([data-bs-theme=light]) .form-check-input:not(:checked):not(:focus){--si-form-switch-bg:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E")}[data-bs-theme=dark] .form-switch:not([data-bs-theme=light]).mode-switch .form-check-label:first-of-type,[data-bs-theme=dark] .form-switch:not([data-bs-theme=light]).price-switch .form-check-label:first-of-type{color:#fff}[data-bs-theme=dark] .form-switch:not([data-bs-theme=light]).mode-switch .form-check-input,[data-bs-theme=dark] .form-switch:not([data-bs-theme=light]).price-switch .form-check-input{background-color:#6366f1!important}[data-bs-theme=dark] .form-switch:not([data-bs-theme=light]).mode-switch .form-check-input:checked~.form-check-label:first-of-type,[data-bs-theme=dark] .form-switch:not([data-bs-theme=light]).price-switch .form-check-input:checked~.form-check-label:first-of-type{color:hsla(0,0%,100%,.6)}[data-bs-theme=dark] .form-switch:not([data-bs-theme=light]).mode-switch .form-check-input:checked~.form-check-label:last-of-type,[data-bs-theme=dark] .form-switch:not([data-bs-theme=light]).price-switch .form-check-input:checked~.form-check-label:last-of-type{color:#fff}[data-bs-theme=dark] .form-switch:not([data-bs-theme=light]).form-switch-success .form-check-input:checked{background-color:#22c55e!important}[data-bs-theme=dark] .form-control:not([data-bs-theme=light])~.password-toggle-btn .password-toggle-indicator{color:hsla(0,0%,100%,.4)}[data-bs-theme=dark] .form-control:not([data-bs-theme=light])~.password-toggle-btn .password-toggle-indicator:hover{color:hsla(0,0%,100%,.85)}[data-bs-theme=dark] .input-group:not([data-bs-theme=light]) .input-group-text{background-color:hsla(0,0%,100%,.02);border-color:hsla(0,0%,100%,.18);color:hsla(0,0%,100%,.7)}[data-bs-theme=dark] .input-group:not([data-bs-theme=light]) .input-group-text:first-of-type:not(:last-child){border-right-color:transparent}[data-bs-theme=dark] .input-group:not([data-bs-theme=light]) .input-group-text:last-of-type:not(:first-child){border-left-color:transparent}[data-bs-theme=dark] .input-group:not([data-bs-theme=light]) .input-group-text:first-child+.input-group-text{border-left-color:hsla(0,0%,100%,.18)}[data-bs-theme=dark] .input-group:not([data-bs-theme=light]) .input-group-text .form-check-input:not(:checked){background-color:transparent}[data-bs-theme=dark] .range-slider{--si-range-slider-bg:hsla(0,0%,100%,.12);--si-range-slider-handle-bg:#eff2fc;--si-range-slider-pips-border-color:hsla(0,0%,100%,.2)}[data-bs-theme=dark] .is-valid:not(:required):not(.btn),[data-bs-theme=dark] .was-validated :valid:not(:required):not(.btn){border-color:hsla(0,0%,100%,.18)!important}[data-bs-theme=dark] .form-check-input.is-invalid,[data-bs-theme=dark] .form-control.is-invalid,[data-bs-theme=dark] .form-select.is-invalid,[data-bs-theme=dark] .was-validated .form-check-input:invalid,[data-bs-theme=dark] .was-validated .form-control:invalid,[data-bs-theme=dark] .was-validated .form-select:invalid{border-color:#ef4444}[data-bs-theme=dark] .form-control.is-valid,[data-bs-theme=dark] .form-select.is-valid,[data-bs-theme=dark] .was-validated .form-control:valid,[data-bs-theme=dark] .was-validated .form-select:valid{border-color:#22c55e}[data-bs-theme=dark] .was-validated .form-check-input.is-valid,[data-bs-theme=dark] .was-validated .form-check-input:valid{border-color:hsla(0,0%,100%,.5)}[data-bs-theme=dark] .was-validated .form-check-input.is-valid:checked,[data-bs-theme=dark] .was-validated .form-check-input:valid:checked{border-color:#6366f1}[data-bs-theme=dark] .credit-card-icon{background-position:0 -26px}.btn{align-items:center;display:inline-flex;justify-content:center}.btn:not([class^=btn-outline-]):not([class*=" btn-outline-"]):not(.btn-secondary):not(.btn-light):not(.btn-link){--si-btn-color:#fff}.btn.disabled,.btn:disabled,.btn:hover{box-shadow:none!important}.btn-primary{--si-btn-hover-color:#fff;--si-btn-active-color:#fff;--si-btn-hover-bg:#4044ee;--si-btn-active-bg:#4044ee;--si-btn-hover-border-color:#4044ee;--si-btn-active-border-color:#4044ee;--si-btn-disabled-color:#fff}.btn-secondary{--si-btn-hover-color:#fff;--si-btn-active-color:#fff;--si-btn-hover-bg:#cfd8f6;--si-btn-active-bg:#cfd8f6;--si-btn-hover-border-color:#cfd8f6;--si-btn-active-border-color:#cfd8f6;--si-btn-disabled-color:#fff}.btn-success{--si-btn-hover-color:#fff;--si-btn-active-color:#fff;--si-btn-hover-bg:#1ca44e;--si-btn-active-bg:#1ca44e;--si-btn-hover-border-color:#1ca44e;--si-btn-active-border-color:#1ca44e;--si-btn-disabled-color:#fff}.btn-info{--si-btn-hover-color:#fff;--si-btn-active-color:#fff;--si-btn-hover-bg:#2768f5;--si-btn-active-bg:#2768f5;--si-btn-hover-border-color:#2768f5;--si-btn-active-border-color:#2768f5;--si-btn-disabled-color:#fff}.btn-warning{--si-btn-hover-color:#fff;--si-btn-active-color:#fff;--si-btn-hover-bg:#e1a200;--si-btn-active-bg:#e1a200;--si-btn-hover-border-color:#e1a200;--si-btn-active-border-color:#e1a200;--si-btn-disabled-color:#fff}.btn-danger{--si-btn-hover-color:#fff;--si-btn-active-color:#fff;--si-btn-hover-bg:#ec2121;--si-btn-active-bg:#ec2121;--si-btn-hover-border-color:#ec2121;--si-btn-active-border-color:#ec2121;--si-btn-disabled-color:#fff}.btn-light{--si-btn-hover-color:#fff;--si-btn-active-color:#fff;--si-btn-hover-bg:#ececec;--si-btn-active-bg:#ececec;--si-btn-hover-border-color:#ececec;--si-btn-active-border-color:#ececec;--si-btn-disabled-color:#fff}.btn-dark{--si-btn-hover-color:#fff;--si-btn-active-color:#fff;--si-btn-hover-bg:#000;--si-btn-active-bg:#000;--si-btn-hover-border-color:#000;--si-btn-active-border-color:#000;--si-btn-disabled-color:#fff}.btn-light,.btn-secondary{--si-btn-color:#33354d;--si-btn-hover-color:#0b0f19;--si-btn-active-color:#0b0f19;--si-btn-disabled-color:#565973}[class*=" btn-outline-"],[class^=btn-outline-]{--si-btn-hover-color:#fff;--si-btn-active-color:#fff}.btn-outline-primary{--si-btn-border-color:rgba(99,102,241,.35);--si-btn-disabled-border-color:rgba(99,102,241,.35)}.btn-outline-success{--si-btn-border-color:rgba(34,197,94,.35);--si-btn-disabled-border-color:rgba(34,197,94,.35)}.btn-outline-info{--si-btn-border-color:rgba(76,130,247,.35);--si-btn-disabled-border-color:rgba(76,130,247,.35)}.btn-outline-warning{--si-btn-border-color:rgba(255,186,8,.35);--si-btn-disabled-border-color:rgba(255,186,8,.35)}.btn-outline-danger{--si-btn-border-color:rgba(239,68,68,.35);--si-btn-disabled-border-color:rgba(239,68,68,.35)}.btn-outline-light{--si-btn-border-color:hsla(0,0%,100%,.14);--si-btn-disabled-border-color:hsla(0,0%,100%,.14)}.btn-outline-dark{--si-btn-border-color:rgba(11,15,25,.35);--si-btn-disabled-border-color:rgba(11,15,25,.35)}.btn-outline-white{--si-btn-border-color:hsla(0,0%,100%,.35);--si-btn-disabled-border-color:hsla(0,0%,100%,.35)}.btn-outline-secondary{--si-btn-color:#33354d;--si-btn-hover-color:#0b0f19;--si-btn-active-color:#0b0f19;--si-btn-hover-bg:#e2e5f1;--si-btn-active-bg:#e2e5f1;--si-btn-border-color:#d4d7e5;--si-btn-hover-border-color:#e2e5f1;--si-btn-active-border-color:#e2e5f1;--si-btn-disabled-color:#565973;--si-btn-disabled-border-color:#e2e5f1}.btn-outline-light{--si-btn-border-color:hsla(0,0%,100%,.25);--si-btn-hover-color:#33354d;--si-btn-active-color:#33354d;--si-btn-hover-bg:#fff;--si-btn-active-bg:#fff}.btn-link{--si-btn-font-weight:600;text-decoration:none}.btn-icon{--si-btn-size:2.75rem;--si-btn-icon-size:1.25rem;flex-shrink:0;height:var(--si-btn-size);padding:0;width:var(--si-btn-size)}.btn-icon>i{font-size:var(--si-btn-icon-size)}.btn-group-sm>.btn-icon.btn,.btn-icon.btn-sm{--si-btn-size:2.25rem;--si-btn-icon-size:1.125rem}.btn-group-lg>.btn-icon.btn,.btn-icon.btn-lg{--si-btn-size:3.25rem;--si-btn-icon-size:1.4375rem}.btn-icon.btn-xl{--si-btn-size:4.5rem;--si-btn-icon-size:1.75rem}.btn-video{--si-btn-video-bg:#fff;--si-btn-video-hover-bg:#6366f1;--si-btn-video-color:#33354d;--si-btn-video-white-color:#33354d;--si-btn-video-hover-color:#fff;--si-btn-video-border-radius:50%;--si-btn-video-shadow:0 0.275rem 0.75rem -0.0625rem rgba(11,15,25,.06),0 0.125rem 0.4rem -0.0625rem rgba(11,15,25,.03);--si-btn-video-hover-shadow:0 0.5rem 1.125rem -0.5rem rgba(99,102,241,.9);background-color:var(--si-btn-video-bg);border:0;border-radius:50%;color:var(--si-btn-video-color)!important;padding-left:.125rem}.btn-video,.btn-video:focus{box-shadow:var(--si-btn-video-shadow)}.btn-video.bg-white{color:var(--si-btn-video-white-color)!important}.btn-video:hover{background-color:var(--si-btn-video-hover-bg)!important;box-shadow:var(--si-btn-video-hover-shadow)!important;color:var(--si-btn-video-hover-color)!important}.btn-group .btn{--si-btn-padding-x:1.3125rem}.btn-group .btn.dropdown-toggle-split{--si-btn-padding-x:0.875rem;padding-left:var(--si-btn-padding-x);padding-right:var(--si-btn-padding-x)}.btn-group .btn-lg,.btn-group-lg .btn{--si-btn-padding-x:1.5rem}.btn-group .btn-lg.dropdown-toggle-split,.btn-group-lg .btn.dropdown-toggle-split{--si-btn-padding-x:1rem;padding-left:var(--si-btn-padding-x);padding-right:var(--si-btn-padding-x)}.btn-group .btn-sm,.btn-group-sm .btn{--si-btn-padding-x:0.9375rem}.btn-group .btn-sm.dropdown-toggle-split,.btn-group-sm .btn.dropdown-toggle-split{--si-btn-padding-x:0.625rem;padding-left:var(--si-btn-padding-x);padding-right:var(--si-btn-padding-x)}.btn-close{transition:opacity .25s ease-in-out}.btn-scroll-top{--si-btn-scroll-top-size:2.75rem;--si-btn-scroll-top-border-radius:50%;--si-btn-scroll-top-color:#fff;--si-btn-scroll-top-hover-color:#fff;--si-btn-scroll-top-bg:rgba(11,15,25,.2);--si-btn-scroll-top-hover-bg:rgba(11,15,25,.4);--si-btn-scroll-top-icon-size:1.5rem;align-items:center;background-color:var(--si-btn-scroll-top-bg);border-radius:var(--si-btn-scroll-top-border-radius);bottom:-4.125rem;color:var(--si-btn-scroll-top-color);display:flex;height:var(--si-btn-scroll-top-size);justify-content:center;opacity:0;position:fixed;right:1.25rem;text-decoration:none;transition:bottom .4s cubic-bezier(.68,-.55,.265,1.55),opacity .3s,background-color .25s ease-in-out;width:var(--si-btn-scroll-top-size);z-index:1030}.btn-scroll-top>.btn-scroll-top-icon{font-size:var(--si-btn-scroll-top-icon-size);font-weight:700}.btn-scroll-top .btn-scroll-top-tooltip{opacity:0;position:absolute;right:100%;top:50%;transform:translateY(-50%);transition:opacity .25s ease-in-out,visibility .25s ease-in-out;visibility:hidden}.btn-scroll-top:hover{background-color:var(--si-btn-scroll-top-hover-bg);color:var(--si-btn-scroll-top-hover-color)}.btn-scroll-top:hover .btn-scroll-top-tooltip{opacity:1;visibility:visible}.btn-scroll-top.show{bottom:1.25rem;opacity:1}@media (max-width:499.98px){.btn-scroll-top{height:calc(var(--si-btn-scroll-top-size)*.8);right:1rem;width:calc(var(--si-btn-scroll-top-size)*.8)}.btn-scroll-top.show{bottom:1rem}}[data-bs-theme=dark] .btn-outline-secondary{--si-btn-color:hsla(0,0%,100%,.85);--si-btn-hover-color:#33354d;--si-btn-active-color:#33354d;--si-btn-border-color:hsla(0,0%,100%,.25);--si-btn-hover-bg:#fff;--si-btn-active-bg:#fff}[data-bs-theme=dark] .btn-secondary:not(.bg-white){--si-btn-color:hsla(0,0%,100%,.85);--si-btn-hover-color:#fff;--si-btn-active-color:#fff;--si-btn-border-color:transparent;--si-btn-hover-border-color:transparent;--si-btn-active-border-color:transparent;--si-btn-bg:hsla(0,0%,100%,.06);--si-btn-hover-bg:hsla(0,0%,100%,.12);--si-btn-active-bg:hsla(0,0%,100%,.12);--si-btn-disabled-bg:hsla(0,0%,100%,.05);--si-btn-disabled-border-color:transparent}[data-bs-theme=dark] .btn-light,[data-bs-theme=dark] .btn-outline-light,[data-bs-theme=dark] .btn-outline-secondary,[data-bs-theme=dark] .btn-secondary{--si-btn-disabled-color:hsla(0,0%,100%,.5)}[data-bs-theme=dark] .btn-dark{--si-btn-color:#33354d!important;--si-btn-hover-color:#33354d!important;--si-btn-active-color:#33354d!important;--si-btn-bg:#eff2fc;--si-btn-hover-bg:#d5ddf7;--si-btn-active-bg:#d5ddf7}[data-bs-theme=dark] .btn-video{--si-btn-video-bg:hsla(0,0%,100%,.05);--si-btn-video-hover-bg:#6366f1;--si-btn-video-color:#fff;--si-btn-video-hover-color:#fff;--si-btn-video-shadow:none;--si-btn-video-hover-shadow:0 0.5rem 1.125rem -0.5rem rgba(99,102,241,.9)}[data-bs-theme=dark] .btn-scroll-top{--si-btn-scroll-top-color:#fff;--si-btn-scroll-top-hover-color:#fff;--si-btn-scroll-top-bg:hsla(0,0%,100%,.15);--si-btn-scroll-top-hover-bg:hsla(0,0%,100%,.3)}.btn-airbnb:active,.btn-airbnb:focus,.btn-airbnb:hover{background-color:#fd5c63!important;border-color:#fd5c63!important;box-shadow:0 .375rem 1.125rem -.375rem rgba(253,92,99,.8)!important;color:#fff!important}.btn-behance:active,.btn-behance:focus,.btn-behance:hover{background-color:#1769ff!important;border-color:#1769ff!important;box-shadow:0 .375rem 1.125rem -.375rem rgba(23,105,255,.8)!important;color:#fff!important}.btn-blogger:active,.btn-blogger:focus,.btn-blogger:hover{background-color:#f57d00!important;border-color:#f57d00!important;box-shadow:0 .375rem 1.125rem -.375rem rgba(245,125,0,.8)!important;color:#fff!important}.btn-codepen:active,.btn-codepen:focus,.btn-codepen:hover{background-color:#0ebeff!important;border-color:#0ebeff!important;box-shadow:0 .375rem 1.125rem -.375rem rgba(14,190,255,.8)!important;color:#fff!important}.btn-discord:active,.btn-discord:focus,.btn-discord:hover{background-color:#7289da!important;border-color:#7289da!important;box-shadow:0 .375rem 1.125rem -.375rem rgba(114,137,218,.8)!important;color:#fff!important}.btn-dribbble:active,.btn-dribbble:focus,.btn-dribbble:hover{background-color:#ea4c89!important;border-color:#ea4c89!important;box-shadow:0 .375rem 1.125rem -.375rem rgba(234,76,137,.8)!important;color:#fff!important}.btn-dropbox:active,.btn-dropbox:focus,.btn-dropbox:hover{background-color:#007ee5!important;border-color:#007ee5!important;box-shadow:0 .375rem 1.125rem -.375rem rgba(0,126,229,.8)!important;color:#fff!important}.btn-facebook:active,.btn-facebook:focus,.btn-facebook:hover{background-color:#1877f2!important;border-color:#1877f2!important;box-shadow:0 .375rem 1.125rem -.375rem rgba(24,119,242,.8)!important;color:#fff!important}.btn-flickr:active,.btn-flickr:focus,.btn-flickr:hover{background-color:#0063dc!important;border-color:#0063dc!important;box-shadow:0 .375rem 1.125rem -.375rem rgba(0,99,220,.8)!important;color:#fff!important}.btn-foursquare:active,.btn-foursquare:focus,.btn-foursquare:hover{background-color:#f94877!important;border-color:#f94877!important;box-shadow:0 .375rem 1.125rem -.375rem rgba(249,72,119,.8)!important;color:#fff!important}.btn-gitlab:active,.btn-gitlab:focus,.btn-gitlab:hover{background-color:#fc6d26!important;border-color:#fc6d26!important;box-shadow:0 .375rem 1.125rem -.375rem rgba(252,109,38,.8)!important;color:#fff!important}.btn-github:active,.btn-github:focus,.btn-github:hover{background-color:#4078c0!important;border-color:#4078c0!important;box-shadow:0 .375rem 1.125rem -.375rem rgba(64,120,192,.8)!important;color:#fff!important}.btn-google:active,.btn-google:focus,.btn-google:hover{background-color:#ea4335!important;border-color:#ea4335!important;box-shadow:0 .375rem 1.125rem -.375rem rgba(234,67,53,.8)!important;color:#fff!important}.btn-instagram:active,.btn-instagram:focus,.btn-instagram:hover{background-color:#405de6!important;border-color:#405de6!important;box-shadow:0 .375rem 1.125rem -.375rem rgba(64,93,230,.8)!important;color:#fff!important}.btn-kickstarter:active,.btn-kickstarter:focus,.btn-kickstarter:hover{background-color:#2bde73!important;border-color:#2bde73!important;box-shadow:0 .375rem 1.125rem -.375rem rgba(43,222,115,.8)!important;color:#fff!important}.btn-linkedin:active,.btn-linkedin:focus,.btn-linkedin:hover{background-color:#0077b5!important;border-color:#0077b5!important;box-shadow:0 .375rem 1.125rem -.375rem rgba(0,119,181,.8)!important;color:#fff!important}.btn-medium:active,.btn-medium:focus,.btn-medium:hover{background-color:#00ab6c!important;border-color:#00ab6c!important;box-shadow:0 .375rem 1.125rem -.375rem rgba(0,171,108,.8)!important;color:#fff!important}.btn-messenger:active,.btn-messenger:focus,.btn-messenger:hover{background-color:#0084ff!important;border-color:#0084ff!important;box-shadow:0 .375rem 1.125rem -.375rem rgba(0,132,255,.8)!important;color:#fff!important}.btn-ok:active,.btn-ok:focus,.btn-ok:hover{background-color:#ed812b!important;border-color:#ed812b!important;box-shadow:0 .375rem 1.125rem -.375rem rgba(237,129,43,.8)!important;color:#fff!important}.btn-patreon:active,.btn-patreon:focus,.btn-patreon:hover{background-color:#f96854!important;border-color:#f96854!important;box-shadow:0 .375rem 1.125rem -.375rem hsla(7,93%,65%,.8)!important;color:#fff!important}.btn-pinterest:active,.btn-pinterest:focus,.btn-pinterest:hover{background-color:#e60023!important;border-color:#e60023!important;box-shadow:0 .375rem 1.125rem -.375rem rgba(230,0,35,.8)!important;color:#fff!important}.btn-product-hunt:active,.btn-product-hunt:focus,.btn-product-hunt:hover{background-color:#da552f!important;border-color:#da552f!important;box-shadow:0 .375rem 1.125rem -.375rem rgba(218,85,47,.8)!important;color:#fff!important}.btn-reddit:active,.btn-reddit:focus,.btn-reddit:hover{background-color:#ff4500!important;border-color:#ff4500!important;box-shadow:0 .375rem 1.125rem -.375rem rgba(255,69,0,.8)!important;color:#fff!important}.btn-skype:active,.btn-skype:focus,.btn-skype:hover{background-color:#00aff0!important;border-color:#00aff0!important;box-shadow:0 .375rem 1.125rem -.375rem rgba(0,175,240,.8)!important;color:#fff!important}.btn-slack:active,.btn-slack:focus,.btn-slack:hover{background-color:#611f69!important;border-color:#611f69!important;box-shadow:0 .375rem 1.125rem -.375rem rgba(97,31,105,.8)!important;color:#fff!important}.btn-snapchat:active,.btn-snapchat:focus,.btn-snapchat:hover{background-color:#fffc00!important;border-color:#fffc00!important;box-shadow:0 .375rem 1.125rem -.375rem rgba(255,252,0,.8)!important;color:#fff!important}.btn-stack-overflow:active,.btn-stack-overflow:focus,.btn-stack-overflow:hover{background-color:#f48024!important;border-color:#f48024!important;box-shadow:0 .375rem 1.125rem -.375rem rgba(244,128,36,.8)!important;color:#fff!important}.btn-steam:active,.btn-steam:focus,.btn-steam:hover{background-color:#00adee!important;border-color:#00adee!important;box-shadow:0 .375rem 1.125rem -.375rem rgba(0,173,238,.8)!important;color:#fff!important}.btn-telegram:active,.btn-telegram:focus,.btn-telegram:hover{background-color:#08c!important;border-color:#08c!important;box-shadow:0 .375rem 1.125rem -.375rem rgba(0,136,204,.8)!important;color:#fff!important}.btn-tiktok:active,.btn-tiktok:focus,.btn-tiktok:hover{background-color:#fe2c55!important;border-color:#fe2c55!important;box-shadow:0 .375rem 1.125rem -.375rem rgba(254,44,85,.8)!important;color:#fff!important}.btn-trip-advisor:active,.btn-trip-advisor:focus,.btn-trip-advisor:hover{background-color:#00af87!important;border-color:#00af87!important;box-shadow:0 .375rem 1.125rem -.375rem rgba(0,175,135,.8)!important;color:#fff!important}.btn-tumblr:active,.btn-tumblr:focus,.btn-tumblr:hover{background-color:#35465c!important;border-color:#35465c!important;box-shadow:0 .375rem 1.125rem -.375rem rgba(53,70,92,.8)!important;color:#fff!important}.btn-twitch:active,.btn-twitch:focus,.btn-twitch:hover{background-color:#9146ff!important;border-color:#9146ff!important;box-shadow:0 .375rem 1.125rem -.375rem rgba(145,70,255,.8)!important;color:#fff!important}.btn-twitter:active,.btn-twitter:focus,.btn-twitter:hover{background-color:#1da1f2!important;border-color:#1da1f2!important;box-shadow:0 .375rem 1.125rem -.375rem rgba(29,161,242,.8)!important;color:#fff!important}.btn-vimeo:active,.btn-vimeo:focus,.btn-vimeo:hover{background-color:#1ab7ea!important;border-color:#1ab7ea!important;box-shadow:0 .375rem 1.125rem -.375rem rgba(26,183,234,.8)!important;color:#fff!important}.btn-vk:active,.btn-vk:focus,.btn-vk:hover{background-color:#45668e!important;border-color:#45668e!important;box-shadow:0 .375rem 1.125rem -.375rem rgba(69,102,142,.8)!important;color:#fff!important}.btn-whatsapp:active,.btn-whatsapp:focus,.btn-whatsapp:hover{background-color:#128c7e!important;border-color:#128c7e!important;box-shadow:0 .375rem 1.125rem -.375rem rgba(18,140,126,.8)!important;color:#fff!important}.btn-youtube:active,.btn-youtube:focus,.btn-youtube:hover{background-color:red!important;border-color:red!important;box-shadow:0 .375rem 1.125rem -.375rem rgba(255,0,0,.8)!important;color:#fff!important}.btn-zoom:active,.btn-zoom:focus,.btn-zoom:hover{background-color:#2d8cff!important;border-color:#2d8cff!important;box-shadow:0 .375rem 1.125rem -.375rem rgba(45,140,255,.8)!important;color:#fff!important}.btn-snapchat:active,.btn-snapchat:focus,.btn-snapchat:hover{color:#33354d!important}.dropdown-toggle:after,.dropdown-toggle:before{border:none!important;font-family:boxicons;font-size:1.375em;font-weight:400;line-height:1;vertical-align:middle!important}.dropdown-toggle:after{content:"\ea4a";margin-right:-.25rem}.dropdown-toggle.fs-sm:after{margin-top:-.0625rem!important}.dropdown-toggle.btn:not(.btn-lg):after,.dropdown-toggle.btn:not(.btn-lg):before{font-size:1.375em}.dropup .dropdown-toggle:after{content:"\ea57"}.dropstart .dropdown-toggle:before{content:"\ea4d";margin-left:-.3125rem}.dropend .dropdown-toggle:after{content:"\ed3b";font-size:1.15em!important;margin-right:-.3125rem}.dropdown-toggle-split:after,.dropdown-toggle-split:before{margin:0}.dropdown-menu{--si-dropdown-link-font-weight:500}.dropdown-menu li:hover>.dropdown-item{color:var(--si-dropdown-link-hover-color)}.dropdown-menu .active>.dropdown-item{color:var(--si-dropdown-link-active-color)}.dropdown-menu .active>.dropdown-item,.dropdown-menu .dropdown-item.active{pointer-events:none}.dropdown-menu.w-100{min-width:100%}.dropdown-menu-dark,[data-bs-theme=dark] .dropdown-menu:not([data-bs-theme=light]){background:var(--si-dropdown-bg)}.dropdown-menu-dark li:hover>.dropdown-item,[data-bs-theme=dark] .dropdown-menu:not([data-bs-theme=light]) li:hover>.dropdown-item{color:var(--si-dropdown-link-hover-color)}.dropdown-menu-dark .active>.dropdown-item,[data-bs-theme=dark] .dropdown-menu:not([data-bs-theme=light]) .active>.dropdown-item{color:var(--si-dropdown-link-active-color)}.dropdown-item{font-weight:var(--si-dropdown-link-font-weight)}.dropdown-divider{margin-left:var(--si-dropdown-item-padding-x);margin-right:var(--si-dropdown-item-padding-x)}hr.dropdown-divider{height:var(--si-dropdown-border-width)}.dropdown-menu-dark hr.dropdown-divider,[data-bs-theme=dark] .dropdown-menu:not([data-bs-theme=light]) hr.dropdown-divider,hr.dropdown-divider{background-color:var(--si-dropdown-divider-bg);border:0}.dropdown-menu.show{animation:fade-in .2s ease-in-out}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.nav-tabs-alt>.nav-item>.dropdown-menu{border-top-color:transparent;border-top-left-radius:0;border-top-right-radius:0;margin-top:-.125rem!important}.nav-item{margin-bottom:0}.nav{--si-nav-link-active-color:#6366f1}.nav-link{align-items:center;display:flex}.nav-link.active{color:var(--si-nav-link-active-color)}.nav-link.active:not([data-bs-toggle=dropdown]){cursor:default;pointer-events:none}.nav-tabs{--si-nav-tabs-link-bg:#eff2fc;--si-nav-tabs-link-hover-bg:rgba(99,102,241,.12);--si-nav-tabs-link-disabled-bg:#f3f6ff;--si-nav-tabs-link-color:#33354d;--si-nav-tabs-link-hover-color:#6366f1;--si-nav-tabs-link-disabled-color:#9397ad}.nav-tabs,.nav-tabs .nav-item{margin-bottom:.75rem}.nav-tabs .nav-link{background-color:var(--si-nav-tabs-link-bg);border-radius:var(--si-nav-tabs-border-radius);color:var(--si-nav-tabs-link-color)}.nav-tabs .nav-link.show:not(.active),.nav-tabs .nav-link:hover:not(.active){background-color:var(--si-nav-tabs-link-hover-bg);color:var(--si-nav-tabs-link-hover-color)}.nav-tabs .nav-link.disabled,.nav-tabs .nav-link[disabled]{background-color:var(--si-nav-tabs-link-disabled-bg);color:var(--si-nav-tabs-link-disabled-color)}.nav-tabs .dropdown-menu{border-top-left-radius:var(--si-dropdown-border-radius);border-top-right-radius:var(--si-dropdown-border-radius)}.nav-tabs-alt{--si-nav-tabs-alt-border-width:1px;--si-nav-tabs-alt-border-color:#e2e5f1;--si-nav-tabs-alt-link-padding-y:0.8025rem;--si-nav-tabs-alt-link-padding-x:1rem;--si-nav-tabs-alt-link-active-border-color:#6366f1;border-bottom:var(--si-nav-tabs-alt-border-width) solid var(--si-nav-tabs-alt-border-color);margin-bottom:1.5rem}.nav-tabs-alt .nav-item{margin-bottom:calc(var(--si-nav-tabs-alt-border-width)*-1)}.nav-tabs-alt .nav-link{border-bottom:1px solid transparent;padding:var(--si-nav-tabs-alt-link-padding-y) var(--si-nav-tabs-alt-link-padding-x)}.nav-tabs-alt .nav-link.active{border-bottom-color:var(--si-nav-tabs-alt-link-active-border-color)}.nav-pills .nav-item,.nav-tabs .nav-item{margin-right:.75rem}.nav-pills .nav-item:last-child,.nav-tabs .nav-item:last-child{margin-right:0}.nav-pills.justify-content-center .nav-item,.nav-tabs.justify-content-center .nav-item{margin-left:.375rem;margin-right:.375rem}.nav-pills.justify-content-end .nav-item,.nav-tabs.justify-content-end .nav-item{margin-left:.75rem;margin-right:0}.nav-pills.flex-column .nav-item,.nav-tabs.flex-column .nav-item{margin-bottom:.75rem;margin-left:0;margin-right:0}.nav-pills.flex-column .nav-item:last-child,.nav-tabs.flex-column .nav-item:last-child{margin-bottom:0}.side-nav{--si-side-nav-padding-y:0;--si-side-nav-padding-x:2rem;--si-side-nav-border-width:1px;--si-side-nav-border-color:#e2e5f1;--si-side-nav-link-padding-y:0.375rem;--si-side-nav-link-padding-x:2rem;--si-side-nav-link-font-size:0.875rem;--si-side-nav-link-active-border-color:#6366f1;padding:var(--si-side-nav-padding-y) var(--si-side-nav-padding-x)}.side-nav .nav{flex-direction:column;margin-left:calc(var(--si-side-nav-padding-x)*-1);margin-right:calc(var(--si-side-nav-padding-x)*-1)}.side-nav .nav-link{font-size:var(--si-side-nav-link-font-size);padding:var(--si-side-nav-link-padding-y) var(--si-side-nav-link-padding-x);transition:color .2s ease-in-out,border-color .2s ease-in-out,background-color .2s ease-in-out}.side-nav.side-nav-start{border-right:var(--si-side-nav-border-width) solid var(--si-side-nav-border-color)}.side-nav.side-nav-start .nav-link{border-right:var(--si-side-nav-border-width) solid transparent;margin-right:calc(var(--si-side-nav-border-width)*-1)}.side-nav.side-nav-end{border-left:var(--si-side-nav-border-width) solid var(--si-side-nav-border-color)}.side-nav.side-nav-end .nav-link{border-left:var(--si-side-nav-border-width) solid transparent;margin-left:calc(var(--si-side-nav-border-width)*-1)}.side-nav .active>.nav-link,.side-nav .nav-link.active{border-color:var(--si-side-nav-link-active-border-color)}.bg-faded-primary-hover{transition:background-color .2s ease-in-out}.bg-faded-primary-hover:hover{background-color:rgba(99,102,241,.12)!important}[data-bs-theme=dark] .nav:not([data-bs-theme=light]){--si-nav-link-color:hsla(0,0%,100%,.85);--si-nav-link-hover-color:#6366f1;--si-nav-link-active-color:#6366f1;--si-nav-link-disabled-color:hsla(0,0%,100%,.4)}[data-bs-theme=dark] .nav-tabs:not([data-bs-theme=light]){--si-nav-tabs-link-bg:hsla(0,0%,100%,.05);--si-nav-tabs-link-hover-bg:rgba(99,102,241,.12);--si-nav-tabs-link-active-bg:#6366f1;--si-nav-tabs-link-disabled-bg:hsla(0,0%,100%,.04);--si-nav-tabs-link-color:hsla(0,0%,100%,.85);--si-nav-tabs-link-hover-color:#6366f1;--si-nav-tabs-link-active-color:#fff;--si-nav-tabs-link-disabled-color:hsla(0,0%,100%,.4)}[data-bs-theme=dark] .nav-tabs-alt:not([data-bs-theme=light]){--si-nav-tabs-alt-border-color:hsla(0,0%,100%,.14)}[data-bs-theme=dark] .side-nav:not([data-bs-theme=light]){--si-side-nav-border-color:hsla(0,0%,100%,.14)}.navbar-brand{--si-navbar-brand-padding-y:0.5rem;--si-navbar-brand-margin-end:1rem;--si-navbar-brand-font-size:1.375rem;--si-navbar-brand-font-weight:800;align-items:center;display:flex;font-weight:var(--si-navbar-brand-font-weight);padding:calc(var(--si-navbar-brand-padding-y)*.5) 0}.navbar-brand>img{margin-right:.4375rem}.navbar-toggler{height:2.25rem;position:relative;width:1.875rem}.navbar-toggler-icon{display:block;margin-top:-.0625rem;top:50%;transition-duration:75ms;transition-timing-function:cubic-bezier(.55,.055,.675,.19)}.navbar-toggler-icon,.navbar-toggler-icon:after,.navbar-toggler-icon:before{background-color:var(--si-navbar-toggler-color);height:.125rem;position:absolute;transition-property:transform .15s ease;width:1.375rem}.navbar-toggler-icon:after,.navbar-toggler-icon:before{content:"";display:block}.navbar-toggler-icon:before{top:-.4375rem;transition:top 75ms ease .12s,opacity 75ms ease}.navbar-toggler-icon:after{bottom:-.4375rem;transition:bottom 75ms ease .12s,transform 75ms cubic-bezier(.55,.055,.675,.19)}[aria-expanded=true] .navbar-toggler-icon{transform:rotate(45deg);transition-delay:.12s;transition-timing-function:cubic-bezier(.215,.61,.355,1)}[aria-expanded=true] .navbar-toggler-icon:before{opacity:0;top:0;transition:top 75ms ease,opacity 75ms ease .12s}[aria-expanded=true] .navbar-toggler-icon:after{bottom:0;transform:rotate(-90deg);transition:bottom 75ms ease,transform 75ms cubic-bezier(.215,.61,.355,1) .12s}.navbar-nav{--si-nav-link-font-weight:600;--si-mega-dropdown-column-width:14rem}.navbar .dropdown-toggle:after{font-size:1.15em;margin-top:.0625rem}.navbar .navbar-nav .dropdown-menu{background:none;border:0;border-left:var(--si-dropdown-border-wdth,1px) solid var(--si-border-color);border-radius:0;box-shadow:none}.navbar .navbar-nav .dropdown-menu.dropdown-menu-dark,.navbar .navbar-nav [data-bs-theme=dark] .dropdown-menu:not([data-bs-theme=light]),[data-bs-theme=dark] .navbar .navbar-nav .dropdown-menu:not([data-bs-theme=light]){border-color:hsla(0,0%,100%,.14)}.navbar .navbar-nav .dropdown-menu .dropdown-menu{margin-left:.75rem;margin-right:.75rem}.navbar .navbar-nav .dropdown-menu .dropdown-toggle:after{font-size:1em;margin-left:.125rem;margin-right:0;margin-top:-.0625rem}@keyframes dropdown-show{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@media (min-width:500px){.navbar-expand-sm .navbar-brand{padding:var(--si-navbar-brand-padding-y) 0}.navbar-expand-sm .offcanvas{background-color:transparent!important;box-shadow:none}.navbar-expand-sm .offcanvas-header{display:none}.navbar-expand-sm .dropdown-divider{display:block}.navbar-expand-sm .navbar-nav .dropdown-menu{background-color:var(--si-dropdown-bg);border:var(--si-dropdown-border-width) solid var(--si-dropdown-border-color);border-radius:var(--si-dropdown-border-radius);box-shadow:var(--si-dropdown-box-shadow);margin-top:var(--si-dropdown-spacer)}.navbar-expand-sm .navbar-nav .dropdown-menu.dropdown-menu-dark,.navbar-expand-sm .navbar-nav [data-bs-theme=dark] .dropdown-menu:not([data-bs-theme=light]),[data-bs-theme=dark] .navbar-expand-sm .navbar-nav .dropdown-menu:not([data-bs-theme=light]){background:var(--si-dropdown-bg)}.navbar-expand-sm .dropdown-menu.show{display:none}.navbar-expand-sm .dropdown:before{content:"";height:.375rem;left:0;position:absolute;top:100%;width:100%}.navbar-expand-sm .dropdown .dropdown .dropdown-toggle{align-items:center;display:flex}.navbar-expand-sm .dropdown .dropdown .dropdown-toggle:after{content:"\ea50";font-size:1.25em;margin-left:auto;margin-right:-.3125rem;margin-top:0}.navbar-expand-sm .dropdown .dropdown .dropdown-menu{left:100%;margin-left:0;margin-right:0;top:calc((var(--si-dropdown-item-padding-y) + var(--si-dropdown-padding-y))*-1)}.navbar-expand-sm .dropdown .dropdown-menu-end{left:auto;right:0}.navbar-expand-sm .dropstart>.dropdown-menu{margin-left:0;margin-right:0;right:94%;top:calc((var(--si-dropdown-item-padding-y) + var(--si-dropdown-padding-y))*-1)}.navbar-expand-sm .dropdown:hover>.dropdown-menu,.navbar-expand-sm .dropstart:hover>.dropdown-menu{animation:dropdown-show .2s;display:block}.navbar-expand-sm .mega-dropdown-column{padding:0 .75rem;width:var(--si-mega-dropdown-column-width)}.navbar-expand-sm .mega-dropdown-column:last-child{border-right:0}}@media (min-width:768px){.navbar-expand-md .navbar-brand{padding:var(--si-navbar-brand-padding-y) 0}.navbar-expand-md .offcanvas{background-color:transparent!important;box-shadow:none}.navbar-expand-md .offcanvas-header{display:none}.navbar-expand-md .dropdown-divider{display:block}.navbar-expand-md .navbar-nav .dropdown-menu{background-color:var(--si-dropdown-bg);border:var(--si-dropdown-border-width) solid var(--si-dropdown-border-color);border-radius:var(--si-dropdown-border-radius);box-shadow:var(--si-dropdown-box-shadow);margin-top:var(--si-dropdown-spacer)}.navbar-expand-md .navbar-nav .dropdown-menu.dropdown-menu-dark,.navbar-expand-md .navbar-nav [data-bs-theme=dark] .dropdown-menu:not([data-bs-theme=light]),[data-bs-theme=dark] .navbar-expand-md .navbar-nav .dropdown-menu:not([data-bs-theme=light]){background:var(--si-dropdown-bg)}.navbar-expand-md .dropdown-menu.show{display:none}.navbar-expand-md .dropdown:before{content:"";height:.375rem;left:0;position:absolute;top:100%;width:100%}.navbar-expand-md .dropdown .dropdown .dropdown-toggle{align-items:center;display:flex}.navbar-expand-md .dropdown .dropdown .dropdown-toggle:after{content:"\ea50";font-size:1.25em;margin-left:auto;margin-right:-.3125rem;margin-top:0}.navbar-expand-md .dropdown .dropdown .dropdown-menu{left:100%;margin-left:0;margin-right:0;top:calc((var(--si-dropdown-item-padding-y) + var(--si-dropdown-padding-y))*-1)}.navbar-expand-md .dropdown .dropdown-menu-end{left:auto;right:0}.navbar-expand-md .dropstart>.dropdown-menu{margin-left:0;margin-right:0;right:94%;top:calc((var(--si-dropdown-item-padding-y) + var(--si-dropdown-padding-y))*-1)}.navbar-expand-md .dropdown:hover>.dropdown-menu,.navbar-expand-md .dropstart:hover>.dropdown-menu{animation:dropdown-show .2s;display:block}.navbar-expand-md .mega-dropdown-column{padding:0 .75rem;width:var(--si-mega-dropdown-column-width)}.navbar-expand-md .mega-dropdown-column:last-child{border-right:0}}@media (min-width:992px){.navbar-expand-lg .navbar-brand{padding:var(--si-navbar-brand-padding-y) 0}.navbar-expand-lg .offcanvas{background-color:transparent!important;box-shadow:none}.navbar-expand-lg .offcanvas-header{display:none}.navbar-expand-lg .dropdown-divider{display:block}.navbar-expand-lg .navbar-nav .dropdown-menu{background-color:var(--si-dropdown-bg);border:var(--si-dropdown-border-width) solid var(--si-dropdown-border-color);border-radius:var(--si-dropdown-border-radius);box-shadow:var(--si-dropdown-box-shadow);margin-top:var(--si-dropdown-spacer)}.navbar-expand-lg .navbar-nav .dropdown-menu.dropdown-menu-dark,.navbar-expand-lg .navbar-nav [data-bs-theme=dark] .dropdown-menu:not([data-bs-theme=light]),[data-bs-theme=dark] .navbar-expand-lg .navbar-nav .dropdown-menu:not([data-bs-theme=light]){background:var(--si-dropdown-bg)}.navbar-expand-lg .dropdown-menu.show{display:none}.navbar-expand-lg .dropdown:before{content:"";height:.375rem;left:0;position:absolute;top:100%;width:100%}.navbar-expand-lg .dropdown .dropdown .dropdown-toggle{align-items:center;display:flex}.navbar-expand-lg .dropdown .dropdown .dropdown-toggle:after{content:"\ea50";font-size:1.25em;margin-left:auto;margin-right:-.3125rem;margin-top:0}.navbar-expand-lg .dropdown .dropdown .dropdown-menu{left:100%;margin-left:0;margin-right:0;top:calc((var(--si-dropdown-item-padding-y) + var(--si-dropdown-padding-y))*-1)}.navbar-expand-lg .dropdown .dropdown-menu-end{left:auto;right:0}.navbar-expand-lg .dropstart>.dropdown-menu{margin-left:0;margin-right:0;right:94%;top:calc((var(--si-dropdown-item-padding-y) + var(--si-dropdown-padding-y))*-1)}.navbar-expand-lg .dropdown:hover>.dropdown-menu,.navbar-expand-lg .dropstart:hover>.dropdown-menu{animation:dropdown-show .2s;display:block}.navbar-expand-lg .mega-dropdown-column{padding:0 .75rem;width:var(--si-mega-dropdown-column-width)}.navbar-expand-lg .mega-dropdown-column:last-child{border-right:0}}@media (min-width:1200px){.navbar-expand-xl .navbar-brand{padding:var(--si-navbar-brand-padding-y) 0}.navbar-expand-xl .offcanvas{background-color:transparent!important;box-shadow:none}.navbar-expand-xl .offcanvas-header{display:none}.navbar-expand-xl .dropdown-divider{display:block}.navbar-expand-xl .navbar-nav .dropdown-menu{background-color:var(--si-dropdown-bg);border:var(--si-dropdown-border-width) solid var(--si-dropdown-border-color);border-radius:var(--si-dropdown-border-radius);box-shadow:var(--si-dropdown-box-shadow);margin-top:var(--si-dropdown-spacer)}.navbar-expand-xl .navbar-nav .dropdown-menu.dropdown-menu-dark,.navbar-expand-xl .navbar-nav [data-bs-theme=dark] .dropdown-menu:not([data-bs-theme=light]),[data-bs-theme=dark] .navbar-expand-xl .navbar-nav .dropdown-menu:not([data-bs-theme=light]){background:var(--si-dropdown-bg)}.navbar-expand-xl .dropdown-menu.show{display:none}.navbar-expand-xl .dropdown:before{content:"";height:.375rem;left:0;position:absolute;top:100%;width:100%}.navbar-expand-xl .dropdown .dropdown .dropdown-toggle{align-items:center;display:flex}.navbar-expand-xl .dropdown .dropdown .dropdown-toggle:after{content:"\ea50";font-size:1.25em;margin-left:auto;margin-right:-.3125rem;margin-top:0}.navbar-expand-xl .dropdown .dropdown .dropdown-menu{left:100%;margin-left:0;margin-right:0;top:calc((var(--si-dropdown-item-padding-y) + var(--si-dropdown-padding-y))*-1)}.navbar-expand-xl .dropdown .dropdown-menu-end{left:auto;right:0}.navbar-expand-xl .dropstart>.dropdown-menu{margin-left:0;margin-right:0;right:94%;top:calc((var(--si-dropdown-item-padding-y) + var(--si-dropdown-padding-y))*-1)}.navbar-expand-xl .dropdown:hover>.dropdown-menu,.navbar-expand-xl .dropstart:hover>.dropdown-menu{animation:dropdown-show .2s;display:block}.navbar-expand-xl .mega-dropdown-column{padding:0 .75rem;width:var(--si-mega-dropdown-column-width)}.navbar-expand-xl .mega-dropdown-column:last-child{border-right:0}}@media (min-width:1400px){.navbar-expand-xxl .navbar-brand{padding:var(--si-navbar-brand-padding-y) 0}.navbar-expand-xxl .offcanvas{background-color:transparent!important;box-shadow:none}.navbar-expand-xxl .offcanvas-header{display:none}.navbar-expand-xxl .dropdown-divider{display:block}.navbar-expand-xxl .navbar-nav .dropdown-menu{background-color:var(--si-dropdown-bg);border:var(--si-dropdown-border-width) solid var(--si-dropdown-border-color);border-radius:var(--si-dropdown-border-radius);box-shadow:var(--si-dropdown-box-shadow);margin-top:var(--si-dropdown-spacer)}.navbar-expand-xxl .navbar-nav .dropdown-menu.dropdown-menu-dark,.navbar-expand-xxl .navbar-nav [data-bs-theme=dark] .dropdown-menu:not([data-bs-theme=light]),[data-bs-theme=dark] .navbar-expand-xxl .navbar-nav .dropdown-menu:not([data-bs-theme=light]){background:var(--si-dropdown-bg)}.navbar-expand-xxl .dropdown-menu.show{display:none}.navbar-expand-xxl .dropdown:before{content:"";height:.375rem;left:0;position:absolute;top:100%;width:100%}.navbar-expand-xxl .dropdown .dropdown .dropdown-toggle{align-items:center;display:flex}.navbar-expand-xxl .dropdown .dropdown .dropdown-toggle:after{content:"\ea50";font-size:1.25em;margin-left:auto;margin-right:-.3125rem;margin-top:0}.navbar-expand-xxl .dropdown .dropdown .dropdown-menu{left:100%;margin-left:0;margin-right:0;top:calc((var(--si-dropdown-item-padding-y) + var(--si-dropdown-padding-y))*-1)}.navbar-expand-xxl .dropdown .dropdown-menu-end{left:auto;right:0}.navbar-expand-xxl .dropstart>.dropdown-menu{margin-left:0;margin-right:0;right:94%;top:calc((var(--si-dropdown-item-padding-y) + var(--si-dropdown-padding-y))*-1)}.navbar-expand-xxl .dropdown:hover>.dropdown-menu,.navbar-expand-xxl .dropstart:hover>.dropdown-menu{animation:dropdown-show .2s;display:block}.navbar-expand-xxl .mega-dropdown-column{padding:0 .75rem;width:var(--si-mega-dropdown-column-width)}.navbar-expand-xxl .mega-dropdown-column:last-child{border-right:0}}.navbar-expand .navbar-brand{padding:var(--si-navbar-brand-padding-y) 0}.navbar-expand .offcanvas{background-color:transparent!important;box-shadow:none}.navbar-expand .offcanvas-header{display:none}.navbar-expand .dropdown-divider{display:block}.navbar-expand .navbar-nav .dropdown-menu{background-color:var(--si-dropdown-bg);border:var(--si-dropdown-border-width) solid var(--si-dropdown-border-color);border-radius:var(--si-dropdown-border-radius);box-shadow:var(--si-dropdown-box-shadow);margin-top:var(--si-dropdown-spacer)}.navbar-expand .navbar-nav .dropdown-menu.dropdown-menu-dark,.navbar-expand .navbar-nav [data-bs-theme=dark] .dropdown-menu:not([data-bs-theme=light]),[data-bs-theme=dark] .navbar-expand .navbar-nav .dropdown-menu:not([data-bs-theme=light]){background:var(--si-dropdown-bg)}.navbar-expand .dropdown-menu.show{display:none}.navbar-expand .dropdown:before{content:"";height:.375rem;left:0;position:absolute;top:100%;width:100%}.navbar-expand .dropdown .dropdown .dropdown-toggle{align-items:center;display:flex}.navbar-expand .dropdown .dropdown .dropdown-toggle:after{content:"\ea50";font-size:1.25em;margin-left:auto;margin-right:-.3125rem;margin-top:0}.navbar-expand .dropdown .dropdown .dropdown-menu{left:100%;margin-left:0;margin-right:0;top:calc((var(--si-dropdown-item-padding-y) + var(--si-dropdown-padding-y))*-1)}.navbar-expand .dropdown .dropdown-menu-end{left:auto;right:0}.navbar-expand .dropstart>.dropdown-menu{margin-left:0;margin-right:0;right:94%;top:calc((var(--si-dropdown-item-padding-y) + var(--si-dropdown-padding-y))*-1)}.navbar-expand .dropdown:hover>.dropdown-menu,.navbar-expand .dropstart:hover>.dropdown-menu{animation:dropdown-show .2s;display:block}.navbar-expand .mega-dropdown-column{padding:0 .75rem;width:var(--si-mega-dropdown-column-width)}.navbar-expand .mega-dropdown-column:last-child{border-right:0}.navbar-stuck{animation:navbar-show .25s ease-in-out;box-shadow:0 .275rem 1.25rem rgba(11,15,25,.05),0 .25rem .5625rem rgba(11,15,25,.03);left:0;position:fixed!important;top:0;width:100%;z-index:1031}.navbar.position-absolute{left:0;top:0;width:100%;z-index:1030}@keyframes navbar-show{0%{transform:translateY(-100%)}to{transform:translateY(0)}}.navbar{--si-navbar-stuck-bg:#fff;--si-navbar-toggler-color:#33354d}.navbar.navbar-stuck{background-color:var(--si-navbar-stuck-bg)}.navbar .nav-item:hover>.nav-link:not(.disabled){color:var(--si-navbar-hover-color)}.navbar .nav-item.active>.nav-link:not(.disabled){color:var(--si-navbar-active-color)}.navbar .dropdown:hover>.nav-link{color:var(--si-navbar-hover-color)}.navbar.fixed-top{z-index:1031}.navbar-dark{--si-navbar-stuck-bg:#0b0f19;--si-navbar-toggler-color:hsla(0,0%,100%,.85)}[data-bs-theme=dark] .navbar:not([data-bs-theme=light]){--si-navbar-stuck-bg:#0b0f19;--si-navbar-brand-color:#fff;--si-navbar-brand-hover-color:#fff;--si-navbar-toggler-color:hsla(0,0%,100%,.85);--si-navbar-color:hsla(0,0%,100%,.85);--si-navbar-hover-color:#6366f1;--si-navbar-disabled-color:hsla(0,0%,100%,.4);--si-navbar-active-color:#6366f1}[data-bs-theme=dark] .navbar-stuck:not([data-bs-theme=light]){box-shadow:none}.card-footer,.card-header{margin:auto;padding-left:0;padding-right:0;width:calc(100% - var(--si-card-spacer-x)*2)}.card-header-pills,.card-header-tabs{margin:0}.card-header-pills .nav-item,.card-header-tabs .nav-item{margin-bottom:0}.card-header-pills .nav-link.active,.card-header-tabs .nav-link.active{background-color:var(--si-nav-tabs-link-active-bg);border-color:var(--si-nav-tabs-link-active-border-color)}.card-header-pills.nav-tabs-alt,.card-header-tabs.nav-tabs-alt{border-bottom:0;margin-bottom:calc((var(--si-card-cap-padding-y) + .0625rem)*-1);margin-top:calc(var(--si-card-cap-padding-y)*-.625)}.card-header-pills .nav-link.active{background-color:var(--si-nav-pills-link-active-bg)}.card-hover:not(.bg-transparent){transition:transform .2s ease-in-out,border-color .2s ease-in-out,background-color .2s ease-in-out,box-shadow .2s ease-in-out}.card-hover:not(.bg-transparent):hover{box-shadow:0 .275rem .75rem -.0625rem rgba(11,15,25,.06),0 .125rem .4rem -.0625rem rgba(11,15,25,.03);transform:translateY(-.25rem)}.card-hover:not(.bg-transparent).shadow-sm:hover{box-shadow:0 .275rem 1.25rem rgba(11,15,25,.05),0 .25rem .5625rem rgba(11,15,25,.03)!important}.card-hover:not(.bg-transparent).shadow:hover{box-shadow:0 .3rem 1.525rem -.375rem rgba(11,15,25,.1),0 .25rem .8125rem -.125rem rgba(11,15,25,.06)!important}.card-hover:not(.bg-transparent).border-primary:hover{box-shadow:0 .5rem 1.125rem -.5rem rgba(99,102,241,.9)!important}.card-hover{--si-card-icon-hover-color:#6366f1}.card-hover .card-img-overlay{opacity:0;transition:opacity .3s ease-in-out;z-index:5}.card-hover .card-icon{transition:color .3s ease-in-out}.card-hover:hover .card-icon{color:var(--si-card-icon-hover-color)!important}.card-hover:hover .card-img-overlay{opacity:1}.card-hover-primary{transition:transform .2s ease-in-out,border-color .2s ease-in-out,background-color .2s ease-in-out,box-shadow .2s ease-in-out}.card-hover-primary.shadow-sm:hover,.card-hover-primary.shadow:hover,.card-hover-primary:hover{box-shadow:0 .5rem 1.125rem -.5rem rgba(99,102,241,.9)!important}.card-hover-primary .card-body,.card-hover-primary .card-title,.card-hover-primary .h1,.card-hover-primary .h2,.card-hover-primary .h3,.card-hover-primary .h4,.card-hover-primary .h5,.card-hover-primary .h6,.card-hover-primary .text-dark,.card-hover-primary .text-muted,.card-hover-primary .text-nav,.card-hover-primary .text-primary,.card-hover-primary h1,.card-hover-primary h2,.card-hover-primary h3,.card-hover-primary h4,.card-hover-primary h5,.card-hover-primary h6{transition:color .2s ease-in-out}.card-hover-primary .border-bottom,.card-hover-primary .border-end,.card-hover-primary .border-start,.card-hover-primary .border-top{transition:border-color .2s ease-in-out}.card-hover-primary .bg-secondary{transition:background-color .2s ease-in-out}.card-hover-primary:hover{background-color:var(--si-primary)!important;border-color:var(--si-primary)!important}.card-hover-primary:hover .card-title{color:#fff}.card-hover-primary:hover .card-body{color:hsla(0,0%,100%,.7)}.card-hover-primary:hover .text-muted{color:hsla(0,0%,100%,.5)!important}.card-hover-primary:hover .text-primary{color:#fff!important}.card-hover-primary:hover .border-bottom,.card-hover-primary:hover .border-end,.card-hover-primary:hover .border-start,.card-hover-primary:hover .border-top{border-color:hsla(0,0%,100%,.14)!important}.card-hover-primary:hover .bg-secondary{background-color:hsla(0,0%,100%,.05)!important}.card-hover-primary:hover .h1,.card-hover-primary:hover .h1>a,.card-hover-primary:hover .h2,.card-hover-primary:hover .h2>a,.card-hover-primary:hover .h3,.card-hover-primary:hover .h3>a,.card-hover-primary:hover .h4,.card-hover-primary:hover .h4>a,.card-hover-primary:hover .h5,.card-hover-primary:hover .h5>a,.card-hover-primary:hover .h6,.card-hover-primary:hover .h6>a,.card-hover-primary:hover .text-dark:not(.badge.bg-white),.card-hover-primary:hover h1,.card-hover-primary:hover h1>a,.card-hover-primary:hover h2,.card-hover-primary:hover h2>a,.card-hover-primary:hover h3,.card-hover-primary:hover h3>a,.card-hover-primary:hover h4,.card-hover-primary:hover h4>a,.card-hover-primary:hover h5,.card-hover-primary:hover h5>a,.card-hover-primary:hover h6,.card-hover-primary:hover h6>a{color:#fff!important}.card-hover-primary:hover .text-nav:not(.badge.bg-white){color:hsla(0,0%,100%,.85)!important}.card-portfolio{background-color:transparent;border:0}.card-portfolio .card-img{border-radius:var(--si-card-border-radius);overflow:hidden;transform:translateZ(0)}.card-portfolio .card-img>img{display:block;transition:transform .35s ease-in-out}.card-portfolio .card-body{padding-left:0;padding-right:0}@media (min-width:768px){.card-portfolio .card-portfolio-meta{opacity:0;transition:opacity .35s ease-in-out}.card-portfolio:hover .card-img>img{transform:scale(1.05)}.card-portfolio:hover .card-portfolio-meta{opacity:1}}[data-bs-theme=dark] .card:not([data-bs-theme=light]).border-0,[data-bs-theme=dark] .card:not([data-bs-theme=light]).shadow,[data-bs-theme=dark] .card:not([data-bs-theme=light]).shadow-lg,[data-bs-theme=dark] .card:not([data-bs-theme=light]).shadow-sm{background-color:var(--si-secondary-bg)}[data-bs-theme=dark] .card-hover:not([data-bs-theme=light]):hover{background-color:var(--si-secondary-bg);border-color:hsla(0,0%,100%,.3)}[data-bs-theme=dark] .card-hover:not([data-bs-theme=light]).border-0:not(.bg-transparent):not(.bg-light){border:var(--si-border-width) solid transparent!important}[data-bs-theme=dark] .card-hover:not([data-bs-theme=light]).border-0:not(.bg-transparent):not(.bg-light):hover{border-color:var(--si-card-border-color)!important}[data-bs-theme=dark] .card-hover:not([data-bs-theme=light]).bg-light:hover{background-color:var(--si-secondary-bg)!important}.accordion{--si-accordion-color:var(--si-body-color);--si-accordion-btn-font-weight:600;--si-accordion-btn-color:var(--si-heading-color);--si-accordion-btn-icon-box-size:2.25rem;--si-accordion-btn-icon-box-border-radius:50%;--si-accordion-btn-icon-box-bg:#f3f6ff;--si-accordion-btn-icon-box-active-bg:#6366f1;--si-accordion-btn-icon-box-active-shadow:0 -0.5rem 1.125rem -0.5rem rgba(99,102,241,.9)}.accordion-button{font-weight:var(--si-accordion-btn-font-weight);transition:none}.accordion-button:not(.collapsed){box-shadow:inset 0 calc(var(--si-accordion-border-width)*-1) 0 var(--si-accordion-border-color)}.accordion-button:after{background-color:var(--si-accordion-btn-icon-box-bg);background-position:50%;border-radius:var(--si-accordion-btn-icon-box-border-radius);height:var(--si-accordion-btn-icon-box-size);transition:all .35s;width:var(--si-accordion-btn-icon-box-size)}.accordion-button:not(.collapsed):after{background-color:var(--si-accordion-btn-icon-box-active-bg);box-shadow:var(--si-accordion-btn-icon-box-active-shadow)}[data-bs-theme=dark] .accordion:not([data-bs-theme=light]){--si-accordion-btn-icon-box-bg:hsla(0,0%,100%,.05);--si-accordion-btn-icon-box-active-bg:#6366f1}[data-bs-theme=dark] .accordion:not([data-bs-theme=light]) .accordion-item.border-0{background-color:var(--si-secondary-bg)}[data-bs-theme=dark] .accordion:not([data-bs-theme=light]) .accordion-button.shadow-none{background-color:transparent!important}.breadcrumb{--si-breadcrumb-font-weight:600;--si-breadcrumb-color:var(--si-gray-600);--si-breadcrumb-hover-color:var(--si-gray-800);font-weight:var(--si-breadcrumb-font-weight)}.breadcrumb-item{align-items:center;display:flex}.breadcrumb-item+.breadcrumb-item:before{font-family:boxicons;font-size:1.15em;font-weight:400;line-height:1;margin-top:.15em}.breadcrumb-item>a{align-items:center;color:var(--si-breadcrumb-color);display:flex;text-decoration:none}.breadcrumb-item:hover>a{color:var(--si-breadcrumb-hover-color)}[data-bs-theme=dark] .breadcrumb:not([data-bs-theme=light]){--si-breadcrumb-item-active-color:#fff}.pagination{--si-pagination-font-weight:600;--si-pagination-active-box-shadow:0 0.5rem 1.125rem -0.5rem rgba(99,102,241,.9);margin-bottom:0}.page-link{align-items:center;border-radius:var(--si-pagination-border-radius);display:flex;font-weight:var(--si-pagination-font-weight);height:100%}.page-link>i{font-size:1.425em;margin-top:.0625rem}.page-link:focus{box-shadow:none}.page-item{margin:0 .125rem}.page-item:first-child{margin-left:0}.page-item:last-child{margin-right:0}.page-item.active .page-link{box-shadow:var(--si-pagination-active-box-shadow)}.pagination-sm{--si-pagination-border-radius:var(--si-border-radius-sm);--si-pagination-font-size:0.75rem}.pagination-lg{--si-pagination-border-radius:var(--si-border-radius-lg);--si-pagination-font-size:1rem}[data-bs-theme=dark] .pagination:not([data-bs-theme=light]){--si-pagination-color:hsla(0,0%,100%,.85);--si-pagination-hover-color:#6366f1;--si-pagination-hover-bg:hsla(0,0%,100%,.05);--si-pagination-focus-bg:hsla(0,0%,100%,.05);--si-pagination-disabled-color:hsla(0,0%,100%,.5)}.badge.bg-light,.badge.bg-secondary{--si-badge-color:#33354d}a.badge{text-decoration:none}.btn .badge{top:1px}.alert{--si-alert-link-color:inherit}.alert .alert-link{color:var(--si-alert-link-color)}.alert-secondary{--si-alert-bg:#f3f5fd}.alert-light,.alert-secondary{--si-alert-color:#33354d;--si-alert-border-color:var(--si-border-color);--si-alert-link-color:#0b0f19}.alert-dark{--si-alert-border-color:#0b0f19;--si-alert-bg:#0b0f19;--si-alert-color:hsla(0,0%,100%,.85);--si-alert-link-color:#fff}.alert-dismissible .btn-close{padding:calc(var(--si-alert-padding-y)*1.375) var(--si-alert-padding-x)}.alert-primary .btn-close{background:transparent url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%231418E3' viewBox='0 0 16 16'%3E%3Cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414'/%3E%3C/svg%3E") 50%/.75em auto no-repeat}.alert-success .btn-close{background:transparent url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23147638' viewBox='0 0 16 16'%3E%3Cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414'/%3E%3C/svg%3E") 50%/.75em auto no-repeat}.alert-info .btn-close{background:transparent url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23094CDD' viewBox='0 0 16 16'%3E%3Cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414'/%3E%3C/svg%3E") 50%/.75em auto no-repeat}.alert-warning .btn-close{background:transparent url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23AB7B00' viewBox='0 0 16 16'%3E%3Cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414'/%3E%3C/svg%3E") 50%/.75em auto no-repeat}.alert-danger .btn-close{background:transparent url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23C61010' viewBox='0 0 16 16'%3E%3Cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414'/%3E%3C/svg%3E") 50%/.75em auto no-repeat}[data-bs-theme=dark] .alert-primary:not([data-bs-theme=light]){--si-alert-bg:rgba(99,102,241,.05);--si-alert-border-color:rgba(99,102,241,.25)}[data-bs-theme=dark] .alert-secondary:not([data-bs-theme=light]){--si-alert-bg:rgba(239,242,252,.05);--si-alert-border-color:rgba(239,242,252,.25)}[data-bs-theme=dark] .alert-success:not([data-bs-theme=light]){--si-alert-bg:rgba(34,197,94,.05);--si-alert-border-color:rgba(34,197,94,.25)}[data-bs-theme=dark] .alert-info:not([data-bs-theme=light]){--si-alert-bg:rgba(76,130,247,.05);--si-alert-border-color:rgba(76,130,247,.25)}[data-bs-theme=dark] .alert-warning:not([data-bs-theme=light]){--si-alert-bg:rgba(255,186,8,.05);--si-alert-border-color:rgba(255,186,8,.25)}[data-bs-theme=dark] .alert-danger:not([data-bs-theme=light]){--si-alert-bg:rgba(239,68,68,.05);--si-alert-border-color:rgba(239,68,68,.25)}[data-bs-theme=dark] .alert-light:not([data-bs-theme=light]){--si-alert-bg:hsla(0,0%,100%,.05);--si-alert-border-color:hsla(0,0%,100%,.25)}[data-bs-theme=dark] .alert-dark:not([data-bs-theme=light]){--si-alert-bg:rgba(11,15,25,.05);--si-alert-border-color:rgba(11,15,25,.25)}[data-bs-theme=dark] .alert-dark:not([data-bs-theme=light]),[data-bs-theme=dark] .alert-light:not([data-bs-theme=light]),[data-bs-theme=dark] .alert-secondary:not([data-bs-theme=light]){--si-alert-border-color:var(--si-border-color)}[data-bs-theme=dark] .alert-light:not([data-bs-theme=light]),[data-bs-theme=dark] .alert-secondary:not([data-bs-theme=light]){--si-alert-bg:var(--si-secondary-bg);--si-alert-color:var(--si-body-color);--si-alert-link-color:#fff}[data-bs-theme=dark] .progress:not([data-bs-theme=light]){--si-progress-bg:hsla(0,0%,100%,.08)}[data-bs-theme=dark] .progress-bar.bg-dark:not([data-bs-theme=light]){--si-progress-bar-bg:#fff;--si-progress-bar-color:#0b0f19;background-color:var(--si-progress-bar-bg)!important}[data-bs-theme=dark] .progress-bar.bg-dark:not([data-bs-theme=light]).progress-bar-striped{background-image:linear-gradient(45deg,rgba(11,15,25,.15) 25%,transparent 0,transparent 50%,rgba(11,15,25,.15) 0,rgba(11,15,25,.15) 75%,transparent 0,transparent)}.list-group{--si-list-group-color:var(--si-body-color);--si-list-group-bg:transparent;--si-list-group-border-color:var(--si-border-color);--si-list-group-border-width:var(--si-border-width);--si-list-group-border-radius:0.5rem;--si-list-group-item-padding-x:1rem;--si-list-group-item-padding-y:0.75rem;--si-list-group-action-color:#33354d;--si-list-group-action-hover-color:#6366f1;--si-list-group-action-hover-bg:rgba(99,102,241,.12);--si-list-group-action-active-color:#fff;--si-list-group-action-active-bg:#6366f1;--si-list-group-disabled-color:var(--si-secondary-color);--si-list-group-disabled-bg:transparent;--si-list-group-active-color:#fff;--si-list-group-active-bg:#6366f1;--si-list-group-active-border-color:#6366f1;--si-list-group-active-box-shadow:0 0.5rem 1.125rem -0.5rem rgba(99,102,241,.9);border-radius:var(--si-list-group-border-radius);display:flex;flex-direction:column;margin-bottom:0;padding-left:0}.list-group-numbered{counter-reset:section;list-style-type:none}.list-group-numbered>.list-group-item:before{content:counters(section,".") ". ";counter-increment:section}.list-group-item{background-color:var(--si-list-group-bg);border:var(--si-list-group-border-width) solid var(--si-list-group-border-color);color:var(--si-list-group-color);display:block;padding:var(--si-list-group-item-padding-y) var(--si-list-group-item-padding-x);position:relative;text-decoration:none}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{background-color:var(--si-list-group-disabled-bg);color:var(--si-list-group-disabled-color);pointer-events:none}.list-group-item.active{background-color:var(--si-list-group-active-bg);border-color:var(--si-list-group-active-border-color);box-shadow:var(--si-list-group-active-box-shadow);color:var(--si-list-group-active-color);z-index:2}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{border-top-width:var(--si-list-group-border-width);margin-top:calc(var(--si-list-group-border-width)*-1)}.list-group-item-action{color:var(--si-list-group-action-color);font-weight:600;text-align:inherit;transition:color .2s ease-in-out,background-color .2s ease-in-out,border-color .2s ease-in-out,box-shadow .2s ease-in-out;width:100%}.list-group-item-action:focus,.list-group-item-action:hover{background-color:var(--si-list-group-action-hover-bg);color:var(--si-list-group-action-hover-color);text-decoration:none;z-index:1}.list-group-item-action.active{background-color:var(--si-list-group-action-active-bg);color:var(--si-list-group-action-active-color)}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child{border-bottom-left-radius:var(--si-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child{border-bottom-left-radius:0;border-top-right-radius:var(--si-list-group-border-radius)}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-left-width:0;border-top-width:var(--si-list-group-border-width)}.list-group-horizontal>.list-group-item+.list-group-item.active{border-left-width:var(--si-list-group-border-width);margin-left:calc(var(--si-list-group-border-width)*-1)}@media (min-width:500px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child{border-bottom-left-radius:var(--si-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child{border-bottom-left-radius:0;border-top-right-radius:var(--si-list-group-border-radius)}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-left-width:0;border-top-width:var(--si-list-group-border-width)}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{border-left-width:var(--si-list-group-border-width);margin-left:calc(var(--si-list-group-border-width)*-1)}}@media (min-width:768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child{border-bottom-left-radius:var(--si-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child{border-bottom-left-radius:0;border-top-right-radius:var(--si-list-group-border-radius)}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-left-width:0;border-top-width:var(--si-list-group-border-width)}.list-group-horizontal-md>.list-group-item+.list-group-item.active{border-left-width:var(--si-list-group-border-width);margin-left:calc(var(--si-list-group-border-width)*-1)}}@media (min-width:992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child{border-bottom-left-radius:var(--si-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child{border-bottom-left-radius:0;border-top-right-radius:var(--si-list-group-border-radius)}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-left-width:0;border-top-width:var(--si-list-group-border-width)}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{border-left-width:var(--si-list-group-border-width);margin-left:calc(var(--si-list-group-border-width)*-1)}}@media (min-width:1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child{border-bottom-left-radius:var(--si-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child{border-bottom-left-radius:0;border-top-right-radius:var(--si-list-group-border-radius)}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-left-width:0;border-top-width:var(--si-list-group-border-width)}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{border-left-width:var(--si-list-group-border-width);margin-left:calc(var(--si-list-group-border-width)*-1)}}@media (min-width:1400px){.list-group-horizontal-xxl{flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child{border-bottom-left-radius:var(--si-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child{border-bottom-left-radius:0;border-top-right-radius:var(--si-list-group-border-radius)}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-left-width:0;border-top-width:var(--si-list-group-border-width)}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{border-left-width:var(--si-list-group-border-width);margin-left:calc(var(--si-list-group-border-width)*-1)}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 var(--si-list-group-border-width)}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-flush .list-group-item-action{border:0;border-radius:var(--si-list-group-border-radius);margin-bottom:.125rem}.card .list-group-flush .list-group-item-action{border-bottom:var(--si-list-group-border-width) solid var(--si-list-group-border-color);border-radius:0;margin-bottom:0}.card .list-group-flush .list-group-item-action:last-child{border-bottom:0}.card .list-group-flush .list-group-item-action.active{border-color:var(--si-list-group-active-border-color)}.offcanvas-body .list-group-flush .list-group-item-action{border-radius:0;margin-bottom:.0625rem}[data-bs-theme=dark] .list-group:not([data-bs-theme=light]){--si-list-group-disabled-color:hsla(0,0%,100%,.5);--si-list-group-action-color:hsla(0,0%,100%,.85)}.toast-header{border:0;font-weight:800;position:relative}.toast-header:after{background-color:var(--si-toast-header-border-color);bottom:calc(var(--si-toast-border-width)*-1);content:"";height:var(--si-toast-border-width);left:var(--si-toast-padding-x);position:absolute;width:calc(100% - var(--si-toast-padding-x)*2)}.toast-header[class*=" bg-"]:after,.toast-header[class^=bg-]:after{display:none}.toast-header .btn-close{margin-right:0}[data-bs-theme=dark] .toast:not([data-bs-theme=light]){--si-toast-bg:linear-gradient(0deg,hsla(0,0%,100%,.04),hsla(0,0%,100%,.04)),#0b0f19;--si-toast-border-color:hsla(0,0%,100%,.14);background:var(--si-toast-bg)}.modal-content{padding-left:var(--si-modal-padding);padding-right:var(--si-modal-padding)}.modal-footer,.modal-header{padding-left:0;padding-right:0}.modal-body{margin-left:calc(var(--si-modal-padding)*-1);margin-right:calc(var(--si-modal-padding)*-1)}[data-bs-theme=dark] .modal:not([data-bs-theme=light]){--si-modal-bg:#0b0f19;--si-modal-border-width:1px}[data-bs-theme=dark] .popover{--si-popover-bg:#14171f}.offcanvas-header{padding:calc(var(--si-offcanvas-padding-y)*.75) var(--si-offcanvas-padding-x)}.offcanvas-body{display:block!important}[data-bs-theme=dark] .offcanvas-lg.bg-secondary,[data-bs-theme=dark] .offcanvas-md.bg-secondary,[data-bs-theme=dark] .offcanvas-sm.bg-secondary,[data-bs-theme=dark] .offcanvas-xl.bg-secondary,[data-bs-theme=dark] .offcanvas-xxl.bg-secondary,[data-bs-theme=dark] .offcanvas.bg-secondary{background-color:#14171f!important}.btn-next,.btn-prev{--si-carousel-nav-btn-border-radius:50%;--si-carousel-nav-btn-bg:#fff;--si-carousel-nav-btn-color:#33354d;--si-carousel-nav-btn-box-shadow:0 0.275rem 0.75rem -0.0625rem rgba(11,15,25,.06),0 0.125rem 0.4rem -0.0625rem rgba(11,15,25,.03);--si-carousel-nav-btn-hover-bg:#6366f1;--si-carousel-nav-btn-hover-color:#fff;--si-carousel-nav-btn-hover-box-shadow:0 0.5rem 1.125rem -0.5rem rgba(99,102,241,.9);--si-carousel-nav-btn-disabled-color:rgba(51,53,77,.5);--si-carousel-nav-btn-font-size:1rem;border:0;border-radius:var(--si-carousel-nav-btn-border-radius);color:var(--si-carousel-nav-btn-color)!important;font-size:var(--si-carousel-nav-btn-font-size);transition:color .2s ease-in-out,background-color .2s ease-in-out,border-color .2s ease-in-out,box-shadow .2s ease-in-out,opacity .2s ease-in-out}.btn-next,.btn-next:focus,.btn-prev,.btn-prev:focus{background-color:var(--si-carousel-nav-btn-bg);box-shadow:var(--si-carousel-nav-btn-box-shadow)}.btn-next.bg-white,.btn-prev.bg-white{color:#33354d!important}.btn-next:not(.bg-transparent):hover,.btn-prev:not(.bg-transparent):hover{background-color:var(--si-carousel-nav-btn-hover-bg)!important;box-shadow:var(--si-carousel-nav-btn-hover-box-shadow)!important;color:var(--si-carousel-nav-btn-hover-color)!important}.btn-next>i,.btn-prev>i{font-size:1.5em}.btn-group-sm>.btn-next.btn>i,.btn-group-sm>.btn-prev.btn>i,.btn-next.btn-sm>i,.btn-prev.btn-sm>i{font-size:1.25em}.btn-group-lg>.btn-next.btn>i,.btn-group-lg>.btn-prev.btn>i,.btn-next.btn-lg>i,.btn-prev.btn-lg>i{font-size:1.75em}.btn-next.btn-xl>i,.btn-prev.btn-xl>i{font-size:2em}.swiper-button-disabled,.swiper-button-disabled:disabled{background-color:var(--si-carousel-nav-btn-bg);box-shadow:var(--si-carousel-nav-btn-box-shadow)!important;color:var(--si-carousel-nav-btn-disabled-color)!important;opacity:1}.swiper-button-disabled.shadow-none,.swiper-button-disabled:disabled.shadow-none{box-shadow:none!important}.pagination .swiper-button-disabled,.pagination .swiper-button-disabled:disabled{background-color:transparent!important;box-shadow:none!important;pointer-events:none}.swiper .btn-next:not(.position-static),.swiper .btn-prev:not(.position-static){position:absolute;top:50%;transform:translateY(-50%);z-index:5}.swiper .btn-prev{left:1.25rem}.swiper .btn-next{right:1.25rem}.swiper-nav-onhover .btn-next,.swiper-nav-onhover .btn-prev{opacity:0!important}.swiper-nav-onhover:hover .btn-next,.swiper-nav-onhover:hover .btn-prev{opacity:1!important}.swiper-pagination{--si-carousel-pagination-bullet-width:0.3125rem;--si-carousel-pagination-bullet-height:0.3125rem;--si-carousel-pagination-bullet-spacer:0.875rem;--si-carousel-pagination-bullet-border-radius:50rem;--si-carousel-pagination-bullet-bg:#b4b7c9;--si-carousel-pagination-bullet-active-width:1.5rem;--si-carousel-pagination-bullet-active-bg:#6366f1;--si-carousel-pagination-progressbar-height:0.1875rem;--si-carousel-pagination-progressbar-bg:var(--si-border-color);--si-carousel-pagination-progressbar-fill-bg:#6366f1;align-items:center;bottom:1.25rem;display:flex;justify-content:center}.swiper-pagination.swiper-pagination-lock{display:none}.swiper-pagination-bullet{background-color:var(--si-carousel-pagination-bullet-bg);border-radius:var(--si-carousel-pagination-bullet-border-radius);height:var(--si-carousel-pagination-bullet-height);opacity:1;transition:width .2s ease-in-out,height .2s ease-in-out,background-color .2s ease-in-out;width:var(--si-carousel-pagination-bullet-width)}.swiper-pagination-bullet-active{background-color:var(--si-carousel-pagination-bullet-active-bg)}.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-bullets.swiper-pagination-horizontal{bottom:1.25rem}.swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-pagination-bullets.swiper-pagination-horizontal .swiper-pagination-bullet{margin-left:calc(var(--si-carousel-pagination-bullet-spacer)*.5);margin-right:calc(var(--si-carousel-pagination-bullet-spacer)*.5)}.swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet-active,.swiper-pagination-bullets.swiper-pagination-horizontal .swiper-pagination-bullet-active{width:var(--si-carousel-pagination-bullet-active-width)}.swiper-pagination-bullets.swiper-pagination-vertical,.swiper-vertical>.swiper-pagination-bullets{flex-direction:column;right:1.25rem}.swiper-pagination-bullets.swiper-pagination-vertical .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets .swiper-pagination-bullet{margin-bottom:calc(var(--si-carousel-pagination-bullet-spacer)*.5);margin-top:calc(var(--si-carousel-pagination-bullet-spacer)*.5)}.swiper-pagination-bullets.swiper-pagination-vertical .swiper-pagination-bullet-active,.swiper-vertical>.swiper-pagination-bullets .swiper-pagination-bullet-active{height:var(--si-carousel-pagination-bullet-active-width)}.swiper-pagination-progressbar{background-color:var(--si-carousel-pagination-progressbar-bg)}.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background-color:var(--si-carousel-pagination-progressbar-fill-bg)}.swiper-horizontal>.swiper-pagination-progressbar,.swiper-pagination-progressbar.swiper-pagination-horizontal{height:var(--si-carousel-pagination-progressbar-height)}.swiper-pagination-progressbar.swiper-pagination-vertical,.swiper-vertical>.swiper-pagination-progressbar{width:var(--si-carousel-pagination-progressbar-height)}.page-link.btn-icon{align-items:center;display:flex;flex-direction:column;flex-shrink:0;height:2.25rem;justify-content:center;padding:0;width:2.25rem}.swiper-scrollbar{--si-carousel-scrollbar-width:0.1875rem;--si-carousel-scrollbar-bg:var(--si-border-color);--si-carousel-scrollbar-drag-bg:#a2a6bc;background-color:var(--si-carousel-scrollbar-bg)}.swiper-scrollbar-drag{background-color:var(--si-carousel-scrollbar-drag-bg)}.swiper-vertical>.swiper-scrollbar{height:100%;top:0;width:var(--si-carousel-scrollbar-width)}.swiper-horizontal>.swiper-scrollbar{height:var(--si-carousel-scrollbar-width);left:0;width:100%}.scrollbar-hover .swiper-scrollbar{opacity:0;transition:opacity .2s ease-in-out}.scrollbar-hover:hover .swiper-scrollbar{opacity:1}.swiper-tabs{height:100%;position:relative}.swiper-tab{display:flex;flex-direction:column;height:100%;left:0;opacity:0;position:absolute;top:0;transition:opacity .3s ease-in-out,visibility .3s ease-in-out;visibility:hidden;width:100%}.swiper-tab.active{opacity:1;position:relative;visibility:visible}.fade-in,.from-bottom,.from-end,.from-start,.from-top,.scale-down,.scale-up{-webkit-backface-visibility:hidden;backface-visibility:hidden;opacity:0;transition:all .4s ease-in-out .4s}.from-top{transform:translateY(-2.25rem)}.from-bottom{transform:translateY(2.25rem)}.from-start{transform:translateX(-2.25rem)}.from-end{transform:translateX(2.25rem)}.scale-up{transform:scale(.85)}.scale-down{transform:scale(1.15)}.delay-1{transition-delay:.5s}.delay-2{transition-delay:.7s}.delay-3{transition-delay:.9s}.delay-4{transition-delay:1.1s}.swiper-slide-active .from-bottom,.swiper-slide-active .from-top{opacity:1;transform:translateY(0)}.swiper-slide-active .from-end,.swiper-slide-active .from-start{opacity:1;transform:translateX(0)}.swiper-slide-active .scale-down,.swiper-slide-active .scale-up{opacity:1;transform:scale(1)}.swiper-slide-active .fade-in{opacity:1}.mobile-app-slider{border-radius:4rem;max-width:328px}@media (min-width:768px){.mobile-app-slider{max-width:100%}.mobile-app-slider .swiper-slide{opacity:.8;transition:opacity .3s ease-in-out}.mobile-app-slider .swiper-slide.swiper-slide-active{opacity:1}}[data-bs-theme=dark] .btn-next:not([data-bs-theme=light]),[data-bs-theme=dark] .btn-prev:not([data-bs-theme=light]){--si-carousel-nav-btn-bg:hsla(0,0%,100%,.05);--si-carousel-nav-btn-color:#fff;--si-carousel-nav-btn-box-shadow:none;--si-carousel-nav-btn-disabled-color:hsla(0,0%,100%,.5)}[data-bs-theme=dark] .swiper-pagination:not([data-bs-theme=light]){--si-carousel-pagination-bullet-bg:hsla(0,0%,100%,.5);--si-carousel-pagination-bullet-active-bg:#fff}[data-bs-theme=dark] .swiper-scrollbar:not([data-bs-theme=light]){--si-carousel-scrollbar-drag-bg:#fff}[data-bs-theme=dark] .offcanvas .swiper-scrollbar-drag,[data-bs-theme=dark] .offcanvas-lg .swiper-scrollbar-drag,[data-bs-theme=dark] .offcanvas-md .swiper-scrollbar-drag,[data-bs-theme=dark] .offcanvas-sm .swiper-scrollbar-drag,[data-bs-theme=dark] .offcanvas-xl .swiper-scrollbar-drag,[data-bs-theme=dark] .offcanvas-xxl .swiper-scrollbar-drag{opacity:.55}.gallery{--si-gallery-overlay-bg:rgba(11,15,25,.4);--si-gallery-indicator-size:4.5rem;--si-gallery-image-indicator-color:#fff;--si-gallery-image-indicator-font-size:2rem;--si-gallery-video-indicator-bg:#fff;--si-gallery-video-indicator-color:#33354d;--si-gallery-video-indicator-font-size:2rem;--si-gallery-video-indicator-box-shadow:0 0.275rem 0.75rem -0.0625rem rgba(11,15,25,.06),0 0.125rem 0.4rem -0.0625rem rgba(11,15,25,.03);--si-gallery-video-indicator-hover-bg:#6366f1;--si-gallery-video-indicator-hover-color:#fff;--si-gallery-video-indicator-hover-box-shadow:0 0.5rem 1.125rem -0.5rem rgba(99,102,241,.9)}.gallery-item{display:block;-webkit-mask-image:-webkit-radial-gradient(#fff,#000);overflow:hidden;position:relative;text-decoration:none!important}.gallery-item:before,.gallery-item>img{display:block;width:100%}.gallery-item:before{background-color:var(--si-gallery-overlay-bg);content:"";height:100%;opacity:0;position:absolute;transition:opacity .3s ease-in-out;z-index:1}.gallery-item:after{color:var(--si-gallery-image-indicator-color);content:"\ec90";display:block;font-family:boxicons;font-size:var(--si-gallery-image-indicator-font-size);height:var(--si-gallery-indicator-size);left:50%;line-height:var(--si-gallery-indicator-size);margin-left:calc(var(--si-gallery-indicator-size)*-.5);margin-top:calc(var(--si-gallery-indicator-size)*-.5);position:absolute;text-align:center;top:50%;transform:scale(.3);width:var(--si-gallery-indicator-size);z-index:5}.gallery-item .gallery-item-caption{color:#fff;display:block;left:0;padding:1rem;position:absolute;top:0;transform:translateY(.5rem);width:100%;z-index:5}.gallery-item .gallery-item-caption,.gallery-item:after{opacity:0;transition:all .3s ease-in-out}.gallery-item.is-hovered .gallery-item-caption,.gallery-item.is-hovered:after,.gallery-item.is-hovered:before,.gallery-item:hover .gallery-item-caption,.gallery-item:hover:after,.gallery-item:hover:before{opacity:1;transform:none}.gallery-item.video-item:after{background-color:var(--si-gallery-video-indicator-bg);border-radius:50%;box-shadow:var(--si-gallery-video-indicator-box-shadow);color:var(--si-gallery-video-indicator-color);content:"\ebbd";font-size:var(--si-gallery-video-indicator-font-size);opacity:1;padding-left:.25rem;padding-top:.0625rem;transform:none}.gallery-item.video-item:hover:after{background-color:var(--si-gallery-video-indicator-hover-bg);box-shadow:var(--si-gallery-video-indicator-hover-box-shadow);color:var(--si-gallery-video-indicator-hover-color)}.lg-backdrop{z-index:1055}.lg-outer{z-index:1060}.lg-outer .lg-thumb-item.active,.lg-outer .lg-thumb-item:hover{border-color:var(--si-primary)}.lg-on{overflow:hidden}.lg-inner:focus,.lg-item:focus,.lg-outer:focus,.lg:focus{outline:none}[data-bs-theme=dark] .placeholder:not([data-bs-theme=light]){opacity:.25}@keyframes placeholder-glow{50%{opacity:.1}}[data-bs-theme=dark] .placeholder-wave:not([data-bs-theme=light]){-webkit-mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,.9) 75%,#000 95%);mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,.9) 75%,#000 95%)}.steps{--si-steps-padding-y:1.5rem;--si-steps-padding-x:1.5rem;--si-steps-number-size:7.625rem;--si-steps-number-inner-size:5.625rem;--si-steps-number-size-sm:5rem;--si-steps-number-inner-size-sm:3.5rem;--si-steps-number-border-radius:50%;--si-steps-number-bg:#f3f6ff;--si-steps-number-inner-bg:#fff;--si-steps-number-inner-box-shadow:0 0.275rem 0.75rem -0.0625rem rgba(11,15,25,.06),0 0.125rem 0.4rem -0.0625rem rgba(11,15,25,.03);--si-steps-number-font-size:2rem;--si-steps-number-font-size-sm:1.5rem;--si-steps-number-color:var(--si-heading-color);--si-steps-connect-width:var(--si-border-width);--si-steps-connect-color:var(--si-border-color);display:flex;flex-direction:column}.step{align-items:center;display:flex;padding:var(--si-steps-padding-y) 0;position:relative}.step:first-child{padding-top:0!important}.step:last-child{padding-bottom:0!important}.step:after,.step:before{content:"";height:50%;left:calc(var(--si-steps-number-size)*.5);position:absolute;width:var(--si-steps-connect-width)}.step:before{top:0}.step:after{top:50%}.step:not(:first-child):before,.step:not(:last-child):after{background-color:var(--si-steps-connect-color)}.step-number{background-color:var(--si-steps-number-bg);color:var(--si-steps-number-color);flex-shrink:0;font-size:var(--si-steps-number-font-size);font-weight:800;height:var(--si-steps-number-size);position:relative;width:var(--si-steps-number-size);z-index:2}.step-number,.step-number .step-number-inner{align-items:center;border-radius:var(--si-steps-number-border-radius);display:flex;justify-content:center}.step-number .step-number-inner{background-color:var(--si-steps-number-inner-bg);box-shadow:var(--si-steps-number-inner-box-shadow);height:var(--si-steps-number-inner-size);width:var(--si-steps-number-inner-size)}.step-body{padding-left:var(--si-steps-padding-x)}.steps-sm .step:after,.steps-sm .step:before{left:calc(var(--si-steps-number-size-sm)*.5)}.steps-sm .step-number{font-size:var(--si-steps-number-font-size-sm);height:var(--si-steps-number-size-sm);width:var(--si-steps-number-size-sm)}.steps-sm .step-number .step-number-inner{height:var(--si-steps-number-inner-size-sm);width:var(--si-steps-number-inner-size-sm)}@media (min-width:500px){.steps-horizontal-sm.steps{flex-direction:row;margin-left:calc(var(--si-steps-padding-x)*-1);margin-right:calc(var(--si-steps-padding-x)*-1)}.steps-horizontal-sm .step{display:block;flex-basis:0;flex-grow:1;padding:0 var(--si-steps-padding-x)}.steps-horizontal-sm .step:after,.steps-horizontal-sm .step:before{height:var(--si-steps-connect-width);top:calc(var(--si-steps-number-size)*.5)}.steps-horizontal-sm .step:before{display:none;left:0}.steps-horizontal-sm .step:after{left:var(--si-steps-padding-x);width:100%}.steps-horizontal-sm.steps-sm .step:after,.steps-horizontal-sm.steps-sm .step:before{top:calc(var(--si-steps-number-size-sm)*.5)}.steps-horizontal-sm .step-number{margin-bottom:var(--si-steps-padding-y)}.steps-horizontal-sm .step-body{padding-left:0}.steps-horizontal-sm.steps-center{text-align:center}.steps-horizontal-sm.steps-center .step:after{left:50%;width:50%}.steps-horizontal-sm.steps-center .step:not(:first-child):before{display:block;width:50%}.steps-horizontal-sm.steps-center .step-number{margin-left:auto;margin-right:auto}.steps-horizontal-sm.steps-end{text-align:right}.steps-horizontal-sm.steps-end .step:not(:first-child):before{display:block;width:calc(100% - var(--si-steps-padding-x))}.steps-horizontal-sm.steps-end .step:after{left:auto;right:0;width:var(--si-steps-padding-x)}.steps-horizontal-sm.steps-end .step:last-child:after{display:none}.steps-horizontal-sm.steps-end .step-number{margin-left:auto}}@media (min-width:768px){.steps-horizontal-md.steps{flex-direction:row;margin-left:calc(var(--si-steps-padding-x)*-1);margin-right:calc(var(--si-steps-padding-x)*-1)}.steps-horizontal-md .step{display:block;flex-basis:0;flex-grow:1;padding:0 var(--si-steps-padding-x)}.steps-horizontal-md .step:after,.steps-horizontal-md .step:before{height:var(--si-steps-connect-width);top:calc(var(--si-steps-number-size)*.5)}.steps-horizontal-md .step:before{display:none;left:0}.steps-horizontal-md .step:after{left:var(--si-steps-padding-x);width:100%}.steps-horizontal-md.steps-sm .step:after,.steps-horizontal-md.steps-sm .step:before{top:calc(var(--si-steps-number-size-sm)*.5)}.steps-horizontal-md .step-number{margin-bottom:var(--si-steps-padding-y)}.steps-horizontal-md .step-body{padding-left:0}.steps-horizontal-md.steps-center{text-align:center}.steps-horizontal-md.steps-center .step:after{left:50%;width:50%}.steps-horizontal-md.steps-center .step:not(:first-child):before{display:block;width:50%}.steps-horizontal-md.steps-center .step-number{margin-left:auto;margin-right:auto}.steps-horizontal-md.steps-end{text-align:right}.steps-horizontal-md.steps-end .step:not(:first-child):before{display:block;width:calc(100% - var(--si-steps-padding-x))}.steps-horizontal-md.steps-end .step:after{left:auto;right:0;width:var(--si-steps-padding-x)}.steps-horizontal-md.steps-end .step:last-child:after{display:none}.steps-horizontal-md.steps-end .step-number{margin-left:auto}}@media (min-width:992px){.steps-horizontal-lg.steps{flex-direction:row;margin-left:calc(var(--si-steps-padding-x)*-1);margin-right:calc(var(--si-steps-padding-x)*-1)}.steps-horizontal-lg .step{display:block;flex-basis:0;flex-grow:1;padding:0 var(--si-steps-padding-x)}.steps-horizontal-lg .step:after,.steps-horizontal-lg .step:before{height:var(--si-steps-connect-width);top:calc(var(--si-steps-number-size)*.5)}.steps-horizontal-lg .step:before{display:none;left:0}.steps-horizontal-lg .step:after{left:var(--si-steps-padding-x);width:100%}.steps-horizontal-lg.steps-sm .step:after,.steps-horizontal-lg.steps-sm .step:before{top:calc(var(--si-steps-number-size-sm)*.5)}.steps-horizontal-lg .step-number{margin-bottom:var(--si-steps-padding-y)}.steps-horizontal-lg .step-body{padding-left:0}.steps-horizontal-lg.steps-center{text-align:center}.steps-horizontal-lg.steps-center .step:after{left:50%;width:50%}.steps-horizontal-lg.steps-center .step:not(:first-child):before{display:block;width:50%}.steps-horizontal-lg.steps-center .step-number{margin-left:auto;margin-right:auto}.steps-horizontal-lg.steps-end{text-align:right}.steps-horizontal-lg.steps-end .step:not(:first-child):before{display:block;width:calc(100% - var(--si-steps-padding-x))}.steps-horizontal-lg.steps-end .step:after{left:auto;right:0;width:var(--si-steps-padding-x)}.steps-horizontal-lg.steps-end .step:last-child:after{display:none}.steps-horizontal-lg.steps-end .step-number{margin-left:auto}}@media (min-width:1200px){.steps-horizontal-xl.steps{flex-direction:row;margin-left:calc(var(--si-steps-padding-x)*-1);margin-right:calc(var(--si-steps-padding-x)*-1)}.steps-horizontal-xl .step{display:block;flex-basis:0;flex-grow:1;padding:0 var(--si-steps-padding-x)}.steps-horizontal-xl .step:after,.steps-horizontal-xl .step:before{height:var(--si-steps-connect-width);top:calc(var(--si-steps-number-size)*.5)}.steps-horizontal-xl .step:before{display:none;left:0}.steps-horizontal-xl .step:after{left:var(--si-steps-padding-x);width:100%}.steps-horizontal-xl.steps-sm .step:after,.steps-horizontal-xl.steps-sm .step:before{top:calc(var(--si-steps-number-size-sm)*.5)}.steps-horizontal-xl .step-number{margin-bottom:var(--si-steps-padding-y)}.steps-horizontal-xl .step-body{padding-left:0}.steps-horizontal-xl.steps-center{text-align:center}.steps-horizontal-xl.steps-center .step:after{left:50%;width:50%}.steps-horizontal-xl.steps-center .step:not(:first-child):before{display:block;width:50%}.steps-horizontal-xl.steps-center .step-number{margin-left:auto;margin-right:auto}.steps-horizontal-xl.steps-end{text-align:right}.steps-horizontal-xl.steps-end .step:not(:first-child):before{display:block;width:calc(100% - var(--si-steps-padding-x))}.steps-horizontal-xl.steps-end .step:after{left:auto;right:0;width:var(--si-steps-padding-x)}.steps-horizontal-xl.steps-end .step:last-child:after{display:none}.steps-horizontal-xl.steps-end .step-number{margin-left:auto}}@media (min-width:1400px){.steps-horizontal-xxl.steps{flex-direction:row;margin-left:calc(var(--si-steps-padding-x)*-1);margin-right:calc(var(--si-steps-padding-x)*-1)}.steps-horizontal-xxl .step{display:block;flex-basis:0;flex-grow:1;padding:0 var(--si-steps-padding-x)}.steps-horizontal-xxl .step:after,.steps-horizontal-xxl .step:before{height:var(--si-steps-connect-width);top:calc(var(--si-steps-number-size)*.5)}.steps-horizontal-xxl .step:before{display:none;left:0}.steps-horizontal-xxl .step:after{left:var(--si-steps-padding-x);width:100%}.steps-horizontal-xxl.steps-sm .step:after,.steps-horizontal-xxl.steps-sm .step:before{top:calc(var(--si-steps-number-size-sm)*.5)}.steps-horizontal-xxl .step-number{margin-bottom:var(--si-steps-padding-y)}.steps-horizontal-xxl .step-body{padding-left:0}.steps-horizontal-xxl.steps-center{text-align:center}.steps-horizontal-xxl.steps-center .step:after{left:50%;width:50%}.steps-horizontal-xxl.steps-center .step:not(:first-child):before{display:block;width:50%}.steps-horizontal-xxl.steps-center .step-number{margin-left:auto;margin-right:auto}.steps-horizontal-xxl.steps-end{text-align:right}.steps-horizontal-xxl.steps-end .step:not(:first-child):before{display:block;width:calc(100% - var(--si-steps-padding-x))}.steps-horizontal-xxl.steps-end .step:after{left:auto;right:0;width:var(--si-steps-padding-x)}.steps-horizontal-xxl.steps-end .step:last-child:after{display:none}.steps-horizontal-xxl.steps-end .step-number{margin-left:auto}}.steps-horizontal.steps{flex-direction:row;margin-left:calc(var(--si-steps-padding-x)*-1);margin-right:calc(var(--si-steps-padding-x)*-1)}.steps-horizontal .step{display:block;flex-basis:0;flex-grow:1;padding:0 var(--si-steps-padding-x)}.steps-horizontal .step:after,.steps-horizontal .step:before{height:var(--si-steps-connect-width);top:calc(var(--si-steps-number-size)*.5)}.steps-horizontal .step:before{display:none;left:0}.steps-horizontal .step:after{left:var(--si-steps-padding-x);width:100%}.steps-horizontal.steps-sm .step:after,.steps-horizontal.steps-sm .step:before{top:calc(var(--si-steps-number-size-sm)*.5)}.steps-horizontal .step-number{margin-bottom:var(--si-steps-padding-y)}.steps-horizontal .step-body{padding-left:0}.steps-horizontal.steps-center{text-align:center}.steps-horizontal.steps-center .step:after{left:50%;width:50%}.steps-horizontal.steps-center .step:not(:first-child):before{display:block;width:50%}.steps-horizontal.steps-center .step-number{margin-left:auto;margin-right:auto}.steps-horizontal.steps-end{text-align:right}.steps-horizontal.steps-end .step:not(:first-child):before{display:block;width:calc(100% - var(--si-steps-padding-x))}.steps-horizontal.steps-end .step:after{left:auto;right:0;width:var(--si-steps-padding-x)}.steps-horizontal.steps-end .step:last-child:after{display:none}.steps-horizontal.steps-end .step-number{margin-left:auto}@media (max-width:499.98px){.steps:not(.steps-sm) .step{padding:calc(var(--si-steps-padding-y)*.625) 0}.steps:not(.steps-sm) .step:after,.steps:not(.steps-sm) .step:before{left:calc(var(--si-steps-number-size)*.625*.5)}.step-number{font-size:calc(var(--si-steps-number-font-size)*.625)!important}.steps:not(.steps-sm) .step-number{height:calc(var(--si-steps-number-size)*.625);width:calc(var(--si-steps-number-size)*.625)}.steps:not(.steps-sm) .step-number .step-number-inner{height:calc(var(--si-steps-number-inner-size)*.625);width:calc(var(--si-steps-number-inner-size)*.625)}.step-body{padding-left:calc(var(--si-steps-padding-x)*.875)}}[data-bs-theme=dark] .steps:not([data-bs-theme=light]){--si-steps-number-bg:#181b24;--si-steps-number-inner-bg:hsla(0,0%,100%,.04)}.jarallax{position:relative;z-index:0}.jarallax .jarallax-img{background-position:50%!important;background-size:cover!important;height:100%;left:0;position:absolute;top:0;width:100%;z-index:-1}[data-disable-parallax-down=xs]{transform:none!important}@media (max-width:499.98px){[data-disable-parallax-down=sm]{transform:none!important}}@media (max-width:767.98px){[data-disable-parallax-down=md]{transform:none!important}}@media (max-width:991.98px){[data-disable-parallax-down=lg]{transform:none!important}}@media (max-width:1199.98px){[data-disable-parallax-down=xl]{transform:none!important}}@media (min-width:500px){[data-disable-parallax-up=sm]{transform:none!important}}@media (min-width:768px){[data-disable-parallax-up=md]{transform:none!important}}@media (min-width:992px){[data-disable-parallax-up=lg]{transform:none!important}}@media (min-width:1200px){[data-disable-parallax-up=xl]{transform:none!important}}.parallax{position:relative}.parallax-layer{height:100%;left:0;position:absolute;top:0;width:100%}.parallax-layer:first-child{position:relative}.parallax-layer>img{display:block;width:100%}.tilt-3d{transform-style:preserve-3d}.tilt-3d .tilt-3d-inner{transform:translateZ(2rem)}img-comparison-slider{display:block;--divider-width:0.1875rem;--divider-color:#6366f1;--default-handle-opacity:1}img-comparison-slider:focus{outline:none}.audio-player{--prefixaudio-player-theme:#6366f1;--seek-before-width:0%;--volume-before-width:100%;--buffered-width:0%;align-items:center;display:flex;width:100%}.ap-play-button{font-family:boxicons;font-size:1.5rem;font-style:normal;font-weight:400;padding-top:.125rem}.ap-play-button:before{content:"\ebbd"}.ap-play-button.ap-pause:before{content:"\ebae"}.ap-volume-button+.dropdown-menu{height:6.5rem;left:50%!important;margin-left:-1.0625rem!important;max-width:2.125rem;min-width:2.125rem;width:2.125rem}.ap-seek-slider,.ap-volume-slider{-webkit-appearance:none;background:none;margin:0;outline:none;padding:0;position:relative}.ap-seek-slider:before,.ap-volume-slider:before{content:"";cursor:pointer;left:0;position:absolute}.ap-seek-slider{height:1.125rem;width:100%}.ap-seek-slider::-webkit-slider-runnable-track{background:linear-gradient(to right,#d4d7e5 var(--buffered-width),rgba(226,229,241,.9) var(--buffered-width));cursor:pointer;height:.25rem;width:100%}.ap-seek-slider:before{background-color:var(--prefixaudio-player-theme);height:.25rem;top:.4375rem;width:var(--seek-before-width)}.ap-seek-slider::-webkit-slider-thumb{-webkit-appearance:none;background-color:var(--prefixaudio-player-theme);border-radius:50%;box-sizing:content-box;cursor:pointer;height:1rem;margin:-.375rem 0 0;position:relative;width:1rem}.ap-seek-slider:active::-webkit-slider-thumb{transform:scale(1.2)}.ap-seek-slider::-moz-range-track{background:linear-gradient(to right,#d4d7e5 var(--buffered-width),rgba(226,229,241,.9) var(--buffered-width));cursor:pointer;height:.25rem;width:100%}.ap-seek-slider::-moz-range-progress{background-color:var(--prefixaudio-player-theme)}.ap-seek-slider::-moz-focus-outer{border:0}.ap-seek-slider::-moz-range-thumb{background-color:var(--prefixaudio-player-theme);border:0;border-radius:50%;box-sizing:content-box;cursor:pointer;height:1rem;width:1rem}.ap-seek-slider:active::-moz-range-thumb{transform:scale(1.2)}.ap-volume-slider{height:.5625rem;right:1.5rem;top:1.925rem;transform:rotate(-90deg);width:5rem}.ap-volume-slider::-webkit-slider-runnable-track{background-color:var(--prefixaudio-player-theme);cursor:pointer;height:.1875rem;width:100%}.ap-volume-slider:before{background-color:#fff;height:.1875rem;top:.1875rem;width:var(--volume-before-width)}.ap-volume-slider::-webkit-slider-thumb{-webkit-appearance:none;background-color:#fff;border-radius:50%;box-sizing:content-box;cursor:pointer;height:.5625rem;margin:-.1875rem 0 0;position:relative;width:.5625rem}.ap-volume-slider:active::-webkit-slider-thumb{transform:scale(1.2)}.ap-volume-slider::-moz-range-track{background-color:var(--prefixaudio-player-theme);cursor:pointer;height:.1875rem;width:100%}.ap-volume-slider::-moz-range-progress{background-color:#fff}.ap-volume-slider::-moz-focus-outer{border:0}.ap-volume-slider::-moz-range-thumb{background-color:#fff;border:0;border-radius:50%;box-sizing:content-box;cursor:pointer;height:.5625rem;width:.5625rem}.ap-volume-slider:active::-moz-range-thumb{transform:scale(1.2)}[data-bs-theme=dark] .audio-player:not([data-bs-theme=light]) .ap-seek-slider::-webkit-slider-runnable-track{background:linear-gradient(to right,hsla(0,0%,100%,.55) var(--buffered-width),hsla(0,0%,100%,.3) var(--buffered-width))} -/*# sourceMappingURL=theme.min.css.map */ \ No newline at end of file diff --git a/static/assets/theme.min.js b/static/assets/theme.min.js deleted file mode 100644 index 95eeda3fcb99f768ee2217b7d51f970b71cc28be..0000000000000000000000000000000000000000 --- a/static/assets/theme.min.js +++ /dev/null @@ -1,23 +0,0 @@ -/*! - * Silicon | Multipurpose Bootstrap Template & UI Kit - * Copyright 2025 Createx Studio - * Theme scripts - * - * @copyright Createx Studio - * @version 1.7.0 - */ -!function(){"use strict"; -/*! - * Bootstrap v5.3.5 (https://getbootstrap.com/) - * Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) - */var e,t;!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).bootstrap=t()}(void 0,(function(){const e=new Map,t={set(t,n,i){e.has(t)||e.set(t,new Map);const s=e.get(t);s.has(n)||0===s.size?s.set(n,i):console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(s.keys())[0]}.`)},get:(t,n)=>e.has(t)&&e.get(t).get(n)||null,remove(t,n){if(!e.has(t))return;const i=e.get(t);i.delete(n),0===i.size&&e.delete(t)}},n="transitionend",i=e=>(e&&window.CSS&&window.CSS.escape&&(e=e.replace(/#([^\s"#']+)/g,((e,t)=>`#${CSS.escape(t)}`))),e),s=e=>{e.dispatchEvent(new Event(n))},o=e=>!(!e||"object"!=typeof e)&&(void 0!==e.jquery&&(e=e[0]),void 0!==e.nodeType),r=e=>o(e)?e.jquery?e[0]:e:"string"==typeof e&&e.length>0?document.querySelector(i(e)):null,a=e=>{if(!o(e)||0===e.getClientRects().length)return!1;const t="visible"===getComputedStyle(e).getPropertyValue("visibility"),n=e.closest("details:not([open])");if(!n)return t;if(n!==e){const t=e.closest("summary");if(t&&t.parentNode!==n)return!1;if(null===t)return!1}return t},l=e=>!e||e.nodeType!==Node.ELEMENT_NODE||!!e.classList.contains("disabled")||(void 0!==e.disabled?e.disabled:e.hasAttribute("disabled")&&"false"!==e.getAttribute("disabled")),c=e=>{if(!document.documentElement.attachShadow)return null;if("function"==typeof e.getRootNode){const t=e.getRootNode();return t instanceof ShadowRoot?t:null}return e instanceof ShadowRoot?e:e.parentNode?c(e.parentNode):null},u=()=>{},d=e=>{e.offsetHeight},h=()=>window.jQuery&&!document.body.hasAttribute("data-bs-no-jquery")?window.jQuery:null,f=[],p=()=>"rtl"===document.documentElement.dir,m=e=>{var t;t=()=>{const t=h();if(t){const n=e.NAME,i=t.fn[n];t.fn[n]=e.jQueryInterface,t.fn[n].Constructor=e,t.fn[n].noConflict=()=>(t.fn[n]=i,e.jQueryInterface)}},"loading"===document.readyState?(f.length||document.addEventListener("DOMContentLoaded",(()=>{for(const e of f)e()})),f.push(t)):t()},g=(e,t=[],n=e)=>"function"==typeof e?e.call(...t):n,_=(e,t,i=!0)=>{if(!i)return void g(e);const o=(e=>{if(!e)return 0;let{transitionDuration:t,transitionDelay:n}=window.getComputedStyle(e);const i=Number.parseFloat(t),s=Number.parseFloat(n);return i||s?(t=t.split(",")[0],n=n.split(",")[0],1e3*(Number.parseFloat(t)+Number.parseFloat(n))):0})(t)+5;let r=!1;const a=({target:i})=>{i===t&&(r=!0,t.removeEventListener(n,a),g(e))};t.addEventListener(n,a),setTimeout((()=>{r||s(t)}),o)},v=(e,t,n,i)=>{const s=e.length;let o=e.indexOf(t);return-1===o?!n&&i?e[s-1]:e[0]:(o+=n?1:-1,i&&(o=(o+s)%s),e[Math.max(0,Math.min(o,s-1))])},b=/[^.]*(?=\..*)\.|.*/,y=/\..*/,w=/::\d+$/,E={};let A=1;const T={mouseenter:"mouseover",mouseleave:"mouseout"},C=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function S(e,t){return t&&`${t}::${A++}`||e.uidEvent||A++}function x(e){const t=S(e);return e.uidEvent=t,E[t]=E[t]||{},E[t]}function O(e,t,n=null){return Object.values(e).find((e=>e.callable===t&&e.delegationSelector===n))}function L(e,t,n){const i="string"==typeof t,s=i?n:t||n;let o=M(e);return C.has(o)||(o=e),[i,s,o]}function k(e,t,n,i,s){if("string"!=typeof t||!e)return;let[o,r,a]=L(t,n,i);if(t in T){const e=e=>function(t){if(!t.relatedTarget||t.relatedTarget!==t.delegateTarget&&!t.delegateTarget.contains(t.relatedTarget))return e.call(this,t)};r=e(r)}const l=x(e),c=l[a]||(l[a]={}),u=O(c,r,o?n:null);if(u)return void(u.oneOff=u.oneOff&&s);const d=S(r,t.replace(b,"")),h=o?function(e,t,n){return function i(s){const o=e.querySelectorAll(t);for(let{target:r}=s;r&&r!==this;r=r.parentNode)for(const a of o)if(a===r)return P(s,{delegateTarget:r}),i.oneOff&&$.off(e,s.type,t,n),n.apply(r,[s])}}(e,n,r):function(e,t){return function n(i){return P(i,{delegateTarget:e}),n.oneOff&&$.off(e,i.type,t),t.apply(e,[i])}}(e,r);h.delegationSelector=o?n:null,h.callable=r,h.oneOff=s,h.uidEvent=d,c[d]=h,e.addEventListener(a,h,o)}function D(e,t,n,i,s){const o=O(t[n],i,s);o&&(e.removeEventListener(n,o,Boolean(s)),delete t[n][o.uidEvent])}function I(e,t,n,i){const s=t[n]||{};for(const[o,r]of Object.entries(s))o.includes(i)&&D(e,t,n,r.callable,r.delegationSelector)}function M(e){return e=e.replace(y,""),T[e]||e}const $={on(e,t,n,i){k(e,t,n,i,!1)},one(e,t,n,i){k(e,t,n,i,!0)},off(e,t,n,i){if("string"!=typeof t||!e)return;const[s,o,r]=L(t,n,i),a=r!==t,l=x(e),c=l[r]||{},u=t.startsWith(".");if(void 0===o){if(u)for(const n of Object.keys(l))I(e,l,n,t.slice(1));for(const[n,i]of Object.entries(c)){const s=n.replace(w,"");a&&!t.includes(s)||D(e,l,r,i.callable,i.delegationSelector)}}else{if(!Object.keys(c).length)return;D(e,l,r,o,s?n:null)}},trigger(e,t,n){if("string"!=typeof t||!e)return null;const i=h();let s=null,o=!0,r=!0,a=!1;t!==M(t)&&i&&(s=i.Event(t,n),i(e).trigger(s),o=!s.isPropagationStopped(),r=!s.isImmediatePropagationStopped(),a=s.isDefaultPrevented());const l=P(new Event(t,{bubbles:o,cancelable:!0}),n);return a&&l.preventDefault(),r&&e.dispatchEvent(l),l.defaultPrevented&&s&&s.preventDefault(),l}};function P(e,t={}){for(const[n,i]of Object.entries(t))try{e[n]=i}catch(t){Object.defineProperty(e,n,{configurable:!0,get:()=>i})}return e}function N(e){if("true"===e)return!0;if("false"===e)return!1;if(e===Number(e).toString())return Number(e);if(""===e||"null"===e)return null;if("string"!=typeof e)return e;try{return JSON.parse(decodeURIComponent(e))}catch(t){return e}}function j(e){return e.replace(/[A-Z]/g,(e=>`-${e.toLowerCase()}`))}const q={setDataAttribute(e,t,n){e.setAttribute(`data-bs-${j(t)}`,n)},removeDataAttribute(e,t){e.removeAttribute(`data-bs-${j(t)}`)},getDataAttributes(e){if(!e)return{};const t={},n=Object.keys(e.dataset).filter((e=>e.startsWith("bs")&&!e.startsWith("bsConfig")));for(const i of n){let n=i.replace(/^bs/,"");n=n.charAt(0).toLowerCase()+n.slice(1),t[n]=N(e.dataset[i])}return t},getDataAttribute:(e,t)=>N(e.getAttribute(`data-bs-${j(t)}`))};class F{static get Default(){return{}}static get DefaultType(){return{}}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}_getConfig(e){return e=this._mergeConfigObj(e),e=this._configAfterMerge(e),this._typeCheckConfig(e),e}_configAfterMerge(e){return e}_mergeConfigObj(e,t){const n=o(t)?q.getDataAttribute(t,"config"):{};return{...this.constructor.Default,..."object"==typeof n?n:{},...o(t)?q.getDataAttributes(t):{},..."object"==typeof e?e:{}}}_typeCheckConfig(e,t=this.constructor.DefaultType){for(const[i,s]of Object.entries(t)){const t=e[i],r=o(t)?"element":null==(n=t)?`${n}`:Object.prototype.toString.call(n).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(s).test(r))throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${i}" provided type "${r}" but expected type "${s}".`)}var n}}class H extends F{constructor(e,n){super(),(e=r(e))&&(this._element=e,this._config=this._getConfig(n),t.set(this._element,this.constructor.DATA_KEY,this))}dispose(){t.remove(this._element,this.constructor.DATA_KEY),$.off(this._element,this.constructor.EVENT_KEY);for(const e of Object.getOwnPropertyNames(this))this[e]=null}_queueCallback(e,t,n=!0){_(e,t,n)}_getConfig(e){return e=this._mergeConfigObj(e,this._element),e=this._configAfterMerge(e),this._typeCheckConfig(e),e}static getInstance(e){return t.get(r(e),this.DATA_KEY)}static getOrCreateInstance(e,t={}){return this.getInstance(e)||new this(e,"object"==typeof t?t:null)}static get VERSION(){return"5.3.5"}static get DATA_KEY(){return`bs.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}static eventName(e){return`${e}${this.EVENT_KEY}`}}const R=e=>{let t=e.getAttribute("data-bs-target");if(!t||"#"===t){let n=e.getAttribute("href");if(!n||!n.includes("#")&&!n.startsWith("."))return null;n.includes("#")&&!n.startsWith("#")&&(n=`#${n.split("#")[1]}`),t=n&&"#"!==n?n.trim():null}return t?t.split(",").map((e=>i(e))).join(","):null},B={find:(e,t=document.documentElement)=>[].concat(...Element.prototype.querySelectorAll.call(t,e)),findOne:(e,t=document.documentElement)=>Element.prototype.querySelector.call(t,e),children:(e,t)=>[].concat(...e.children).filter((e=>e.matches(t))),parents(e,t){const n=[];let i=e.parentNode.closest(t);for(;i;)n.push(i),i=i.parentNode.closest(t);return n},prev(e,t){let n=e.previousElementSibling;for(;n;){if(n.matches(t))return[n];n=n.previousElementSibling}return[]},next(e,t){let n=e.nextElementSibling;for(;n;){if(n.matches(t))return[n];n=n.nextElementSibling}return[]},focusableChildren(e){const t=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map((e=>`${e}:not([tabindex^="-"])`)).join(",");return this.find(t,e).filter((e=>!l(e)&&a(e)))},getSelectorFromElement(e){const t=R(e);return t&&B.findOne(t)?t:null},getElementFromSelector(e){const t=R(e);return t?B.findOne(t):null},getMultipleElementsFromSelector(e){const t=R(e);return t?B.find(t):[]}},W=(e,t="hide")=>{const n=`click.dismiss${e.EVENT_KEY}`,i=e.NAME;$.on(document,n,`[data-bs-dismiss="${i}"]`,(function(n){if(["A","AREA"].includes(this.tagName)&&n.preventDefault(),l(this))return;const s=B.getElementFromSelector(this)||this.closest(`.${i}`);e.getOrCreateInstance(s)[t]()}))},z=".bs.alert",V=`close${z}`,U=`closed${z}`;class Q extends H{static get NAME(){return"alert"}close(){if($.trigger(this._element,V).defaultPrevented)return;this._element.classList.remove("show");const e=this._element.classList.contains("fade");this._queueCallback((()=>this._destroyElement()),this._element,e)}_destroyElement(){this._element.remove(),$.trigger(this._element,U),this.dispose()}static jQueryInterface(e){return this.each((function(){const t=Q.getOrCreateInstance(this);if("string"==typeof e){if(void 0===t[e]||e.startsWith("_")||"constructor"===e)throw new TypeError(`No method named "${e}"`);t[e](this)}}))}}W(Q,"close"),m(Q);const K='[data-bs-toggle="button"]';class Y extends H{static get NAME(){return"button"}toggle(){this._element.setAttribute("aria-pressed",this._element.classList.toggle("active"))}static jQueryInterface(e){return this.each((function(){const t=Y.getOrCreateInstance(this);"toggle"===e&&t[e]()}))}}$.on(document,"click.bs.button.data-api",K,(e=>{e.preventDefault();const t=e.target.closest(K);Y.getOrCreateInstance(t).toggle()})),m(Y);const X=".bs.swipe",J=`touchstart${X}`,G=`touchmove${X}`,Z=`touchend${X}`,ee=`pointerdown${X}`,te=`pointerup${X}`,ne={endCallback:null,leftCallback:null,rightCallback:null},ie={endCallback:"(function|null)",leftCallback:"(function|null)",rightCallback:"(function|null)"};class se extends F{constructor(e,t){super(),this._element=e,e&&se.isSupported()&&(this._config=this._getConfig(t),this._deltaX=0,this._supportPointerEvents=Boolean(window.PointerEvent),this._initEvents())}static get Default(){return ne}static get DefaultType(){return ie}static get NAME(){return"swipe"}dispose(){$.off(this._element,X)}_start(e){this._supportPointerEvents?this._eventIsPointerPenTouch(e)&&(this._deltaX=e.clientX):this._deltaX=e.touches[0].clientX}_end(e){this._eventIsPointerPenTouch(e)&&(this._deltaX=e.clientX-this._deltaX),this._handleSwipe(),g(this._config.endCallback)}_move(e){this._deltaX=e.touches&&e.touches.length>1?0:e.touches[0].clientX-this._deltaX}_handleSwipe(){const e=Math.abs(this._deltaX);if(e<=40)return;const t=e/this._deltaX;this._deltaX=0,t&&g(t>0?this._config.rightCallback:this._config.leftCallback)}_initEvents(){this._supportPointerEvents?($.on(this._element,ee,(e=>this._start(e))),$.on(this._element,te,(e=>this._end(e))),this._element.classList.add("pointer-event")):($.on(this._element,J,(e=>this._start(e))),$.on(this._element,G,(e=>this._move(e))),$.on(this._element,Z,(e=>this._end(e))))}_eventIsPointerPenTouch(e){return this._supportPointerEvents&&("pen"===e.pointerType||"touch"===e.pointerType)}static isSupported(){return"ontouchstart"in document.documentElement||navigator.maxTouchPoints>0}}const oe=".bs.carousel",re=".data-api",ae="ArrowLeft",le="ArrowRight",ce="next",ue="prev",de="left",he="right",fe=`slide${oe}`,pe=`slid${oe}`,me=`keydown${oe}`,ge=`mouseenter${oe}`,_e=`mouseleave${oe}`,ve=`dragstart${oe}`,be=`load${oe}${re}`,ye=`click${oe}${re}`,we="carousel",Ee="active",Ae=".active",Te=".carousel-item",Ce=Ae+Te,Se={[ae]:he,[le]:de},xe={interval:5e3,keyboard:!0,pause:"hover",ride:!1,touch:!0,wrap:!0},Oe={interval:"(number|boolean)",keyboard:"boolean",pause:"(string|boolean)",ride:"(boolean|string)",touch:"boolean",wrap:"boolean"};class Le extends H{constructor(e,t){super(e,t),this._interval=null,this._activeElement=null,this._isSliding=!1,this.touchTimeout=null,this._swipeHelper=null,this._indicatorsElement=B.findOne(".carousel-indicators",this._element),this._addEventListeners(),this._config.ride===we&&this.cycle()}static get Default(){return xe}static get DefaultType(){return Oe}static get NAME(){return"carousel"}next(){this._slide(ce)}nextWhenVisible(){!document.hidden&&a(this._element)&&this.next()}prev(){this._slide(ue)}pause(){this._isSliding&&s(this._element),this._clearInterval()}cycle(){this._clearInterval(),this._updateInterval(),this._interval=setInterval((()=>this.nextWhenVisible()),this._config.interval)}_maybeEnableCycle(){this._config.ride&&(this._isSliding?$.one(this._element,pe,(()=>this.cycle())):this.cycle())}to(e){const t=this._getItems();if(e>t.length-1||e<0)return;if(this._isSliding)return void $.one(this._element,pe,(()=>this.to(e)));const n=this._getItemIndex(this._getActive());if(n===e)return;const i=e>n?ce:ue;this._slide(i,t[e])}dispose(){this._swipeHelper&&this._swipeHelper.dispose(),super.dispose()}_configAfterMerge(e){return e.defaultInterval=e.interval,e}_addEventListeners(){this._config.keyboard&&$.on(this._element,me,(e=>this._keydown(e))),"hover"===this._config.pause&&($.on(this._element,ge,(()=>this.pause())),$.on(this._element,_e,(()=>this._maybeEnableCycle()))),this._config.touch&&se.isSupported()&&this._addTouchEventListeners()}_addTouchEventListeners(){for(const e of B.find(".carousel-item img",this._element))$.on(e,ve,(e=>e.preventDefault()));const e={leftCallback:()=>this._slide(this._directionToOrder(de)),rightCallback:()=>this._slide(this._directionToOrder(he)),endCallback:()=>{"hover"===this._config.pause&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout((()=>this._maybeEnableCycle()),500+this._config.interval))}};this._swipeHelper=new se(this._element,e)}_keydown(e){if(/input|textarea/i.test(e.target.tagName))return;const t=Se[e.key];t&&(e.preventDefault(),this._slide(this._directionToOrder(t)))}_getItemIndex(e){return this._getItems().indexOf(e)}_setActiveIndicatorElement(e){if(!this._indicatorsElement)return;const t=B.findOne(Ae,this._indicatorsElement);t.classList.remove(Ee),t.removeAttribute("aria-current");const n=B.findOne(`[data-bs-slide-to="${e}"]`,this._indicatorsElement);n&&(n.classList.add(Ee),n.setAttribute("aria-current","true"))}_updateInterval(){const e=this._activeElement||this._getActive();if(!e)return;const t=Number.parseInt(e.getAttribute("data-bs-interval"),10);this._config.interval=t||this._config.defaultInterval}_slide(e,t=null){if(this._isSliding)return;const n=this._getActive(),i=e===ce,s=t||v(this._getItems(),n,i,this._config.wrap);if(s===n)return;const o=this._getItemIndex(s),r=t=>$.trigger(this._element,t,{relatedTarget:s,direction:this._orderToDirection(e),from:this._getItemIndex(n),to:o});if(r(fe).defaultPrevented)return;if(!n||!s)return;const a=Boolean(this._interval);this.pause(),this._isSliding=!0,this._setActiveIndicatorElement(o),this._activeElement=s;const l=i?"carousel-item-start":"carousel-item-end",c=i?"carousel-item-next":"carousel-item-prev";s.classList.add(c),d(s),n.classList.add(l),s.classList.add(l),this._queueCallback((()=>{s.classList.remove(l,c),s.classList.add(Ee),n.classList.remove(Ee,c,l),this._isSliding=!1,r(pe)}),n,this._isAnimated()),a&&this.cycle()}_isAnimated(){return this._element.classList.contains("slide")}_getActive(){return B.findOne(Ce,this._element)}_getItems(){return B.find(Te,this._element)}_clearInterval(){this._interval&&(clearInterval(this._interval),this._interval=null)}_directionToOrder(e){return p()?e===de?ue:ce:e===de?ce:ue}_orderToDirection(e){return p()?e===ue?de:he:e===ue?he:de}static jQueryInterface(e){return this.each((function(){const t=Le.getOrCreateInstance(this,e);if("number"!=typeof e){if("string"==typeof e){if(void 0===t[e]||e.startsWith("_")||"constructor"===e)throw new TypeError(`No method named "${e}"`);t[e]()}}else t.to(e)}))}}$.on(document,ye,"[data-bs-slide], [data-bs-slide-to]",(function(e){const t=B.getElementFromSelector(this);if(!t||!t.classList.contains(we))return;e.preventDefault();const n=Le.getOrCreateInstance(t),i=this.getAttribute("data-bs-slide-to");return i?(n.to(i),void n._maybeEnableCycle()):"next"===q.getDataAttribute(this,"slide")?(n.next(),void n._maybeEnableCycle()):(n.prev(),void n._maybeEnableCycle())})),$.on(window,be,(()=>{const e=B.find('[data-bs-ride="carousel"]');for(const t of e)Le.getOrCreateInstance(t)})),m(Le);const ke=".bs.collapse",De=`show${ke}`,Ie=`shown${ke}`,Me=`hide${ke}`,$e=`hidden${ke}`,Pe=`click${ke}.data-api`,Ne="show",je="collapse",qe="collapsing",Fe=`:scope .${je} .${je}`,He='[data-bs-toggle="collapse"]',Re={parent:null,toggle:!0},Be={parent:"(null|element)",toggle:"boolean"};class We extends H{constructor(e,t){super(e,t),this._isTransitioning=!1,this._triggerArray=[];const n=B.find(He);for(const e of n){const t=B.getSelectorFromElement(e),n=B.find(t).filter((e=>e===this._element));null!==t&&n.length&&this._triggerArray.push(e)}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return Re}static get DefaultType(){return Be}static get NAME(){return"collapse"}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let e=[];if(this._config.parent&&(e=this._getFirstLevelChildren(".collapse.show, .collapse.collapsing").filter((e=>e!==this._element)).map((e=>We.getOrCreateInstance(e,{toggle:!1})))),e.length&&e[0]._isTransitioning)return;if($.trigger(this._element,De).defaultPrevented)return;for(const t of e)t.hide();const t=this._getDimension();this._element.classList.remove(je),this._element.classList.add(qe),this._element.style[t]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const n=`scroll${t[0].toUpperCase()+t.slice(1)}`;this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(qe),this._element.classList.add(je,Ne),this._element.style[t]="",$.trigger(this._element,Ie)}),this._element,!0),this._element.style[t]=`${this._element[n]}px`}hide(){if(this._isTransitioning||!this._isShown())return;if($.trigger(this._element,Me).defaultPrevented)return;const e=this._getDimension();this._element.style[e]=`${this._element.getBoundingClientRect()[e]}px`,d(this._element),this._element.classList.add(qe),this._element.classList.remove(je,Ne);for(const e of this._triggerArray){const t=B.getElementFromSelector(e);t&&!this._isShown(t)&&this._addAriaAndCollapsedClass([e],!1)}this._isTransitioning=!0,this._element.style[e]="",this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(qe),this._element.classList.add(je),$.trigger(this._element,$e)}),this._element,!0)}_isShown(e=this._element){return e.classList.contains(Ne)}_configAfterMerge(e){return e.toggle=Boolean(e.toggle),e.parent=r(e.parent),e}_getDimension(){return this._element.classList.contains("collapse-horizontal")?"width":"height"}_initializeChildren(){if(!this._config.parent)return;const e=this._getFirstLevelChildren(He);for(const t of e){const e=B.getElementFromSelector(t);e&&this._addAriaAndCollapsedClass([t],this._isShown(e))}}_getFirstLevelChildren(e){const t=B.find(Fe,this._config.parent);return B.find(e,this._config.parent).filter((e=>!t.includes(e)))}_addAriaAndCollapsedClass(e,t){if(e.length)for(const n of e)n.classList.toggle("collapsed",!t),n.setAttribute("aria-expanded",t)}static jQueryInterface(e){const t={};return"string"==typeof e&&/show|hide/.test(e)&&(t.toggle=!1),this.each((function(){const n=We.getOrCreateInstance(this,t);if("string"==typeof e){if(void 0===n[e])throw new TypeError(`No method named "${e}"`);n[e]()}}))}}$.on(document,Pe,He,(function(e){("A"===e.target.tagName||e.delegateTarget&&"A"===e.delegateTarget.tagName)&&e.preventDefault();for(const e of B.getMultipleElementsFromSelector(this))We.getOrCreateInstance(e,{toggle:!1}).toggle()})),m(We);var ze="top",Ve="bottom",Ue="right",Qe="left",Ke="auto",Ye=[ze,Ve,Ue,Qe],Xe="start",Je="end",Ge="clippingParents",Ze="viewport",et="popper",tt="reference",nt=Ye.reduce((function(e,t){return e.concat([t+"-"+Xe,t+"-"+Je])}),[]),it=[].concat(Ye,[Ke]).reduce((function(e,t){return e.concat([t,t+"-"+Xe,t+"-"+Je])}),[]),st="beforeRead",ot="read",rt="afterRead",at="beforeMain",lt="main",ct="afterMain",ut="beforeWrite",dt="write",ht="afterWrite",ft=[st,ot,rt,at,lt,ct,ut,dt,ht];function pt(e){return e?(e.nodeName||"").toLowerCase():null}function mt(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function gt(e){return e instanceof mt(e).Element||e instanceof Element}function _t(e){return e instanceof mt(e).HTMLElement||e instanceof HTMLElement}function vt(e){return"undefined"!=typeof ShadowRoot&&(e instanceof mt(e).ShadowRoot||e instanceof ShadowRoot)}const bt={name:"applyStyles",enabled:!0,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach((function(e){var n=t.styles[e]||{},i=t.attributes[e]||{},s=t.elements[e];_t(s)&&pt(s)&&(Object.assign(s.style,n),Object.keys(i).forEach((function(e){var t=i[e];!1===t?s.removeAttribute(e):s.setAttribute(e,!0===t?"":t)})))}))},effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach((function(e){var i=t.elements[e],s=t.attributes[e]||{},o=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:n[e]).reduce((function(e,t){return e[t]="",e}),{});_t(i)&&pt(i)&&(Object.assign(i.style,o),Object.keys(s).forEach((function(e){i.removeAttribute(e)})))}))}},requires:["computeStyles"]};function yt(e){return e.split("-")[0]}var wt=Math.max,Et=Math.min,At=Math.round;function Tt(){var e=navigator.userAgentData;return null!=e&&e.brands&&Array.isArray(e.brands)?e.brands.map((function(e){return e.brand+"/"+e.version})).join(" "):navigator.userAgent}function Ct(){return!/^((?!chrome|android).)*safari/i.test(Tt())}function St(e,t,n){void 0===t&&(t=!1),void 0===n&&(n=!1);var i=e.getBoundingClientRect(),s=1,o=1;t&&_t(e)&&(s=e.offsetWidth>0&&At(i.width)/e.offsetWidth||1,o=e.offsetHeight>0&&At(i.height)/e.offsetHeight||1);var r=(gt(e)?mt(e):window).visualViewport,a=!Ct()&&n,l=(i.left+(a&&r?r.offsetLeft:0))/s,c=(i.top+(a&&r?r.offsetTop:0))/o,u=i.width/s,d=i.height/o;return{width:u,height:d,top:c,right:l+u,bottom:c+d,left:l,x:l,y:c}}function xt(e){var t=St(e),n=e.offsetWidth,i=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-i)<=1&&(i=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:i}}function Ot(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&vt(n)){var i=t;do{if(i&&e.isSameNode(i))return!0;i=i.parentNode||i.host}while(i)}return!1}function Lt(e){return mt(e).getComputedStyle(e)}function kt(e){return["table","td","th"].indexOf(pt(e))>=0}function Dt(e){return((gt(e)?e.ownerDocument:e.document)||window.document).documentElement}function It(e){return"html"===pt(e)?e:e.assignedSlot||e.parentNode||(vt(e)?e.host:null)||Dt(e)}function Mt(e){return _t(e)&&"fixed"!==Lt(e).position?e.offsetParent:null}function $t(e){for(var t=mt(e),n=Mt(e);n&&kt(n)&&"static"===Lt(n).position;)n=Mt(n);return n&&("html"===pt(n)||"body"===pt(n)&&"static"===Lt(n).position)?t:n||function(e){var t=/firefox/i.test(Tt());if(/Trident/i.test(Tt())&&_t(e)&&"fixed"===Lt(e).position)return null;var n=It(e);for(vt(n)&&(n=n.host);_t(n)&&["html","body"].indexOf(pt(n))<0;){var i=Lt(n);if("none"!==i.transform||"none"!==i.perspective||"paint"===i.contain||-1!==["transform","perspective"].indexOf(i.willChange)||t&&"filter"===i.willChange||t&&i.filter&&"none"!==i.filter)return n;n=n.parentNode}return null}(e)||t}function Pt(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function Nt(e,t,n){return wt(e,Et(t,n))}function jt(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function qt(e,t){return t.reduce((function(t,n){return t[n]=e,t}),{})}const Ft={name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,n=e.state,i=e.name,s=e.options,o=n.elements.arrow,r=n.modifiersData.popperOffsets,a=yt(n.placement),l=Pt(a),c=[Qe,Ue].indexOf(a)>=0?"height":"width";if(o&&r){var u=function(e,t){return jt("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:qt(e,Ye))}(s.padding,n),d=xt(o),h="y"===l?ze:Qe,f="y"===l?Ve:Ue,p=n.rects.reference[c]+n.rects.reference[l]-r[l]-n.rects.popper[c],m=r[l]-n.rects.reference[l],g=$t(o),_=g?"y"===l?g.clientHeight||0:g.clientWidth||0:0,v=p/2-m/2,b=u[h],y=_-d[c]-u[f],w=_/2-d[c]/2+v,E=Nt(b,w,y),A=l;n.modifiersData[i]=((t={})[A]=E,t.centerOffset=E-w,t)}},effect:function(e){var t=e.state,n=e.options.element,i=void 0===n?"[data-popper-arrow]":n;null!=i&&("string"!=typeof i||(i=t.elements.popper.querySelector(i)))&&Ot(t.elements.popper,i)&&(t.elements.arrow=i)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Ht(e){return e.split("-")[1]}var Rt={top:"auto",right:"auto",bottom:"auto",left:"auto"};function Bt(e){var t,n=e.popper,i=e.popperRect,s=e.placement,o=e.variation,r=e.offsets,a=e.position,l=e.gpuAcceleration,c=e.adaptive,u=e.roundOffsets,d=e.isFixed,h=r.x,f=void 0===h?0:h,p=r.y,m=void 0===p?0:p,g="function"==typeof u?u({x:f,y:m}):{x:f,y:m};f=g.x,m=g.y;var _=r.hasOwnProperty("x"),v=r.hasOwnProperty("y"),b=Qe,y=ze,w=window;if(c){var E=$t(n),A="clientHeight",T="clientWidth";E===mt(n)&&"static"!==Lt(E=Dt(n)).position&&"absolute"===a&&(A="scrollHeight",T="scrollWidth"),(s===ze||(s===Qe||s===Ue)&&o===Je)&&(y=Ve,m-=(d&&E===w&&w.visualViewport?w.visualViewport.height:E[A])-i.height,m*=l?1:-1),s!==Qe&&(s!==ze&&s!==Ve||o!==Je)||(b=Ue,f-=(d&&E===w&&w.visualViewport?w.visualViewport.width:E[T])-i.width,f*=l?1:-1)}var C,S=Object.assign({position:a},c&&Rt),x=!0===u?function(e,t){var n=e.x,i=e.y,s=t.devicePixelRatio||1;return{x:At(n*s)/s||0,y:At(i*s)/s||0}}({x:f,y:m},mt(n)):{x:f,y:m};return f=x.x,m=x.y,l?Object.assign({},S,((C={})[y]=v?"0":"",C[b]=_?"0":"",C.transform=(w.devicePixelRatio||1)<=1?"translate("+f+"px, "+m+"px)":"translate3d("+f+"px, "+m+"px, 0)",C)):Object.assign({},S,((t={})[y]=v?m+"px":"",t[b]=_?f+"px":"",t.transform="",t))}const Wt={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(e){var t=e.state,n=e.options,i=n.gpuAcceleration,s=void 0===i||i,o=n.adaptive,r=void 0===o||o,a=n.roundOffsets,l=void 0===a||a,c={placement:yt(t.placement),variation:Ht(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:s,isFixed:"fixed"===t.options.strategy};null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign({},t.styles.popper,Bt(Object.assign({},c,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:r,roundOffsets:l})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,Bt(Object.assign({},c,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})},data:{}};var zt={passive:!0};const Vt={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(e){var t=e.state,n=e.instance,i=e.options,s=i.scroll,o=void 0===s||s,r=i.resize,a=void 0===r||r,l=mt(t.elements.popper),c=[].concat(t.scrollParents.reference,t.scrollParents.popper);return o&&c.forEach((function(e){e.addEventListener("scroll",n.update,zt)})),a&&l.addEventListener("resize",n.update,zt),function(){o&&c.forEach((function(e){e.removeEventListener("scroll",n.update,zt)})),a&&l.removeEventListener("resize",n.update,zt)}},data:{}};var Ut={left:"right",right:"left",bottom:"top",top:"bottom"};function Qt(e){return e.replace(/left|right|bottom|top/g,(function(e){return Ut[e]}))}var Kt={start:"end",end:"start"};function Yt(e){return e.replace(/start|end/g,(function(e){return Kt[e]}))}function Xt(e){var t=mt(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function Jt(e){return St(Dt(e)).left+Xt(e).scrollLeft}function Gt(e){var t=Lt(e),n=t.overflow,i=t.overflowX,s=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+s+i)}function Zt(e){return["html","body","#document"].indexOf(pt(e))>=0?e.ownerDocument.body:_t(e)&&Gt(e)?e:Zt(It(e))}function en(e,t){var n;void 0===t&&(t=[]);var i=Zt(e),s=i===(null==(n=e.ownerDocument)?void 0:n.body),o=mt(i),r=s?[o].concat(o.visualViewport||[],Gt(i)?i:[]):i,a=t.concat(r);return s?a:a.concat(en(It(r)))}function tn(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function nn(e,t,n){return t===Ze?tn(function(e,t){var n=mt(e),i=Dt(e),s=n.visualViewport,o=i.clientWidth,r=i.clientHeight,a=0,l=0;if(s){o=s.width,r=s.height;var c=Ct();(c||!c&&"fixed"===t)&&(a=s.offsetLeft,l=s.offsetTop)}return{width:o,height:r,x:a+Jt(e),y:l}}(e,n)):gt(t)?function(e,t){var n=St(e,!1,"fixed"===t);return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}(t,n):tn(function(e){var t,n=Dt(e),i=Xt(e),s=null==(t=e.ownerDocument)?void 0:t.body,o=wt(n.scrollWidth,n.clientWidth,s?s.scrollWidth:0,s?s.clientWidth:0),r=wt(n.scrollHeight,n.clientHeight,s?s.scrollHeight:0,s?s.clientHeight:0),a=-i.scrollLeft+Jt(e),l=-i.scrollTop;return"rtl"===Lt(s||n).direction&&(a+=wt(n.clientWidth,s?s.clientWidth:0)-o),{width:o,height:r,x:a,y:l}}(Dt(e)))}function sn(e){var t,n=e.reference,i=e.element,s=e.placement,o=s?yt(s):null,r=s?Ht(s):null,a=n.x+n.width/2-i.width/2,l=n.y+n.height/2-i.height/2;switch(o){case ze:t={x:a,y:n.y-i.height};break;case Ve:t={x:a,y:n.y+n.height};break;case Ue:t={x:n.x+n.width,y:l};break;case Qe:t={x:n.x-i.width,y:l};break;default:t={x:n.x,y:n.y}}var c=o?Pt(o):null;if(null!=c){var u="y"===c?"height":"width";switch(r){case Xe:t[c]=t[c]-(n[u]/2-i[u]/2);break;case Je:t[c]=t[c]+(n[u]/2-i[u]/2)}}return t}function on(e,t){void 0===t&&(t={});var n=t,i=n.placement,s=void 0===i?e.placement:i,o=n.strategy,r=void 0===o?e.strategy:o,a=n.boundary,l=void 0===a?Ge:a,c=n.rootBoundary,u=void 0===c?Ze:c,d=n.elementContext,h=void 0===d?et:d,f=n.altBoundary,p=void 0!==f&&f,m=n.padding,g=void 0===m?0:m,_=jt("number"!=typeof g?g:qt(g,Ye)),v=h===et?tt:et,b=e.rects.popper,y=e.elements[p?v:h],w=function(e,t,n,i){var s="clippingParents"===t?function(e){var t=en(It(e)),n=["absolute","fixed"].indexOf(Lt(e).position)>=0&&_t(e)?$t(e):e;return gt(n)?t.filter((function(e){return gt(e)&&Ot(e,n)&&"body"!==pt(e)})):[]}(e):[].concat(t),o=[].concat(s,[n]),r=o[0],a=o.reduce((function(t,n){var s=nn(e,n,i);return t.top=wt(s.top,t.top),t.right=Et(s.right,t.right),t.bottom=Et(s.bottom,t.bottom),t.left=wt(s.left,t.left),t}),nn(e,r,i));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}(gt(y)?y:y.contextElement||Dt(e.elements.popper),l,u,r),E=St(e.elements.reference),A=sn({reference:E,element:b,placement:s}),T=tn(Object.assign({},b,A)),C=h===et?T:E,S={top:w.top-C.top+_.top,bottom:C.bottom-w.bottom+_.bottom,left:w.left-C.left+_.left,right:C.right-w.right+_.right},x=e.modifiersData.offset;if(h===et&&x){var O=x[s];Object.keys(S).forEach((function(e){var t=[Ue,Ve].indexOf(e)>=0?1:-1,n=[ze,Ve].indexOf(e)>=0?"y":"x";S[e]+=O[n]*t}))}return S}function rn(e,t){void 0===t&&(t={});var n=t,i=n.placement,s=n.boundary,o=n.rootBoundary,r=n.padding,a=n.flipVariations,l=n.allowedAutoPlacements,c=void 0===l?it:l,u=Ht(i),d=u?a?nt:nt.filter((function(e){return Ht(e)===u})):Ye,h=d.filter((function(e){return c.indexOf(e)>=0}));0===h.length&&(h=d);var f=h.reduce((function(t,n){return t[n]=on(e,{placement:n,boundary:s,rootBoundary:o,padding:r})[yt(n)],t}),{});return Object.keys(f).sort((function(e,t){return f[e]-f[t]}))}const an={name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,i=e.name;if(!t.modifiersData[i]._skip){for(var s=n.mainAxis,o=void 0===s||s,r=n.altAxis,a=void 0===r||r,l=n.fallbackPlacements,c=n.padding,u=n.boundary,d=n.rootBoundary,h=n.altBoundary,f=n.flipVariations,p=void 0===f||f,m=n.allowedAutoPlacements,g=t.options.placement,_=yt(g),v=l||(_!==g&&p?function(e){if(yt(e)===Ke)return[];var t=Qt(e);return[Yt(e),t,Yt(t)]}(g):[Qt(g)]),b=[g].concat(v).reduce((function(e,n){return e.concat(yt(n)===Ke?rn(t,{placement:n,boundary:u,rootBoundary:d,padding:c,flipVariations:p,allowedAutoPlacements:m}):n)}),[]),y=t.rects.reference,w=t.rects.popper,E=new Map,A=!0,T=b[0],C=0;C=0,k=L?"width":"height",D=on(t,{placement:S,boundary:u,rootBoundary:d,altBoundary:h,padding:c}),I=L?O?Ue:Qe:O?Ve:ze;y[k]>w[k]&&(I=Qt(I));var M=Qt(I),$=[];if(o&&$.push(D[x]<=0),a&&$.push(D[I]<=0,D[M]<=0),$.every((function(e){return e}))){T=S,A=!1;break}E.set(S,$)}if(A)for(var P=function(e){var t=b.find((function(t){var n=E.get(t);if(n)return n.slice(0,e).every((function(e){return e}))}));if(t)return T=t,"break"},N=p?3:1;N>0&&"break"!==P(N);N--);t.placement!==T&&(t.modifiersData[i]._skip=!0,t.placement=T,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function ln(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function cn(e){return[ze,Ue,Ve,Qe].some((function(t){return e[t]>=0}))}const un={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,n=e.name,i=t.rects.reference,s=t.rects.popper,o=t.modifiersData.preventOverflow,r=on(t,{elementContext:"reference"}),a=on(t,{altBoundary:!0}),l=ln(r,i),c=ln(a,s,o),u=cn(l),d=cn(c);t.modifiersData[n]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:u,hasPopperEscaped:d},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":u,"data-popper-escaped":d})}},dn={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,n=e.options,i=e.name,s=n.offset,o=void 0===s?[0,0]:s,r=it.reduce((function(e,n){return e[n]=function(e,t,n){var i=yt(e),s=[Qe,ze].indexOf(i)>=0?-1:1,o="function"==typeof n?n(Object.assign({},t,{placement:e})):n,r=o[0],a=o[1];return r=r||0,a=(a||0)*s,[Qe,Ue].indexOf(i)>=0?{x:a,y:r}:{x:r,y:a}}(n,t.rects,o),e}),{}),a=r[t.placement],l=a.x,c=a.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=l,t.modifiersData.popperOffsets.y+=c),t.modifiersData[i]=r}},hn={name:"popperOffsets",enabled:!0,phase:"read",fn:function(e){var t=e.state,n=e.name;t.modifiersData[n]=sn({reference:t.rects.reference,element:t.rects.popper,placement:t.placement})},data:{}},fn={name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,i=e.name,s=n.mainAxis,o=void 0===s||s,r=n.altAxis,a=void 0!==r&&r,l=n.boundary,c=n.rootBoundary,u=n.altBoundary,d=n.padding,h=n.tether,f=void 0===h||h,p=n.tetherOffset,m=void 0===p?0:p,g=on(t,{boundary:l,rootBoundary:c,padding:d,altBoundary:u}),_=yt(t.placement),v=Ht(t.placement),b=!v,y=Pt(_),w="x"===y?"y":"x",E=t.modifiersData.popperOffsets,A=t.rects.reference,T=t.rects.popper,C="function"==typeof m?m(Object.assign({},t.rects,{placement:t.placement})):m,S="number"==typeof C?{mainAxis:C,altAxis:C}:Object.assign({mainAxis:0,altAxis:0},C),x=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,O={x:0,y:0};if(E){if(o){var L,k="y"===y?ze:Qe,D="y"===y?Ve:Ue,I="y"===y?"height":"width",M=E[y],$=M+g[k],P=M-g[D],N=f?-T[I]/2:0,j=v===Xe?A[I]:T[I],q=v===Xe?-T[I]:-A[I],F=t.elements.arrow,H=f&&F?xt(F):{width:0,height:0},R=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},B=R[k],W=R[D],z=Nt(0,A[I],H[I]),V=b?A[I]/2-N-z-B-S.mainAxis:j-z-B-S.mainAxis,U=b?-A[I]/2+N+z+W+S.mainAxis:q+z+W+S.mainAxis,Q=t.elements.arrow&&$t(t.elements.arrow),K=Q?"y"===y?Q.clientTop||0:Q.clientLeft||0:0,Y=null!=(L=null==x?void 0:x[y])?L:0,X=M+U-Y,J=Nt(f?Et($,M+V-Y-K):$,M,f?wt(P,X):P);E[y]=J,O[y]=J-M}if(a){var G,Z="x"===y?ze:Qe,ee="x"===y?Ve:Ue,te=E[w],ne="y"===w?"height":"width",ie=te+g[Z],se=te-g[ee],oe=-1!==[ze,Qe].indexOf(_),re=null!=(G=null==x?void 0:x[w])?G:0,ae=oe?ie:te-A[ne]-T[ne]-re+S.altAxis,le=oe?te+A[ne]+T[ne]-re-S.altAxis:se,ce=f&&oe?function(e,t,n){var i=Nt(e,t,n);return i>n?n:i}(ae,te,le):Nt(f?ae:ie,te,f?le:se);E[w]=ce,O[w]=ce-te}t.modifiersData[i]=O}},requiresIfExists:["offset"]};function pn(e,t,n){void 0===n&&(n=!1);var i,s,o=_t(t),r=_t(t)&&function(e){var t=e.getBoundingClientRect(),n=At(t.width)/e.offsetWidth||1,i=At(t.height)/e.offsetHeight||1;return 1!==n||1!==i}(t),a=Dt(t),l=St(e,r,n),c={scrollLeft:0,scrollTop:0},u={x:0,y:0};return(o||!o&&!n)&&(("body"!==pt(t)||Gt(a))&&(c=(i=t)!==mt(i)&&_t(i)?{scrollLeft:(s=i).scrollLeft,scrollTop:s.scrollTop}:Xt(i)),_t(t)?((u=St(t,!0)).x+=t.clientLeft,u.y+=t.clientTop):a&&(u.x=Jt(a))),{x:l.left+c.scrollLeft-u.x,y:l.top+c.scrollTop-u.y,width:l.width,height:l.height}}function mn(e){var t=new Map,n=new Set,i=[];function s(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!n.has(e)){var i=t.get(e);i&&s(i)}})),i.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){n.has(e.name)||s(e)})),i}var gn={placement:"bottom",modifiers:[],strategy:"absolute"};function _n(){for(var e=arguments.length,t=new Array(e),n=0;nNumber.parseInt(e,10))):"function"==typeof e?t=>e(t,this._element):e}_getPopperConfig(){const e={placement:this._getPlacement(),modifiers:[{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"offset",options:{offset:this._getOffset()}}]};return(this._inNavbar||"static"===this._config.display)&&(q.setDataAttribute(this._menu,"popper","static"),e.modifiers=[{name:"applyStyles",enabled:!1}]),{...e,...g(this._config.popperConfig,[void 0,e])}}_selectMenuItem({key:e,target:t}){const n=B.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",this._menu).filter((e=>a(e)));n.length&&v(n,t,e===xn,!n.includes(t)).focus()}static jQueryInterface(e){return this.each((function(){const t=Qn.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===t[e])throw new TypeError(`No method named "${e}"`);t[e]()}}))}static clearMenus(e){if(2===e.button||"keyup"===e.type&&"Tab"!==e.key)return;const t=B.find(jn);for(const n of t){const t=Qn.getInstance(n);if(!t||!1===t._config.autoClose)continue;const i=e.composedPath(),s=i.includes(t._menu);if(i.includes(t._element)||"inside"===t._config.autoClose&&!s||"outside"===t._config.autoClose&&s)continue;if(t._menu.contains(e.target)&&("keyup"===e.type&&"Tab"===e.key||/input|select|option|textarea|form/i.test(e.target.tagName)))continue;const o={relatedTarget:t._element};"click"===e.type&&(o.clickEvent=e),t._completeHide(o)}}static dataApiKeydownHandler(e){const t=/input|textarea/i.test(e.target.tagName),n="Escape"===e.key,i=[Sn,xn].includes(e.key);if(!i&&!n)return;if(t&&!n)return;e.preventDefault();const s=this.matches(Nn)?this:B.prev(this,Nn)[0]||B.next(this,Nn)[0]||B.findOne(Nn,e.delegateTarget.parentNode),o=Qn.getOrCreateInstance(s);if(i)return e.stopPropagation(),o.show(),void o._selectMenuItem(e);o._isShown()&&(e.stopPropagation(),o.hide(),s.focus())}}$.on(document,Mn,Nn,Qn.dataApiKeydownHandler),$.on(document,Mn,qn,Qn.dataApiKeydownHandler),$.on(document,In,Qn.clearMenus),$.on(document,$n,Qn.clearMenus),$.on(document,In,Nn,(function(e){e.preventDefault(),Qn.getOrCreateInstance(this).toggle()})),m(Qn);const Kn="backdrop",Yn="show",Xn=`mousedown.bs.${Kn}`,Jn={className:"modal-backdrop",clickCallback:null,isAnimated:!1,isVisible:!0,rootElement:"body"},Gn={className:"string",clickCallback:"(function|null)",isAnimated:"boolean",isVisible:"boolean",rootElement:"(element|string)"};class Zn extends F{constructor(e){super(),this._config=this._getConfig(e),this._isAppended=!1,this._element=null}static get Default(){return Jn}static get DefaultType(){return Gn}static get NAME(){return Kn}show(e){if(!this._config.isVisible)return void g(e);this._append();const t=this._getElement();this._config.isAnimated&&d(t),t.classList.add(Yn),this._emulateAnimation((()=>{g(e)}))}hide(e){this._config.isVisible?(this._getElement().classList.remove(Yn),this._emulateAnimation((()=>{this.dispose(),g(e)}))):g(e)}dispose(){this._isAppended&&($.off(this._element,Xn),this._element.remove(),this._isAppended=!1)}_getElement(){if(!this._element){const e=document.createElement("div");e.className=this._config.className,this._config.isAnimated&&e.classList.add("fade"),this._element=e}return this._element}_configAfterMerge(e){return e.rootElement=r(e.rootElement),e}_append(){if(this._isAppended)return;const e=this._getElement();this._config.rootElement.append(e),$.on(e,Xn,(()=>{g(this._config.clickCallback)})),this._isAppended=!0}_emulateAnimation(e){_(e,this._getElement(),this._config.isAnimated)}}const ei=".bs.focustrap",ti=`focusin${ei}`,ni=`keydown.tab${ei}`,ii="backward",si={autofocus:!0,trapElement:null},oi={autofocus:"boolean",trapElement:"element"};class ri extends F{constructor(e){super(),this._config=this._getConfig(e),this._isActive=!1,this._lastTabNavDirection=null}static get Default(){return si}static get DefaultType(){return oi}static get NAME(){return"focustrap"}activate(){this._isActive||(this._config.autofocus&&this._config.trapElement.focus(),$.off(document,ei),$.on(document,ti,(e=>this._handleFocusin(e))),$.on(document,ni,(e=>this._handleKeydown(e))),this._isActive=!0)}deactivate(){this._isActive&&(this._isActive=!1,$.off(document,ei))}_handleFocusin(e){const{trapElement:t}=this._config;if(e.target===document||e.target===t||t.contains(e.target))return;const n=B.focusableChildren(t);0===n.length?t.focus():this._lastTabNavDirection===ii?n[n.length-1].focus():n[0].focus()}_handleKeydown(e){"Tab"===e.key&&(this._lastTabNavDirection=e.shiftKey?ii:"forward")}}const ai=".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",li=".sticky-top",ci="padding-right",ui="margin-right";class di{constructor(){this._element=document.body}getWidth(){const e=document.documentElement.clientWidth;return Math.abs(window.innerWidth-e)}hide(){const e=this.getWidth();this._disableOverFlow(),this._setElementAttributes(this._element,ci,(t=>t+e)),this._setElementAttributes(ai,ci,(t=>t+e)),this._setElementAttributes(li,ui,(t=>t-e))}reset(){this._resetElementAttributes(this._element,"overflow"),this._resetElementAttributes(this._element,ci),this._resetElementAttributes(ai,ci),this._resetElementAttributes(li,ui)}isOverflowing(){return this.getWidth()>0}_disableOverFlow(){this._saveInitialAttribute(this._element,"overflow"),this._element.style.overflow="hidden"}_setElementAttributes(e,t,n){const i=this.getWidth();this._applyManipulationCallback(e,(e=>{if(e!==this._element&&window.innerWidth>e.clientWidth+i)return;this._saveInitialAttribute(e,t);const s=window.getComputedStyle(e).getPropertyValue(t);e.style.setProperty(t,`${n(Number.parseFloat(s))}px`)}))}_saveInitialAttribute(e,t){const n=e.style.getPropertyValue(t);n&&q.setDataAttribute(e,t,n)}_resetElementAttributes(e,t){this._applyManipulationCallback(e,(e=>{const n=q.getDataAttribute(e,t);null!==n?(q.removeDataAttribute(e,t),e.style.setProperty(t,n)):e.style.removeProperty(t)}))}_applyManipulationCallback(e,t){if(o(e))t(e);else for(const n of B.find(e,this._element))t(n)}}const hi=".bs.modal",fi=`hide${hi}`,pi=`hidePrevented${hi}`,mi=`hidden${hi}`,gi=`show${hi}`,_i=`shown${hi}`,vi=`resize${hi}`,bi=`click.dismiss${hi}`,yi=`mousedown.dismiss${hi}`,wi=`keydown.dismiss${hi}`,Ei=`click${hi}.data-api`,Ai="modal-open",Ti="show",Ci="modal-static",Si={backdrop:!0,focus:!0,keyboard:!0},xi={backdrop:"(boolean|string)",focus:"boolean",keyboard:"boolean"};class Oi extends H{constructor(e,t){super(e,t),this._dialog=B.findOne(".modal-dialog",this._element),this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._isShown=!1,this._isTransitioning=!1,this._scrollBar=new di,this._addEventListeners()}static get Default(){return Si}static get DefaultType(){return xi}static get NAME(){return"modal"}toggle(e){return this._isShown?this.hide():this.show(e)}show(e){this._isShown||this._isTransitioning||$.trigger(this._element,gi,{relatedTarget:e}).defaultPrevented||(this._isShown=!0,this._isTransitioning=!0,this._scrollBar.hide(),document.body.classList.add(Ai),this._adjustDialog(),this._backdrop.show((()=>this._showElement(e))))}hide(){this._isShown&&!this._isTransitioning&&($.trigger(this._element,fi).defaultPrevented||(this._isShown=!1,this._isTransitioning=!0,this._focustrap.deactivate(),this._element.classList.remove(Ti),this._queueCallback((()=>this._hideModal()),this._element,this._isAnimated())))}dispose(){$.off(window,hi),$.off(this._dialog,hi),this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}handleUpdate(){this._adjustDialog()}_initializeBackDrop(){return new Zn({isVisible:Boolean(this._config.backdrop),isAnimated:this._isAnimated()})}_initializeFocusTrap(){return new ri({trapElement:this._element})}_showElement(e){document.body.contains(this._element)||document.body.append(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.scrollTop=0;const t=B.findOne(".modal-body",this._dialog);t&&(t.scrollTop=0),d(this._element),this._element.classList.add(Ti),this._queueCallback((()=>{this._config.focus&&this._focustrap.activate(),this._isTransitioning=!1,$.trigger(this._element,_i,{relatedTarget:e})}),this._dialog,this._isAnimated())}_addEventListeners(){$.on(this._element,wi,(e=>{"Escape"===e.key&&(this._config.keyboard?this.hide():this._triggerBackdropTransition())})),$.on(window,vi,(()=>{this._isShown&&!this._isTransitioning&&this._adjustDialog()})),$.on(this._element,yi,(e=>{$.one(this._element,bi,(t=>{this._element===e.target&&this._element===t.target&&("static"!==this._config.backdrop?this._config.backdrop&&this.hide():this._triggerBackdropTransition())}))}))}_hideModal(){this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._backdrop.hide((()=>{document.body.classList.remove(Ai),this._resetAdjustments(),this._scrollBar.reset(),$.trigger(this._element,mi)}))}_isAnimated(){return this._element.classList.contains("fade")}_triggerBackdropTransition(){if($.trigger(this._element,pi).defaultPrevented)return;const e=this._element.scrollHeight>document.documentElement.clientHeight,t=this._element.style.overflowY;"hidden"===t||this._element.classList.contains(Ci)||(e||(this._element.style.overflowY="hidden"),this._element.classList.add(Ci),this._queueCallback((()=>{this._element.classList.remove(Ci),this._queueCallback((()=>{this._element.style.overflowY=t}),this._dialog)}),this._dialog),this._element.focus())}_adjustDialog(){const e=this._element.scrollHeight>document.documentElement.clientHeight,t=this._scrollBar.getWidth(),n=t>0;if(n&&!e){const e=p()?"paddingLeft":"paddingRight";this._element.style[e]=`${t}px`}if(!n&&e){const e=p()?"paddingRight":"paddingLeft";this._element.style[e]=`${t}px`}}_resetAdjustments(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}static jQueryInterface(e,t){return this.each((function(){const n=Oi.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===n[e])throw new TypeError(`No method named "${e}"`);n[e](t)}}))}}$.on(document,Ei,'[data-bs-toggle="modal"]',(function(e){const t=B.getElementFromSelector(this);["A","AREA"].includes(this.tagName)&&e.preventDefault(),$.one(t,gi,(e=>{e.defaultPrevented||$.one(t,mi,(()=>{a(this)&&this.focus()}))}));const n=B.findOne(".modal.show");n&&Oi.getInstance(n).hide(),Oi.getOrCreateInstance(t).toggle(this)})),W(Oi),m(Oi);const Li=".bs.offcanvas",ki=".data-api",Di=`load${Li}${ki}`,Ii="show",Mi="showing",$i="hiding",Pi=".offcanvas.show",Ni=`show${Li}`,ji=`shown${Li}`,qi=`hide${Li}`,Fi=`hidePrevented${Li}`,Hi=`hidden${Li}`,Ri=`resize${Li}`,Bi=`click${Li}${ki}`,Wi=`keydown.dismiss${Li}`,zi={backdrop:!0,keyboard:!0,scroll:!1},Vi={backdrop:"(boolean|string)",keyboard:"boolean",scroll:"boolean"};class Ui extends H{constructor(e,t){super(e,t),this._isShown=!1,this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._addEventListeners()}static get Default(){return zi}static get DefaultType(){return Vi}static get NAME(){return"offcanvas"}toggle(e){return this._isShown?this.hide():this.show(e)}show(e){this._isShown||$.trigger(this._element,Ni,{relatedTarget:e}).defaultPrevented||(this._isShown=!0,this._backdrop.show(),this._config.scroll||(new di).hide(),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.classList.add(Mi),this._queueCallback((()=>{this._config.scroll&&!this._config.backdrop||this._focustrap.activate(),this._element.classList.add(Ii),this._element.classList.remove(Mi),$.trigger(this._element,ji,{relatedTarget:e})}),this._element,!0))}hide(){this._isShown&&($.trigger(this._element,qi).defaultPrevented||(this._focustrap.deactivate(),this._element.blur(),this._isShown=!1,this._element.classList.add($i),this._backdrop.hide(),this._queueCallback((()=>{this._element.classList.remove(Ii,$i),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._config.scroll||(new di).reset(),$.trigger(this._element,Hi)}),this._element,!0)))}dispose(){this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}_initializeBackDrop(){const e=Boolean(this._config.backdrop);return new Zn({className:"offcanvas-backdrop",isVisible:e,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:e?()=>{"static"!==this._config.backdrop?this.hide():$.trigger(this._element,Fi)}:null})}_initializeFocusTrap(){return new ri({trapElement:this._element})}_addEventListeners(){$.on(this._element,Wi,(e=>{"Escape"===e.key&&(this._config.keyboard?this.hide():$.trigger(this._element,Fi))}))}static jQueryInterface(e){return this.each((function(){const t=Ui.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===t[e]||e.startsWith("_")||"constructor"===e)throw new TypeError(`No method named "${e}"`);t[e](this)}}))}}$.on(document,Bi,'[data-bs-toggle="offcanvas"]',(function(e){const t=B.getElementFromSelector(this);if(["A","AREA"].includes(this.tagName)&&e.preventDefault(),l(this))return;$.one(t,Hi,(()=>{a(this)&&this.focus()}));const n=B.findOne(Pi);n&&n!==t&&Ui.getInstance(n).hide(),Ui.getOrCreateInstance(t).toggle(this)})),$.on(window,Di,(()=>{for(const e of B.find(Pi))Ui.getOrCreateInstance(e).show()})),$.on(window,Ri,(()=>{for(const e of B.find("[aria-modal][class*=show][class*=offcanvas-]"))"fixed"!==getComputedStyle(e).position&&Ui.getOrCreateInstance(e).hide()})),W(Ui),m(Ui);const Qi={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],dd:[],div:[],dl:[],dt:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},Ki=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),Yi=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i,Xi=(e,t)=>{const n=e.nodeName.toLowerCase();return t.includes(n)?!Ki.has(n)||Boolean(Yi.test(e.nodeValue)):t.filter((e=>e instanceof RegExp)).some((e=>e.test(n)))},Ji={allowList:Qi,content:{},extraClass:"",html:!1,sanitize:!0,sanitizeFn:null,template:"
"},Gi={allowList:"object",content:"object",extraClass:"(string|function)",html:"boolean",sanitize:"boolean",sanitizeFn:"(null|function)",template:"string"},Zi={entry:"(string|element|function|null)",selector:"(string|element)"};class es extends F{constructor(e){super(),this._config=this._getConfig(e)}static get Default(){return Ji}static get DefaultType(){return Gi}static get NAME(){return"TemplateFactory"}getContent(){return Object.values(this._config.content).map((e=>this._resolvePossibleFunction(e))).filter(Boolean)}hasContent(){return this.getContent().length>0}changeContent(e){return this._checkContent(e),this._config.content={...this._config.content,...e},this}toHtml(){const e=document.createElement("div");e.innerHTML=this._maybeSanitize(this._config.template);for(const[t,n]of Object.entries(this._config.content))this._setContent(e,n,t);const t=e.children[0],n=this._resolvePossibleFunction(this._config.extraClass);return n&&t.classList.add(...n.split(" ")),t}_typeCheckConfig(e){super._typeCheckConfig(e),this._checkContent(e.content)}_checkContent(e){for(const[t,n]of Object.entries(e))super._typeCheckConfig({selector:t,entry:n},Zi)}_setContent(e,t,n){const i=B.findOne(n,e);i&&((t=this._resolvePossibleFunction(t))?o(t)?this._putElementInTemplate(r(t),i):this._config.html?i.innerHTML=this._maybeSanitize(t):i.textContent=t:i.remove())}_maybeSanitize(e){return this._config.sanitize?function(e,t,n){if(!e.length)return e;if(n&&"function"==typeof n)return n(e);const i=(new window.DOMParser).parseFromString(e,"text/html"),s=[].concat(...i.body.querySelectorAll("*"));for(const e of s){const n=e.nodeName.toLowerCase();if(!Object.keys(t).includes(n)){e.remove();continue}const i=[].concat(...e.attributes),s=[].concat(t["*"]||[],t[n]||[]);for(const t of i)Xi(t,s)||e.removeAttribute(t.nodeName)}return i.body.innerHTML}(e,this._config.allowList,this._config.sanitizeFn):e}_resolvePossibleFunction(e){return g(e,[void 0,this])}_putElementInTemplate(e,t){if(this._config.html)return t.innerHTML="",void t.append(e);t.textContent=e.textContent}}const ts=new Set(["sanitize","allowList","sanitizeFn"]),ns="fade",is="show",ss=".tooltip-inner",os=".modal",rs="hide.bs.modal",as="hover",ls="focus",cs={AUTO:"auto",TOP:"top",RIGHT:p()?"left":"right",BOTTOM:"bottom",LEFT:p()?"right":"left"},us={allowList:Qi,animation:!0,boundary:"clippingParents",container:!1,customClass:"",delay:0,fallbackPlacements:["top","right","bottom","left"],html:!1,offset:[0,6],placement:"top",popperConfig:null,sanitize:!0,sanitizeFn:null,selector:!1,template:'',title:"",trigger:"hover focus"},ds={allowList:"object",animation:"boolean",boundary:"(string|element)",container:"(string|element|boolean)",customClass:"(string|function)",delay:"(number|object)",fallbackPlacements:"array",html:"boolean",offset:"(array|string|function)",placement:"(string|function)",popperConfig:"(null|object|function)",sanitize:"boolean",sanitizeFn:"(null|function)",selector:"(string|boolean)",template:"string",title:"(string|element|function)",trigger:"string"};class hs extends H{constructor(e,t){if(void 0===En)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org/docs/v2/)");super(e,t),this._isEnabled=!0,this._timeout=0,this._isHovered=null,this._activeTrigger={},this._popper=null,this._templateFactory=null,this._newContent=null,this.tip=null,this._setListeners(),this._config.selector||this._fixTitle()}static get Default(){return us}static get DefaultType(){return ds}static get NAME(){return"tooltip"}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(){this._isEnabled&&(this._isShown()?this._leave():this._enter())}dispose(){clearTimeout(this._timeout),$.off(this._element.closest(os),rs,this._hideModalHandler),this._element.getAttribute("data-bs-original-title")&&this._element.setAttribute("title",this._element.getAttribute("data-bs-original-title")),this._disposePopper(),super.dispose()}show(){if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(!this._isWithContent()||!this._isEnabled)return;const e=$.trigger(this._element,this.constructor.eventName("show")),t=(c(this._element)||this._element.ownerDocument.documentElement).contains(this._element);if(e.defaultPrevented||!t)return;this._disposePopper();const n=this._getTipElement();this._element.setAttribute("aria-describedby",n.getAttribute("id"));const{container:i}=this._config;if(this._element.ownerDocument.documentElement.contains(this.tip)||(i.append(n),$.trigger(this._element,this.constructor.eventName("inserted"))),this._popper=this._createPopper(n),n.classList.add(is),"ontouchstart"in document.documentElement)for(const e of[].concat(...document.body.children))$.on(e,"mouseover",u);this._queueCallback((()=>{$.trigger(this._element,this.constructor.eventName("shown")),!1===this._isHovered&&this._leave(),this._isHovered=!1}),this.tip,this._isAnimated())}hide(){if(this._isShown()&&!$.trigger(this._element,this.constructor.eventName("hide")).defaultPrevented){if(this._getTipElement().classList.remove(is),"ontouchstart"in document.documentElement)for(const e of[].concat(...document.body.children))$.off(e,"mouseover",u);this._activeTrigger.click=!1,this._activeTrigger[ls]=!1,this._activeTrigger[as]=!1,this._isHovered=null,this._queueCallback((()=>{this._isWithActiveTrigger()||(this._isHovered||this._disposePopper(),this._element.removeAttribute("aria-describedby"),$.trigger(this._element,this.constructor.eventName("hidden")))}),this.tip,this._isAnimated())}}update(){this._popper&&this._popper.update()}_isWithContent(){return Boolean(this._getTitle())}_getTipElement(){return this.tip||(this.tip=this._createTipElement(this._newContent||this._getContentForTemplate())),this.tip}_createTipElement(e){const t=this._getTemplateFactory(e).toHtml();if(!t)return null;t.classList.remove(ns,is),t.classList.add(`bs-${this.constructor.NAME}-auto`);const n=(e=>{do{e+=Math.floor(1e6*Math.random())}while(document.getElementById(e));return e})(this.constructor.NAME).toString();return t.setAttribute("id",n),this._isAnimated()&&t.classList.add(ns),t}setContent(e){this._newContent=e,this._isShown()&&(this._disposePopper(),this.show())}_getTemplateFactory(e){return this._templateFactory?this._templateFactory.changeContent(e):this._templateFactory=new es({...this._config,content:e,extraClass:this._resolvePossibleFunction(this._config.customClass)}),this._templateFactory}_getContentForTemplate(){return{[ss]:this._getTitle()}}_getTitle(){return this._resolvePossibleFunction(this._config.title)||this._element.getAttribute("data-bs-original-title")}_initializeOnDelegatedTarget(e){return this.constructor.getOrCreateInstance(e.delegateTarget,this._getDelegateConfig())}_isAnimated(){return this._config.animation||this.tip&&this.tip.classList.contains(ns)}_isShown(){return this.tip&&this.tip.classList.contains(is)}_createPopper(e){const t=g(this._config.placement,[this,e,this._element]),n=cs[t.toUpperCase()];return wn(this._element,e,this._getPopperConfig(n))}_getOffset(){const{offset:e}=this._config;return"string"==typeof e?e.split(",").map((e=>Number.parseInt(e,10))):"function"==typeof e?t=>e(t,this._element):e}_resolvePossibleFunction(e){return g(e,[this._element,this._element])}_getPopperConfig(e){const t={placement:e,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:`.${this.constructor.NAME}-arrow`}},{name:"preSetPlacement",enabled:!0,phase:"beforeMain",fn:e=>{this._getTipElement().setAttribute("data-popper-placement",e.state.placement)}}]};return{...t,...g(this._config.popperConfig,[void 0,t])}}_setListeners(){const e=this._config.trigger.split(" ");for(const t of e)if("click"===t)$.on(this._element,this.constructor.eventName("click"),this._config.selector,(e=>{this._initializeOnDelegatedTarget(e).toggle()}));else if("manual"!==t){const e=t===as?this.constructor.eventName("mouseenter"):this.constructor.eventName("focusin"),n=t===as?this.constructor.eventName("mouseleave"):this.constructor.eventName("focusout");$.on(this._element,e,this._config.selector,(e=>{const t=this._initializeOnDelegatedTarget(e);t._activeTrigger["focusin"===e.type?ls:as]=!0,t._enter()})),$.on(this._element,n,this._config.selector,(e=>{const t=this._initializeOnDelegatedTarget(e);t._activeTrigger["focusout"===e.type?ls:as]=t._element.contains(e.relatedTarget),t._leave()}))}this._hideModalHandler=()=>{this._element&&this.hide()},$.on(this._element.closest(os),rs,this._hideModalHandler)}_fixTitle(){const e=this._element.getAttribute("title");e&&(this._element.getAttribute("aria-label")||this._element.textContent.trim()||this._element.setAttribute("aria-label",e),this._element.setAttribute("data-bs-original-title",e),this._element.removeAttribute("title"))}_enter(){this._isShown()||this._isHovered?this._isHovered=!0:(this._isHovered=!0,this._setTimeout((()=>{this._isHovered&&this.show()}),this._config.delay.show))}_leave(){this._isWithActiveTrigger()||(this._isHovered=!1,this._setTimeout((()=>{this._isHovered||this.hide()}),this._config.delay.hide))}_setTimeout(e,t){clearTimeout(this._timeout),this._timeout=setTimeout(e,t)}_isWithActiveTrigger(){return Object.values(this._activeTrigger).includes(!0)}_getConfig(e){const t=q.getDataAttributes(this._element);for(const e of Object.keys(t))ts.has(e)&&delete t[e];return e={...t,..."object"==typeof e&&e?e:{}},e=this._mergeConfigObj(e),e=this._configAfterMerge(e),this._typeCheckConfig(e),e}_configAfterMerge(e){return e.container=!1===e.container?document.body:r(e.container),"number"==typeof e.delay&&(e.delay={show:e.delay,hide:e.delay}),"number"==typeof e.title&&(e.title=e.title.toString()),"number"==typeof e.content&&(e.content=e.content.toString()),e}_getDelegateConfig(){const e={};for(const[t,n]of Object.entries(this._config))this.constructor.Default[t]!==n&&(e[t]=n);return e.selector=!1,e.trigger="manual",e}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null),this.tip&&(this.tip.remove(),this.tip=null)}static jQueryInterface(e){return this.each((function(){const t=hs.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===t[e])throw new TypeError(`No method named "${e}"`);t[e]()}}))}}m(hs);const fs=".popover-header",ps=".popover-body",ms={...hs.Default,content:"",offset:[0,8],placement:"right",template:'',trigger:"click"},gs={...hs.DefaultType,content:"(null|string|element|function)"};class _s extends hs{static get Default(){return ms}static get DefaultType(){return gs}static get NAME(){return"popover"}_isWithContent(){return this._getTitle()||this._getContent()}_getContentForTemplate(){return{[fs]:this._getTitle(),[ps]:this._getContent()}}_getContent(){return this._resolvePossibleFunction(this._config.content)}static jQueryInterface(e){return this.each((function(){const t=_s.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===t[e])throw new TypeError(`No method named "${e}"`);t[e]()}}))}}m(_s);const vs=".bs.scrollspy",bs=`activate${vs}`,ys=`click${vs}`,ws=`load${vs}.data-api`,Es="active",As="[href]",Ts=".nav-link",Cs=`${Ts}, .nav-item > ${Ts}, .list-group-item`,Ss={offset:null,rootMargin:"0px 0px -25%",smoothScroll:!1,target:null,threshold:[.1,.5,1]},xs={offset:"(number|null)",rootMargin:"string",smoothScroll:"boolean",target:"element",threshold:"array"};class Os extends H{constructor(e,t){super(e,t),this._targetLinks=new Map,this._observableSections=new Map,this._rootElement="visible"===getComputedStyle(this._element).overflowY?null:this._element,this._activeTarget=null,this._observer=null,this._previousScrollData={visibleEntryTop:0,parentScrollTop:0},this.refresh()}static get Default(){return Ss}static get DefaultType(){return xs}static get NAME(){return"scrollspy"}refresh(){this._initializeTargetsAndObservables(),this._maybeEnableSmoothScroll(),this._observer?this._observer.disconnect():this._observer=this._getNewObserver();for(const e of this._observableSections.values())this._observer.observe(e)}dispose(){this._observer.disconnect(),super.dispose()}_configAfterMerge(e){return e.target=r(e.target)||document.body,e.rootMargin=e.offset?`${e.offset}px 0px -30%`:e.rootMargin,"string"==typeof e.threshold&&(e.threshold=e.threshold.split(",").map((e=>Number.parseFloat(e)))),e}_maybeEnableSmoothScroll(){this._config.smoothScroll&&($.off(this._config.target,ys),$.on(this._config.target,ys,As,(e=>{const t=this._observableSections.get(e.target.hash);if(t){e.preventDefault();const n=this._rootElement||window,i=t.offsetTop-this._element.offsetTop;if(n.scrollTo)return void n.scrollTo({top:i,behavior:"smooth"});n.scrollTop=i}})))}_getNewObserver(){const e={root:this._rootElement,threshold:this._config.threshold,rootMargin:this._config.rootMargin};return new IntersectionObserver((e=>this._observerCallback(e)),e)}_observerCallback(e){const t=e=>this._targetLinks.get(`#${e.target.id}`),n=e=>{this._previousScrollData.visibleEntryTop=e.target.offsetTop,this._process(t(e))},i=(this._rootElement||document.documentElement).scrollTop,s=i>=this._previousScrollData.parentScrollTop;this._previousScrollData.parentScrollTop=i;for(const o of e){if(!o.isIntersecting){this._activeTarget=null,this._clearActiveClass(t(o));continue}const e=o.target.offsetTop>=this._previousScrollData.visibleEntryTop;if(s&&e){if(n(o),!i)return}else s||e||n(o)}}_initializeTargetsAndObservables(){this._targetLinks=new Map,this._observableSections=new Map;const e=B.find(As,this._config.target);for(const t of e){if(!t.hash||l(t))continue;const e=B.findOne(decodeURI(t.hash),this._element);a(e)&&(this._targetLinks.set(decodeURI(t.hash),t),this._observableSections.set(t.hash,e))}}_process(e){this._activeTarget!==e&&(this._clearActiveClass(this._config.target),this._activeTarget=e,e.classList.add(Es),this._activateParents(e),$.trigger(this._element,bs,{relatedTarget:e}))}_activateParents(e){if(e.classList.contains("dropdown-item"))B.findOne(".dropdown-toggle",e.closest(".dropdown")).classList.add(Es);else for(const t of B.parents(e,".nav, .list-group"))for(const e of B.prev(t,Cs))e.classList.add(Es)}_clearActiveClass(e){e.classList.remove(Es);const t=B.find(`${As}.${Es}`,e);for(const e of t)e.classList.remove(Es)}static jQueryInterface(e){return this.each((function(){const t=Os.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===t[e]||e.startsWith("_")||"constructor"===e)throw new TypeError(`No method named "${e}"`);t[e]()}}))}}$.on(window,ws,(()=>{for(const e of B.find('[data-bs-spy="scroll"]'))Os.getOrCreateInstance(e)})),m(Os);const Ls=".bs.tab",ks=`hide${Ls}`,Ds=`hidden${Ls}`,Is=`show${Ls}`,Ms=`shown${Ls}`,$s=`click${Ls}`,Ps=`keydown${Ls}`,Ns=`load${Ls}`,js="ArrowLeft",qs="ArrowRight",Fs="ArrowUp",Hs="ArrowDown",Rs="Home",Bs="End",Ws="active",zs="fade",Vs="show",Us=".dropdown-toggle",Qs=`:not(${Us})`,Ks='[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',Ys=`.nav-link${Qs}, .list-group-item${Qs}, [role="tab"]${Qs}, ${Ks}`,Xs=`.${Ws}[data-bs-toggle="tab"], .${Ws}[data-bs-toggle="pill"], .${Ws}[data-bs-toggle="list"]`;class Js extends H{constructor(e){super(e),this._parent=this._element.closest('.list-group, .nav, [role="tablist"]'),this._parent&&(this._setInitialAttributes(this._parent,this._getChildren()),$.on(this._element,Ps,(e=>this._keydown(e))))}static get NAME(){return"tab"}show(){const e=this._element;if(this._elemIsActive(e))return;const t=this._getActiveElem(),n=t?$.trigger(t,ks,{relatedTarget:e}):null;$.trigger(e,Is,{relatedTarget:t}).defaultPrevented||n&&n.defaultPrevented||(this._deactivate(t,e),this._activate(e,t))}_activate(e,t){e&&(e.classList.add(Ws),this._activate(B.getElementFromSelector(e)),this._queueCallback((()=>{"tab"===e.getAttribute("role")?(e.removeAttribute("tabindex"),e.setAttribute("aria-selected",!0),this._toggleDropDown(e,!0),$.trigger(e,Ms,{relatedTarget:t})):e.classList.add(Vs)}),e,e.classList.contains(zs)))}_deactivate(e,t){e&&(e.classList.remove(Ws),e.blur(),this._deactivate(B.getElementFromSelector(e)),this._queueCallback((()=>{"tab"===e.getAttribute("role")?(e.setAttribute("aria-selected",!1),e.setAttribute("tabindex","-1"),this._toggleDropDown(e,!1),$.trigger(e,Ds,{relatedTarget:t})):e.classList.remove(Vs)}),e,e.classList.contains(zs)))}_keydown(e){if(![js,qs,Fs,Hs,Rs,Bs].includes(e.key))return;e.stopPropagation(),e.preventDefault();const t=this._getChildren().filter((e=>!l(e)));let n;if([Rs,Bs].includes(e.key))n=t[e.key===Rs?0:t.length-1];else{const i=[qs,Hs].includes(e.key);n=v(t,e.target,i,!0)}n&&(n.focus({preventScroll:!0}),Js.getOrCreateInstance(n).show())}_getChildren(){return B.find(Ys,this._parent)}_getActiveElem(){return this._getChildren().find((e=>this._elemIsActive(e)))||null}_setInitialAttributes(e,t){this._setAttributeIfNotExists(e,"role","tablist");for(const e of t)this._setInitialAttributesOnChild(e)}_setInitialAttributesOnChild(e){e=this._getInnerElement(e);const t=this._elemIsActive(e),n=this._getOuterElement(e);e.setAttribute("aria-selected",t),n!==e&&this._setAttributeIfNotExists(n,"role","presentation"),t||e.setAttribute("tabindex","-1"),this._setAttributeIfNotExists(e,"role","tab"),this._setInitialAttributesOnTargetPanel(e)}_setInitialAttributesOnTargetPanel(e){const t=B.getElementFromSelector(e);t&&(this._setAttributeIfNotExists(t,"role","tabpanel"),e.id&&this._setAttributeIfNotExists(t,"aria-labelledby",`${e.id}`))}_toggleDropDown(e,t){const n=this._getOuterElement(e);if(!n.classList.contains("dropdown"))return;const i=(e,i)=>{const s=B.findOne(e,n);s&&s.classList.toggle(i,t)};i(Us,Ws),i(".dropdown-menu",Vs),n.setAttribute("aria-expanded",t)}_setAttributeIfNotExists(e,t,n){e.hasAttribute(t)||e.setAttribute(t,n)}_elemIsActive(e){return e.classList.contains(Ws)}_getInnerElement(e){return e.matches(Ys)?e:B.findOne(Ys,e)}_getOuterElement(e){return e.closest(".nav-item, .list-group-item")||e}static jQueryInterface(e){return this.each((function(){const t=Js.getOrCreateInstance(this);if("string"==typeof e){if(void 0===t[e]||e.startsWith("_")||"constructor"===e)throw new TypeError(`No method named "${e}"`);t[e]()}}))}}$.on(document,$s,Ks,(function(e){["A","AREA"].includes(this.tagName)&&e.preventDefault(),l(this)||Js.getOrCreateInstance(this).show()})),$.on(window,Ns,(()=>{for(const e of B.find(Xs))Js.getOrCreateInstance(e)})),m(Js);const Gs=".bs.toast",Zs=`mouseover${Gs}`,eo=`mouseout${Gs}`,to=`focusin${Gs}`,no=`focusout${Gs}`,io=`hide${Gs}`,so=`hidden${Gs}`,oo=`show${Gs}`,ro=`shown${Gs}`,ao="hide",lo="show",co="showing",uo={animation:"boolean",autohide:"boolean",delay:"number"},ho={animation:!0,autohide:!0,delay:5e3};class fo extends H{constructor(e,t){super(e,t),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get Default(){return ho}static get DefaultType(){return uo}static get NAME(){return"toast"}show(){$.trigger(this._element,oo).defaultPrevented||(this._clearTimeout(),this._config.animation&&this._element.classList.add("fade"),this._element.classList.remove(ao),d(this._element),this._element.classList.add(lo,co),this._queueCallback((()=>{this._element.classList.remove(co),$.trigger(this._element,ro),this._maybeScheduleHide()}),this._element,this._config.animation))}hide(){this.isShown()&&($.trigger(this._element,io).defaultPrevented||(this._element.classList.add(co),this._queueCallback((()=>{this._element.classList.add(ao),this._element.classList.remove(co,lo),$.trigger(this._element,so)}),this._element,this._config.animation)))}dispose(){this._clearTimeout(),this.isShown()&&this._element.classList.remove(lo),super.dispose()}isShown(){return this._element.classList.contains(lo)}_maybeScheduleHide(){this._config.autohide&&(this._hasMouseInteraction||this._hasKeyboardInteraction||(this._timeout=setTimeout((()=>{this.hide()}),this._config.delay)))}_onInteraction(e,t){switch(e.type){case"mouseover":case"mouseout":this._hasMouseInteraction=t;break;case"focusin":case"focusout":this._hasKeyboardInteraction=t}if(t)return void this._clearTimeout();const n=e.relatedTarget;this._element===n||this._element.contains(n)||this._maybeScheduleHide()}_setListeners(){$.on(this._element,Zs,(e=>this._onInteraction(e,!0))),$.on(this._element,eo,(e=>this._onInteraction(e,!1))),$.on(this._element,to,(e=>this._onInteraction(e,!0))),$.on(this._element,no,(e=>this._onInteraction(e,!1)))}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static jQueryInterface(e){return this.each((function(){const t=fo.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===t[e])throw new TypeError(`No method named "${e}"`);t[e](this)}}))}}return W(fo),m(fo),{Alert:Q,Button:Y,Carousel:Le,Collapse:We,Dropdown:Qn,Modal:Oi,Offcanvas:Ui,Popover:_s,ScrollSpy:Os,Tab:Js,Toast:fo,Tooltip:hs}})), -/*! - * smooth-scroll v16.1.3 - * Animate scrolling to anchor links - * (c) 2020 Chris Ferdinandi - * MIT License - * http://github.com/cferdinandi/smooth-scroll - */ -window.Element&&!Element.prototype.closest&&(Element.prototype.closest=function(e){var t,n=(this.document||this.ownerDocument).querySelectorAll(e),i=this;do{for(t=n.length;--t>=0&&n.item(t)!==i;);}while(t<0&&(i=i.parentElement));return i}),function(){if("function"==typeof window.CustomEvent)return!1;function e(e,t){t=t||{bubbles:!1,cancelable:!1,detail:void 0};var n=document.createEvent("CustomEvent");return n.initCustomEvent(e,t.bubbles,t.cancelable,t.detail),n}e.prototype=window.Event.prototype,window.CustomEvent=e}(),function(){for(var e=0,t=["ms","moz","webkit","o"],n=0;n=1&&t<=31||127==t||0===s&&t>=48&&t<=57||1===s&&t>=48&&t<=57&&45===r?"\\"+t.toString(16)+" ":t>=128||45===t||95===t||t>=48&&t<=57||t>=65&&t<=90||t>=97&&t<=122?n.charAt(s):"\\"+n.charAt(s)}return"#"+o},s=function(){return Math.max(document.body.scrollHeight,document.documentElement.scrollHeight,document.body.offsetHeight,document.documentElement.offsetHeight,document.body.clientHeight,document.documentElement.clientHeight)},o=function(t,n,i){0===t&&document.body.focus(),i||(t.focus(),document.activeElement!==t&&(t.setAttribute("tabindex","-1"),t.focus(),t.style.outline="none"),e.scrollTo(0,n))},r=function(t,n,i,s){if(n.emitEvents&&"function"==typeof e.CustomEvent){var o=new CustomEvent(t,{bubbles:!0,detail:{anchor:i,toggle:s}});document.dispatchEvent(o)}};return function(a,l){var c,u,d,h,f={cancelScroll:function(e){cancelAnimationFrame(h),h=null,e||r("scrollCancel",c)},animateScroll:function(i,a,l){f.cancelScroll();var u,p,m=n(c||t,l||{}),g="[object Number]"===Object.prototype.toString.call(i),_=g||!i.tagName?null:i;if(g||_){var v=e.pageYOffset;m.header&&!d&&(d=document.querySelector(m.header));var b,y,w,E=(u=d)?(p=u,parseInt(e.getComputedStyle(p).height,10)+u.offsetTop):0,A=g?i:function(t,n,i,o){var r=0;if(t.offsetParent)do{r+=t.offsetTop,t=t.offsetParent}while(t);return r=Math.max(r-n-i,0),o&&(r=Math.min(r,s()-e.innerHeight)),r}(_,E,parseInt("function"==typeof m.offset?m.offset(i,a):m.offset,10),m.clip),T=A-v,C=s(),S=0,x=function(e,t){var n=t.speedAsDuration?t.speed:Math.abs(e/1e3*t.speed);return t.durationMax&&n>t.durationMax?t.durationMax:t.durationMin&&n1?1:y),e.scrollTo(0,Math.floor(w)),function(t,n){var s=e.pageYOffset;if(t==n||s==n||(v=C)return f.cancelScroll(!0),o(i,n,g),r("scrollStop",m,i,a),b=null,h=null,!0}(w,A)||(h=e.requestAnimationFrame(O),b=t)};0===e.pageYOffset&&e.scrollTo(0,0),function(e,t,n){t||history.pushState&&n.updateURL&&history.pushState({smoothScroll:JSON.stringify(n),anchor:e.id},document.title,e===document.documentElement?"#top":"#"+e.id)}(i,g,m),"matchMedia"in e&&e.matchMedia("(prefers-reduced-motion)").matches?o(i,Math.floor(A),!1):(r("scrollStart",m,i,a),f.cancelScroll(!0),e.requestAnimationFrame(O))}}},p=function(t){if(!t.defaultPrevented&&!(0!==t.button||t.metaKey||t.ctrlKey||t.shiftKey)&&"closest"in t.target&&(u=t.target.closest(a))&&"a"===u.tagName.toLowerCase()&&!t.target.closest(c.ignore)&&u.hostname===e.location.hostname&&u.pathname===e.location.pathname&&/#/.test(u.href)){var n,s;try{n=i(decodeURIComponent(u.hash))}catch(e){n=i(u.hash)}if("#"===n){if(!c.topOnEmptyHash)return;s=document.documentElement}else s=document.querySelector(n);(s=s||"#top"!==n?s:document.documentElement)&&(t.preventDefault(),function(t){if(history.replaceState&&t.updateURL&&!history.state){var n=e.location.hash;n=n||"",history.replaceState({smoothScroll:JSON.stringify(t),anchor:n||e.pageYOffset},document.title,n||e.location.href)}}(c),f.animateScroll(s,u))}},m=function(e){if(null!==history.state&&history.state.smoothScroll&&history.state.smoothScroll===JSON.stringify(c)){var t=history.state.anchor;"string"==typeof t&&t&&!(t=document.querySelector(i(history.state.anchor)))||f.animateScroll(t,null,{updateURL:!1})}};return f.destroy=function(){c&&(document.removeEventListener("click",p,!1),e.removeEventListener("popstate",m,!1),f.cancelScroll(),c=null,u=null,d=null,h=null)},function(){if(!("querySelector"in document&&"addEventListener"in e&&"requestAnimationFrame"in e&&"closest"in e.Element.prototype))throw"Smooth Scroll: This browser does not support the required JavaScript methods and browser APIs.";f.destroy(),c=n(t,l||{}),d=c.header?document.querySelector(c.header):null,document.addEventListener("click",p,!1),c.updateURL&&c.popstate&&e.addEventListener("popstate",m,!1)}(),f}},"function"==typeof define&&define.amd?define([],(function(){return t(e)})):"object"==typeof exports?module.exports=t(e):e.SmoothScroll=t(e),(()=>{let e=document.querySelector(".navbar-sticky");if(null==e)return;let t=e.classList,n=e.offsetHeight;t.contains("position-absolute")?window.addEventListener("scroll",(t=>{t.currentTarget.pageYOffset>500?e.classList.add("navbar-stuck"):e.classList.remove("navbar-stuck")})):window.addEventListener("scroll",(t=>{t.currentTarget.pageYOffset>500?(document.body.style.paddingTop=n+"px",e.classList.add("navbar-stuck")):(document.body.style.paddingTop="",e.classList.remove("navbar-stuck"))}))})(),new SmoothScroll("[data-scroll]",{speed:800,speedAsDuration:!0,offset:(e,t)=>t.dataset.scrollOffset||40,header:"[data-scroll-header]",updateURL:!1}),(()=>{const e=document.querySelector(".btn-scroll-top");if(null==e)return;let t=parseInt(600,10);window.addEventListener("scroll",(n=>{n.currentTarget.pageYOffset>t?e.classList.add("show"):e.classList.remove("show")}))})(),(()=>{let e=document.querySelectorAll(".password-toggle");for(let t=0;t{"checkbox"===e.target.type&&(e.target.checked?n.type="text":n.type="password")}),!1)}})(),null!==document.querySelector(".rellax")&&new Rellax(".rellax",{horizontal:!0}),(()=>{const e=document.querySelectorAll(".parallax");for(let t=0;t{for(let n=0;n{let n,i;null!=t.dataset.swiperOptions&&(n=JSON.parse(t.dataset.swiperOptions)),n.pager&&(i={pagination:{el:".pagination .list-unstyled",clickable:!0,bulletActiveClass:"active",bulletClass:"page-item",renderBullet:function(e,t){return'
  • '+(e+1)+"
  • "}}});const s={...n,...i},o=new Swiper(t,s);n.tabs&&o.on("activeIndexChange",(e=>{let t=document.querySelector(e.slides[e.activeIndex].dataset.swiperTab);document.querySelector(e.slides[e.previousIndex].dataset.swiperTab).classList.remove("active"),t.classList.add("active")}))})),(()=>{const e=document.querySelectorAll(".gallery");if(e.length)for(let t=0;t{let e=document.querySelectorAll(".range-slider");for(let t=0;t{let n=e[t];n=n.replace(/\D/g,""),t?s&&(s.value=Math.round(n)):i&&(i.value=Math.round(n))})),i&&i.addEventListener("change",(function(){n.noUiSlider.set([this.value,null])})),s&&s.addEventListener("change",(function(){n.noUiSlider.set([null,this.value])}))}})(),window.addEventListener("load",(()=>{const e=document.getElementsByClassName("needs-validation");Array.prototype.filter.call(e,(e=>{e.addEventListener("submit",(t=>{!1===e.checkValidity()&&(t.preventDefault(),t.stopPropagation()),e.classList.add("was-validated")}),!1)}))}),!1),(()=>{const e=document.querySelectorAll("[data-format]");if(0!==e.length)for(let t=0;t{s.className="credit-card-icon "+e}}):new Cleave(i,n)}})(),[].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]')).map((e=>new bootstrap.Tooltip(e,{trigger:"hover"}))),[].slice.call(document.querySelectorAll('[data-bs-toggle="popover"]')).map((e=>new bootstrap.Popover(e))),[].slice.call(document.querySelectorAll(".toast")).map((e=>new bootstrap.Toast(e))),(()=>{let e=document.querySelectorAll('[data-bs-toggle="video"]');if(e.length)for(let t=0;t{let e=document.querySelectorAll(".price-switch-wrapper");if(!(e.length<=0))for(let t=0;t{let t=e.currentTarget.querySelector('input[type="checkbox"]'),n=e.currentTarget.closest(".price-switch-wrapper").querySelectorAll("[data-monthly-price]"),i=e.currentTarget.closest(".price-switch-wrapper").querySelectorAll("[data-annual-price]");for(let e=0;e{let e,t=document.querySelectorAll(".masonry-grid");if(null!==t)for(let n=0;n{e.layout()}));let i=t[n].closest(".masonry-filterable");if(null===i)return;let s=i.querySelectorAll(".masonry-filters [data-group]");for(let t=0;t{const e=document.querySelectorAll(".subscription-form");if(null===e)return;for(let n=0;n{t.innerHTML="Sending...";let o=e.action.replace("/post?","/post-json?"),r="&"+n.name+"="+encodeURIComponent(n.value),a=document.createElement("script");a.src=o+"&c=callback"+r,document.body.appendChild(a);let l="callback";window[l]=e=>{delete window[l],document.body.removeChild(a),t.innerHTML=i,"success"==e.result?(n.classList.remove("is-invalid"),n.classList.add("is-valid"),s.classList.remove("status-error"),s.classList.add("status-success"),s.innerHTML=e.msg,setTimeout((()=>{n.classList.remove("is-valid"),s.innerHTML="",s.classList.remove("status-success")}),6e3)):(n.classList.remove("is-valid"),n.classList.add("is-invalid"),s.classList.remove("status-success"),s.classList.add("status-error"),s.innerHTML=e.msg.substring(4),setTimeout((()=>{n.classList.remove("is-invalid"),s.innerHTML="",s.classList.remove("status-error")}),6e3))}}})(),document.querySelectorAll(".animation-on-hover").forEach((e=>{e.addEventListener("mouseover",(()=>{e.querySelectorAll("lottie-player").forEach((e=>{e.setDirection(1),e.play()}))})),e.addEventListener("mouseleave",(()=>{e.querySelectorAll("lottie-player").forEach((e=>{e.setDirection(-1),e.play()}))}))})),(()=>{const e=document.querySelectorAll(".audio-player");if(0!==e.length)for(let t=0;t{"play"===c?(e.currentTarget.classList.add("ap-pause"),i.play(),requestAnimationFrame(g),c="pause"):(e.currentTarget.classList.remove("ap-pause"),i.pause(),cancelAnimationFrame(u),c="play")}));const d=e=>{e===o?n.style.setProperty("--seek-before-width",e.value/e.max*100+"%"):n.style.setProperty("--volume-before-width",e.value/e.max*100+"%")};o.addEventListener("input",(e=>{d(e.target)})),r.addEventListener("input",(e=>{d(e.target)}));const h=e=>{const t=Math.floor(e/60),n=Math.floor(e%60);return`${t}:${n<10?`0${n}`:`${n}`}`},f=()=>{a.textContent=h(i.duration)},p=()=>{o.max=Math.floor(i.duration)},m=()=>{if(i.buffered.length>0){const e=Math.floor(i.buffered.end(i.buffered.length-1));n.style.setProperty("--buffered-width",e/o.max*100+"%")}},g=()=>{o.value=Math.floor(i.currentTime),l.textContent=h(o.value),n.style.setProperty("--seek-before-width",o.value/o.max*100+"%"),u=requestAnimationFrame(g)};i.readyState>0?(f(),p(),m()):i.addEventListener("loadedmetadata",(()=>{f(),p(),m()})),i.addEventListener("progress",m),o.addEventListener("input",(()=>{l.textContent=h(o.value),i.paused||cancelAnimationFrame(u)})),o.addEventListener("change",(()=>{i.currentTime=o.value,i.paused||requestAnimationFrame(g)})),r.addEventListener("input",(e=>{const t=e.target.value;i.volume=t/100}))}})()}(); -//# sourceMappingURL=theme.min.js.map \ No newline at end of file diff --git a/static/assets/vue-dark.png b/static/assets/vue-dark.png deleted file mode 100644 index 8280f53cf5f1f54dab12ef977fe3eee3c395df95..0000000000000000000000000000000000000000 Binary files a/static/assets/vue-dark.png and /dev/null differ diff --git a/static/assets/vue-light.png b/static/assets/vue-light.png deleted file mode 100644 index 66746dad31556a7e51e32f4ab68636a7faeb32af..0000000000000000000000000000000000000000 Binary files a/static/assets/vue-light.png and /dev/null differ diff --git a/static/css/styles.css b/static/css/styles.css deleted file mode 100644 index aea4ad76c3093c2a1c49be8dcac539af831cfa88..0000000000000000000000000000000000000000 --- a/static/css/styles.css +++ /dev/null @@ -1,39 +0,0 @@ -.bg-primary { - background-color: #2E8B57 !important; - ; -} - -:root { - --bs-primary-rgb: #2E8B57 !important; - /* Màu nguyên thủy */ - --custom-primary-rgb: #2E8B57 !important; -} - -/* Giữ nguyên màu khi đổi Light/Dark Mode */ -[data-bs-theme="light"], -[data-bs-theme="dark"] { - --bs-primary-rgb: var(--custom-primary-rgb) !important; -} - -@keyframes rotate { - from { - transform: rotate(0deg); - } - - to { - transform: rotate(360deg); - } -} - -.fa-gear1 { - animation: rotate 2s linear infinite; -} - -.ctext-content { - text-align: left; - /* Căn lề trái */ -} - -.card-header { - background-color: #f8f9fa !important; -} \ No newline at end of file diff --git a/static/script.js b/static/script.js deleted file mode 100644 index 2359f9e432fc095629fbbbca4b5ac3ba4886d24a..0000000000000000000000000000000000000000 --- a/static/script.js +++ /dev/null @@ -1,506 +0,0 @@ -// Application state -let conversations = []; -let currentConversationId = null; -let messages = []; -let isLoading = false; - -// Translation dictionary -const translations = { - en: { - newConversation: 'New Conversation', - noConversations: 'No conversations yet', - startNewChat: 'Start a new chat to begin', - message: 'message', - messages: 'messages', - analyzing: 'Analyzing...', - legalReferences: 'Legal References', - pageNumber: 'Page', - matchScore: 'Match Score', - relatedQuestions: 'Related Questions', - errorMessage: 'I apologize, but I encountered an error while processing your request. Please try again.', - }, - vi: { - newConversation: 'Hội thoại mới', - noConversations: 'Chưa có hội thoại nào', - startNewChat: 'Bắt đầu một cuộc trò chuyện mới để bắt đầu', - message: 'tin nhắn', - messages: 'tin nhắn', - analyzing: 'Đang phân tích...', - legalReferences: 'Tài liệu pháp lý', - pageNumber: 'Trang', - matchScore: 'Độ khớp', - relatedQuestions: 'Câu hỏi liên quan', - errorMessage: 'Tôi xin lỗi, đã xảy ra lỗi khi xử lý yêu cầu của bạn. Vui lòng thử lại.', - }, -}; - -// Mock suggested questions for initial screen -const suggestedQuestions = { - en: [ - 'What are the essential elements of a valid contract?', - 'How does civil law differ from criminal law?', - 'What protections does intellectual property law provide?', - 'What are the ways a contract can be terminated?', - ], - vi: [ - 'Các yếu tố thiết yếu của một hợp đồng hợp lệ là gì?', - 'Luật dân sự khác với luật hình sự như thế nào?', - 'Luật sở hữu trí tuệ cung cấp những bảo vệ gì?', - 'Hợp đồng có thể được chấm dứt bằng những cách nào?', - ], -}; - -// DOM elements -const sidebar = document.getElementById('sidebar'); -const mobileOverlay = document.getElementById('mobileOverlay'); -const menuBtn = document.getElementById('menuBtn'); -const closeSidebarBtn = document.getElementById('closeSidebarBtn'); -const newChatBtn = document.getElementById('newChatBtn'); -const conversationsList = document.getElementById('conversationsList'); -const messagesContainer = document.getElementById('messagesContainer'); -const messages_div = document.getElementById('messages'); -const welcomeSection = document.getElementById('welcomeSection'); -const suggestedQuestionsElement = document.getElementById('suggestedQuestions'); -const inputForm = document.getElementById('inputForm'); -const messageInput = document.getElementById('messageInput'); -const sendBtn = document.getElementById('sendBtn'); -const themeToggle = document.getElementById('themeToggle'); -const languageSelect = document.getElementById('languageSelect'); - -// Theme management -function initializeTheme() { - const savedTheme = localStorage.getItem('theme') || 'light'; - document.documentElement.setAttribute('data-theme', savedTheme); - updateThemeIcon(savedTheme); -} - -function toggleTheme() { - const currentTheme = document.documentElement.getAttribute('data-theme'); - const newTheme = currentTheme === 'dark' ? 'light' : 'dark'; - document.documentElement.setAttribute('data-theme', newTheme); - localStorage.setItem('theme', newTheme); - updateThemeIcon(newTheme); -} - -function updateThemeIcon(theme) { - const icon = themeToggle.querySelector('i'); - icon.className = theme === 'dark' ? 'fas fa-sun' : 'fas fa-moon'; -} - -// Sidebar management -function openSidebar() { - sidebar.classList.add('open'); - mobileOverlay.classList.add('show'); - document.body.style.overflow = 'hidden'; -} - -function closeSidebar() { - sidebar.classList.remove('open'); - mobileOverlay.classList.remove('show'); - document.body.style.overflow = ''; -} - -// Conversation management -function createNewConversation() { - const newConversation = { - id: Date.now().toString(), - title: translate('newConversation'), - timestamp: new Date().toISOString(), - messageCount: 0, - }; - - conversations.unshift(newConversation); - currentConversationId = newConversation.id; - messages = []; - - renderConversations(); - renderMessages(); - closeSidebar(); -} - -function selectConversation(conversationId) { - currentConversationId = conversationId; - messages = []; - renderMessages(); - closeSidebar(); -} - -function deleteConversation(conversationId) { - conversations = conversations.filter(conv => conv.id !== conversationId); - if (currentConversationId === conversationId) { - currentConversationId = null; - messages = []; - renderMessages(); - } - renderConversations(); -} - -function updateConversationTitle(conversationId, newTitle, messageCount) { - const conversation = conversations.find(conv => conv.id === conversationId); - if (conversation) { - if (conversation.messageCount === 0) { - conversation.title = newTitle.slice(0, 50) + (newTitle.length > 50 ? '...' : ''); - } - conversation.messageCount = messageCount; - conversation.timestamp = new Date().toISOString(); - renderConversations(); - } -} - -function renderConversations() { - if (conversations.length === 0) { - conversationsList.innerHTML = ` -
    - -

    ${translate('noConversations')}

    - ${translate('startNewChat')} -
    - `; - return; - } - - conversationsList.innerHTML = conversations.map(conversation => ` -
    -
    ${conversation.title}
    -
    - ${conversation.messageCount} ${conversation.messageCount === 1 ? translate('message') : translate('messages')} - - ${formatTimestamp(conversation.timestamp)} -
    - -
    - `).join(''); - - conversationsList.querySelectorAll('.conversation-item').forEach(item => { - item.addEventListener('click', (e) => { - if (!e.target.closest('.delete-conversation')) { - selectConversation(item.dataset.conversationId); - } - }); - }); - - conversationsList.querySelectorAll('.delete-conversation').forEach(btn => { - btn.addEventListener('click', (e) => { - e.stopPropagation(); - deleteConversation(btn.dataset.conversationId); - }); - }); -} - -// Message management -function addMessage(type, content, sources = null, relatedQuestions = null, isTyping = false) { - const message = { - id: Date.now().toString() + (isTyping ? '-typing' : ''), - type, - content, - timestamp: new Date().toISOString(), - sources, - relatedQuestions, - isTyping, - }; - - if (isTyping) { - messages = messages.filter(msg => !msg.isTyping); - } - - messages.push(message); - renderMessages(); - - return message.id; -} - -function removeMessage(messageId) { - messages = messages.filter(msg => msg.id !== messageId); - renderMessages(); -} - -function renderMessages() { - const hasMessages = messages.length > 0; - const hasConversation = currentConversationId !== null; - - welcomeSection.style.display = hasMessages ? 'none' : 'block'; - - if (!hasMessages && !hasConversation) { - suggestedQuestionsElement.style.display = 'block'; - const currentLang = getCurrentLanguage(); - suggestedQuestionsElement.innerHTML = ` -

    ${translate('relatedQuestions')}

    -
    - ${suggestedQuestions[currentLang].map(question => ` - - `).join('')} -
    - `; - } else { - suggestedQuestionsElement.style.display = 'none'; - } - - if (!hasMessages) { - messages_div.innerHTML = ''; - return; - } - - messages_div.innerHTML = messages.map(message => { - if (message.isTyping) { - return ` -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    - ${translate('analyzing')} -
    -
    -
    -
    -
    - `; - } - - const sourcesHtml = message.sources ? ` -
    -
    ${translate('legalReferences')}
    - ${message.sources.map(source => ` -
    -
    -
    - -
    -
    ${source.documentName}
    -
    "${source.excerpt}"
    - ${source.pageNumber ? `
    ${translate('pageNumber')} ${source.pageNumber}
    ` : ''} -
    -
    -
    -
    ${Math.round(source.relevanceScore * 100)}% ${translate('matchScore')}
    - -
    -
    -
    - `).join('')} -
    - ` : ''; - - const relatedQuestionsHtml = message.relatedQuestions ? ` - - ` : ''; - - return ` -
    -
    -
    -
    - -
    -
    -
    ${message.content}
    - ${sourcesHtml} - ${relatedQuestionsHtml} -
    - - ${formatMessageTime(message.timestamp)} -
    -
    -
    -
    -
    - `; - }).join(''); - - messagesContainer.scrollTop = messagesContainer.scrollHeight; -} - -// Message sending -async function sendMessage(content) { - if (!content.trim() || isLoading) return; - - if (!currentConversationId) { - createNewConversation(); - } - - addMessage('user', content); - - const messageCount = messages.filter(msg => !msg.isTyping).length; - updateConversationTitle(currentConversationId, content, messageCount); - - isLoading = true; - updateSendButton(); - - const typingId = addMessage('assistant', '', null, null, true); - - try { - const { response, sources, related_questions } = await generateResponse(content); - - removeMessage(typingId); - - addMessage('assistant', response, sources, related_questions); - - } catch (error) { - removeMessage(typingId); - addMessage('assistant', translate('errorMessage')); - } finally { - isLoading = false; - updateSendButton(); - } -} - -async function generateResponse(query) { - try { - const response = await fetch('http://127.0.0.1:5000/api/query', { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - }, - body: JSON.stringify({ question: query }), - }); - - if (!response.ok) { - throw new Error(`HTTP error! status: ${response.status}`); - } - - const data = await response.json(); - - const formattedResponse = { - response: data.final_response, - sources: data.top_banan_documents.map(doc => ({ - documentId: doc.file, - documentName: doc.file, - excerpt: doc.text.slice(0, 150) + '...', - relevanceScore: doc.distance, - pageNumber: doc.pageNumber || null, - })), - related_questions: data.related_questions.map(q => q.question), - }; - - return formattedResponse; - } catch (error) { - console.error('Error fetching response from API:', error); - throw error; - } -} - -// Utility functions -function formatTimestamp(timestamp) { - const date = new Date(timestamp); - const now = new Date(); - const diffInHours = (now.getTime() - date.getTime()) / (1000 * 60 * 60); - - if (diffInHours < 24) { - return date.toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' }); - } else if (diffInHours < 168) { - return date.toLocaleDateString([], { weekday: 'short' }); - } else { - return date.toLocaleDateString([], { month: 'short', day: 'numeric' }); - } -} - -function formatMessageTime(timestamp) { - return new Date(timestamp).toLocaleTimeString([], { - hour: '2-digit', - minute: '2-digit' - }); -} - -function updateSendButton() { - const hasText = messageInput.value.trim().length > 0; - sendBtn.disabled = !hasText || isLoading; -} - -function adjustTextareaHeight() { - messageInput.style.height = 'auto'; - messageInput.style.height = Math.min(messageInput.scrollHeight, 120) + 'px'; -} - -function getCurrentLanguage() { - return languageSelect.value || 'vi'; -} - -function setLanguage(lang) { - languageSelect.value = lang; -} - -function translate(key) { - const currentLang = getCurrentLanguage(); - return translations[currentLang][key] || translations.en[key] || key; -} - -// Event listeners -document.addEventListener('DOMContentLoaded', () => { - initializeTheme(); - renderConversations(); - renderMessages(); - updateSendButton(); -}); - -menuBtn.addEventListener('click', openSidebar); -closeSidebarBtn.addEventListener('click', closeSidebar); -mobileOverlay.addEventListener('click', closeSidebar); -newChatBtn.addEventListener('click', createNewConversation); - -themeToggle.addEventListener('click', toggleTheme); - -languageSelect.addEventListener('change', (e) => { - setLanguage(e.target.value); - renderConversations(); - renderMessages(); -}); - -messageInput.addEventListener('input', () => { - updateSendButton(); - adjustTextareaHeight(); -}); - -messageInput.addEventListener('keydown', (e) => { - if (e.key === 'Enter' && !e.shiftKey) { - e.preventDefault(); - inputForm.dispatchEvent(new Event('submit')); - } -}); - -inputForm.addEventListener('submit', (e) => { - e.preventDefault(); - const content = messageInput.value.trim(); - if (content) { - sendMessage(content); - messageInput.value = ''; - messageInput.style.height = 'auto'; - updateSendButton(); - } -}); - -document.addEventListener('click', (e) => { - if (e.target.closest('.question-btn')) { - const question = e.target.closest('.question-btn').dataset.question; - sendMessage(question); - } -}); - -window.addEventListener('resize', () => { - if (window.innerWidth >= 1024) { - closeSidebar(); - } -}); \ No newline at end of file diff --git a/static/style.css b/static/style.css deleted file mode 100644 index 528d5e5823be99493492e8da8ac3f17b15c0fa37..0000000000000000000000000000000000000000 --- a/static/style.css +++ /dev/null @@ -1,1036 +0,0 @@ -/* CSS Variables for Theming */ -:root { - --bg-primary: #f9fafb; - --bg-secondary: #ffffff; - --bg-tertiary: #f3f4f6; - --text-primary: #111827; - --text-secondary: #6b7280; - --text-tertiary: #ffffff; - --border-color: #e5e7eb; - --accent-color: #3b82f6; - --accent-colors:#ffffff; - --accent-hover: #2563eb; - --success-color: #10b981; - --warning-color: #f59e0b; - --error-color: #ef4444; - --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05); - --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1); - --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1); - --gradient-primary: linear-gradient(135deg, #3b82f6, #8b5cf6); - --gradient-secondary: linear-gradient(135deg, #06b6d4, #3b82f6); - --border-radius-sm: 0.375rem; - --border-radius-md: 0.5rem; - --border-radius-lg: 0.75rem; - --transition-ease: all 0.2s ease-in-out; -} - -[data-theme="dark"] { - --bg-primary: #0f172a; - --bg-secondary: #1e293b; - --bg-tertiary: #334155; - --text-primary: #f8fafc; - --text-secondary: #cbd5e1; - --text-tertiary: #ffffff; - --border-color: #475569; - --accent-color: #3b82f6; - --accent-hover: #60a5fa; - --success-color: #22c55e; - --warning-color: #fbbf24; - --error-color: #f87171; -} - - .message.user .message-text { - color: var(--text-tertiary); - } - - .fa-file-text { - color: #3b82f6 !important; - } -/* Reset and Base Styles */ -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -body { - font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; - background-color: var(--bg-primary); - color: var(--text-primary); - line-height: 1.6; - font-size: 16px; - transition: var(--transition-ease); -} - -.app { - display: flex; - min-height: 100vh; - overflow: hidden; -} - -/* Sidebar Styles */ -.sidebar { - width: 320px; - background-color: var(--bg-secondary); - border-right: 1px solid var(--border-color); - display: flex; - flex-direction: column; - transition: transform 0.3s ease; - box-shadow: var(--shadow-sm); -} - -.sidebar.open { - transform: translateX(0); -} - -.sidebar-header { - padding: 1.5rem; - border-bottom: 1px solid var(--border-color); -} - -.sidebar-title-row { - display: flex; - justify-content: space-between; - align-items: center; - margin-bottom: 1rem; -} - -.sidebar-title-row h2 { - font-size: 1.25rem; - font-weight: 600; - color: var(--text-primary); -} - -.close-sidebar-btn { - display: none; - background: none; - border: none; - color: var(--text-secondary); - cursor: pointer; - padding: 0.5rem; - border-radius: var(--border-radius-sm); - transition: var(--transition-ease); -} - -.close-sidebar-btn:hover { - background-color: var(--bg-tertiary); -} - -.new-chat-btn { - width: 100%; - display: flex; - align-items: center; - justify-content: center; - gap: 0.5rem; - padding: 0.75rem 1rem; - background: var(--gradient-primary); - color: white; - border: none; - border-radius: var(--border-radius-md); - cursor: pointer; - font-weight: 500; - font-size: 0.875rem; - transition: var(--transition-ease); -} - - -.btn-upgrade { - display: flex; - align-items: center; - justify-content: center; - gap: 0.5rem; - padding: 0.75rem 1rem; - background: var(--gradient-primary); - color: white; - border: none; - border-radius: var(--border-radius-md); - cursor: pointer; - font-weight: 500; - font-size: 0.875rem; - transition: var(--transition-ease); -} - -.new-chat-btn:hover { - opacity: 0.9; - transform: translateY(-2px); -} - -.conversations-list { - flex: 1; - max-height: 67vh; - overflow-y: auto; - padding: 1rem; - scroll-behavior: smooth; -} - -.empty-conversations { - text-align: center; - padding: 2rem 0; - color: var(--text-secondary); -} - -.empty-conversations i { - font-size: 3rem; - color: var(--text-tertiary); - margin-bottom: 1rem; -} - -.conversation-item { - padding: 0.75rem; - border-radius: var(--border-radius-md); - cursor: pointer; - margin-bottom: 0.5rem; - border: 1px solid transparent; - transition: var(--transition-ease); - position: relative; -} - -.conversation-item:hover { - background-color: var(--bg-tertiary); - transform: translateX(4px); -} - -.conversation-item.active { - background-color: var(--bg-tertiary); - border-color: var(--accent-color); -} - -.conversation-title { - font-weight: 500; - font-size: 0.875rem; - color: var(--text-primary); - margin-bottom: 0.25rem; - white-space: nowrap; - max-width: 250px; - overflow: hidden; - text-overflow: ellipsis; -} - -.conversation-meta { - display: flex; - align-items: center; - gap: 0.5rem; - font-size: 0.75rem; - color: var(--text-secondary); -} - -.delete-conversation { - position: absolute; - top: 0.5rem; - right: 0.5rem; - background: none; - border: none; - color: var(--error-color); - cursor: pointer; - padding: 0.25rem; - border-radius: var(--border-radius-sm); - opacity: 0; - transition: var(--transition-ease); -} - -.conversation-item:hover .delete-conversation { - opacity: 1; -} - -.delete-conversation:hover { - background-color: var(--bg-tertiary); -} - -.sidebar-footer { - padding: 1rem; - border-top: 1px solid var(--border-color); - background-color: var(--bg-secondary); - height: auto; -} - -.controls { - display: flex; - align-items: center; - gap: 0.5rem; - margin-bottom: 1rem; -} - -.control-btn { - font-size: small; - background: none; - border: 1px solid var(--border-color); - color: var(--text-secondary); - cursor: pointer; - padding: 0.5rem; - width: 35px; - border-radius: var(--border-radius-sm); - transition: var(--transition-ease); -} - -.control-btn-off { - background: none; - border: none; - color: var(--text-secondary); - cursor: pointer; - padding: 0.5rem; - border-radius: var(--border-radius-sm); - transition: var(--transition-ease); -} - -.control-btn:hover, -.control-btn-off:hover { - background-color: var(--bg-tertiary); - color: var(--text-primary); -} - -.language-select { - flex: 1; - background-color: var(--bg-secondary); - border: 1px solid var(--border-color); - color: var(--text-primary); - padding: 0.5rem; - border-radius: var(--border-radius-sm); - font-size: 0.875rem; - transition: var(--transition-ease); -} - -.footer-text { - text-align: center; - font-size: 0.75rem; - color: var(--text-secondary); -} - -.footer-text-image { - text-align: left; - font-size: 0.75rem; - color: var(--text-secondary); -} - -/* Chat Area Styles */ -.chat-area { - flex: 1; - display: flex; - flex-direction: column; - min-width: 0; -} - -.chat-header { - background-color: var(--bg-secondary); - border-bottom: 1px solid var(--border-color); - padding: 1rem; - display: flex; - align-items: center; - gap: 0.75rem; -} - -.menu-btn { - display: none; - background: none; - border: none; - color: var(--text-secondary); - cursor: pointer; - padding: 0.5rem; - border-radius: var(--border-radius-sm); - transition: var(--transition-ease); -} - -.menu-btn:hover { - background-color: var(--bg-tertiary); -} - -.header-info { - display: flex; - justify-content: space-between; - align-items: center; - flex: 1; - min-width: 0; -} - -.bot-avatar { - width: 2.5rem; - height: 2.5rem; - background: var(--gradient-primary); - border-radius: var(--border-radius-md); - display: flex; - align-items: center; - justify-content: center; - color: white; - font-size: 1.25rem; -} - -.header-text h1 { - font-size: 1.25rem; - font-weight: 600; - color: var(--text-primary); -} - -.header-text p { - font-size: 0.875rem; - color: var(--text-secondary); - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} - -.user-info { - margin-left: auto; - display: flex; - align-items: center; - gap: 0.5rem; - color: var(--text-primary); -} - -.user-info span { - font-size: 0.875rem; - font-weight: 500; - color: var(--text-primary); -} - -.user-info .control-btn-off { - color: var(--text-secondary); - font-size: small; -} - -.user-info .control-btn-off:hover { - color: var(--text-primary); -} - -.messages-container { - flex: 1; - max-height: 77vh; - overflow-y: auto; - padding: 1rem; - background-color: var(--bg-primary); - scroll-behavior: smooth; -} - -.messages-container::-webkit-scrollbar { - width: 6px; -} - -.messages-container::-webkit-scrollbar-track { - background: var(--bg-tertiary); -} - -.messages-container::-webkit-scrollbar-thumb { - background: var(--text-tertiary); - border-radius: 3px; -} - -.messages-container::-webkit-scrollbar-thumb:hover { - background: var(--text-secondary); -} - -.welcome-section { - max-width: 48rem; - margin: 0 auto; - text-align: center; -} - -.welcome-icon { - width: 4rem; - height: 4rem; - background: var(--gradient-primary); - border-radius: var(--border-radius-lg); - display: flex; - align-items: center; - justify-content: center; - margin: 0 auto 1.5rem; - color: white; - font-size: 2rem; -} - -.welcome-section h2 { - font-size: 1.5rem; - font-weight: 700; - color: var(--text-primary); - margin-bottom: 1rem; -} - -.welcome-section>p { - color: var(--text-secondary); - margin-bottom: 2rem; - max-width: 32rem; - margin-left: auto; - margin-right: auto; -} - -.suggested-questions { - max-width: 48rem; - margin: 0 auto; -} - -.suggested-questions h3 { - font-size: 1.125rem; - font-weight: 600; - color: var(--text-primary); - margin-bottom: 1rem; -} - -.questions-grid { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); - gap: 1rem; -} - -.question-btn { - background-color: var(--bg-secondary); - border: 1px solid var(--border-color); - border-radius: var(--border-radius-md); - padding: 1rem; - text-align: left; - cursor: pointer; - transition: var(--transition-ease); - display: flex; - align-items: flex-start; - gap: 0.75rem; - box-shadow: var(--shadow-sm); -} - -.question-btn:hover { - border-color: var(--accent-color); - background-color: var(--bg-tertiary); - transform: translateY(-2px); -} - -.question-btn i { - color: var(--accent-color); - margin-top: 0.125rem; - flex-shrink: 0; -} - -.question-btn span { - font-size: 0.875rem; - color: var(--text-primary); - line-height: 1.4; -} - -.messages { - max-width: 48rem; - margin: 0 auto; - padding: 1rem 0; -} - -.message { - display: flex; - margin-bottom: 1.5rem; -} - -.message.user { - justify-content: flex-end; -} - -.message.assistant { - justify-content: flex-start; -} - -.message-content { - max-width: 48rem; - width: 100%; -} - -.message.user .message-content { - margin-left: 3rem; -} - -.message.assistant .message-content { - margin-right: 3rem; -} - -.message-wrapper { - display: flex; - align-items: flex-start; - gap: 0.75rem; -} - -.message.user .message-wrapper { - flex-direction: row-reverse; -} - -.message-avatar { - width: 2rem; - height: 2rem; - border-radius: var(--border-radius-md); - display: flex; - align-items: center; - justify-content: center; - flex-shrink: 0; - color: white; - font-size: 0.875rem; -} - -.message.user .message-avatar { - background-color: var(--accent-color); -} - -.message.assistant .message-avatar { - background: var(--gradient-primary); -} - -.message-bubble { - border-radius: var(--border-radius-lg); - padding: 1rem; - position: relative; - box-shadow: var(--shadow-sm); -} - -.message.user .message-bubble { - background-color: var(--accent-color); - margin-left: auto; -} - -.message.assistant .message-bubble { - background-color: var(--bg-secondary); - border: 1px solid var(--border-color); -} - -.message-text { - font-size: 0.875rem; - line-height: 1.5; - white-space: pre-wrap; - color: var(--text-primary); -} -.typing-indicator { - display: flex; - align-items: center; - gap: 0.5rem; - padding: 0.75rem 1rem; /* Đồng bộ với padding của .message-bubble */ -} - -.typing-dots { - display: flex; - gap: 0.25rem; -} - -.typing-dot { - width: 0.5rem; - height: 0.5rem; - background-color: var(--text-secondary); /* Sử dụng màu accent để nổi bật hơn */ - border-radius: 50%; - animation: typing 1.4s infinite ease-in-out; -} - -.typing-dot:nth-child(2) { - animation-delay: 0.2s; -} - -.typing-dot:nth-child(3) { - animation-delay: 0.4s; -} - -@keyframes typing { - 0%, 60%, 100% { - transform: translateY(0); - } - 30% { - transform: translateY(-10px); - } -} - -.typing-indicator span { - color: var(--text-primary); /* Sử dụng text-primary để tương phản tốt hơn */ - font-size: 0.875rem; - font-weight: 500; -} - -.message-sources { - margin-top: 0.75rem; -} - -.sources-title { - font-size: 0.75rem; - font-weight: 500; - color: var(--text-secondary); - text-transform: uppercase; - letter-spacing: 0.05em; - margin-bottom: 0.5rem; -} - -.source-item { - background-color: var(--bg-tertiary); - border: 1px solid var(--border-color); - border-radius: var(--border-radius-md); - padding: 0.75rem; - margin-bottom: 0.5rem; - cursor: pointer; - transition: var(--transition-ease); -} - -.source-item:hover { - background-color: var(--bg-secondary); - transform: translateY(-2px); -} - -.source-header { - display: flex; - align-items: flex-start; - justify-content: space-between; - gap: 0.5rem; -} - -.source-info { - display: flex; - align-items: flex-start; - gap: 0.5rem; - flex: 1; - min-width: 0; -} - -.source-info i { - color: var(--text-tertiary); - margin-top: 0.125rem; - flex-shrink: 0; -} - -.source-details { - min-width: 0; - flex: 1; -} - -.source-name { - font-size: 0.875rem; - font-weight: 500; - color: var(--text-primary); - margin-bottom: 0.25rem; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} - -.source-excerpt { - font-size: 0.75rem; - color: var(--text-secondary); - line-height: 1.4; - display: -webkit-box; - -webkit-line-clamp: 2; - -webkit-box-orient: vertical; - overflow: hidden; -} - -.source-score { - font-size: 0.75rem; - color: var(--text-secondary); -} - -.message-timestamp { - display: flex; - align-items: center; - gap: 0.25rem; - margin-top: 0.5rem; - font-size: 0.75rem; - color: var(--text-secondary); -} - -.message-timestamp i { - font-size: 0.625rem; -} - -.input-area { - background-color: var(--bg-secondary); - border-top: 1px solid var(--border-color); - padding: 1.5rem; -} - -.input-form { - max-width: 48rem; - margin: 0 auto; -} - -.input-wrapper { - display: flex; - gap: 1rem; - align-items: flex-end; -} - -#messageInput { - flex: 1; - background-color: var(--bg-secondary); - border: 1px solid var(--border-color); - border-radius: var(--border-radius-lg); - padding: 0.75rem 1rem; - font-size: 0.875rem; - line-height: 1.5; - resize: none; - min-height: 2.75rem; - max-height: 7.5rem; - color: var(--text-primary); - transition: var(--transition-ease); -} - -#messageInput:focus { - outline: none; - border-color: var(--accent-color); - box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1); -} - -#messageInput::placeholder { - color: var(--text-tertiary); -} - -#sendBtn { - background-color: var(--accent-color); - color: white; - border: none; - border-radius: var(--border-radius-lg); - padding: 0.75rem 1.5rem; - cursor: pointer; - transition: var(--transition-ease); - flex-shrink: 0; - height: 2.75rem; - display: flex; - align-items: center; - justify-content: center; -} - -#sendBtn:hover:not(:disabled) { - background-color: var(--accent-hover); - transform: translateY(-2px); -} - -#sendBtn:disabled { - opacity: 0.5; - cursor: not-allowed; -} - -.input-hint { - text-align: center; - font-size: 0.75rem; - color: var(--text-secondary); - margin-top: 0.5rem; -} - -.mobile-overlay { - display: none; - position: fixed; - inset: 0; - background-color: rgba(0, 0, 0, 0.5); - z-index: 40; -} - -.related-questions { - margin-top: 1rem; -} - -.related-questions .questions-grid { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); - gap: 1rem; -} - -.related-questions .question-btn { - background-color: var(--bg-secondary); - border: 1px solid var(--border-color); - border-radius: var(--border-radius-md); - padding: 1rem; - text-align: left; - cursor: pointer; - transition: var(--transition-ease); - display: flex; - align-items: flex-start; - gap: 0.75rem; - box-shadow: var(--shadow-sm); -} - -.related-questions .question-btn:hover { - border-color: var(--accent-color); - background-color: var(--bg-tertiary); - transform: translateY(-2px); -} - - -.message .message.assistant .message-text{ - color: var(--text-tertiary); -} -.message-timestamp{ - color: var(--text-tertiary); -} - -.related-questions .question-btn i { - color: var(--accent-color); - margin-top: 0.125rem; - flex-shrink: 0; -} - -.related-questions .question-btn span { - font-size: 0.875rem; - color: var(--text-primary); - line-height: 1.4; -} - -/* Responsive Design */ -@media (max-width: 1024px) { - .sidebar { - position: fixed; - top: 0; - left: 0; - height: 100vh; - z-index: 50; - transform: translateX(-100%); - } - - .sidebar.open { - transform: translateX(0); - } - - .mobile-overlay.show { - display: block; - } - - .close-sidebar-btn { - display: block; - } - - .menu-btn { - display: block; - } - - .chat-area { - width: 100%; - } - - .questions-grid { - grid-template-columns: 1fr; - } - - .message.user .message-content { - margin-left: 1rem; - } - - - .message.assistant .message-content { - margin-right: 1rem; - } -} - -@media (max-width: 640px) { - .sidebar { - width: 100vw; - } - - .header-info { - flex-wrap: wrap; - gap: 0.5rem; - } - - .user-info { - margin-left: 0; - gap: 0.5rem; - flex-wrap: nowrap; - } - - .bot-avatar { - width: 2rem; - height: 2rem; - font-size: 1rem; - } - - .header-text h1 { - font-size: 1rem; - } - - .header-text p { - font-size: 0.75rem; - } - - .welcome-section { - padding: 1rem; - } - - .welcome-section h2 { - font-size: 1.25rem; - } - - .messages { - padding: 0.5rem 0; - } - - .message-content { - max-width: 100%; - } - - .message.user .message-content, - .message.assistant .message-content { - margin-left: 0.5rem; - margin-right: 0.5rem; - } - - .message-bubble { - width: 85%; - } - - .input-wrapper { - gap: 0.5rem; - } - - #sendBtn { - padding: 0.75rem; - width: 2.75rem; - } - - .header-text { - display: none; - } - - .conversation-title { - max-width: 325px; - } - - .suggested-questions h3 { - font-size: 1rem; - } -} - -/* Scrollbar Styling */ -::-webkit-scrollbar { - width: 6px; -} - -::-webkit-scrollbar-track { - background: var(--bg-tertiary); -} - -::-webkit-scrollbar-thumb { - background: var(--text-tertiary); - border-radius: 3px; -} - -::-webkit-scrollbar-thumb:hover { - background: var(--text-secondary); -} - -/* Animation Classes */ -.fade-in { - animation: fadeIn 0.3s ease-in-out; -} - -@keyframes fadeIn { - from { - opacity: 0; - transform: translateY(10px); - } - to { - opacity: 1; - transform: translateY(0); - } -} - -.user-info { - display: flex; - align-items: center; - gap: 10px; -} - -#query-count-display { - font-size: 14px; - font-weight: bold; - padding: 5px 10px; - border-radius: 5px; - transition: color 0.3s ease; -} - -#query-count-display.red { - color: red; -} - -#query-count-display.orange { - color: orange; -} - -#query-count-display.blue { - color: #3b82f6; -} \ No newline at end of file diff --git a/static/style_admin.css b/static/style_admin.css deleted file mode 100644 index 8b9c9a50437d32a401c3191862d58d07aa665e68..0000000000000000000000000000000000000000 --- a/static/style_admin.css +++ /dev/null @@ -1,616 +0,0 @@ - @import url('https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap'); - - :root { - /* Màu sắc lấy từ ảnh */ - --sidebar-bg: #1e293b; - --sidebar-text: #adb5bd; - --sidebar-active-bg: #2563eb; - --sidebar-active-border: #4d80e4; - --topbar-bg: #0f172a; - --text-dark: #343a40; - --body-bg-change: #3b4b61; - --text-light: #ffffff; - --body-bg: #f8f9fa; - --card-bg: #ffffff; - --border-color: #dee2e6; - --shadow-light: rgba(0, 0, 0, 0.05); - --table-header-bg: #f1f3f5; - --table-row-hover: #fcfcfc; - --blue-primary: #4d80e4; - --green-unlimited: #28a745; - --yellow-limited: #ffc107; - --red-delete: #dc3545; - --orange-reset: #fd7e14; - --body-bgs: #334155; - } - - * { - margin: 0; - padding: 0; - box-sizing: border-box; - /* Sửa lỗi font-family ở đây */ - font-family: 'ui-sans-serif', 'system-ui', 'sans-serif', "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; - } - - body { - display: flex; - min-height: 100vh; - background-color: var(--body-bg); - color: var(--text-dark); - font-size: 14px; - } - - /* Sidebar */ - .sidebar { - width: 260px; - background-color: var(--sidebar-bg); - color: var(--sidebar-text); - padding: 25px 0 20px; - display: flex; - flex-direction: column; - box-shadow: 2px 0 8px var(--shadow-light); - flex-shrink: 0; - transition: transform 0.3s ease-in-out, width 0.3s ease-in-out; - } - - .sidebar-header { - padding: 0 25px 10px; - font-size: 20px; - font-weight: 700; - color: var(--text-light); - } - - .sidebar-nav ul { - list-style: none; - } - - .sidebar-nav li { - margin-bottom: 2px; - } - - .sidebar-nav a { - display: flex; - align-items: center; - padding: 12px 25px; - color: var(--sidebar-text); - text-decoration: none; - transition: background-color 0.2s ease, color 0.2s ease; - font-size: 15px; - font-weight: 500; - } - - .sidebar-nav a i { - margin-right: 12px; - font-size: 18px; - } - - .sidebar-nav a:hover { - background-color: rgba(255, 255, 255, 0.05); - color: var(--text-light); - } - - .sidebar-nav a.active { - background-color: var(--sidebar-active-bg); - color: var(--text-light); - border-left: 4px solid var(--sidebar-active-border); - padding-left: 21px; - } - - /* Main content */ - .main-content { - flex-grow: 1; - display: flex; - flex-direction: column; - transition: margin-left 0.3s ease-in-out; - } - - /* Top Bar */ - .top-bar { - background-color: var(--topbar-bg); - padding: 15px 30px; - display: flex; - justify-content: flex-end; - align-items: center; - box-shadow: 0 1px 3px var(--shadow-light); - border-bottom: 1px solid var(--border-color); - } - - .top-bar .menu-toggle { - display: none; - background: none; - border: none; - font-size: 20px; - color: var(--text-light); - cursor: pointer; - margin-right: auto; - } - - .top-bar span { - margin-right: 20px; - font-weight: 500; - color: var(--text-light); - font-size: 14px; - } - - .top-bar button { - background-color: var(--body-bgs); - color: var(--text-light); - border: 1px solid var(--body-bgs); - padding: 8px 12px; - border-radius: 6px; - cursor: pointer; - font-size: 14px; - display: flex; - align-items: center; - font-weight: 500; - transition: background-color 0.2s ease; - } - - .top-bar button i { - margin-right: 8px; - } - - .top-bar button:hover { - background-color: var(--body-bg-change); - } - - /* Content Area */ - .content-area { - flex-grow: 1; - padding: 30px; - background-color: var(--body-bg); - } - - .content-header { - display: flex; - justify-content: space-between; - align-items: center; - margin-bottom: 25px; - flex-wrap: wrap; - } - - .content-header h1 { - font-size: 24px; - color: var(--text-dark); - font-weight: 600; - margin-bottom: 0; - } - - .add-new-btn { - background-color: var(--blue-primary); - color: var(--text-light); - border: none; - padding: 10px 18px; - border-radius: 8px; - cursor: pointer; - font-size: 14px; - display: flex; - align-items: center; - font-weight: 500; - transition: background-color 0.2s ease; - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); - } - - .add-new-btn:hover { - background-color: #3b6ed3; - } - - .add-new-btn i { - margin-right: 8px; - font-size: 16px; - } - - .search-bar { - margin-bottom: 25px; - position: relative; - } - - .search-bar input { - width: 100%; - padding: 10px 15px 10px 40px; - border: 1px solid #ced4da; - border-radius: 8px; - font-size: 15px; - outline: none; - transition: border-color 0.2s ease, box-shadow 0.2s ease; - } - - .search-bar input::placeholder { - color: #6c757d; - } - - .search-bar input:focus { - border-color: var(--blue-primary); - box-shadow: 0 0 0 0.2rem rgba(77, 128, 228, 0.25); - } - - .search-bar i { - position: absolute; - left: 15px; - top: 50%; - transform: translateY(-50%); - color: #6c757d; - font-size: 16px; - } - - /* Responsive Table Wrapper */ - .user-table-responsive { - width: 100%; - overflow-x: auto; - -webkit-overflow-scrolling: touch; - } - - /* Table Container */ - .user-table { - background-color: var(--card-bg); - border-radius: 8px; - box-shadow: 0 2px 5px var(--shadow-light); - overflow: hidden; - min-width: 0; - } - - /* Table */ - .user-table table { - width: 100%; - border-collapse: collapse; - table-layout: auto; - } - - /* Table Cells */ - .user-table th, - .user-table td { - text-align: left; - padding: 15px 20px; - border-bottom: 1px solid var(--border-color); - font-size: 14px; - vertical-align: middle; - white-space: nowrap; - } - - /* Specific column widths */ - .user-table th:nth-child(1), - .user-table td:nth-child(1) { - /* ID */ - width: 10%; - } - - .user-table th:nth-child(2), - .user-table td:nth-child(2) { - /* Username */ - width: 20%; - } - - .user-table th:nth-child(3), - .user-table td:nth-child(3) { - /* Email */ - width: 25%; - } - - .user-table th:nth-child(4), - .user-table td:nth-child(4) { - /* Phone */ - width: 15%; - } - - .user-table th:nth-child(5), - .user-table td:nth-child(5) { - /* Account Type */ - width: 15%; - } - - .user-table th:nth-child(6), - .user-table td:nth-child(6) { - /* Query Count */ - width: 15%; - } - - .user-table th:nth-child(7), - .user-table td:nth-child(7) { - /* Actions */ - width: 20%; - } - - .user-table th { - background-color: var(--table-header-bg); - font-weight: 600; - color: var(--text-dark); - text-transform: uppercase; - font-size: 12px; - letter-spacing: 0.5px; - position: sticky; - top: 0; - z-index: 1; - } - - .user-table tbody tr:last-child td { - border-bottom: none; - } - - .user-table tbody tr:hover { - background-color: var(--table-row-hover); - } - - .status-badge { - display: inline-flex; - align-items: center; - justify-content: center; - padding: 6px 10px; - border-radius: 5px; - font-size: 12px; - font-weight: 600; - line-height: 1; - } - - .status-badge.limit { - background-color: var(--yellow-limited); - color: #555; - } - - .status-badge.unlimited { - background-color: var(--green-unlimited); - color: var(--text-light); - } - - .action-buttons { - display: flex; - gap: 8px; - flex-wrap: nowrap; - } - - .action-buttons button { - background: none; - border: 1px solid; - cursor: pointer; - font-size: 14px; - padding: 10px 10px; - border-radius: 5px; - display: flex; - align-items: center; - transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease; - font-weight: 500; - flex-shrink: 0; - } - - .action-buttons button i { - font-size: 13px; - } - - .action-buttons .edit-btn { - color: var(--blue-primary); - border-color: var(--blue-primary); - border-radius: 100%; - - } - - .action-buttons .edit-btn:hover { - background-color: var(--blue-primary); - color: var(--text-light); - border-radius: 100%; - } - - .action-buttons .delete-btn { - color: var(--red-delete); - border-color: var(--red-delete); - border-radius: 100%; - } - - .action-buttons .delete-btn:hover { - background-color: var(--red-delete); - color: var(--text-light); - - } - - .action-buttons .reset-btn { - color: var(--orange-reset); - border-color: var(--orange-reset); - border-radius: 100%; - } - - .action-buttons .reset-btn:hover { - background-color: var(--orange-reset); - color: var(--text-light); - - } - - /* Responsive Styles */ - @media (max-width: 768px) { - body { - flex-direction: column; - } - - .sidebar { - position: fixed; - top: 0; - left: 0; - height: 100%; - z-index: 1000; - transform: translateX(-100%); - box-shadow: 3px 0 8px rgba(0, 0, 0, 0.2); - width: 250px; - } - - .sidebar.active { - transform: translateX(0); - } - - .main-content { - margin-left: 0; - } - - .top-bar { - justify-content: space-between; - padding: 15px 20px; - } - - .top-bar .menu-toggle { - display: block; - } - - .top-bar span { - margin-right: auto; - margin-left: 10px; - } - - .content-area { - padding: 20px; - } - - .content-header { - flex-direction: column; - align-items: flex-start; - margin-bottom: 20px; - } - - .content-header h1 { - margin-bottom: 15px; - font-size: 22px; - } - - .add-new-btn { - width: 100%; - justify-content: center; - padding: 12px 18px; - } - - .search-bar input { - font-size: 14px; - } - - .user-table-responsive { - overflow-x: auto; - } - - .user-table table { - display: block; - width: 100%; - min-width: unset; - } - - .user-table thead { - display: none; - } - - .user-table tbody, - .user-table tr { - display: block; - } - - .user-table tr { - margin-bottom: 20px; - border: 1px solid var(--border-color); - border-radius: 8px; - padding: 10px; - background-color: var(--card-bg); - } - - .user-table td { - display: flex; - justify-content: space-between; - align-items: center; - padding: 10px 15px; - border-bottom: none; - text-align: right; - } - - .user-table td:before { - content: attr(data-label); - font-weight: 600; - color: var(--text-dark); - text-transform: uppercase; - font-size: 12px; - flex: 1; - text-align: left; - } - - .user-table td:nth-child(1), - .user-table td:nth-child(4) { - display: none; - } - - .action-buttons { - flex-direction: row; - flex-wrap: wrap; - justify-content: center; - gap: 10px; - } - - .action-buttons button { - width: auto; - min-width: 120px; - } - } - - @media (min-width: 769px) and (max-width: 1024px) { - .sidebar { - width: 220px; - } - - .sidebar-header { - font-size: 18px; - } - - .sidebar-nav a { - font-size: 14px; - padding: 10px 20px; - } - - .sidebar-nav a i { - font-size: 16px; - } - - .content-area { - padding: 25px; - } - - .content-header h1 { - font-size: 22px; - } - - .add-new-btn { - padding: 9px 16px; - font-size: 13px; - } - - .user-table th, - .user-table td { - padding: 12px 18px; - font-size: 13.5px; - } - } - - ol, - ul { - padding-left: 0rem !important; - - } - /* Custom badge styling */ - .badge { - display: inline-block; - padding: 0.25em 0.4em; - font-size: 75%; - font-weight: 700; - line-height: 1; - text-align: center; - white-space: nowrap; - vertical-align: baseline; - border-radius: 0.25rem; - } - - /* Pill-shaped badge */ - .badge-pill { - border-radius: 10rem; - } - - /* Warning badge (for limited account) */ - .badge-warning { - color: #c0a167; - background-color: #fef9c3; /* Yellow/orange background */ - } - - /* Success badge (for other accounts) */ - .badge-success { - color: #4e9067; - background-color: #dcfce7; /* Green background */ - } - - \ No newline at end of file diff --git a/static/translations.js b/static/translations.js deleted file mode 100644 index e86f0814bf422bde0004337ac0df137b7fe72f28..0000000000000000000000000000000000000000 --- a/static/translations.js +++ /dev/null @@ -1,134 +0,0 @@ -// Translation system -const translations = { - en: { - // Sidebar - chatHistory: "Chat History", - newConversation: "New Conversation", - noConversations: "No conversations yet", - startNewChat: "Start a new chat to begin", - appName: "Legal AI Assistant", - poweredBy: "Powered by RAG Technology", - - // Header - appTitle: "Legal AI Assistant", - appSubtitle: "Ask questions about legal topics and get expert insights", - - // Welcome - welcomeTitle: "Welcome to Legal AI Assistant", - welcomeText: "I'm here to help you understand legal concepts, analyze contracts, and provide insights on various areas of law. Ask me anything about legal topics and I'll provide detailed, professional guidance.", - popularQuestions: "Popular Questions", - - // Questions - question1: "What are the key elements of a valid contract?", - question2: "Explain the difference between civil and criminal law", - question3: "What is intellectual property law?", - question4: "How does contract termination work?", - question5: "What are fiduciary duties in corporate law?", - question6: "Explain force majeure clauses", - - // Input - inputPlaceholder: "Ask a question about legal topics...", - inputHint: "Press Enter to send, Shift+Enter for new line", - - // Messages - legalReferences: "Legal References", - analyzing: "Analyzing your question...", - pageNumber: "Page", - matchScore: "match", - - // Time - today: "Today", - yesterday: "Yesterday", - thisWeek: "This week", - - // Conversation meta - messages: "messages", - message: "message" - }, - - vi: { - // Sidebar - chatHistory: "Lịch sử trò chuyện", - newConversation: "Cuộc trò chuyện mới", - noConversations: "Chưa có cuộc trò chuyện nào", - startNewChat: "Bắt đầu trò chuyện mới", - appName: "Trợ lý AI Pháp lý", - poweredBy: "Được hỗ trợ bởi công nghệ RAG", - - // Header - appTitle: "Trợ lý AI Pháp lý", - appSubtitle: "Đặt câu hỏi về các chủ đề pháp lý và nhận được thông tin chuyên sâu", - - // Welcome - welcomeTitle: "Chào mừng đến với Trợ lý AI Pháp lý", - welcomeText: "Tôi ở đây để giúp bạn hiểu các khái niệm pháp lý, phân tích hợp đồng và cung cấp thông tin chi tiết về các lĩnh vực khác nhau của pháp luật. Hãy hỏi tôi bất cứ điều gì về các chủ đề pháp lý và tôi sẽ cung cấp hướng dẫn chi tiết, chuyên nghiệp.", - popularQuestions: "Câu hỏi phổ biến", - - // Questions - question1: "Các yếu tố chính của một hợp đồng hợp lệ là gì?", - question2: "Giải thích sự khác biệt giữa luật dân sự và luật hình sự", - question3: "Luật sở hữu trí tuệ là gì?", - question4: "Việc chấm dứt hợp đồng hoạt động như thế nào?", - question5: "Nghĩa vụ tín thác trong luật doanh nghiệp là gì?", - question6: "Giải thích các điều khoản bất khả kháng", - - // Input - inputPlaceholder: "Đặt câu hỏi về các chủ đề pháp lý...", - inputHint: "Nhấn Enter để gửi, Shift+Enter để xuống dòng", - - // Messages - legalReferences: "Tài liệu tham khảo pháp lý", - analyzing: "Đang phân tích câu hỏi của bạn...", - pageNumber: "Trang", - matchScore: "khớp", - - // Time - today: "Hôm nay", - yesterday: "Hôm qua", - thisWeek: "Tuần này", - - // Conversation meta - messages: "tin nhắn", - message: "tin nhắn" - } -}; - -// Translation utility functions -function getCurrentLanguage() { - return localStorage.getItem('language') || 'vi'; -} - -function setLanguage(lang) { - localStorage.setItem('language', lang); - updateTranslations(); -} - -function translate(key) { - const lang = getCurrentLanguage(); - return translations[lang][key] || translations.en[key] || key; -} - -function updateTranslations() { - const elements = document.querySelectorAll('[data-translate]'); - elements.forEach(element => { - const key = element.getAttribute('data-translate'); - element.textContent = translate(key); - }); - - // Update placeholders - const placeholderElements = document.querySelectorAll('[data-translate-placeholder]'); - placeholderElements.forEach(element => { - const key = element.getAttribute('data-translate-placeholder'); - element.placeholder = translate(key); - }); -} - -// Initialize translations when DOM is loaded -document.addEventListener('DOMContentLoaded', () => { - const savedLanguage = getCurrentLanguage(); - const languageSelect = document.getElementById('languageSelect'); - if (languageSelect) { - languageSelect.value = savedLanguage; - } - updateTranslations(); -}); \ No newline at end of file diff --git a/templates/admin_dashboard.html b/templates/admin_dashboard.html deleted file mode 100644 index 7b9b0129176eb03f5a7bc170ff0ce89608f91a5e..0000000000000000000000000000000000000000 --- a/templates/admin_dashboard.html +++ /dev/null @@ -1,365 +0,0 @@ - - - - - - Quản lý người dùng - - - - - - - -
    -
    - - Xin chào, {{ user_name | default('Admin') | e }}! - -
    - -
    - -
    -
    -

    Danh sách người dùng

    - -
    - -
    - - - - - - - - - - - - - - - {% for user in users %} - - - - - - - - - - - {% endfor %} - -
    IDTên người dùngVai tròEmailSố điện thoạiLoại tài khoảnLượt hỏi đápHành động
    {{ user.id }}{{ user.username | e }}{% if user.is_admin %}Admin{% else %}User{% endif %}{{ user.email | e }}{{ user.phone | e }} - {% if user.account_type == 'limited' %} - Giới hạn - {% else %} - Không giới hạn - {% endif %} - - {% if user.account_type == 'unlimited' %} - Không giới hạn - {% elif user.query_limit %} - {{ user.query_count }}/{{ user.query_limit | e }} - {% else %} - {{ user.query_count }}/{{ user.account_type | e }} - {% endif %} - - - - -
    -
    -
    - - - -
    -
    - - - - - - - - - - - - \ No newline at end of file diff --git a/templates/change_password.html b/templates/change_password.html deleted file mode 100644 index e46871568b6d2ed35330ea473bb5e65389773018..0000000000000000000000000000000000000000 --- a/templates/change_password.html +++ /dev/null @@ -1,443 +0,0 @@ - - - - - - - Quên mật khẩu - - - - - - -
    -

    Đổi mật khẩu

    -

    Nhập mật khẩu hiện tại và mật khẩu mới (ít nhất 8 ký tự, bao gồm chữ cái và số).

    -
    -
    -
    - - -
    -
    - - -
    - - -
    -

    Đăng - ký ngay Đăng nhập ngay

    - -
    - - - - - \ No newline at end of file diff --git a/templates/forgot_password.html b/templates/forgot_password.html deleted file mode 100644 index 15da35e399e9e489f869824373b1742d6838785d..0000000000000000000000000000000000000000 --- a/templates/forgot_password.html +++ /dev/null @@ -1,613 +0,0 @@ - - - - - - - - Đăng Nhập - - - - - - - - -
    - Background - -
    - - - - - - \ No newline at end of file diff --git a/templates/home.html b/templates/home.html deleted file mode 100644 index ee8feda5e4c3a7a68ee7e92e2190d3c9f2ac430e..0000000000000000000000000000000000000000 --- a/templates/home.html +++ /dev/null @@ -1,887 +0,0 @@ - - - - - - - LegalMind - - - - - - - - -
    - - - - -
    - -
    - -
    -
    - -
    -
    -

    LegalMind

    -

    Đặt câu hỏi về các chủ đề pháp lý và nhận được những góc nhìn - chuyên sâu

    -
    -
    -
    - - -
    -
    -
    - - - - - - - - -
    -

    Chào mừng đến với LegalMind

    -

    Tôi ở đây để giúp bạn hiểu các khái niệm pháp lý, phân tích hợp đồng - và cung cấp thông tin chuyên sâu về các lĩnh vực pháp luật khác nhau. Hãy hỏi tôi bất cứ điều gì - về các chủ đề pháp lý, tôi sẽ cung cấp hướng dẫn chi tiết và chuyên nghiệp.

    - -
    -

    Câu Hỏi Phổ Biến

    -
    - - - - - - -
    -
    -
    - -
    -
    - - -
    -
    -
    - - -
    -
    -

    -

    -

    - Nhấn Enter để gửi, Shift+Enter để xuống dòng -

    -
    -
    -
    - - -
    - - - - - \ No newline at end of file diff --git a/templates/homes.html b/templates/homes.html deleted file mode 100644 index 4c26653747ce42edd0574392e2556d3d250204f5..0000000000000000000000000000000000000000 --- a/templates/homes.html +++ /dev/null @@ -1,5448 +0,0 @@ - - - - - - - LegalMind - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - -
    - - - - - -
    - -
    - -
    - - - -
    - -
    - -
    - -
    - - -
    -
    - -
    - -
    Dushane Daniel
    -

    Front end Developer

    -
    - - - -
    -
    -

    A professional profile is an introductory section on your resume that - highlights your - relevant qualifications and skills.

    -
    - -
    -
    -
    - -
    -
    -

    Dushane Daniel

    -
    -
    - -
    -
    - -
    -
    -

    +(365) 1456 12584

    -
    -
    - -
    -
    - -
    -
    -

    dushanedaniel@gmail.com

    -
    -
    - -
    -
    - -
    -
    -

    California, USA

    -
    -
    -
    - -
    -
    -
    -
    Media
    -
    -
    - Show all -
    -
    -
    -
    - - media img - -
    -
    - - media img - -
    - -
    -
    - -
    -
    -
    -
    Attached Files
    -
    -
    - Show all -
    -
    -
    -
    -
    -
    - -
    -
    -
    design-phase-1-approved.pdf
    -

    12.5 MB

    -
    - -
    -
    -
    - - - -
    - -
    -
    -
    -
    - -
    -
    -
    - -
    -
    -
    Image-1.jpg
    -

    4.2 MB

    -
    - -
    -
    -
    - - - -
    - -
    -
    -
    -
    - -
    -
    -
    - -
    -
    -
    Image-2.jpg
    -

    3.1 MB

    -
    - -
    -
    -
    - - - -
    - -
    -
    -
    -
    - -
    -
    -
    - -
    -
    -
    Landing-A.zip
    -

    6.7 MB

    -
    - -
    -
    -
    - - - -
    - -
    -
    -
    -
    -
    -
    - -
    - -
    - -
    - - - - - - - -
    - -
    -
    -
    -
    -

    Contacts

    -
    -
    -
    - - -
    -
    -
    - -
    -
    - - -
    -
    -
    - - -
    -
    -
    -
    - -
    - -
    - - - -
    - -
    -
    -
    -
    -

    Calls

    -
    -
    -
    - - - -
    -
      - -
    -
    - -
    - -
    - - - -
    - -
    -
    -
    -
    -

    Bookmark

    -
    -
    -
    -
    - - -
    -
    -
    - - - -
    - -
    - -
    - -
    - - - -
    - -
    - - -
    -
    - -
    - - -
    -
    - -
    - - - - -
    - - - -
    -
    -
    - -
    -
    -
    - - -
    - -
    - - -
    - -
    - - -
    - -
    - - -
    - -
    - - -
    -
    -
    -
    - - -
    - -
    -
    -
    Who can see my personal info
    -
      -
    • -
      -
      -
      Profile photo
      -
      -
      - -
      -
      -
    • -
    • -
      -
      -
      Status
      -
      -
      - -
      -
      -
    • -
    • -
      -
      -
      Groups
      - -
      -
      - -
      -
      -
    • -
    • -
      -
      -
      Last seen
      -
      -
      -
      - - -
      -
      -
      -
    • -
    • -
      -
      -
      Read receipts
      -
      -
      -
      - - -
      -
      -
      -
    • -
    -
    -
    -
    - - -
    - -
    -
    -
      -
    • -
      -
      -
      Show security - notification
      - -
      -
      -
      - - -
      -
      -
      -
    • -
    -
    -
    -
    - - - - -
    -
    - -
    -
    -
    - -
    -
    -
    -
    - -
    - -
    - -
    - -
    - -
    - - - -
    - -
    - -
    - -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    - - -
    -
    -
    -

    Online

    -
    -
    -
    -
    -
    -
    - -
    -
    - -
    - - - - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
      -
    • -
      -
      -
      -
      -
      -

      Xin chào! Tôi là - chuyên gia tư vấn pháp luật, sẵn sàng phân - tích - án lệ và cung cấp lập luận pháp lý chính - xác, dễ hiểu, tuân thủ - quy định pháp luật Việt Nam. -

      -
      - -
      -
      {{time}} -
      -
      -
      -
    • - -
    - - -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    - - - -
    - - - - -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    - -
    -
    -
    -

    24 Members -

    -
    -
    -
    -
    -
    -
    - -
    -
    -
    - - - - -
    -
      -
    -
    - - -
    - - -
    -
    - -
    -
    -
    -
    - -
    -
    -
    -
    - Please Enter a Message -
    - - -
    -
    -
    - -
    -
    -
    -
    -
    -
    - - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -

    -
    -
    - -
    -
    -
    -
    -
    -
    - -
    - - - - - -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/templates/index.html b/templates/index.html deleted file mode 100644 index 05d81e1934815e25483f129f38fe2af27f125a62..0000000000000000000000000000000000000000 --- a/templates/index.html +++ /dev/null @@ -1,1366 +0,0 @@ - - - - - - Legalmind | Hệ thống Truy vấn và Soạn thảo Bản án, Án lệ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    Đang tải... -
    -
    - - -
    - - - - - -
    -
    -
    -
    -
    -
    -
    -
    - - Legalmind v1.0 Mới - - -

    Giải pháp AI tối ưu cho nhu cầu pháp lý của bạn

    -

    Nền tảng công nghệ pháp lý của chúng tôi được thiết kế để xử lý khối - lượng dữ liệu lớn, hỗ trợ truy vấn và soạn thảo bản án, án lệ một cách hiệu quả cho các cơ quan tư pháp và - văn phòng luật.

    -
    -
    -
    -
    -
    -
    -
    - - - -
    -
    -
    - -
    -
    -
    - -
    - - -
    - -
    -
    - -
    -

    Ứng dụng của Legalmind

    -

    Dưới đây là một số ứng dụng nổi bật của hệ thống

    - - -
    -
    -
    -
    -
    -
    -
    - Biểu đồ phân tích bản án - Biểu đồ phân tích bản án -
    -
    - Biểu đồ thống kê án lệ - Biểu đồ thống kê án lệ -
    -
    - Biểu đồ phân loại bản án - Biểu đồ phân loại bản án -
    -
    -
    -
    -

    Công cụ phân tích dữ liệu pháp lý

    -

    Từ việc phân tích dữ liệu phức tạp đến trực quan hóa ấn tượng, công nghệ AI - tiên tiến của chúng tôi giúp bạn trích xuất thông tin pháp lý giá trị và đưa ra quyết định dựa trên dữ - liệu nhanh chóng hơn bao giờ hết.

    - - Tìm hiểu thêm - - -
    -
    - - -
    -
    -
    -
    - Vòng tròn 1 -
    -
    - Vòng tròn 2 -
    -
    - Vòng tròn 3 -
    -
    -
    -
    AI
    -
    -
    -
    -
    -
    - - - - - -
    -
    -
    -
    -
    - - - - - - - - - - -
    -
    -
    -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    -
    - - - - - - - - -
    -
    -
    -
    -
    - - - - - -
    -
    -
    -
    -
    - - - - - - - -
    -
    -
    -
    -
    - - - - - - - - - -
    -
    -
    -
    -
    - - - - - - - -
    -
    -
    -
    -
    - - - - - -
    -
    -
    -
    -
    -

    Tự động hóa soạn thảo bản án

    -

    Tích hợp AI thông minh của chúng tôi với các công cụ bạn đã sử dụng để tự động - hóa quá trình soạn thảo bản án, tăng năng suất và hiệu quả của đội ngũ pháp lý lên gấp 10 lần.

    - - Tìm hiểu thêm - - -
    -
    - - -
    -
    -
    -
    - Giao diện chatbot pháp lý - Giao diện chatbot pháp lý -
    - -
    -
    -
    -

    Chatbot pháp lý tiên tiến

    -

    Tích hợp liền mạch xử lý ngôn ngữ tự nhiên và khả năng học máy vào chatbot - pháp lý của bạn, mang lại trải nghiệm cá nhân hóa cho người dùng cuối.

    - - Tìm hiểu thêm - - -
    -
    - - -
    -
    Và nhiều ứng dụng khác...
    - Khám phá tất cả ứng dụng -
    -
    -
    - - -
    -
    -
    -
    -

    Các trung tâm dữ liệu của chúng - tôi trên toàn cầu. Truy cập API từ bất kỳ đâu

    -
    -
    -

    Trung tâm dữ liệu của chúng tôi là thành phần cốt lõi của cơ sở hạ tầng toàn - cầu, cung cấp tài nguyên tính toán đáng tin cậy và có thể mở rộng cho khách hàng trên toàn thế giới. Chúng - tôi cung cấp một nền tảng phân tán và bền vững, hỗ trợ các khối lượng công việc đòi hỏi cao nhất.

    -
    -
    -
    - Bản đồ -
    -
    -
    - - -
    - - -
    -
    -
    -

    Tìm hiểu cách Legalmind hoạt động qua video giới thiệu ngắn

    -
    -
    -
    -
    - - - -
    - Ảnh bìa video - Ảnh bìa video -
    -
    -
    -
    -
    - - -
    -
    -

    Được tin dùng bởi các cơ quan pháp lý hàng đầu

    -

    Tìm hiểu lý do tại sao các cơ quan pháp lý hàng - đầu trên toàn cầu lựa chọn chúng tôi

    -
    - -
    -
    - Envato - Tòa án tối cao -
    -

    "Legalmind đã giúp chúng tôi tối ưu hóa quy trình truy vấn và soạn thảo bản án, - giảm đáng kể thời gian xử lý các vụ việc phức tạp."

    -
    - Chân dung -
    -
    Nguyễn Văn A
    -

    Thẩm phán, Tòa án Tối cao

    -
    -
    -
    -
    -
    - - -
    -
    - Viện Kiểm sát Nhân dân - Viện Kiểm sát Nhân dân -
    -

    "Hệ thống AI của Legalmind cung cấp phân tích án lệ chính xác, giúp chúng tôi đưa - ra các quyết định truy tố dựa trên dữ liệu đáng tin cậy."

    -
    - Chân dung -
    -
    Trần Thị B
    -

    Kiểm sát viên, Viện Kiểm sát Nhân dân

    -
    -
    -
    -
    -
    - - -
    -
    - Văn phòng Luật sư ABC - Văn phòng Luật sư ABC -
    -

    "Tính năng tự động hóa soạn thảo bản án của Legalmind giúp văn phòng chúng tôi - tiết kiệm thời gian và nâng cao hiệu quả tư vấn pháp lý."

    -
    - Chân dung -
    -
    Lê Văn C
    -

    Luật sư, Văn phòng Luật sư ABC

    -
    -
    -
    -
    -
    - -
    -
    -
    - - - -
    -
    -
    -
    -
    -
    -

    Legalmind so sánh với Phát triển tùy - chỉnh

    -
    -
    -
    -
    - - -
    -
     
    -
    -
    -

    Legalmind

    - Bắt đầu - - Miễn phí -

    Giá của chúng tôi bắt đầu từ mức thấp nhất là 1.299 USD mỗi nhóm

    -
    -
    -
    -

    Phát triển nội bộ

    -
    -
    - - -
    -
    - - -
    -
    -
    Chi phí cơ sở hạ tầng - mô hình dữ liệu
    -
    -
    -
    -
    Đã bao gồm
    -
    Khả năng AI/ML lưu trữ trên đám mây
    -
    -
    -
    -
    -
    Từ 10.000 USD đến 50.000 USD
    -
    mỗi tháng
    -
    -
    -
    - - -
    -
    - - -
    -
    -
    Chi phí kỹ thuật
    -
    -
    -
    -
    Đã bao gồm
    -
    trong các gói cao cấp của chúng tôi
    -
    -
    -
    -
    -
    Từ 25.000 USD đến 30.000 USD
    -
    mỗi kỹ sư mỗi tháng
    -
    -
    -
    - - -
    -
    - - -
    -
    -
    Thời gian triển khai -
    -
    -
    -
    -
    Bắt đầu trong vài phút
    -
    -
    -
    -
    -
    Trung bình 6-9 tháng
    -
    tùy thuộc vào trình độ đội ngũ
    -
    -
    -
    - - -
    -
    - - -
    -
    -
    Chi phí bảo trì & vận - hành
    -
    -
    -
    -
    Đã bao gồm
    -
    trong các gói cao cấp của chúng tôi
    -
    -
    -
    -
    -
    Trung bình 20.000 USD
    -
    mỗi kỹ sư mỗi tháng
    -
    -
    -
    - - -
    -
    -
    -
    -
    -
    -
    -
    -
    - - - -
    -
    -
    - -
    - - - - - - - - - Lên đầu trang - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/templates/login.html b/templates/login.html deleted file mode 100644 index b74962c2cb27641af79cdde4fa88127a2ed9b059..0000000000000000000000000000000000000000 --- a/templates/login.html +++ /dev/null @@ -1,569 +0,0 @@ - - - - - - - - Đăng Nhập - - - - - - - - -
    - Background - -
    - - - - - - \ No newline at end of file diff --git a/templates/register.html b/templates/register.html deleted file mode 100644 index b03c08c54cf299f9b5f823bc00e9efdef951fa87..0000000000000000000000000000000000000000 --- a/templates/register.html +++ /dev/null @@ -1,441 +0,0 @@ - - - - - - - - Đăng Ký - - - - - - - - -
    - Background - -
    - - - - - - - - \ No newline at end of file diff --git a/templates/verify_otp.html b/templates/verify_otp.html deleted file mode 100644 index b2ae34652c88e329c24d8d96a51fbf9c060c334f..0000000000000000000000000000000000000000 --- a/templates/verify_otp.html +++ /dev/null @@ -1,501 +0,0 @@ - - - - - - - - Đăng Nhập - - - - - - - - -
    - Background - -
    - - - - - - \ No newline at end of file