diff --git a/.idea/misc.xml b/.idea/misc.xml index 90e0451..e92cade 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,4 +1,7 @@ - + + + \ No newline at end of file diff --git a/.idea/不夜城考试.iml b/.idea/不夜城考试.iml index 9d89a61..488cca6 100644 --- a/.idea/不夜城考试.iml +++ b/.idea/不夜城考试.iml @@ -15,16 +15,9 @@ + - + - - - \ No newline at end of file diff --git a/db.sqlite3 b/db.sqlite3 index ce449be..007d21d 100644 Binary files a/db.sqlite3 and b/db.sqlite3 differ diff --git a/exam/migrations/0001_initial.py b/exam/migrations/0001_initial.py index 4f9491f..09622b9 100644 --- a/exam/migrations/0001_initial.py +++ b/exam/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 5.0.7 on 2024-07-11 05:50 +# Generated by Django 5.0.7 on 2024-07-12 10:42 import django.db.models.deletion import uuid diff --git a/exam/urls.py b/exam/urls.py index d8448cc..1350eb6 100644 --- a/exam/urls.py +++ b/exam/urls.py @@ -2,11 +2,14 @@ from django.urls import path from . import views urlpatterns = ( - path("", views.home, name="index"), + path("", views.home, name="home"), + path("ablout", views.about, name="about"), path("register/", views.register, name="register"), path("login/", views.login_view, name="login"), path("logout/", views.logout_view, name="logout"), path("create/", views.create_question, name="create"), path("question/", views.get_question, name="get_question"), - path("answer/", views.answer, name="answer") + path("answer/", views.answer, name="answer"), + path("history", views.history, name="history"), + path("history_detail", views.history_detail, name="history_detail"), ) diff --git a/exam/views.py b/exam/views.py index b75251e..517ff1b 100644 --- a/exam/views.py +++ b/exam/views.py @@ -1,24 +1,109 @@ import uuid from django.core.files import File -from django.http import JsonResponse, Http404 +from django.http import JsonResponse, Http404, HttpResponse from django.shortcuts import render, redirect +from django.core.paginator import Paginator, PageNotAnInteger, EmptyPage from .form import RegisterForm, LoginForm, CreateForm, AnswerForm from .models import CyberUser, Question, Choice from django.contrib.auth import authenticate, login, logout from django.contrib.auth.decorators import login_required +from PIL import Image +from io import BytesIO -# Create your views here. +def compress_image(file_obj, max_size_bytes=1 * 1024 * 1024): + # 从文件对象读取数据并创建Image对象 + img = Image.open(file_obj) + + # 创建一个BytesIO对象来保存压缩后的WebP数据 + output_buffer = BytesIO() + + quality = 85 + + while True: + try: + img.save(output_buffer, 'webp', quality=quality) + except Exception as e: + print(f"Error saving image as WebP: {e}") + return None + + output_buffer.seek(0) + new_size = len(output_buffer.read()) + + # 如果新的大小小于或等于5MB,则退出循环 + if new_size <= max_size_bytes: + break + + # 如果新的大小大于5MB,降低质量并重试 + quality -= 5 + if quality < 1: + print("Unable to compress the image to 5MB or less.") + return None + output_buffer.seek(0) + return output_buffer + def home(request): content = {'user': request.user} return render(request, 'home.html', content) +def about(request): + return HttpResponse("尚未完成") + + +@login_required(login_url='/exam/login') +def history(request): + page_size = 10 + user = request.user + questions = Question.objects.filter(choice__user=user) + paginator = Paginator(questions, page_size) + page = request.GET.get('page', 1) + try: + # 尝试获取当前页的记录 + question = paginator.page(page) + except PageNotAnInteger: + question = paginator.page(1) + except EmptyPage: + question = paginator.page(paginator.num_pages) + context = {'questions': question, 'page': paginator.page(page), 'paginator': paginator} + return render(request, 'history.html', context) + + +@login_required(login_url='/exam/login') +def history_detail(request): + questionID = request.GET.get('question') + user = request.user + if questionID: + question = Question.objects.get(uid=questionID) + if question is None: + return Http404 + choice = Choice.objects.get(question=question,user=user) + if choice is None: + return Http404 + context = { + 'question': question, + 'choice': choice, + 'user': user, + 'forward_url': request.META.get('HTTP_REFERER', '/'), + } + return render(request, 'history_detail.html', context) + else: + return Http404 + + def register(request): if request.method == 'GET': + if request.user.is_active: + return redirect("/exam/") return render(request, 'register.html', {'form': RegisterForm()}) elif request.method == 'POST': + if request.user.is_active: + return JsonResponse({ + 'code': 200, + 'message': '已经登陆', + 'data': 'failed', + }) form = RegisterForm(request.POST) if form.is_valid(): username = form.cleaned_data['username'] @@ -53,15 +138,26 @@ def register(request): return JsonResponse({"code": 400, "message": "验证失败", "data": {"username": form.errors.get("username"), "password1": form.errors.get("password1"), "password2": form.errors.get("password2"), - "email": form.errors.get("email")}}) + "email": form.errors.get("email"), + "nickname": form.errors.get("nickname")}}) else: raise Http404 def login_view(request): if request.method == 'GET': + if request.user.is_active: + return redirect("/exam/") return render(request, 'login.html', {'form': LoginForm()}) elif request.method == 'POST': + if request.user.is_active: + return JsonResponse( + { + 'code': 200, + 'message': '已经登陆', + 'data': 'abort', + } + ) form = LoginForm(request.POST) if form.is_valid(): username = form.cleaned_data['username'] @@ -111,7 +207,7 @@ def logout_view(request): return redirect('/exam/login') -@login_required +@login_required(login_url='/exam/login') def create_question(request): if request.method == 'GET': return render(request, 'create.html', {'form': CreateForm}) @@ -134,7 +230,8 @@ def create_question(request): answer=answer, ) if image: - new_question.image = File(image, name=f'{str(uuid.uuid4())}.jpg') + image = compress_image(image) + new_question.image = File(image, name=f'{str(uuid.uuid4())}.webp') new_question.save() return JsonResponse( { @@ -153,14 +250,14 @@ def create_question(request): ) -@login_required +@login_required(login_url='/exam/login') def get_question(request): user = request.user question = Question.objects.exclude(choice__user=user).order_by('?').first() return render(request, "question.html", {'question': question, 'form': AnswerForm, 'user': request.user}) -@login_required +@login_required(login_url='/exam/login') def answer(request): if request.method == 'POST': form = AnswerForm(request.POST) @@ -186,7 +283,10 @@ def answer(request): { 'code': 200, 'message': 'success', - 'data': {'correction': user_ans == question.answer}, + 'data': { + 'correction': user_ans == question.answer, + 'answer': question.answer, + }, } ) else: diff --git a/manage.py b/manage.py index 0bb8e5c..661bccb 100644 --- a/manage.py +++ b/manage.py @@ -6,7 +6,7 @@ import sys def main(): """Run administrative tasks.""" - os.environ.setdefault('DJANGO_SETTINGS_MODULE', '不夜城考试.settings') + os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'CyberExam.settings') try: from django.core.management import execute_from_command_line except ImportError as exc: diff --git a/static/css/demo.css b/static/css/demo.css new file mode 100644 index 0000000..447bb80 --- /dev/null +++ b/static/css/demo.css @@ -0,0 +1 @@ +@media (max-width: 767px){.btn-container{margin-top:2rem}}@media (max-width: 991px){.btn-container>.btn,.btn-container>.btn-group{margin-bottom:1rem}}@media (min-width: 992px){.btn-container>.btn,.btn-container>.btn-group{margin-right:1.5rem;margin-bottom:1rem}}@media (min-width: 1200px){.content:not(.content--boxed):not(.content--full){padding:0 0 0 240px}}@media (min-width: 576px) and (max-width: 1199px){.content:not(.content--boxed):not(.content--full){padding:102px 30px 0}}@media (max-width: 575px){.content:not(.content--boxed):not(.content--full){padding:87px 15px 0}}@media (min-width: 576px){.content--full{padding:102px 30px 0}}@media (max-width: 767px){.content--full{padding:87px 15px 0}}.content-inner{margin:auto;padding:30px 15px}.content-inner .example{margin-bottom:5rem}@media (max-width: 767px){.content-inner .example .btn{margin-bottom:1rem}}.header{width:100%;height:72px;color:#FFFFFF;padding:0 30px 0 2rem;z-index:10;display:flex;align-items:center;top:0;left:0;background:#FFF;border-bottom:1px solid #e9ecef}@media (max-width: 1199px){.header{position:fixed}}@media (max-width: 575px){.header{padding-left:15px;padding-right:15px}}.header::after{display:block;content:"";clear:both}.header .body-backdrop{position:absolute}.navigation-trigger{float:left;padding:2rem 2rem 2rem 2.4rem;margin-left:-2rem}.navigation-trigger:hover{cursor:pointer}.navigation-trigger.toggled .navigation-trigger-inner{transform:rotate(180deg)}.navigation-trigger.toggled .navigation-trigger-inner:before{transform:scale(1)}.navigation-trigger.toggled .navigation-trigger-line:first-child{width:12px;transform:translateX(8px) translateY(1px) rotate(45deg)}.navigation-trigger.toggled .navigation-trigger-line:last-child{width:11px;transform:translateX(8px) translateY(-1px) rotate(-45deg)}.navigation-trigger-inner,.navigation-trigger-line{width:18px;transition:all 300ms}.navigation-trigger-inner{position:relative}.navigation-trigger-inner:before{content:'';position:absolute;width:40px;height:40px;left:-11px;top:-14px;background-color:rgba(0,0,0,0.25);border-radius:50%;transition:all 300ms;transform:scale(0)}.navigation-trigger-line{height:2px;background-color:#333;display:block;position:relative}.navigation-trigger-line:not(:last-child){margin-bottom:3px}@media (min-width: 1200px){.header-brand{min-width:calc(270px - 2rem)}}.header-brand>h1{line-height:100%;font-size:1.3rem;font-weight:normal;margin:0}.header-brand>h1>a{color:#999}.header-nav .nav-link{padding:0 1rem;font-size:.765625rem;color:#adb5bd;transition:background-color 300ms}.header-nav .nav-link:hover{color:#343a40}.sidebar{width:240px;position:fixed;left:0;padding:0 0.5rem 0.5rem 1.5rem;height:100%;overflow:hidden;z-index:1050;background-color:#fff;border-right:1px solid #e9ecef}@media (max-width: 1199px){.sidebar{transition:transform 300ms, opacity 300ms}.sidebar:not(.toggled){opacity:0;transform:translate3d(-100%, 0, 0)}.sidebar.toggled{box-shadow:5px 0 10px rgba(0,0,0,0.08);opacity:1;transform:translate3d(0, 0, 0)}}.sidebar-brand{height:72px;padding:1rem 0}.sidebar-brand>h1{transform:translateY(50%);font-size:1.09375rem;font-weight:normal;margin:0}.sidebar-brand>h1>a{color:#343a40}.sidebar .scrollbar-inner>.scroll-element{margin-right:0}.sidebar--hidden{background-color:#FFFFFF;transition:transform 300ms, opacity 300ms}.sidebar--hidden:not(.toggled){opacity:0;transform:translate3d(-100%, 0, 0)}.sidebar--hidden.toggled{box-shadow:5px 0 10px rgba(0,0,0,0.08);opacity:1;transform:translate3d(0, 0, 0)}.navigation{list-style:none;padding:0;padding-bottom:4rem}.navigation .navigation-title{color:#adb5bd;font-weight:600;margin:0.875rem 0 0;padding:1rem 0rem 0.875rem}.navigation .navigation-item{color:#fff;font-weight:500}.navigation .navigation-link{display:block;padding:0.25rem 1rem;color:#495057;font-weight:500;-webkit-transition:background 0.3s, box-shadow 0.3s;transition:background 0.3s, box-shadow 0.3s;border-radius:.375rem;text-decoration:none}.navigation .navigation-link:hover,.navigation .navigation-link.active{color:#288cff}.scrollbar-inner{height:100%}.scrollbar-inner>.scroll-element{transition:opacity 300ms;margin-right:2px}.scrollbar-inner>.scroll-element.scroll-y{width:3px;right:0}.scrollbar-inner>.scroll-element.scroll-x{height:3px;bottom:0}.scrollbar-inner>.scroll-element .scroll-bar,.scrollbar-inner>.scroll-element .scroll-element_track{transition:background-color 300ms}.scrollbar-inner>.scroll-element .scroll-element_track{background-color:transparent}.scrollbar-inner:not(:hover) .scroll-element{opacity:0}.page-title{position:relative;padding-bottom:1rem;margin-bottom:1rem;border-bottom:1px solid #e9ecef}.page-title .heading{margin:0;padding:0;color:#212529}.page-title .heading a{color:#212529}@media (min-height: 600px) and (min-width: 767px){.background-image-holder[data-holder-type="hero"]{height:80vh}}.background-image-holder .holder-item{height:100%;padding:2rem 0}@media (max-width: 991px){.background-image-holder .holder-item{height:auto;padding:4rem 0}}.background-image-holder .swiper-container,.background-image-holder .container{position:relative;height:100%}.background-image-holder .swiper-container .swiper-slide .animated{opacity:0}.background-image-holder .swiper-container .swiper-slide .animated.animation-ended{opacity:1}.bg-cover{position:relative}.bg-size--cover{background-size:cover;background-repeat:no-repeat}.bg-size--contain{background-size:contain;background-repeat:no-repeat}.typeface-palette .typeface-entry{position:relative;display:block;padding:2rem;background:#fff;border:1px solid rgba(0,0,0,0.05);border-radius:.375rem}.typeface-badge{position:absolute;top:10px;right:10px}.color-palette .color-entry{position:relative;display:block;height:170px;color:#FFF;border-radius:.375rem}.color-palette .color-entry .color-code{background:#fff;color:#495057;padding:6px 10px;position:absolute;bottom:12px;right:12px}.content-docs h2[id]::before,.content-docs h3[id]::before,.content-docs h4[id]::before{content:"";display:block;height:3rem;margin-top:-3rem}.content-docs h2[id]:not(:first-child),.content-docs h3[id]:not(:first-child),.content-docs h4[id]:not(:first-child){margin-top:5rem}.content-docs h2[id],.content-docs h3[id],.content-docs h4[id]{margin-bottom:2rem}.highlight pre{padding:1.5rem;background:#f8f9fa;border:1px solid #dee2e6;border-radius:.375rem}.code-example{margin:2rem 0}.code-clipboard{position:relative}.btn-clipboard{position:absolute;top:.5rem;right:.5rem;z-index:10;display:block;padding:.25rem .5rem;font-size:75%;color:#818a91;cursor:pointer;background-color:transparent;border:0;border-radius:.25rem}.btn-clipboard:hover{color:#fff;background-color:#027de7}.toc-entry{display:block}.toc-entry a{display:block;padding:.125rem 1.5rem;color:#99979c}.toc-entry a:hover{color:#007bff;text-decoration:none} diff --git a/static/css/theme.css b/static/css/theme.css new file mode 100644 index 0000000..1aa32bf --- /dev/null +++ b/static/css/theme.css @@ -0,0 +1 @@ +:root{--blue: #3369d6;--indigo: #5603ad;--purple: #801096;--pink: #e36397;--red: #f03;--orange: #ff3b00;--yellow: #ffd600;--green: #00c759;--teal: #73e9ef;--cyan: #2bffc6;--white: #fff;--gray: #6c757d;--gray-dark: #343a40;--light: #dee2e6;--lighter: #f8f9fa;--primary: #288cff;--secondary: #e8f2ff;--success: #00c759;--info: #73e9ef;--warning: #ff3b00;--danger: #f03;--light: #e9ecef;--dark: #343a40;--tertiary: #192b3f;--breakpoint-xs: 0;--breakpoint-sm: 576px;--breakpoint-md: 768px;--breakpoint-lg: 992px;--breakpoint-xl: 1200px;--font-family-sans-serif: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";--font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace}*,*::before,*::after{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:transparent}@-ms-viewport{width:device-width}article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:"Nunito",sans-serif;font-size:.875rem;font-weight:400;line-height:1.6;color:#495057;text-align:left;background-color:#fff}[tabindex="-1"]:focus{outline:0 !important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[title],abbr[data-original-title]{text-decoration:underline;text-decoration:underline dotted;cursor:help;border-bottom:0}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul,dl{margin-top:0;margin-bottom:1rem}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:600}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#288cff;text-decoration:none;background-color:transparent;-webkit-text-decoration-skip:objects}a:hover{color:#0066db;text-decoration:unone}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):hover,a:not([href]):not([tabindex]):focus{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}pre,code,kbd,samp{font-family:monospace, monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg:not(:root){overflow:hidden}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#adb5bd;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}input,button,select,optgroup,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}button,html [type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{padding:0;border-style:none}input[type="radio"],input[type="checkbox"]{box-sizing:border-box;padding:0}input[type="date"],input[type="time"],input[type="datetime-local"],input[type="month"]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{outline-offset:-2px;-webkit-appearance:none}[type="search"]::-webkit-search-cancel-button,[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none !important}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{margin-bottom:.5rem;font-family:inherit;font-weight:600;line-height:1.3;color:#343a40}h1,.h1{font-size:2.1875rem}h2,.h2{font-size:1.75rem}h3,.h3{font-size:1.53125rem}h4,.h4{font-size:1.3125rem}h5,.h5{font-size:1.09375rem}h6,.h6{font-size:.875rem}.lead{font-size:1.09375rem;font-weight:300}.display-1{font-size:6rem;font-weight:300;line-height:1.3}.display-2{font-size:5.5rem;font-weight:300;line-height:1.3}.display-3{font-size:4.5rem;font-weight:300;line-height:1.3}.display-4{font-size:3.5rem;font-weight:300;line-height:1.3}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:.0625rem solid rgba(0,0,0,0.1)}small,.small{font-size:80%;font-weight:400}mark,.mark{padding:.2em;background-color:#fcf8e3}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.09375rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer::before{content:"\2014 \00A0"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:.0625rem solid #dee2e6;border-radius:.375rem;box-shadow:0 1px 2px rgba(0,0,0,0.075);max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}code{font-size:87.5%;color:#e36397;word-break:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.25rem;box-shadow:inset 0 -0.1rem 0 rgba(0,0,0,0.25)}kbd kbd{padding:0;font-size:100%;font-weight:600;box-shadow:none}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width: 576px){.container{max-width:540px}}@media (min-width: 768px){.container{max-width:720px}}@media (min-width: 992px){.container{max-width:960px}}@media (min-width: 1200px){.container{max-width:1140px}}.container-fluid{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*="col-"]{padding-right:0;padding-left:0}.col-1,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12,.col,.col-auto,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm,.col-sm-auto,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-md,.col-md-auto,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg,.col-lg-auto,.col-xl-1,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl,.col-xl-auto{position:relative;width:100%;min-height:1px;padding-right:15px;padding-left:15px}.col{flex-basis:0;flex-grow:1;max-width:100%}.col-auto{flex:0 0 auto;width:auto;max-width:none}.col-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-6{flex:0 0 50%;max-width:50%}.col-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.col-12{flex:0 0 100%;max-width:100%}.order-first{order:-1}.order-last{order:13}.order-0{order:0}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-6{order:6}.order-7{order:7}.order-8{order:8}.order-9{order:9}.order-10{order:10}.order-11{order:11}.order-12{order:12}.offset-1{margin-left:8.3333333333%}.offset-2{margin-left:16.6666666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.3333333333%}.offset-5{margin-left:41.6666666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.3333333333%}.offset-8{margin-left:66.6666666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.3333333333%}.offset-11{margin-left:91.6666666667%}@media (min-width: 576px){.col-sm{flex-basis:0;flex-grow:1;max-width:100%}.col-sm-auto{flex:0 0 auto;width:auto;max-width:none}.col-sm-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-sm-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-sm-3{flex:0 0 25%;max-width:25%}.col-sm-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-sm-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-sm-6{flex:0 0 50%;max-width:50%}.col-sm-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-sm-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-sm-9{flex:0 0 75%;max-width:75%}.col-sm-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-sm-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.col-sm-12{flex:0 0 100%;max-width:100%}.order-sm-first{order:-1}.order-sm-last{order:13}.order-sm-0{order:0}.order-sm-1{order:1}.order-sm-2{order:2}.order-sm-3{order:3}.order-sm-4{order:4}.order-sm-5{order:5}.order-sm-6{order:6}.order-sm-7{order:7}.order-sm-8{order:8}.order-sm-9{order:9}.order-sm-10{order:10}.order-sm-11{order:11}.order-sm-12{order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.3333333333%}.offset-sm-2{margin-left:16.6666666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.3333333333%}.offset-sm-5{margin-left:41.6666666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.3333333333%}.offset-sm-8{margin-left:66.6666666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.3333333333%}.offset-sm-11{margin-left:91.6666666667%}}@media (min-width: 768px){.col-md{flex-basis:0;flex-grow:1;max-width:100%}.col-md-auto{flex:0 0 auto;width:auto;max-width:none}.col-md-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-md-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-md-3{flex:0 0 25%;max-width:25%}.col-md-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-md-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-md-6{flex:0 0 50%;max-width:50%}.col-md-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-md-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-md-9{flex:0 0 75%;max-width:75%}.col-md-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-md-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.col-md-12{flex:0 0 100%;max-width:100%}.order-md-first{order:-1}.order-md-last{order:13}.order-md-0{order:0}.order-md-1{order:1}.order-md-2{order:2}.order-md-3{order:3}.order-md-4{order:4}.order-md-5{order:5}.order-md-6{order:6}.order-md-7{order:7}.order-md-8{order:8}.order-md-9{order:9}.order-md-10{order:10}.order-md-11{order:11}.order-md-12{order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.3333333333%}.offset-md-2{margin-left:16.6666666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.3333333333%}.offset-md-5{margin-left:41.6666666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.3333333333%}.offset-md-8{margin-left:66.6666666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.3333333333%}.offset-md-11{margin-left:91.6666666667%}}@media (min-width: 992px){.col-lg{flex-basis:0;flex-grow:1;max-width:100%}.col-lg-auto{flex:0 0 auto;width:auto;max-width:none}.col-lg-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-lg-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-lg-3{flex:0 0 25%;max-width:25%}.col-lg-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-lg-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-lg-6{flex:0 0 50%;max-width:50%}.col-lg-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-lg-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-lg-9{flex:0 0 75%;max-width:75%}.col-lg-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-lg-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.col-lg-12{flex:0 0 100%;max-width:100%}.order-lg-first{order:-1}.order-lg-last{order:13}.order-lg-0{order:0}.order-lg-1{order:1}.order-lg-2{order:2}.order-lg-3{order:3}.order-lg-4{order:4}.order-lg-5{order:5}.order-lg-6{order:6}.order-lg-7{order:7}.order-lg-8{order:8}.order-lg-9{order:9}.order-lg-10{order:10}.order-lg-11{order:11}.order-lg-12{order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.3333333333%}.offset-lg-2{margin-left:16.6666666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.3333333333%}.offset-lg-5{margin-left:41.6666666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.3333333333%}.offset-lg-8{margin-left:66.6666666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.3333333333%}.offset-lg-11{margin-left:91.6666666667%}}@media (min-width: 1200px){.col-xl{flex-basis:0;flex-grow:1;max-width:100%}.col-xl-auto{flex:0 0 auto;width:auto;max-width:none}.col-xl-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-xl-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-xl-3{flex:0 0 25%;max-width:25%}.col-xl-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-xl-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-xl-6{flex:0 0 50%;max-width:50%}.col-xl-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-xl-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-xl-9{flex:0 0 75%;max-width:75%}.col-xl-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-xl-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.col-xl-12{flex:0 0 100%;max-width:100%}.order-xl-first{order:-1}.order-xl-last{order:13}.order-xl-0{order:0}.order-xl-1{order:1}.order-xl-2{order:2}.order-xl-3{order:3}.order-xl-4{order:4}.order-xl-5{order:5}.order-xl-6{order:6}.order-xl-7{order:7}.order-xl-8{order:8}.order-xl-9{order:9}.order-xl-10{order:10}.order-xl-11{order:11}.order-xl-12{order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.3333333333%}.offset-xl-2{margin-left:16.6666666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.3333333333%}.offset-xl-5{margin-left:41.6666666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.3333333333%}.offset-xl-8{margin-left:66.6666666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.3333333333%}.offset-xl-11{margin-left:91.6666666667%}}.table{width:100%;max-width:100%;margin-bottom:1rem;background-color:transparent}.table th,.table td{padding:.75rem;vertical-align:top;border-top:.0625rem solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:.125rem solid #dee2e6}.table tbody+tbody{border-top:.125rem solid #dee2e6}.table .table{background-color:#fff}.table-sm th,.table-sm td{padding:.3rem}.table-bordered{border:.0625rem solid #dee2e6}.table-bordered th,.table-bordered td{border:.0625rem solid #dee2e6}.table-bordered thead th,.table-bordered thead td{border-bottom-width:.125rem}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,0.05)}.table-hover tbody tr:hover{background-color:rgba(0,0,0,0.075)}.table-primary,.table-primary>th,.table-primary>td{background-color:#c3dfff}.table-hover .table-primary:hover{background-color:#aad1ff}.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#aad1ff}.table-secondary,.table-secondary>th,.table-secondary>td{background-color:#f9fbff}.table-hover .table-secondary:hover{background-color:#e0eaff}.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#e0eaff}.table-success,.table-success>th,.table-success>td{background-color:#b8efd1}.table-hover .table-success:hover{background-color:#a3eac4}.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#a3eac4}.table-info,.table-info>th,.table-info>td{background-color:#d8f9fb}.table-hover .table-info:hover{background-color:#c1f5f9}.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#c1f5f9}.table-warning,.table-warning>th,.table-warning>td{background-color:#ffc8b8}.table-hover .table-warning:hover{background-color:#ffb49f}.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffb49f}.table-danger,.table-danger>th,.table-danger>td{background-color:#ffb8c6}.table-hover .table-danger:hover{background-color:#ff9fb2}.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#ff9fb2}.table-light,.table-light>th,.table-light>td{background-color:#f9fafb}.table-hover .table-light:hover{background-color:#eaedf1}.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#eaedf1}.table-dark,.table-dark>th,.table-dark>td{background-color:#c6c8ca}.table-hover .table-dark:hover{background-color:#b9bbbe}.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-tertiary,.table-tertiary>th,.table-tertiary>td{background-color:#bfc4c9}.table-hover .table-tertiary:hover{background-color:#b1b7bd}.table-hover .table-tertiary:hover>td,.table-hover .table-tertiary:hover>th{background-color:#b1b7bd}.table-active,.table-active>th,.table-active>td{background-color:rgba(0,0,0,0.075)}.table-hover .table-active:hover{background-color:rgba(0,0,0,0.075)}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,0.075)}.table .thead-dark th{color:#fff;background-color:#212529;border-color:#32383e}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#212529}.table-dark th,.table-dark td,.table-dark thead th{border-color:#32383e}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:rgba(255,255,255,0.05)}.table-dark.table-hover tbody tr:hover{background-color:rgba(255,255,255,0.075)}@media (max-width: 575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-sm>.table-bordered{border:0}}@media (max-width: 767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-md>.table-bordered{border:0}}@media (max-width: 991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-lg>.table-bordered{border:0}}@media (max-width: 1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;padding:.75rem 1rem;font-size:.875rem;line-height:1.6;color:#495057;background-color:#fff;background-clip:padding-box;border:.0625rem solid #ced4da;border-radius:.375rem;box-shadow:none;transition:all 0.2s ease-in-out}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:focus{color:#495057;background-color:#f8f9fa;border-color:#ced4da;outline:0;box-shadow:none,0 4px 10px 0 rgba(0,0,0,0.04)}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:not([size]):not([multiple]){height:calc(2.9rem + .125rem)}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.75rem + .0625rem);padding-bottom:calc(.75rem + .0625rem);margin-bottom:0;font-size:inherit;line-height:1.6}.col-form-label-lg{padding-top:calc(.95rem + .0625rem);padding-bottom:calc(.95rem + .0625rem);font-size:1.09375rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.55rem + .0625rem);padding-bottom:calc(.55rem + .0625rem);font-size:.765625rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding-top:.75rem;padding-bottom:.75rem;margin-bottom:0;line-height:1.6;background-color:transparent;border:solid transparent;border-width:.0625rem 0}.form-control-plaintext.form-control-sm,.input-group-sm>.form-control-plaintext.form-control,.input-group-sm>.input-group-prepend>.form-control-plaintext.input-group-text,.input-group-sm>.input-group-append>.form-control-plaintext.input-group-text,.input-group-sm>.input-group-prepend>.form-control-plaintext.btn,.input-group-sm>.input-group-append>.form-control-plaintext.btn,.form-control-plaintext.form-control-lg,.input-group-lg>.form-control-plaintext.form-control,.input-group-lg>.input-group-prepend>.form-control-plaintext.input-group-text,.input-group-lg>.input-group-append>.form-control-plaintext.input-group-text,.input-group-lg>.input-group-prepend>.form-control-plaintext.btn,.input-group-lg>.input-group-append>.form-control-plaintext.btn{padding-right:0;padding-left:0}.form-control-sm,.input-group-sm>.form-control,.input-group-sm>.input-group-prepend>.input-group-text,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-append>.btn{padding:.55rem 1rem;font-size:.765625rem;line-height:1.5;border-radius:.25rem}select.form-control-sm:not([size]):not([multiple]),.input-group-sm>select.form-control:not([size]):not([multiple]),.input-group-sm>.input-group-prepend>select.input-group-text:not([size]):not([multiple]),.input-group-sm>.input-group-append>select.input-group-text:not([size]):not([multiple]),.input-group-sm>.input-group-prepend>select.btn:not([size]):not([multiple]),.input-group-sm>.input-group-append>select.btn:not([size]):not([multiple]){height:calc(2.2484375rem + .125rem)}.form-control-lg,.input-group-lg>.form-control,.input-group-lg>.input-group-prepend>.input-group-text,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-append>.btn{padding:.95rem 1rem;font-size:1.09375rem;line-height:1.5;border-radius:.375rem}select.form-control-lg:not([size]):not([multiple]),.input-group-lg>select.form-control:not([size]):not([multiple]),.input-group-lg>.input-group-prepend>select.input-group-text:not([size]):not([multiple]),.input-group-lg>.input-group-append>select.input-group-text:not([size]):not([multiple]),.input-group-lg>.input-group-prepend>select.btn:not([size]):not([multiple]),.input-group-lg>.input-group-append>select.btn:not([size]):not([multiple]){height:calc(3.540625rem + .125rem)}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:flex;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*="col-"]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled ~ .form-check-label{color:#adb5bd}.form-check-label{margin-bottom:0}.form-check-inline{display:inline-flex;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#00c759}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.5rem;margin-top:.1rem;font-size:.875rem;line-height:1;color:#fff;background-color:rgba(0,199,89,0.8);border-radius:.2rem}.was-validated .form-control:valid,.form-control.is-valid,.was-validated .custom-select:valid,.custom-select.is-valid{border:.525rem solid #00c759}.was-validated .form-control:valid:focus,.form-control.is-valid:focus,.was-validated .custom-select:valid:focus,.custom-select.is-valid:focus{border-color:#00c759;box-shadow:0 0 0 0 rgba(0,199,89,0.25)}.was-validated .form-control:valid ~ .valid-feedback,.was-validated .form-control:valid ~ .valid-tooltip,.form-control.is-valid ~ .valid-feedback,.form-control.is-valid ~ .valid-tooltip,.was-validated .custom-select:valid ~ .valid-feedback,.was-validated .custom-select:valid ~ .valid-tooltip,.custom-select.is-valid ~ .valid-feedback,.custom-select.is-valid ~ .valid-tooltip{display:block}.was-validated .form-check-input:valid ~ .form-check-label,.form-check-input.is-valid ~ .form-check-label{color:#00c759}.was-validated .form-check-input:valid ~ .valid-feedback,.was-validated .form-check-input:valid ~ .valid-tooltip,.form-check-input.is-valid ~ .valid-feedback,.form-check-input.is-valid ~ .valid-tooltip{display:block}.was-validated .custom-control-input:valid ~ .custom-control-label,.custom-control-input.is-valid ~ .custom-control-label{color:#00c759}.was-validated .custom-control-input:valid ~ .custom-control-label::before,.custom-control-input.is-valid ~ .custom-control-label::before{background-color:#48ff9a;border-color:#48ff9a}.was-validated .custom-control-input:valid ~ .valid-feedback,.was-validated .custom-control-input:valid ~ .valid-tooltip,.custom-control-input.is-valid ~ .valid-feedback,.custom-control-input.is-valid ~ .valid-tooltip{display:block}.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before,.custom-control-input.is-valid:checked ~ .custom-control-label::before{background:#00fa70 linear-gradient(180deg, #26fb85, #00fa70) repeat-x;border-color:#48ff9a}.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before,.custom-control-input.is-valid:focus ~ .custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 0 rgba(0,199,89,0.25)}.was-validated .custom-file-input:valid ~ .custom-file-label,.custom-file-input.is-valid ~ .custom-file-label{border-color:#00c759}.was-validated .custom-file-input:valid ~ .custom-file-label::before,.custom-file-input.is-valid ~ .custom-file-label::before{border-color:inherit}.was-validated .custom-file-input:valid ~ .valid-feedback,.was-validated .custom-file-input:valid ~ .valid-tooltip,.custom-file-input.is-valid ~ .valid-feedback,.custom-file-input.is-valid ~ .valid-tooltip{display:block}.was-validated .custom-file-input:valid:focus ~ .custom-file-label,.custom-file-input.is-valid:focus ~ .custom-file-label{box-shadow:0 0 0 0 rgba(0,199,89,0.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#f03}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.5rem;margin-top:.1rem;font-size:.875rem;line-height:1;color:#fff;background-color:rgba(255,0,51,0.8);border-radius:.2rem}.was-validated .form-control:invalid,.form-control.is-invalid,.was-validated .custom-select:invalid,.custom-select.is-invalid{border: .525rem solid #f03}.was-validated .form-control:invalid:focus,.form-control.is-invalid:focus,.was-validated .custom-select:invalid:focus,.custom-select.is-invalid:focus{border-color:#f03;box-shadow:0 0 0 0 rgba(255,0,51,0.25)}.was-validated .form-control:invalid ~ .invalid-feedback,.was-validated .form-control:invalid ~ .invalid-tooltip,.form-control.is-invalid ~ .invalid-feedback,.form-control.is-invalid ~ .invalid-tooltip,.was-validated .custom-select:invalid ~ .invalid-feedback,.was-validated .custom-select:invalid ~ .invalid-tooltip,.custom-select.is-invalid ~ .invalid-feedback,.custom-select.is-invalid ~ .invalid-tooltip{display:block}.was-validated .form-check-input:invalid ~ .form-check-label,.form-check-input.is-invalid ~ .form-check-label{color:#f03}.was-validated .form-check-input:invalid ~ .invalid-feedback,.was-validated .form-check-input:invalid ~ .invalid-tooltip,.form-check-input.is-invalid ~ .invalid-feedback,.form-check-input.is-invalid ~ .invalid-tooltip{display:block}.was-validated .custom-control-input:invalid ~ .custom-control-label,.custom-control-input.is-invalid ~ .custom-control-label{color:#f03}.was-validated .custom-control-input:invalid ~ .custom-control-label::before,.custom-control-input.is-invalid ~ .custom-control-label::before{background-color:#ff8099;border-color:#ff8099}.was-validated .custom-control-input:invalid ~ .invalid-feedback,.was-validated .custom-control-input:invalid ~ .invalid-tooltip,.custom-control-input.is-invalid ~ .invalid-feedback,.custom-control-input.is-invalid ~ .invalid-tooltip{display:block}.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before,.custom-control-input.is-invalid:checked ~ .custom-control-label::before{background:#ff335c linear-gradient(180deg, #ff5274, #ff335c) repeat-x;border-color:#ff8099}.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before,.custom-control-input.is-invalid:focus ~ .custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 0 rgba(255,0,51,0.25)}.was-validated .custom-file-input:invalid ~ .custom-file-label,.custom-file-input.is-invalid ~ .custom-file-label{border-color:#f03}.was-validated .custom-file-input:invalid ~ .custom-file-label::before,.custom-file-input.is-invalid ~ .custom-file-label::before{border-color:inherit}.was-validated .custom-file-input:invalid ~ .invalid-feedback,.was-validated .custom-file-input:invalid ~ .invalid-tooltip,.custom-file-input.is-invalid ~ .invalid-feedback,.custom-file-input.is-invalid ~ .invalid-tooltip{display:block}.was-validated .custom-file-input:invalid:focus ~ .custom-file-label,.custom-file-input.is-invalid:focus ~ .custom-file-label{box-shadow:0 0 0 0 rgba(255,0,51,0.25)}.form-inline{display:flex;flex-flow:row wrap;align-items:center}.form-inline .form-check{width:100%}@media (min-width: 576px){.form-inline label{display:flex;align-items:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:flex;flex:0 0 auto;flex-flow:row wrap;align-items:center;margin-bottom:0}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .input-group{width:auto}.form-inline .form-check{display:flex;align-items:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{align-items:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:600;text-align:center;white-space:nowrap;vertical-align:middle;user-select:none;border:.0625rem solid transparent;padding:.75rem 1.5rem;font-size:.875rem;line-height:1.6;border-radius:.375rem;transition:color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}.btn:hover,.btn:focus{text-decoration:none}.btn:focus,.btn.focus{outline:0;box-shadow:0 4px 10px 0 rgba(0,0,0,0.04)}.btn.disabled,.btn:disabled{opacity:.65;box-shadow:none}.btn:not(:disabled):not(.disabled){cursor:pointer}.btn:not(:disabled):not(.disabled):active,.btn:not(:disabled):not(.disabled).active{background-image:none;box-shadow:none}.btn:not(:disabled):not(.disabled):active:focus,.btn:not(:disabled):not(.disabled).active:focus{box-shadow:0 4px 10px 0 rgba(0,0,0,0.04),none}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background:#288cff linear-gradient(180deg, #489dff, #288cff) repeat-x;border-color:#288cff;box-shadow:none}.btn-primary:hover{color:#fff;background:#0278ff linear-gradient(180deg, #288cff, #0278ff) repeat-x;border-color:#0071f4}.btn-primary:focus,.btn-primary.focus{box-shadow:none,0 0 0 0 rgba(40,140,255,0.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#288cff;border-color:#288cff}.btn-primary:not(:disabled):not(.disabled):active,.btn-primary:not(:disabled):not(.disabled).active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0071f4;background-image:none;border-color:#006ce7}.btn-primary:not(:disabled):not(.disabled):active:focus,.btn-primary:not(:disabled):not(.disabled).active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:none,0 0 0 0 rgba(40,140,255,0.5)}.btn-secondary{color:#212529;background:#e8f2ff linear-gradient(180deg, #ebf4ff, #e8f2ff) repeat-x;border-color:#e8f2ff;box-shadow:none}.btn-secondary:hover{color:#212529;background:#c2dcff linear-gradient(180deg, #cbe1ff, #c2dcff) repeat-x;border-color:#b5d5ff}.btn-secondary:focus,.btn-secondary.focus{box-shadow:none,0 0 0 0 rgba(232,242,255,0.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#212529;background-color:#e8f2ff;border-color:#e8f2ff}.btn-secondary:not(:disabled):not(.disabled):active,.btn-secondary:not(:disabled):not(.disabled).active,.show>.btn-secondary.dropdown-toggle{color:#212529;background-color:#b5d5ff;background-image:none;border-color:#a8ceff}.btn-secondary:not(:disabled):not(.disabled):active:focus,.btn-secondary:not(:disabled):not(.disabled).active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:none,0 0 0 0 rgba(232,242,255,0.5)}.btn-success{color:#fff;background:#00c759 linear-gradient(180deg, #26cf72, #00c759) repeat-x;border-color:#00c759;box-shadow:none}.btn-success:hover{color:#fff;background:#00a148 linear-gradient(180deg, #26af63, #00a148) repeat-x;border-color:#009442}.btn-success:focus,.btn-success.focus{box-shadow:none,0 0 0 0 rgba(0,199,89,0.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#00c759;border-color:#00c759}.btn-success:not(:disabled):not(.disabled):active,.btn-success:not(:disabled):not(.disabled).active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#009442;background-image:none;border-color:#00873c}.btn-success:not(:disabled):not(.disabled):active:focus,.btn-success:not(:disabled):not(.disabled).active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:none,0 0 0 0 rgba(0,199,89,0.5)}.btn-info{color:#212529;background:#73e9ef linear-gradient(180deg, #88ecf1, #73e9ef) repeat-x;border-color:#73e9ef;box-shadow:none}.btn-info:hover{color:#212529;background:#51e4eb linear-gradient(180deg, #6be8ee, #51e4eb) repeat-x;border-color:#45e2ea}.btn-info:focus,.btn-info.focus{box-shadow:none,0 0 0 0 rgba(115,233,239,0.5)}.btn-info.disabled,.btn-info:disabled{color:#212529;background-color:#73e9ef;border-color:#73e9ef}.btn-info:not(:disabled):not(.disabled):active,.btn-info:not(:disabled):not(.disabled).active,.show>.btn-info.dropdown-toggle{color:#212529;background-color:#45e2ea;background-image:none;border-color:#3ae0e8}.btn-info:not(:disabled):not(.disabled):active:focus,.btn-info:not(:disabled):not(.disabled).active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:none,0 0 0 0 rgba(115,233,239,0.5)}.btn-warning{color:#fff;background:#ff3b00 linear-gradient(180deg, #ff5826, #ff3b00) repeat-x;border-color:#ff3b00;box-shadow:none}.btn-warning:hover{color:#fff;background:#d93200 linear-gradient(180deg, #df5126, #d93200) repeat-x;border-color:#cc2f00}.btn-warning:focus,.btn-warning.focus{box-shadow:none,0 0 0 0 rgba(255,59,0,0.5)}.btn-warning.disabled,.btn-warning:disabled{color:#fff;background-color:#ff3b00;border-color:#ff3b00}.btn-warning:not(:disabled):not(.disabled):active,.btn-warning:not(:disabled):not(.disabled).active,.show>.btn-warning.dropdown-toggle{color:#fff;background-color:#cc2f00;background-image:none;border-color:#bf2c00}.btn-warning:not(:disabled):not(.disabled):active:focus,.btn-warning:not(:disabled):not(.disabled).active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:none,0 0 0 0 rgba(255,59,0,0.5)}.btn-danger{color:#fff;background:#f03 linear-gradient(180deg, #ff2652, #f03) repeat-x;border-color:#f03;box-shadow:none}.btn-danger:hover{color:#fff;background:#d9002b linear-gradient(180deg, #df264b, #d9002b) repeat-x;border-color:#cc0029}.btn-danger:focus,.btn-danger.focus{box-shadow:none,0 0 0 0 rgba(255,0,51,0.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#f03;border-color:#f03}.btn-danger:not(:disabled):not(.disabled):active,.btn-danger:not(:disabled):not(.disabled).active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#cc0029;background-image:none;border-color:#bf0026}.btn-danger:not(:disabled):not(.disabled):active:focus,.btn-danger:not(:disabled):not(.disabled).active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:none,0 0 0 0 rgba(255,0,51,0.5)}.btn-light{color:#212529;background:#e9ecef linear-gradient(180deg, #eceff1, #e9ecef) repeat-x;border-color:#e9ecef;box-shadow:none}.btn-light:hover{color:#212529;background:#d3d9df linear-gradient(180deg, #dadfe4, #d3d9df) repeat-x;border-color:#cbd3da}.btn-light:focus,.btn-light.focus{box-shadow:none,0 0 0 0 rgba(233,236,239,0.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#e9ecef;border-color:#e9ecef}.btn-light:not(:disabled):not(.disabled):active,.btn-light:not(:disabled):not(.disabled).active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#cbd3da;background-image:none;border-color:#c4ccd4}.btn-light:not(:disabled):not(.disabled):active:focus,.btn-light:not(:disabled):not(.disabled).active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:none,0 0 0 0 rgba(233,236,239,0.5)}.btn-dark{color:#fff;background:#343a40 linear-gradient(180deg, #52585d, #343a40) repeat-x;border-color:#343a40;box-shadow:none}.btn-dark:hover{color:#fff;background:#23272b linear-gradient(180deg, #44474b, #23272b) repeat-x;border-color:#1d2124}.btn-dark:focus,.btn-dark.focus{box-shadow:none,0 0 0 0 rgba(52,58,64,0.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled):active,.btn-dark:not(:disabled):not(.disabled).active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;background-image:none;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled):active:focus,.btn-dark:not(:disabled):not(.disabled).active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:none,0 0 0 0 rgba(52,58,64,0.5)}.btn-tertiary{color:#fff;background:#192b3f linear-gradient(180deg, #3c4b5c, #192b3f) repeat-x;border-color:#192b3f;box-shadow:none}.btn-tertiary:hover{color:#fff;background:#0e1824 linear-gradient(180deg, #323b45, #0e1824) repeat-x;border-color:#0b121a}.btn-tertiary:focus,.btn-tertiary.focus{box-shadow:none,0 0 0 0 rgba(25,43,63,0.5)}.btn-tertiary.disabled,.btn-tertiary:disabled{color:#fff;background-color:#192b3f;border-color:#192b3f}.btn-tertiary:not(:disabled):not(.disabled):active,.btn-tertiary:not(:disabled):not(.disabled).active,.show>.btn-tertiary.dropdown-toggle{color:#fff;background-color:#0b121a;background-image:none;border-color:#070c11}.btn-tertiary:not(:disabled):not(.disabled):active:focus,.btn-tertiary:not(:disabled):not(.disabled).active:focus,.show>.btn-tertiary.dropdown-toggle:focus{box-shadow:none,0 0 0 0 rgba(25,43,63,0.5)}.btn-outline-primary{color:#288cff;background-color:transparent;background-image:none;border-color:#288cff}.btn-outline-primary:hover{color:#fff;background-color:#288cff;border-color:#288cff}.btn-outline-primary:focus,.btn-outline-primary.focus{box-shadow:0 0 0 0 rgba(40,140,255,0.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#288cff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled):active,.btn-outline-primary:not(:disabled):not(.disabled).active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#288cff;border-color:#288cff}.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 0 rgba(40,140,255,0.5)}.btn-outline-secondary{color:#e8f2ff;background-color:transparent;background-image:none;border-color:#e8f2ff}.btn-outline-secondary:hover{color:#212529;background-color:#e8f2ff;border-color:#e8f2ff}.btn-outline-secondary:focus,.btn-outline-secondary.focus{box-shadow:0 0 0 0 rgba(232,242,255,0.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#e8f2ff;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled):active,.btn-outline-secondary:not(:disabled):not(.disabled).active,.show>.btn-outline-secondary.dropdown-toggle{color:#212529;background-color:#e8f2ff;border-color:#e8f2ff}.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 0 rgba(232,242,255,0.5)}.btn-outline-success{color:#00c759;background-color:transparent;background-image:none;border-color:#00c759}.btn-outline-success:hover{color:#fff;background-color:#00c759;border-color:#00c759}.btn-outline-success:focus,.btn-outline-success.focus{box-shadow:0 0 0 0 rgba(0,199,89,0.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#00c759;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled):active,.btn-outline-success:not(:disabled):not(.disabled).active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#00c759;border-color:#00c759}.btn-outline-success:not(:disabled):not(.disabled):active:focus,.btn-outline-success:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 0 rgba(0,199,89,0.5)}.btn-outline-info{color:#73e9ef;background-color:transparent;background-image:none;border-color:#73e9ef}.btn-outline-info:hover{color:#212529;background-color:#73e9ef;border-color:#73e9ef}.btn-outline-info:focus,.btn-outline-info.focus{box-shadow:0 0 0 0 rgba(115,233,239,0.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#73e9ef;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled):active,.btn-outline-info:not(:disabled):not(.disabled).active,.show>.btn-outline-info.dropdown-toggle{color:#212529;background-color:#73e9ef;border-color:#73e9ef}.btn-outline-info:not(:disabled):not(.disabled):active:focus,.btn-outline-info:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 0 rgba(115,233,239,0.5)}.btn-outline-warning{color:#ff3b00;background-color:transparent;background-image:none;border-color:#ff3b00}.btn-outline-warning:hover{color:#fff;background-color:#ff3b00;border-color:#ff3b00}.btn-outline-warning:focus,.btn-outline-warning.focus{box-shadow:0 0 0 0 rgba(255,59,0,0.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ff3b00;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled):active,.btn-outline-warning:not(:disabled):not(.disabled).active,.show>.btn-outline-warning.dropdown-toggle{color:#fff;background-color:#ff3b00;border-color:#ff3b00}.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 0 rgba(255,59,0,0.5)}.btn-outline-danger{color:#f03;background-color:transparent;background-image:none;border-color:#f03}.btn-outline-danger:hover{color:#fff;background-color:#f03;border-color:#f03}.btn-outline-danger:focus,.btn-outline-danger.focus{box-shadow:0 0 0 0 rgba(255,0,51,0.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#f03;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled):active,.btn-outline-danger:not(:disabled):not(.disabled).active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#f03;border-color:#f03}.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 0 rgba(255,0,51,0.5)}.btn-outline-light{color:#e9ecef;background-color:transparent;background-image:none;border-color:#e9ecef}.btn-outline-light:hover{color:#212529;background-color:#e9ecef;border-color:#e9ecef}.btn-outline-light:focus,.btn-outline-light.focus{box-shadow:0 0 0 0 rgba(233,236,239,0.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#e9ecef;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled):active,.btn-outline-light:not(:disabled):not(.disabled).active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#e9ecef;border-color:#e9ecef}.btn-outline-light:not(:disabled):not(.disabled):active:focus,.btn-outline-light:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 0 rgba(233,236,239,0.5)}.btn-outline-dark{color:#343a40;background-color:transparent;background-image:none;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:focus,.btn-outline-dark.focus{box-shadow:0 0 0 0 rgba(52,58,64,0.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled):active,.btn-outline-dark:not(:disabled):not(.disabled).active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 0 rgba(52,58,64,0.5)}.btn-outline-tertiary{color:#192b3f;background-color:transparent;background-image:none;border-color:#192b3f}.btn-outline-tertiary:hover{color:#fff;background-color:#192b3f;border-color:#192b3f}.btn-outline-tertiary:focus,.btn-outline-tertiary.focus{box-shadow:0 0 0 0 rgba(25,43,63,0.5)}.btn-outline-tertiary.disabled,.btn-outline-tertiary:disabled{color:#192b3f;background-color:transparent}.btn-outline-tertiary:not(:disabled):not(.disabled):active,.btn-outline-tertiary:not(:disabled):not(.disabled).active,.show>.btn-outline-tertiary.dropdown-toggle{color:#fff;background-color:#192b3f;border-color:#192b3f}.btn-outline-tertiary:not(:disabled):not(.disabled):active:focus,.btn-outline-tertiary:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-tertiary.dropdown-toggle:focus{box-shadow:0 0 0 0 rgba(25,43,63,0.5)}.btn-link{font-weight:400;color:#288cff;background-color:transparent}.btn-link:hover{color:#0066db;text-decoration:unone;background-color:transparent;border-color:transparent}.btn-link:focus,.btn-link.focus{text-decoration:unone;border-color:transparent;box-shadow:none}.btn-link:disabled,.btn-link.disabled{color:#6c757d}.btn-lg,.btn-group-lg>.btn{padding:.95rem 1rem;font-size:1.09375rem;line-height:1.5;border-radius:.375rem}.btn-sm,.btn-group-sm>.btn{padding:.55rem 1rem;font-size:.765625rem;line-height:1.5;border-radius:.375rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{opacity:0;transition:opacity 0.15s linear}.fade.show{opacity:1}.collapse{display:none}.collapse.show{display:block}tr.collapse.show{display:table-row}tbody.collapse.show{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;transition:height 0.35s ease}.dropup,.dropdown{position:relative}.dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:.875rem;color:#495057;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:0 solid rgba(0,0,0,0.15);border-radius:.375rem;box-shadow:0 0.5rem 1rem rgba(0,0,0,0.175)}.dropup .dropdown-menu{margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-menu{margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-toggle::after{vertical-align:0}.dropleft .dropdown-menu{margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:""}.dropleft .dropdown-toggle::after{display:none}.dropleft .dropdown-toggle::before{display:inline-block;width:0;height:0;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty::after{margin-left:0}.dropleft .dropdown-toggle::before{vertical-align:0}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:hover,.dropdown-item:focus{color:#16181b;text-decoration:none;background:#f8f9fa linear-gradient(180deg, #f9fafb, #f8f9fa) repeat-x}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background:#288cff linear-gradient(180deg, #489dff, #288cff) repeat-x}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;background-color:transparent;background-image:none}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.765625rem;color:#6c757d;white-space:nowrap}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;flex:0 1 auto}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover{z-index:1}.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn.active{z-index:1}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group,.btn-group-vertical .btn+.btn,.btn-group-vertical .btn+.btn-group,.btn-group-vertical .btn-group+.btn,.btn-group-vertical .btn-group+.btn-group{margin-left:-0.0625rem}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:not(:last-child):not(.dropdown-toggle),.btn-group>.btn-group:not(:last-child)>.btn{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:not(:first-child),.btn-group>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:1.125rem;padding-left:1.125rem}.dropdown-toggle-split::after{margin-left:0}.btn-sm+.dropdown-toggle-split,.btn-group-sm>.btn+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-lg+.dropdown-toggle-split,.btn-group-lg>.btn+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group.show .dropdown-toggle{box-shadow:none}.btn-group.show .dropdown-toggle.btn-link{box-shadow:none}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical .btn,.btn-group-vertical .btn-group{width:100%}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-0.0625rem;margin-left:0}.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle),.btn-group-vertical>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:not(:first-child),.btn-group-vertical>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn input[type="radio"],.btn-group-toggle>.btn input[type="checkbox"],.btn-group-toggle>.btn-group>.btn input[type="radio"],.btn-group-toggle>.btn-group>.btn input[type="checkbox"]{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.custom-select,.input-group>.custom-file{position:relative;flex:1 1 auto;width:1%;margin-bottom:0}.input-group>.form-control:focus,.input-group>.custom-select:focus,.input-group>.custom-file:focus{z-index:3}.input-group>.form-control+.form-control,.input-group>.form-control+.custom-select,.input-group>.form-control+.custom-file,.input-group>.custom-select+.form-control,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.custom-file,.input-group>.custom-file+.form-control,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.custom-file{margin-left:-0.0625rem}.input-group>.form-control:not(:last-child),.input-group>.custom-select:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.form-control:not(:first-child),.input-group>.custom-select:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:flex;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label::before{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label,.input-group>.custom-file:not(:first-child) .custom-file-label::before{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-prepend,.input-group-append{display:flex}.input-group-prepend .btn,.input-group-append .btn{position:relative;z-index:2}.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.input-group-text,.input-group-append .input-group-text+.btn{margin-left:-0.0625rem}.input-group-prepend{margin-right:-0.0625rem}.input-group-append{margin-left:-0.0625rem}.input-group-text{display:flex;align-items:center;padding:.75rem 1rem;margin-bottom:0;font-size:.875rem;font-weight:400;line-height:1.6;color:#6c757d;text-align:center;white-space:nowrap;background-color:#f8f9fa;border:.0625rem solid #ced4da;border-radius:.375rem}.input-group-text input[type="radio"],.input-group-text input[type="checkbox"]{margin-top:0}.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text,.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.6rem;padding-left:1.75rem}.custom-control-inline{display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;z-index:-1;opacity:0}.custom-control-input:checked ~ .custom-control-label::before{color:#fff;background:#288cff linear-gradient(180deg, #489dff, #288cff) repeat-x;box-shadow:none}.custom-control-input:focus ~ .custom-control-label::before{box-shadow:0 0 0 1px #fff,0 4px 10px 0 rgba(0,0,0,0.04)}.custom-control-input:active ~ .custom-control-label::before{color:#fff;background-color:#288cff;box-shadow:none}.custom-control-input:disabled ~ .custom-control-label{color:#6c757d}.custom-control-input:disabled ~ .custom-control-label::before{background-color:#e9ecef}.custom-control-label{margin-bottom:0}.custom-control-label::before{position:absolute;top:.175rem;left:0;display:block;width:1.25rem;height:1.25rem;pointer-events:none;content:"";user-select:none;background-color:#fff;box-shadow:none}.custom-control-label::after{position:absolute;top:.175rem;left:0;display:block;width:1.25rem;height:1.25rem;content:"";background-repeat:no-repeat;background-position:center center;background-size:50% 50%}.custom-checkbox .custom-control-label::before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked ~ .custom-control-label::before{background:#288cff linear-gradient(180deg, #489dff, #288cff) repeat-x}.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before{background:#288cff linear-gradient(180deg, #489dff, #288cff) repeat-x;box-shadow:none}.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E")}.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before{background-color:rgba(40,140,255,0.5)}.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before{background-color:rgba(40,140,255,0.5)}.custom-radio .custom-control-label::before{border-radius:50%}.custom-radio .custom-control-input:checked ~ .custom-control-label::before{background:#288cff linear-gradient(180deg, #489dff, #288cff) repeat-x}.custom-radio .custom-control-input:checked ~ .custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E")}.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before{background-color:rgba(40,140,255,0.5)}.custom-select{display:inline-block;width:100%;height:calc(2.9rem + .125rem);padding:.375rem 1.75rem .375rem .75rem;line-height:1.6;color:#495057;vertical-align:middle;background:#fff url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right .75rem center;background-size:8px 10px;border:.0625rem solid #ced4da;border-radius:.375rem;appearance:none}.custom-select:focus{border-color:#ced4da;outline:0;box-shadow:inset 0 1px 2px rgba(0,0,0,0.075),0 0 5px rgba(206,212,218,0.5)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size="1"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{opacity:0}.custom-select-sm{height:calc(2.2484375rem + .125rem);padding-top:.375rem;padding-bottom:.375rem;font-size:75%}.custom-select-lg{height:calc(3.540625rem + .125rem);padding-top:.375rem;padding-bottom:.375rem;font-size:125%}.custom-file{position:relative;display:inline-block;width:100%;height:calc(2.9rem + .125rem);margin-bottom:0}.custom-file-input{position:relative;z-index:2;width:100%;height:calc(2.9rem + .125rem);margin:0;opacity:0}.custom-file-input:focus ~ .custom-file-control{border-color:#ced4da;box-shadow:0 4px 10px 0 rgba(0,0,0,0.04)}.custom-file-input:focus ~ .custom-file-control::before{border-color:#ced4da}.custom-file-input:lang(en) ~ .custom-file-label::after{content:"Browse"}.custom-file-label{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(2.9rem + .125rem);padding:.75rem 1rem;line-height:1.6;color:#495057;background-color:#fff;border:.0625rem solid #ced4da;border-radius:.375rem;box-shadow:none}.custom-file-label::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:calc(calc(2.9rem + .125rem) - .0625rem * 2);padding:.75rem 1rem;line-height:1.6;color:#495057;content:"Browse";background:#f8f9fa linear-gradient(180deg, #f9fafb, #f8f9fa) repeat-x;border-left:.0625rem solid #ced4da;border-radius:0 .375rem .375rem 0}.nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:hover,.nav-link:focus{text-decoration:none}.nav-link.disabled{color:#6c757d}.nav-tabs{border-bottom:.0625rem solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-0.0625rem}.nav-tabs .nav-link{border:.0625rem solid transparent;border-top-left-radius:.375rem;border-top-right-radius:.375rem}.nav-tabs .nav-link:hover,.nav-tabs .nav-link:focus{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-link.active,.nav-tabs .nav-item.show .nav-link{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-0.0625rem;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.375rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#288cff;background-color:transparent}.nav-fill .nav-item{flex:1 1 auto;text-align:center}.nav-justified .nav-item{flex-basis:0;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:.5rem 1rem}.navbar>.container,.navbar>.container-fluid{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.325rem;padding-bottom:.325rem;margin-right:1rem;font-size:1.09375rem;line-height:inherit;white-space:nowrap}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}.navbar-nav{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.09375rem;line-height:1;background-color:transparent;border:.0625rem solid transparent;border-radius:.375rem}.navbar-toggler:hover,.navbar-toggler:focus{text-decoration:none}.navbar-toggler:not(:disabled):not(.disabled){cursor:pointer}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:no-repeat center center;background-size:100% 100%}@media (max-width: 575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{padding-right:0;padding-left:0}}@media (min-width: 576px){.navbar-expand-sm{flex-flow:row 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 .dropdown-menu-right{right:0;left:auto}.navbar-expand-sm .navbar-nav .nav-link{padding-right:1rem;padding-left:1rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .dropup .dropdown-menu{top:auto;bottom:100%}}@media (max-width: 767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{padding-right:0;padding-left:0}}@media (min-width: 768px){.navbar-expand-md{flex-flow:row 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 .dropdown-menu-right{right:0;left:auto}.navbar-expand-md .navbar-nav .nav-link{padding-right:1rem;padding-left:1rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .dropup .dropdown-menu{top:auto;bottom:100%}}@media (max-width: 991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{padding-right:0;padding-left:0}}@media (min-width: 992px){.navbar-expand-lg{flex-flow:row 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 .dropdown-menu-right{right:0;left:auto}.navbar-expand-lg .navbar-nav .nav-link{padding-right:1rem;padding-left:1rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .dropup .dropdown-menu{top:auto;bottom:100%}}@media (max-width: 1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{padding-right:0;padding-left:0}}@media (min-width: 1200px){.navbar-expand-xl{flex-flow:row 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 .dropdown-menu-right{right:0;left:auto}.navbar-expand-xl .navbar-nav .nav-link{padding-right:1rem;padding-left:1rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .dropup .dropdown-menu{top:auto;bottom:100%}}.navbar-expand{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .dropdown-menu-right{right:0;left:auto}.navbar-expand .navbar-nav .nav-link{padding-right:1rem;padding-left:1rem}.navbar-expand>.container,.navbar-expand>.container-fluid{flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .dropup .dropdown-menu{top:auto;bottom:100%}.navbar-light .navbar-brand{color:rgba(0,0,0,0.9)}.navbar-light .navbar-brand:hover,.navbar-light .navbar-brand:focus{color:rgba(0,0,0,0.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,0.5)}.navbar-light .navbar-nav .nav-link:hover,.navbar-light .navbar-nav .nav-link:focus{color:rgba(0,0,0,0.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,0.3)}.navbar-light .navbar-nav .show>.nav-link,.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .nav-link.active{color:rgba(0,0,0,0.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,0.5);border-color:rgba(0,0,0,0.1)}.navbar-light .navbar-toggler-icon{background-image:str-replace(url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(0,0,0,0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E"), "#", "%23")}.navbar-light .navbar-text{color:rgba(0,0,0,0.5)}.navbar-light .navbar-text a{color:rgba(0,0,0,0.9)}.navbar-light .navbar-text a:hover,.navbar-light .navbar-text a:focus{color:rgba(0,0,0,0.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:hover,.navbar-dark .navbar-brand:focus{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,0.5)}.navbar-dark .navbar-nav .nav-link:hover,.navbar-dark .navbar-nav .nav-link:focus{color:rgba(255,255,255,0.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,0.25)}.navbar-dark .navbar-nav .show>.nav-link,.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .nav-link.active{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,0.5);border-color:transparent}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255,255,255,0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.navbar-dark .navbar-text{color:rgba(255,255,255,0.5)}.navbar-dark .navbar-text a{color:#fff}.navbar-dark .navbar-text a:hover,.navbar-dark .navbar-text a:focus{color:#fff}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:.0625rem solid rgba(0,0,0,0.05);border-radius:.375rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.375rem;border-top-right-radius:.375rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.375rem;border-bottom-left-radius:.375rem}.card-body{flex:1 1 auto;padding:1.5rem}.card-title{margin-bottom:1.25rem}.card-subtitle{margin-top:-0.625rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.5rem}.card-header{padding:1.25rem 1.5rem;margin-bottom:0;background-color:#fff;border-bottom:.0625rem solid rgba(0,0,0,0.05)}.card-header:first-child{border-radius:calc(.375rem - .0625rem) calc(.375rem - .0625rem) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:1.25rem 1.5rem;background-color:#fff;border-top:.0625rem solid rgba(0,0,0,0.05)}.card-footer:last-child{border-radius:0 0 calc(.375rem - .0625rem) calc(.375rem - .0625rem)}.card-header-tabs{margin-right:-0.75rem;margin-bottom:-1.25rem;margin-left:-0.75rem;border-bottom:0}.card-header-pills{margin-right:-0.75rem;margin-left:-0.75rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img{width:100%;border-radius:calc(.375rem - .0625rem)}.card-img-top{width:100%;border-top-left-radius:calc(.375rem - .0625rem);border-top-right-radius:calc(.375rem - .0625rem)}.card-img-bottom{width:100%;border-bottom-right-radius:calc(.375rem - .0625rem);border-bottom-left-radius:calc(.375rem - .0625rem)}.card-deck{display:flex;flex-direction:column}.card-deck .card{margin-bottom:15px}@media (min-width: 576px){.card-deck{flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{display:flex;flex:1 0 0%;flex-direction:column;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group{display:flex;flex-direction:column}.card-group>.card{margin-bottom:15px}@media (min-width: 576px){.card-group{flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:first-child .card-img-top,.card-group>.card:first-child .card-header{border-top-right-radius:0}.card-group>.card:first-child .card-img-bottom,.card-group>.card:first-child .card-footer{border-bottom-right-radius:0}.card-group>.card:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:last-child .card-img-top,.card-group>.card:last-child .card-header{border-top-left-radius:0}.card-group>.card:last-child .card-img-bottom,.card-group>.card:last-child .card-footer{border-bottom-left-radius:0}.card-group>.card:only-child{border-radius:.375rem}.card-group>.card:only-child .card-img-top,.card-group>.card:only-child .card-header{border-top-left-radius:.375rem;border-top-right-radius:.375rem}.card-group>.card:only-child .card-img-bottom,.card-group>.card:only-child .card-footer{border-bottom-right-radius:.375rem;border-bottom-left-radius:.375rem}.card-group>.card:not(:first-child):not(:last-child):not(:only-child){border-radius:0}.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-img-top,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-img-bottom,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-header,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-footer{border-radius:0}}.card-columns .card{margin-bottom:1.25rem}@media (min-width: 576px){.card-columns{column-count:3;column-gap:1.25rem}.card-columns .card{display:inline-block;width:100%}}.breadcrumb{display:flex;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.375rem}.breadcrumb-item+.breadcrumb-item::before{display:inline-block;padding-right:.5rem;padding-left:.5rem;color:#6c757d;content:"/"}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:underline}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:flex;padding-left:0;list-style:none;border-radius:.375rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-0.0625rem;line-height:1.25;color:#6c757d;background-color:#fff;border:.0625rem solid #dee2e6}.page-link:hover{color:#6c757d;text-decoration:none;background-color:#dee2e6;border-color:#dee2e6}.page-link:focus{z-index:2;outline:0;box-shadow:0 4px 10px 0 rgba(0,0,0,0.04)}.page-link:not(:disabled):not(.disabled){cursor:pointer}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.375rem;border-bottom-left-radius:.375rem}.page-item:last-child .page-link{border-top-right-radius:.375rem;border-bottom-right-radius:.375rem}.page-item.active .page-link{z-index:1;color:#fff;background-color:#288cff;border-color:#288cff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.09375rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.375rem;border-bottom-left-radius:.375rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.375rem;border-bottom-right-radius:.375rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.765625rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.badge{display:inline-block;padding:.25rem .375rem;font-size:65%;font-weight:600;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.375rem}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.65em;padding-left:.65em;border-radius:10rem}.badge-primary{color:#fff;background-color:#288cff}.badge-primary[href]:hover,.badge-primary[href]:focus{color:#fff;text-decoration:none;background-color:#0071f4}.badge-secondary{color:#212529;background-color:#e8f2ff}.badge-secondary[href]:hover,.badge-secondary[href]:focus{color:#212529;text-decoration:none;background-color:#b5d5ff}.badge-success{color:#fff;background-color:#00c759}.badge-success[href]:hover,.badge-success[href]:focus{color:#fff;text-decoration:none;background-color:#009442}.badge-info{color:#212529;background-color:#73e9ef}.badge-info[href]:hover,.badge-info[href]:focus{color:#212529;text-decoration:none;background-color:#45e2ea}.badge-warning{color:#fff;background-color:#ff3b00}.badge-warning[href]:hover,.badge-warning[href]:focus{color:#fff;text-decoration:none;background-color:#cc2f00}.badge-danger{color:#fff;background-color:#f03}.badge-danger[href]:hover,.badge-danger[href]:focus{color:#fff;text-decoration:none;background-color:#cc0029}.badge-light{color:#212529;background-color:#e9ecef}.badge-light[href]:hover,.badge-light[href]:focus{color:#212529;text-decoration:none;background-color:#cbd3da}.badge-dark{color:#fff;background-color:#343a40}.badge-dark[href]:hover,.badge-dark[href]:focus{color:#fff;text-decoration:none;background-color:#1d2124}.badge-tertiary{color:#fff;background-color:#192b3f}.badge-tertiary[href]:hover,.badge-tertiary[href]:focus{color:#fff;text-decoration:none;background-color:#0b121a}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.375rem}@media (min-width: 576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:1rem 1.5rem;margin-bottom:1rem;border:.0625rem solid transparent;border-radius:.375rem}.alert-heading{color:inherit}.alert-link{font-weight:600}.alert-dismissible{padding-right:4.3125rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:1rem 1.5rem;color:inherit}.alert-primary{color:#fff;background:#4a9eff linear-gradient(180deg, #65adff, #4a9eff) repeat-x;border-color:#4a9eff}.alert-primary hr{border-top-color:#3190ff}.alert-primary .alert-link{color:#0071f4}.alert-secondary{color:#212529;background:#ecf4ff linear-gradient(180deg, #eff6ff, #ecf4ff) repeat-x;border-color:#ecf4ff}.alert-secondary hr{border-top-color:#d3e5ff}.alert-secondary .alert-link{color:#b5d5ff}.alert-success{color:#fff;background:#29d074 linear-gradient(180deg, #49d789, #29d074) repeat-x;border-color:#29d074}.alert-success hr{border-top-color:#25bb68}.alert-success .alert-link{color:#009442}.alert-info{color:#212529;background:#89edf2 linear-gradient(180deg, #9bf0f4, #89edf2) repeat-x;border-color:#89edf2}.alert-info hr{border-top-color:#72e9ef}.alert-info .alert-link{color:#45e2ea}.alert-warning{color:#fff;background:#ff5a29 linear-gradient(180deg, #ff7349, #ff5a29) repeat-x;border-color:#ff5a29}.alert-warning hr{border-top-color:#ff4610}.alert-warning .alert-link{color:#cc2f00}.alert-danger{color:#fff;background:#ff2954 linear-gradient(180deg, #ff496e, #ff2954) repeat-x;border-color:#ff2954}.alert-danger hr{border-top-color:#ff1040}.alert-danger .alert-link{color:#cc0029}.alert-light{color:#212529;background:#edeff2 linear-gradient(180deg, #f0f1f4, #edeff2) repeat-x;border-color:#edeff2}.alert-light hr{border-top-color:#dee2e7}.alert-light .alert-link{color:#cbd3da}.alert-dark{color:#fff;background:#545a5f linear-gradient(180deg, #6e7377, #545a5f) repeat-x;border-color:#545a5f}.alert-dark hr{border-top-color:#484d51}.alert-dark .alert-link{color:#1d2124}.alert-tertiary{color:#fff;background:#3e4d5e linear-gradient(180deg, #5b6876, #3e4d5e) repeat-x;border-color:#3e4d5e}.alert-tertiary hr{border-top-color:#34404f}.alert-tertiary .alert-link{color:#0b121a}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress{display:flex;height:1rem;overflow:hidden;font-size:.65625rem;background-color:#e9ecef;border-radius:.375rem;box-shadow:inset 0 0.1rem 0.1rem rgba(0,0,0,0.1)}.progress-bar{display:flex;flex-direction:column;justify-content:center;color:#fff;text-align:center;background-color:#288cff;transition:width 0.6s ease}.progress-bar-striped{background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-size:1rem 1rem}.progress-bar-animated{animation:progress-bar-stripes 1s linear infinite}.media{display:flex;align-items:flex-start}.media-body{flex:1}.list-group{display:flex;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:hover,.list-group-item-action:focus{color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#495057;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;margin-bottom:-0.0625rem;background-color:#fff;border:.0625rem solid rgba(0,0,0,0.125)}.list-group-item:first-child{border-top-left-radius:.375rem;border-top-right-radius:.375rem}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:.375rem;border-bottom-left-radius:.375rem}.list-group-item:hover,.list-group-item:focus{z-index:1;text-decoration:none}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#288cff;border-color:#288cff}.list-group-flush .list-group-item{border-right:0;border-left:0;border-radius:0}.list-group-flush:first-child .list-group-item:first-child{border-top:0}.list-group-flush:last-child .list-group-item:last-child{border-bottom:0}.list-group-item-primary{color:#154985;background-color:#c3dfff}.list-group-item-primary.list-group-item-action:hover,.list-group-item-primary.list-group-item-action:focus{color:#154985;background-color:#aad1ff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#154985;border-color:#154985}.list-group-item-secondary{color:#797e85;background-color:#f9fbff}.list-group-item-secondary.list-group-item-action:hover,.list-group-item-secondary.list-group-item-action:focus{color:#797e85;background-color:#e0eaff}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#797e85;border-color:#797e85}.list-group-item-success{color:#00672e;background-color:#b8efd1}.list-group-item-success.list-group-item-action:hover,.list-group-item-success.list-group-item-action:focus{color:#00672e;background-color:#a3eac4}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#00672e;border-color:#00672e}.list-group-item-info{color:#3c797c;background-color:#d8f9fb}.list-group-item-info.list-group-item-action:hover,.list-group-item-info.list-group-item-action:focus{color:#3c797c;background-color:#c1f5f9}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#3c797c;border-color:#3c797c}.list-group-item-warning{color:#851f00;background-color:#ffc8b8}.list-group-item-warning.list-group-item-action:hover,.list-group-item-warning.list-group-item-action:focus{color:#851f00;background-color:#ffb49f}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#851f00;border-color:#851f00}.list-group-item-danger{color:#85001b;background-color:#ffb8c6}.list-group-item-danger.list-group-item-action:hover,.list-group-item-danger.list-group-item-action:focus{color:#85001b;background-color:#ff9fb2}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#85001b;border-color:#85001b}.list-group-item-light{color:#797b7c;background-color:#f9fafb}.list-group-item-light.list-group-item-action:hover,.list-group-item-light.list-group-item-action:focus{color:#797b7c;background-color:#eaedf1}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#797b7c;border-color:#797b7c}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:hover,.list-group-item-dark.list-group-item-action:focus{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.list-group-item-tertiary{color:#0d1621;background-color:#bfc4c9}.list-group-item-tertiary.list-group-item-action:hover,.list-group-item-tertiary.list-group-item-action:focus{color:#0d1621;background-color:#b1b7bd}.list-group-item-tertiary.list-group-item-action.active{color:#fff;background-color:#0d1621;border-color:#0d1621}.close{float:right;font-size:1.3125rem;font-weight:600;line-height:1;color:rgba(255,255,255,0.6);text-shadow:none;opacity:.5}.close:hover,.close:focus{color:rgba(255,255,255,0.6);text-decoration:none;opacity:.75}.close:not(:disabled):not(.disabled){cursor:pointer}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;outline:0}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:transform 0.3s ease-out;transform:translate(0, -25%)}.modal.show .modal-dialog{transform:translate(0, 0)}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - (.5rem * 2))}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,0.2);border-radius:.375rem;box-shadow:0 0.25rem 0.5rem rgba(0,0,0,0.5);outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.3}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:1.25rem;border-bottom:1px solid #e9ecef;border-top-left-radius:.375rem;border-top-right-radius:.375rem}.modal-header .close{padding:1.25rem;margin:-1.25rem -1.25rem -1.25rem auto}.modal-title{margin-bottom:0;line-height:1.6}.modal-body{position:relative;flex:1 1 auto;padding:1.5rem}.modal-footer{display:flex;align-items:center;justify-content:flex-end;padding:1.5rem;border-top:1px solid #e9ecef}.modal-footer>:not(:first-child){margin-left:.25rem}.modal-footer>:not(:last-child){margin-right:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width: 576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-centered{min-height:calc(100% - (1.75rem * 2))}.modal-content{box-shadow:0 0.5rem 1rem rgba(0,0,0,0.5)}.modal-sm{max-width:300px}}@media (min-width: 992px){.modal-lg{max-width:800px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:"Nunito",sans-serif;font-style:normal;font-weight:400;line-height:1.6;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.765625rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-top,.bs-tooltip-auto[x-placement^="top"]{padding:.4rem 0}.bs-tooltip-top .arrow,.bs-tooltip-auto[x-placement^="top"] .arrow{bottom:0}.bs-tooltip-top .arrow::before,.bs-tooltip-auto[x-placement^="top"] .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-right,.bs-tooltip-auto[x-placement^="right"]{padding:0 .4rem}.bs-tooltip-right .arrow,.bs-tooltip-auto[x-placement^="right"] .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-right .arrow::before,.bs-tooltip-auto[x-placement^="right"] .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-bottom,.bs-tooltip-auto[x-placement^="bottom"]{padding:.4rem 0}.bs-tooltip-bottom .arrow,.bs-tooltip-auto[x-placement^="bottom"] .arrow{top:0}.bs-tooltip-bottom .arrow::before,.bs-tooltip-auto[x-placement^="bottom"] .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-left,.bs-tooltip-auto[x-placement^="left"]{padding:0 .4rem}.bs-tooltip-left .arrow,.bs-tooltip-auto[x-placement^="left"] .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-left .arrow::before,.bs-tooltip-auto[x-placement^="left"] .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.375rem}.popover{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:276px;font-family:"Nunito",sans-serif;font-style:normal;font-weight:400;line-height:1.6;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.765625rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,0.05);border-radius:.375rem;box-shadow:0px 0.5rem 2rem 0px rgba(0,0,0,0.2)}.popover .arrow{position:absolute;display:block;width:1.5rem;height:.75rem;margin:0 .375rem}.popover .arrow::before,.popover .arrow::after{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-top,.bs-popover-auto[x-placement^="top"]{margin-bottom:.75rem}.bs-popover-top .arrow,.bs-popover-auto[x-placement^="top"] .arrow{bottom:calc((.75rem + 1px) * -1)}.bs-popover-top .arrow::before,.bs-popover-auto[x-placement^="top"] .arrow::before,.bs-popover-top .arrow::after,.bs-popover-auto[x-placement^="top"] .arrow::after{border-width:.75rem .75rem 0}.bs-popover-top .arrow::before,.bs-popover-auto[x-placement^="top"] .arrow::before{bottom:0;border-top-color:transparent}.bs-popover-top .arrow::after,.bs-popover-auto[x-placement^="top"] .arrow::after{bottom:1px;border-top-color:#fff}.bs-popover-right,.bs-popover-auto[x-placement^="right"]{margin-left:.75rem}.bs-popover-right .arrow,.bs-popover-auto[x-placement^="right"] .arrow{left:calc((.75rem + 1px) * -1);width:.75rem;height:1.5rem;margin:.375rem 0}.bs-popover-right .arrow::before,.bs-popover-auto[x-placement^="right"] .arrow::before,.bs-popover-right .arrow::after,.bs-popover-auto[x-placement^="right"] .arrow::after{border-width:.75rem .75rem .75rem 0}.bs-popover-right .arrow::before,.bs-popover-auto[x-placement^="right"] .arrow::before{left:0;border-right-color:transparent}.bs-popover-right .arrow::after,.bs-popover-auto[x-placement^="right"] .arrow::after{left:1px;border-right-color:#fff}.bs-popover-bottom,.bs-popover-auto[x-placement^="bottom"]{margin-top:.75rem}.bs-popover-bottom .arrow,.bs-popover-auto[x-placement^="bottom"] .arrow{top:calc((.75rem + 1px) * -1)}.bs-popover-bottom .arrow::before,.bs-popover-auto[x-placement^="bottom"] .arrow::before,.bs-popover-bottom .arrow::after,.bs-popover-auto[x-placement^="bottom"] .arrow::after{border-width:0 .75rem .75rem .75rem}.bs-popover-bottom .arrow::before,.bs-popover-auto[x-placement^="bottom"] .arrow::before{top:0;border-bottom-color:transparent}.bs-popover-bottom .arrow::after,.bs-popover-auto[x-placement^="bottom"] .arrow::after{top:1px;border-bottom-color:#fff}.bs-popover-bottom .popover-header::before,.bs-popover-auto[x-placement^="bottom"] .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1.5rem;margin-left:-.75rem;content:"";border-bottom:1px solid #fff}.bs-popover-left,.bs-popover-auto[x-placement^="left"]{margin-right:.75rem}.bs-popover-left .arrow,.bs-popover-auto[x-placement^="left"] .arrow{right:calc((.75rem + 1px) * -1);width:.75rem;height:1.5rem;margin:.375rem 0}.bs-popover-left .arrow::before,.bs-popover-auto[x-placement^="left"] .arrow::before,.bs-popover-left .arrow::after,.bs-popover-auto[x-placement^="left"] .arrow::after{border-width:.75rem 0 .75rem .75rem}.bs-popover-left .arrow::before,.bs-popover-auto[x-placement^="left"] .arrow::before{right:0;border-left-color:transparent}.bs-popover-left .arrow::after,.bs-popover-auto[x-placement^="left"] .arrow::after{right:1px;border-left-color:#fff}.popover-header{padding:.75rem .75rem;margin-bottom:0;font-size:.875rem;color:#343a40;background-color:#fff;border-bottom:1px solid #f2f2f2;border-top-left-radius:calc(.375rem - 1px);border-top-right-radius:calc(.375rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.75rem .75rem;color:#495057}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-item{position:relative;display:none;align-items:center;width:100%;transition:transform 0.6s ease;backface-visibility:hidden;perspective:1000px}.carousel-item.active,.carousel-item-next,.carousel-item-prev{display:block}.carousel-item-next,.carousel-item-prev{position:absolute;top:0}.carousel-item-next.carousel-item-left,.carousel-item-prev.carousel-item-right{transform:translateX(0)}@supports (transform-style: preserve-3d){.carousel-item-next.carousel-item-left,.carousel-item-prev.carousel-item-right{transform:translate3d(0, 0, 0)}}.carousel-item-next,.active.carousel-item-right{transform:translateX(100%)}@supports (transform-style: preserve-3d){.carousel-item-next,.active.carousel-item-right{transform:translate3d(100%, 0, 0)}}.carousel-item-prev,.active.carousel-item-left{transform:translateX(-100%)}@supports (transform-style: preserve-3d){.carousel-item-prev,.active.carousel-item-left{transform:translate3d(-100%, 0, 0)}}.carousel-control-prev,.carousel-control-next{position:absolute;top:0;bottom:0;display:flex;align-items:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5}.carousel-control-prev:hover,.carousel-control-prev:focus,.carousel-control-next:hover,.carousel-control-next:focus{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0;background:linear-gradient(90deg, rgba(0,0,0,0.25), rgba(0,0,0,0.001))}.carousel-control-next{right:0;background:linear-gradient(270deg, rgba(0,0,0,0.25), rgba(0,0,0,0.001))}.carousel-control-prev-icon,.carousel-control-next-icon{display:inline-block;width:20px;height:20px;background:transparent no-repeat center center;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E")}.carousel-control-next-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E")}.carousel-indicators{position:absolute;right:0;bottom:10px;left:0;z-index:15;display:flex;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{position:relative;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;background-color:rgba(255,255,255,0.5)}.carousel-indicators li::before{position:absolute;top:-10px;left:0;display:inline-block;width:100%;height:10px;content:""}.carousel-indicators li::after{position:absolute;bottom:-10px;left:0;display:inline-block;width:100%;height:10px;content:""}.carousel-indicators .active{background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}.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}.bg-primary{background-color:#288cff !important}a.bg-primary:hover,a.bg-primary:focus,button.bg-primary:hover,button.bg-primary:focus{background-color:#0071f4 !important}.bg-secondary{background-color:#e8f2ff !important}a.bg-secondary:hover,a.bg-secondary:focus,button.bg-secondary:hover,button.bg-secondary:focus{background-color:#b5d5ff !important}.bg-success{background-color:#00c759 !important}a.bg-success:hover,a.bg-success:focus,button.bg-success:hover,button.bg-success:focus{background-color:#009442 !important}.bg-info{background-color:#73e9ef !important}a.bg-info:hover,a.bg-info:focus,button.bg-info:hover,button.bg-info:focus{background-color:#45e2ea !important}.bg-warning{background-color:#ff3b00 !important}a.bg-warning:hover,a.bg-warning:focus,button.bg-warning:hover,button.bg-warning:focus{background-color:#cc2f00 !important}.bg-danger{background-color:#f03 !important}a.bg-danger:hover,a.bg-danger:focus,button.bg-danger:hover,button.bg-danger:focus{background-color:#cc0029 !important}.bg-light{background-color:#e9ecef !important}a.bg-light:hover,a.bg-light:focus,button.bg-light:hover,button.bg-light:focus{background-color:#cbd3da !important}.bg-dark{background-color:#343a40 !important}a.bg-dark:hover,a.bg-dark:focus,button.bg-dark:hover,button.bg-dark:focus{background-color:#1d2124 !important}.bg-tertiary{background-color:#192b3f !important}a.bg-tertiary:hover,a.bg-tertiary:focus,button.bg-tertiary:hover,button.bg-tertiary:focus{background-color:#0b121a !important}.bg-gradient-primary{background:#288cff linear-gradient(180deg, #489dff, #288cff) repeat-x !important}.bg-gradient-secondary{background:#e8f2ff linear-gradient(180deg, #ebf4ff, #e8f2ff) repeat-x !important}.bg-gradient-success{background:#00c759 linear-gradient(180deg, #26cf72, #00c759) repeat-x !important}.bg-gradient-info{background:#73e9ef linear-gradient(180deg, #88ecf1, #73e9ef) repeat-x !important}.bg-gradient-warning{background:#ff3b00 linear-gradient(180deg, #ff5826, #ff3b00) repeat-x !important}.bg-gradient-danger{background:#f03 linear-gradient(180deg, #ff2652, #f03) repeat-x !important}.bg-gradient-light{background:#e9ecef linear-gradient(180deg, #eceff1, #e9ecef) repeat-x !important}.bg-gradient-dark{background:#343a40 linear-gradient(180deg, #52585d, #343a40) repeat-x !important}.bg-gradient-tertiary{background:#192b3f linear-gradient(180deg, #3c4b5c, #192b3f) repeat-x !important}.bg-white{background-color:#fff !important}.bg-transparent{background-color:transparent !important}.border{border:.0625rem solid #e9ecef !important}.border-top{border-top:.0625rem solid #e9ecef !important}.border-right{border-right:.0625rem solid #e9ecef !important}.border-bottom{border-bottom:.0625rem solid #e9ecef !important}.border-left{border-left:.0625rem solid #e9ecef !important}.border-0{border:0 !important}.border-top-0{border-top:0 !important}.border-right-0{border-right:0 !important}.border-bottom-0{border-bottom:0 !important}.border-left-0{border-left:0 !important}.border-primary{border-color:#288cff !important}.border-secondary{border-color:#e8f2ff !important}.border-success{border-color:#00c759 !important}.border-info{border-color:#73e9ef !important}.border-warning{border-color:#ff3b00 !important}.border-danger{border-color:#f03 !important}.border-light{border-color:#e9ecef !important}.border-dark{border-color:#343a40 !important}.border-tertiary{border-color:#192b3f !important}.border-white{border-color:#fff !important}.rounded{border-radius:.375rem !important}.rounded-top{border-top-left-radius:.375rem !important;border-top-right-radius:.375rem !important}.rounded-right{border-top-right-radius:.375rem !important;border-bottom-right-radius:.375rem !important}.rounded-bottom{border-bottom-right-radius:.375rem !important;border-bottom-left-radius:.375rem !important}.rounded-left{border-top-left-radius:.375rem !important;border-bottom-left-radius:.375rem !important}.rounded-circle{border-radius:50% !important}.rounded-0{border-radius:0 !important}.clearfix::after{display:block;clear:both;content:""}.d-none{display:none !important}.d-inline{display:inline !important}.d-inline-block{display:inline-block !important}.d-block{display:block !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}@media (min-width: 576px){.d-sm-none{display:none !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-block{display:block !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}}@media (min-width: 768px){.d-md-none{display:none !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-block{display:block !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}}@media (min-width: 992px){.d-lg-none{display:none !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-block{display:block !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}}@media (min-width: 1200px){.d-xl-none{display:none !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-block{display:block !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}}@media print{.d-print-none{display:none !important}.d-print-inline{display:inline !important}.d-print-inline-block{display:inline-block !important}.d-print-block{display:block !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}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive::before{display:block;content:""}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9::before{padding-top:42.8571428571%}.embed-responsive-16by9::before{padding-top:56.25%}.embed-responsive-4by3::before{padding-top:75%}.embed-responsive-1by1::before{padding-top:100%}.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-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}.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}@media (min-width: 576px){.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-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}.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}}@media (min-width: 768px){.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-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}.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}}@media (min-width: 992px){.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-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}.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}}@media (min-width: 1200px){.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-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}.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}}.float-left{float:left !important}.float-right{float:right !important}.float-none{float:none !important}@media (min-width: 576px){.float-sm-left{float:left !important}.float-sm-right{float:right !important}.float-sm-none{float:none !important}}@media (min-width: 768px){.float-md-left{float:left !important}.float-md-right{float:right !important}.float-md-none{float:none !important}}@media (min-width: 992px){.float-lg-left{float:left !important}.float-lg-right{float:right !important}.float-lg-none{float:none !important}}@media (min-width: 1200px){.float-xl-left{float:left !important}.float-xl-right{float:right !important}.float-xl-none{float:none !important}}.position-static{position:static !important}.position-relative{position:relative !important}.position-absolute{position:absolute !important}.position-fixed{position:fixed !important}.position-sticky{position:sticky !important}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}@supports (position: sticky){.sticky-top{position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;clip-path:inset(50%);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal;clip-path:none}.w-25{width:25% !important}.w-50{width:50% !important}.w-75{width:75% !important}.w-100{width:100% !important}.h-25{height:25% !important}.h-50{height:50% !important}.h-75{height:75% !important}.h-100{height:100% !important}.mw-100{max-width:100% !important}.mh-100{max-height:100% !important}.m-0{margin:0 !important}.mt-0,.my-0{margin-top:0 !important}.mr-0,.mx-0{margin-right:0 !important}.mb-0,.my-0{margin-bottom:0 !important}.ml-0,.mx-0{margin-left:0 !important}.m-1{margin:.25rem !important}.mt-1,.my-1{margin-top:.25rem !important}.mr-1,.mx-1{margin-right:.25rem !important}.mb-1,.my-1{margin-bottom:.25rem !important}.ml-1,.mx-1{margin-left:.25rem !important}.m-2{margin:.5rem !important}.mt-2,.my-2{margin-top:.5rem !important}.mr-2,.mx-2{margin-right:.5rem !important}.mb-2,.my-2{margin-bottom:.5rem !important}.ml-2,.mx-2{margin-left:.5rem !important}.m-3{margin:1rem !important}.mt-3,.my-3{margin-top:1rem !important}.mr-3,.mx-3{margin-right:1rem !important}.mb-3,.my-3{margin-bottom:1rem !important}.ml-3,.mx-3{margin-left:1rem !important}.m-4{margin:1.5rem !important}.mt-4,.my-4{margin-top:1.5rem !important}.mr-4,.mx-4{margin-right:1.5rem !important}.mb-4,.my-4{margin-bottom:1.5rem !important}.ml-4,.mx-4{margin-left:1.5rem !important}.m-5{margin:3rem !important}.mt-5,.my-5{margin-top:3rem !important}.mr-5,.mx-5{margin-right:3rem !important}.mb-5,.my-5{margin-bottom:3rem !important}.ml-5,.mx-5{margin-left:3rem !important}.m-sm{margin:2rem !important}.mt-sm,.my-sm{margin-top:2rem !important}.mr-sm,.mx-sm{margin-right:2rem !important}.mb-sm,.my-sm{margin-bottom:2rem !important}.ml-sm,.mx-sm{margin-left:2rem !important}.m-md{margin:4rem !important}.mt-md,.my-md{margin-top:4rem !important}.mr-md,.mx-md{margin-right:4rem !important}.mb-md,.my-md{margin-bottom:4rem !important}.ml-md,.mx-md{margin-left:4rem !important}.m-lg{margin:6rem !important}.mt-lg,.my-lg{margin-top:6rem !important}.mr-lg,.mx-lg{margin-right:6rem !important}.mb-lg,.my-lg{margin-bottom:6rem !important}.ml-lg,.mx-lg{margin-left:6rem !important}.m-xl{margin:8rem !important}.mt-xl,.my-xl{margin-top:8rem !important}.mr-xl,.mx-xl{margin-right:8rem !important}.mb-xl,.my-xl{margin-bottom:8rem !important}.ml-xl,.mx-xl{margin-left:8rem !important}.p-0{padding:0 !important}.pt-0,.py-0{padding-top:0 !important}.pr-0,.px-0{padding-right:0 !important}.pb-0,.py-0{padding-bottom:0 !important}.pl-0,.px-0{padding-left:0 !important}.p-1{padding:.25rem !important}.pt-1,.py-1{padding-top:.25rem !important}.pr-1,.px-1{padding-right:.25rem !important}.pb-1,.py-1{padding-bottom:.25rem !important}.pl-1,.px-1{padding-left:.25rem !important}.p-2{padding:.5rem !important}.pt-2,.py-2{padding-top:.5rem !important}.pr-2,.px-2{padding-right:.5rem !important}.pb-2,.py-2{padding-bottom:.5rem !important}.pl-2,.px-2{padding-left:.5rem !important}.p-3{padding:1rem !important}.pt-3,.py-3{padding-top:1rem !important}.pr-3,.px-3{padding-right:1rem !important}.pb-3,.py-3{padding-bottom:1rem !important}.pl-3,.px-3{padding-left:1rem !important}.p-4{padding:1.5rem !important}.pt-4,.py-4{padding-top:1.5rem !important}.pr-4,.px-4{padding-right:1.5rem !important}.pb-4,.py-4{padding-bottom:1.5rem !important}.pl-4,.px-4{padding-left:1.5rem !important}.p-5{padding:3rem !important}.pt-5,.py-5{padding-top:3rem !important}.pr-5,.px-5{padding-right:3rem !important}.pb-5,.py-5{padding-bottom:3rem !important}.pl-5,.px-5{padding-left:3rem !important}.p-sm{padding:2rem !important}.pt-sm,.py-sm{padding-top:2rem !important}.pr-sm,.px-sm{padding-right:2rem !important}.pb-sm,.py-sm{padding-bottom:2rem !important}.pl-sm,.px-sm{padding-left:2rem !important}.p-md{padding:4rem !important}.pt-md,.py-md{padding-top:4rem !important}.pr-md,.px-md{padding-right:4rem !important}.pb-md,.py-md{padding-bottom:4rem !important}.pl-md,.px-md{padding-left:4rem !important}.p-lg{padding:6rem !important}.pt-lg,.py-lg{padding-top:6rem !important}.pr-lg,.px-lg{padding-right:6rem !important}.pb-lg,.py-lg{padding-bottom:6rem !important}.pl-lg,.px-lg{padding-left:6rem !important}.p-xl{padding:8rem !important}.pt-xl,.py-xl{padding-top:8rem !important}.pr-xl,.px-xl{padding-right:8rem !important}.pb-xl,.py-xl{padding-bottom:8rem !important}.pl-xl,.px-xl{padding-left:8rem !important}.m-auto{margin:auto !important}.mt-auto,.my-auto{margin-top:auto !important}.mr-auto,.mx-auto{margin-right:auto !important}.mb-auto,.my-auto{margin-bottom:auto !important}.ml-auto,.mx-auto{margin-left:auto !important}@media (min-width: 576px){.m-sm-0{margin:0 !important}.mt-sm-0,.my-sm-0{margin-top:0 !important}.mr-sm-0,.mx-sm-0{margin-right:0 !important}.mb-sm-0,.my-sm-0{margin-bottom:0 !important}.ml-sm-0,.mx-sm-0{margin-left:0 !important}.m-sm-1{margin:.25rem !important}.mt-sm-1,.my-sm-1{margin-top:.25rem !important}.mr-sm-1,.mx-sm-1{margin-right:.25rem !important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem !important}.ml-sm-1,.mx-sm-1{margin-left:.25rem !important}.m-sm-2{margin:.5rem !important}.mt-sm-2,.my-sm-2{margin-top:.5rem !important}.mr-sm-2,.mx-sm-2{margin-right:.5rem !important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem !important}.ml-sm-2,.mx-sm-2{margin-left:.5rem !important}.m-sm-3{margin:1rem !important}.mt-sm-3,.my-sm-3{margin-top:1rem !important}.mr-sm-3,.mx-sm-3{margin-right:1rem !important}.mb-sm-3,.my-sm-3{margin-bottom:1rem !important}.ml-sm-3,.mx-sm-3{margin-left:1rem !important}.m-sm-4{margin:1.5rem !important}.mt-sm-4,.my-sm-4{margin-top:1.5rem !important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem !important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem !important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem !important}.m-sm-5{margin:3rem !important}.mt-sm-5,.my-sm-5{margin-top:3rem !important}.mr-sm-5,.mx-sm-5{margin-right:3rem !important}.mb-sm-5,.my-sm-5{margin-bottom:3rem !important}.ml-sm-5,.mx-sm-5{margin-left:3rem !important}.m-sm-sm{margin:2rem !important}.mt-sm-sm,.my-sm-sm{margin-top:2rem !important}.mr-sm-sm,.mx-sm-sm{margin-right:2rem !important}.mb-sm-sm,.my-sm-sm{margin-bottom:2rem !important}.ml-sm-sm,.mx-sm-sm{margin-left:2rem !important}.m-sm-md{margin:4rem !important}.mt-sm-md,.my-sm-md{margin-top:4rem !important}.mr-sm-md,.mx-sm-md{margin-right:4rem !important}.mb-sm-md,.my-sm-md{margin-bottom:4rem !important}.ml-sm-md,.mx-sm-md{margin-left:4rem !important}.m-sm-lg{margin:6rem !important}.mt-sm-lg,.my-sm-lg{margin-top:6rem !important}.mr-sm-lg,.mx-sm-lg{margin-right:6rem !important}.mb-sm-lg,.my-sm-lg{margin-bottom:6rem !important}.ml-sm-lg,.mx-sm-lg{margin-left:6rem !important}.m-sm-xl{margin:8rem !important}.mt-sm-xl,.my-sm-xl{margin-top:8rem !important}.mr-sm-xl,.mx-sm-xl{margin-right:8rem !important}.mb-sm-xl,.my-sm-xl{margin-bottom:8rem !important}.ml-sm-xl,.mx-sm-xl{margin-left:8rem !important}.p-sm-0{padding:0 !important}.pt-sm-0,.py-sm-0{padding-top:0 !important}.pr-sm-0,.px-sm-0{padding-right:0 !important}.pb-sm-0,.py-sm-0{padding-bottom:0 !important}.pl-sm-0,.px-sm-0{padding-left:0 !important}.p-sm-1{padding:.25rem !important}.pt-sm-1,.py-sm-1{padding-top:.25rem !important}.pr-sm-1,.px-sm-1{padding-right:.25rem !important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem !important}.pl-sm-1,.px-sm-1{padding-left:.25rem !important}.p-sm-2{padding:.5rem !important}.pt-sm-2,.py-sm-2{padding-top:.5rem !important}.pr-sm-2,.px-sm-2{padding-right:.5rem !important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem !important}.pl-sm-2,.px-sm-2{padding-left:.5rem !important}.p-sm-3{padding:1rem !important}.pt-sm-3,.py-sm-3{padding-top:1rem !important}.pr-sm-3,.px-sm-3{padding-right:1rem !important}.pb-sm-3,.py-sm-3{padding-bottom:1rem !important}.pl-sm-3,.px-sm-3{padding-left:1rem !important}.p-sm-4{padding:1.5rem !important}.pt-sm-4,.py-sm-4{padding-top:1.5rem !important}.pr-sm-4,.px-sm-4{padding-right:1.5rem !important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem !important}.pl-sm-4,.px-sm-4{padding-left:1.5rem !important}.p-sm-5{padding:3rem !important}.pt-sm-5,.py-sm-5{padding-top:3rem !important}.pr-sm-5,.px-sm-5{padding-right:3rem !important}.pb-sm-5,.py-sm-5{padding-bottom:3rem !important}.pl-sm-5,.px-sm-5{padding-left:3rem !important}.p-sm-sm{padding:2rem !important}.pt-sm-sm,.py-sm-sm{padding-top:2rem !important}.pr-sm-sm,.px-sm-sm{padding-right:2rem !important}.pb-sm-sm,.py-sm-sm{padding-bottom:2rem !important}.pl-sm-sm,.px-sm-sm{padding-left:2rem !important}.p-sm-md{padding:4rem !important}.pt-sm-md,.py-sm-md{padding-top:4rem !important}.pr-sm-md,.px-sm-md{padding-right:4rem !important}.pb-sm-md,.py-sm-md{padding-bottom:4rem !important}.pl-sm-md,.px-sm-md{padding-left:4rem !important}.p-sm-lg{padding:6rem !important}.pt-sm-lg,.py-sm-lg{padding-top:6rem !important}.pr-sm-lg,.px-sm-lg{padding-right:6rem !important}.pb-sm-lg,.py-sm-lg{padding-bottom:6rem !important}.pl-sm-lg,.px-sm-lg{padding-left:6rem !important}.p-sm-xl{padding:8rem !important}.pt-sm-xl,.py-sm-xl{padding-top:8rem !important}.pr-sm-xl,.px-sm-xl{padding-right:8rem !important}.pb-sm-xl,.py-sm-xl{padding-bottom:8rem !important}.pl-sm-xl,.px-sm-xl{padding-left:8rem !important}.m-sm-auto{margin:auto !important}.mt-sm-auto,.my-sm-auto{margin-top:auto !important}.mr-sm-auto,.mx-sm-auto{margin-right:auto !important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto !important}.ml-sm-auto,.mx-sm-auto{margin-left:auto !important}}@media (min-width: 768px){.m-md-0{margin:0 !important}.mt-md-0,.my-md-0{margin-top:0 !important}.mr-md-0,.mx-md-0{margin-right:0 !important}.mb-md-0,.my-md-0{margin-bottom:0 !important}.ml-md-0,.mx-md-0{margin-left:0 !important}.m-md-1{margin:.25rem !important}.mt-md-1,.my-md-1{margin-top:.25rem !important}.mr-md-1,.mx-md-1{margin-right:.25rem !important}.mb-md-1,.my-md-1{margin-bottom:.25rem !important}.ml-md-1,.mx-md-1{margin-left:.25rem !important}.m-md-2{margin:.5rem !important}.mt-md-2,.my-md-2{margin-top:.5rem !important}.mr-md-2,.mx-md-2{margin-right:.5rem !important}.mb-md-2,.my-md-2{margin-bottom:.5rem !important}.ml-md-2,.mx-md-2{margin-left:.5rem !important}.m-md-3{margin:1rem !important}.mt-md-3,.my-md-3{margin-top:1rem !important}.mr-md-3,.mx-md-3{margin-right:1rem !important}.mb-md-3,.my-md-3{margin-bottom:1rem !important}.ml-md-3,.mx-md-3{margin-left:1rem !important}.m-md-4{margin:1.5rem !important}.mt-md-4,.my-md-4{margin-top:1.5rem !important}.mr-md-4,.mx-md-4{margin-right:1.5rem !important}.mb-md-4,.my-md-4{margin-bottom:1.5rem !important}.ml-md-4,.mx-md-4{margin-left:1.5rem !important}.m-md-5{margin:3rem !important}.mt-md-5,.my-md-5{margin-top:3rem !important}.mr-md-5,.mx-md-5{margin-right:3rem !important}.mb-md-5,.my-md-5{margin-bottom:3rem !important}.ml-md-5,.mx-md-5{margin-left:3rem !important}.m-md-sm{margin:2rem !important}.mt-md-sm,.my-md-sm{margin-top:2rem !important}.mr-md-sm,.mx-md-sm{margin-right:2rem !important}.mb-md-sm,.my-md-sm{margin-bottom:2rem !important}.ml-md-sm,.mx-md-sm{margin-left:2rem !important}.m-md-md{margin:4rem !important}.mt-md-md,.my-md-md{margin-top:4rem !important}.mr-md-md,.mx-md-md{margin-right:4rem !important}.mb-md-md,.my-md-md{margin-bottom:4rem !important}.ml-md-md,.mx-md-md{margin-left:4rem !important}.m-md-lg{margin:6rem !important}.mt-md-lg,.my-md-lg{margin-top:6rem !important}.mr-md-lg,.mx-md-lg{margin-right:6rem !important}.mb-md-lg,.my-md-lg{margin-bottom:6rem !important}.ml-md-lg,.mx-md-lg{margin-left:6rem !important}.m-md-xl{margin:8rem !important}.mt-md-xl,.my-md-xl{margin-top:8rem !important}.mr-md-xl,.mx-md-xl{margin-right:8rem !important}.mb-md-xl,.my-md-xl{margin-bottom:8rem !important}.ml-md-xl,.mx-md-xl{margin-left:8rem !important}.p-md-0{padding:0 !important}.pt-md-0,.py-md-0{padding-top:0 !important}.pr-md-0,.px-md-0{padding-right:0 !important}.pb-md-0,.py-md-0{padding-bottom:0 !important}.pl-md-0,.px-md-0{padding-left:0 !important}.p-md-1{padding:.25rem !important}.pt-md-1,.py-md-1{padding-top:.25rem !important}.pr-md-1,.px-md-1{padding-right:.25rem !important}.pb-md-1,.py-md-1{padding-bottom:.25rem !important}.pl-md-1,.px-md-1{padding-left:.25rem !important}.p-md-2{padding:.5rem !important}.pt-md-2,.py-md-2{padding-top:.5rem !important}.pr-md-2,.px-md-2{padding-right:.5rem !important}.pb-md-2,.py-md-2{padding-bottom:.5rem !important}.pl-md-2,.px-md-2{padding-left:.5rem !important}.p-md-3{padding:1rem !important}.pt-md-3,.py-md-3{padding-top:1rem !important}.pr-md-3,.px-md-3{padding-right:1rem !important}.pb-md-3,.py-md-3{padding-bottom:1rem !important}.pl-md-3,.px-md-3{padding-left:1rem !important}.p-md-4{padding:1.5rem !important}.pt-md-4,.py-md-4{padding-top:1.5rem !important}.pr-md-4,.px-md-4{padding-right:1.5rem !important}.pb-md-4,.py-md-4{padding-bottom:1.5rem !important}.pl-md-4,.px-md-4{padding-left:1.5rem !important}.p-md-5{padding:3rem !important}.pt-md-5,.py-md-5{padding-top:3rem !important}.pr-md-5,.px-md-5{padding-right:3rem !important}.pb-md-5,.py-md-5{padding-bottom:3rem !important}.pl-md-5,.px-md-5{padding-left:3rem !important}.p-md-sm{padding:2rem !important}.pt-md-sm,.py-md-sm{padding-top:2rem !important}.pr-md-sm,.px-md-sm{padding-right:2rem !important}.pb-md-sm,.py-md-sm{padding-bottom:2rem !important}.pl-md-sm,.px-md-sm{padding-left:2rem !important}.p-md-md{padding:4rem !important}.pt-md-md,.py-md-md{padding-top:4rem !important}.pr-md-md,.px-md-md{padding-right:4rem !important}.pb-md-md,.py-md-md{padding-bottom:4rem !important}.pl-md-md,.px-md-md{padding-left:4rem !important}.p-md-lg{padding:6rem !important}.pt-md-lg,.py-md-lg{padding-top:6rem !important}.pr-md-lg,.px-md-lg{padding-right:6rem !important}.pb-md-lg,.py-md-lg{padding-bottom:6rem !important}.pl-md-lg,.px-md-lg{padding-left:6rem !important}.p-md-xl{padding:8rem !important}.pt-md-xl,.py-md-xl{padding-top:8rem !important}.pr-md-xl,.px-md-xl{padding-right:8rem !important}.pb-md-xl,.py-md-xl{padding-bottom:8rem !important}.pl-md-xl,.px-md-xl{padding-left:8rem !important}.m-md-auto{margin:auto !important}.mt-md-auto,.my-md-auto{margin-top:auto !important}.mr-md-auto,.mx-md-auto{margin-right:auto !important}.mb-md-auto,.my-md-auto{margin-bottom:auto !important}.ml-md-auto,.mx-md-auto{margin-left:auto !important}}@media (min-width: 992px){.m-lg-0{margin:0 !important}.mt-lg-0,.my-lg-0{margin-top:0 !important}.mr-lg-0,.mx-lg-0{margin-right:0 !important}.mb-lg-0,.my-lg-0{margin-bottom:0 !important}.ml-lg-0,.mx-lg-0{margin-left:0 !important}.m-lg-1{margin:.25rem !important}.mt-lg-1,.my-lg-1{margin-top:.25rem !important}.mr-lg-1,.mx-lg-1{margin-right:.25rem !important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem !important}.ml-lg-1,.mx-lg-1{margin-left:.25rem !important}.m-lg-2{margin:.5rem !important}.mt-lg-2,.my-lg-2{margin-top:.5rem !important}.mr-lg-2,.mx-lg-2{margin-right:.5rem !important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem !important}.ml-lg-2,.mx-lg-2{margin-left:.5rem !important}.m-lg-3{margin:1rem !important}.mt-lg-3,.my-lg-3{margin-top:1rem !important}.mr-lg-3,.mx-lg-3{margin-right:1rem !important}.mb-lg-3,.my-lg-3{margin-bottom:1rem !important}.ml-lg-3,.mx-lg-3{margin-left:1rem !important}.m-lg-4{margin:1.5rem !important}.mt-lg-4,.my-lg-4{margin-top:1.5rem !important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem !important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem !important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem !important}.m-lg-5{margin:3rem !important}.mt-lg-5,.my-lg-5{margin-top:3rem !important}.mr-lg-5,.mx-lg-5{margin-right:3rem !important}.mb-lg-5,.my-lg-5{margin-bottom:3rem !important}.ml-lg-5,.mx-lg-5{margin-left:3rem !important}.m-lg-sm{margin:2rem !important}.mt-lg-sm,.my-lg-sm{margin-top:2rem !important}.mr-lg-sm,.mx-lg-sm{margin-right:2rem !important}.mb-lg-sm,.my-lg-sm{margin-bottom:2rem !important}.ml-lg-sm,.mx-lg-sm{margin-left:2rem !important}.m-lg-md{margin:4rem !important}.mt-lg-md,.my-lg-md{margin-top:4rem !important}.mr-lg-md,.mx-lg-md{margin-right:4rem !important}.mb-lg-md,.my-lg-md{margin-bottom:4rem !important}.ml-lg-md,.mx-lg-md{margin-left:4rem !important}.m-lg-lg{margin:6rem !important}.mt-lg-lg,.my-lg-lg{margin-top:6rem !important}.mr-lg-lg,.mx-lg-lg{margin-right:6rem !important}.mb-lg-lg,.my-lg-lg{margin-bottom:6rem !important}.ml-lg-lg,.mx-lg-lg{margin-left:6rem !important}.m-lg-xl{margin:8rem !important}.mt-lg-xl,.my-lg-xl{margin-top:8rem !important}.mr-lg-xl,.mx-lg-xl{margin-right:8rem !important}.mb-lg-xl,.my-lg-xl{margin-bottom:8rem !important}.ml-lg-xl,.mx-lg-xl{margin-left:8rem !important}.p-lg-0{padding:0 !important}.pt-lg-0,.py-lg-0{padding-top:0 !important}.pr-lg-0,.px-lg-0{padding-right:0 !important}.pb-lg-0,.py-lg-0{padding-bottom:0 !important}.pl-lg-0,.px-lg-0{padding-left:0 !important}.p-lg-1{padding:.25rem !important}.pt-lg-1,.py-lg-1{padding-top:.25rem !important}.pr-lg-1,.px-lg-1{padding-right:.25rem !important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem !important}.pl-lg-1,.px-lg-1{padding-left:.25rem !important}.p-lg-2{padding:.5rem !important}.pt-lg-2,.py-lg-2{padding-top:.5rem !important}.pr-lg-2,.px-lg-2{padding-right:.5rem !important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem !important}.pl-lg-2,.px-lg-2{padding-left:.5rem !important}.p-lg-3{padding:1rem !important}.pt-lg-3,.py-lg-3{padding-top:1rem !important}.pr-lg-3,.px-lg-3{padding-right:1rem !important}.pb-lg-3,.py-lg-3{padding-bottom:1rem !important}.pl-lg-3,.px-lg-3{padding-left:1rem !important}.p-lg-4{padding:1.5rem !important}.pt-lg-4,.py-lg-4{padding-top:1.5rem !important}.pr-lg-4,.px-lg-4{padding-right:1.5rem !important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem !important}.pl-lg-4,.px-lg-4{padding-left:1.5rem !important}.p-lg-5{padding:3rem !important}.pt-lg-5,.py-lg-5{padding-top:3rem !important}.pr-lg-5,.px-lg-5{padding-right:3rem !important}.pb-lg-5,.py-lg-5{padding-bottom:3rem !important}.pl-lg-5,.px-lg-5{padding-left:3rem !important}.p-lg-sm{padding:2rem !important}.pt-lg-sm,.py-lg-sm{padding-top:2rem !important}.pr-lg-sm,.px-lg-sm{padding-right:2rem !important}.pb-lg-sm,.py-lg-sm{padding-bottom:2rem !important}.pl-lg-sm,.px-lg-sm{padding-left:2rem !important}.p-lg-md{padding:4rem !important}.pt-lg-md,.py-lg-md{padding-top:4rem !important}.pr-lg-md,.px-lg-md{padding-right:4rem !important}.pb-lg-md,.py-lg-md{padding-bottom:4rem !important}.pl-lg-md,.px-lg-md{padding-left:4rem !important}.p-lg-lg{padding:6rem !important}.pt-lg-lg,.py-lg-lg{padding-top:6rem !important}.pr-lg-lg,.px-lg-lg{padding-right:6rem !important}.pb-lg-lg,.py-lg-lg{padding-bottom:6rem !important}.pl-lg-lg,.px-lg-lg{padding-left:6rem !important}.p-lg-xl{padding:8rem !important}.pt-lg-xl,.py-lg-xl{padding-top:8rem !important}.pr-lg-xl,.px-lg-xl{padding-right:8rem !important}.pb-lg-xl,.py-lg-xl{padding-bottom:8rem !important}.pl-lg-xl,.px-lg-xl{padding-left:8rem !important}.m-lg-auto{margin:auto !important}.mt-lg-auto,.my-lg-auto{margin-top:auto !important}.mr-lg-auto,.mx-lg-auto{margin-right:auto !important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto !important}.ml-lg-auto,.mx-lg-auto{margin-left:auto !important}}@media (min-width: 1200px){.m-xl-0{margin:0 !important}.mt-xl-0,.my-xl-0{margin-top:0 !important}.mr-xl-0,.mx-xl-0{margin-right:0 !important}.mb-xl-0,.my-xl-0{margin-bottom:0 !important}.ml-xl-0,.mx-xl-0{margin-left:0 !important}.m-xl-1{margin:.25rem !important}.mt-xl-1,.my-xl-1{margin-top:.25rem !important}.mr-xl-1,.mx-xl-1{margin-right:.25rem !important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem !important}.ml-xl-1,.mx-xl-1{margin-left:.25rem !important}.m-xl-2{margin:.5rem !important}.mt-xl-2,.my-xl-2{margin-top:.5rem !important}.mr-xl-2,.mx-xl-2{margin-right:.5rem !important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem !important}.ml-xl-2,.mx-xl-2{margin-left:.5rem !important}.m-xl-3{margin:1rem !important}.mt-xl-3,.my-xl-3{margin-top:1rem !important}.mr-xl-3,.mx-xl-3{margin-right:1rem !important}.mb-xl-3,.my-xl-3{margin-bottom:1rem !important}.ml-xl-3,.mx-xl-3{margin-left:1rem !important}.m-xl-4{margin:1.5rem !important}.mt-xl-4,.my-xl-4{margin-top:1.5rem !important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem !important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem !important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem !important}.m-xl-5{margin:3rem !important}.mt-xl-5,.my-xl-5{margin-top:3rem !important}.mr-xl-5,.mx-xl-5{margin-right:3rem !important}.mb-xl-5,.my-xl-5{margin-bottom:3rem !important}.ml-xl-5,.mx-xl-5{margin-left:3rem !important}.m-xl-sm{margin:2rem !important}.mt-xl-sm,.my-xl-sm{margin-top:2rem !important}.mr-xl-sm,.mx-xl-sm{margin-right:2rem !important}.mb-xl-sm,.my-xl-sm{margin-bottom:2rem !important}.ml-xl-sm,.mx-xl-sm{margin-left:2rem !important}.m-xl-md{margin:4rem !important}.mt-xl-md,.my-xl-md{margin-top:4rem !important}.mr-xl-md,.mx-xl-md{margin-right:4rem !important}.mb-xl-md,.my-xl-md{margin-bottom:4rem !important}.ml-xl-md,.mx-xl-md{margin-left:4rem !important}.m-xl-lg{margin:6rem !important}.mt-xl-lg,.my-xl-lg{margin-top:6rem !important}.mr-xl-lg,.mx-xl-lg{margin-right:6rem !important}.mb-xl-lg,.my-xl-lg{margin-bottom:6rem !important}.ml-xl-lg,.mx-xl-lg{margin-left:6rem !important}.m-xl-xl{margin:8rem !important}.mt-xl-xl,.my-xl-xl{margin-top:8rem !important}.mr-xl-xl,.mx-xl-xl{margin-right:8rem !important}.mb-xl-xl,.my-xl-xl{margin-bottom:8rem !important}.ml-xl-xl,.mx-xl-xl{margin-left:8rem !important}.p-xl-0{padding:0 !important}.pt-xl-0,.py-xl-0{padding-top:0 !important}.pr-xl-0,.px-xl-0{padding-right:0 !important}.pb-xl-0,.py-xl-0{padding-bottom:0 !important}.pl-xl-0,.px-xl-0{padding-left:0 !important}.p-xl-1{padding:.25rem !important}.pt-xl-1,.py-xl-1{padding-top:.25rem !important}.pr-xl-1,.px-xl-1{padding-right:.25rem !important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem !important}.pl-xl-1,.px-xl-1{padding-left:.25rem !important}.p-xl-2{padding:.5rem !important}.pt-xl-2,.py-xl-2{padding-top:.5rem !important}.pr-xl-2,.px-xl-2{padding-right:.5rem !important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem !important}.pl-xl-2,.px-xl-2{padding-left:.5rem !important}.p-xl-3{padding:1rem !important}.pt-xl-3,.py-xl-3{padding-top:1rem !important}.pr-xl-3,.px-xl-3{padding-right:1rem !important}.pb-xl-3,.py-xl-3{padding-bottom:1rem !important}.pl-xl-3,.px-xl-3{padding-left:1rem !important}.p-xl-4{padding:1.5rem !important}.pt-xl-4,.py-xl-4{padding-top:1.5rem !important}.pr-xl-4,.px-xl-4{padding-right:1.5rem !important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem !important}.pl-xl-4,.px-xl-4{padding-left:1.5rem !important}.p-xl-5{padding:3rem !important}.pt-xl-5,.py-xl-5{padding-top:3rem !important}.pr-xl-5,.px-xl-5{padding-right:3rem !important}.pb-xl-5,.py-xl-5{padding-bottom:3rem !important}.pl-xl-5,.px-xl-5{padding-left:3rem !important}.p-xl-sm{padding:2rem !important}.pt-xl-sm,.py-xl-sm{padding-top:2rem !important}.pr-xl-sm,.px-xl-sm{padding-right:2rem !important}.pb-xl-sm,.py-xl-sm{padding-bottom:2rem !important}.pl-xl-sm,.px-xl-sm{padding-left:2rem !important}.p-xl-md{padding:4rem !important}.pt-xl-md,.py-xl-md{padding-top:4rem !important}.pr-xl-md,.px-xl-md{padding-right:4rem !important}.pb-xl-md,.py-xl-md{padding-bottom:4rem !important}.pl-xl-md,.px-xl-md{padding-left:4rem !important}.p-xl-lg{padding:6rem !important}.pt-xl-lg,.py-xl-lg{padding-top:6rem !important}.pr-xl-lg,.px-xl-lg{padding-right:6rem !important}.pb-xl-lg,.py-xl-lg{padding-bottom:6rem !important}.pl-xl-lg,.px-xl-lg{padding-left:6rem !important}.p-xl-xl{padding:8rem !important}.pt-xl-xl,.py-xl-xl{padding-top:8rem !important}.pr-xl-xl,.px-xl-xl{padding-right:8rem !important}.pb-xl-xl,.py-xl-xl{padding-bottom:8rem !important}.pl-xl-xl,.px-xl-xl{padding-left:8rem !important}.m-xl-auto{margin:auto !important}.mt-xl-auto,.my-xl-auto{margin-top:auto !important}.mr-xl-auto,.mx-xl-auto{margin-right:auto !important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto !important}.ml-xl-auto,.mx-xl-auto{margin-left:auto !important}}.text-justify{text-align:justify !important}.text-nowrap{white-space:nowrap !important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left !important}.text-right{text-align:right !important}.text-center{text-align:center !important}@media (min-width: 576px){.text-sm-left{text-align:left !important}.text-sm-right{text-align:right !important}.text-sm-center{text-align:center !important}}@media (min-width: 768px){.text-md-left{text-align:left !important}.text-md-right{text-align:right !important}.text-md-center{text-align:center !important}}@media (min-width: 992px){.text-lg-left{text-align:left !important}.text-lg-right{text-align:right !important}.text-lg-center{text-align:center !important}}@media (min-width: 1200px){.text-xl-left{text-align:left !important}.text-xl-right{text-align:right !important}.text-xl-center{text-align:center !important}}.text-lowercase{text-transform:lowercase !important}.text-uppercase{text-transform:uppercase !important}.text-capitalize{text-transform:capitalize !important}.font-weight-light{font-weight:300 !important}.font-weight-normal{font-weight:400 !important}.font-weight-bold{font-weight:600 !important}.font-italic{font-style:italic !important}.text-white{color:#fff !important}.text-primary{color:#288cff !important}a.text-primary:hover,a.text-primary:focus{color:#0071f4 !important}.text-secondary{color:#e8f2ff !important}a.text-secondary:hover,a.text-secondary:focus{color:#b5d5ff !important}.text-success{color:#00c759 !important}a.text-success:hover,a.text-success:focus{color:#009442 !important}.text-info{color:#73e9ef !important}a.text-info:hover,a.text-info:focus{color:#45e2ea !important}.text-warning{color:#ff3b00 !important}a.text-warning:hover,a.text-warning:focus{color:#cc2f00 !important}.text-danger{color:#f03 !important}a.text-danger:hover,a.text-danger:focus{color:#cc0029 !important}.text-light{color:#e9ecef !important}a.text-light:hover,a.text-light:focus{color:#cbd3da !important}.text-dark{color:#343a40 !important}a.text-dark:hover,a.text-dark:focus{color:#1d2124 !important}.text-tertiary{color:#192b3f !important}a.text-tertiary:hover,a.text-tertiary:focus{color:#0b121a !important}.text-muted{color:#adb5bd !important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.visible{visibility:visible !important}.invisible{visibility:hidden !important}@media print{*,*::before,*::after{text-shadow:none !important;box-shadow:none !important}a:not(.btn){text-decoration:underline}abbr[title]::after{content:" (" attr(title) ")"}pre{white-space:pre-wrap !important}pre,blockquote{border:.0625rem solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}body{min-width:992px !important}.container{min-width:992px !important}.navbar{display:none}.badge{border:.0625rem solid #000}.table{border-collapse:collapse !important}.table td,.table th{background-color:#fff !important}.table-bordered th,.table-bordered td{border:1px solid #ddd !important}}@-ms-viewport{width:device-width}html{box-sizing:border-box;-ms-overflow-style:scrollbar}body{color:#495057;background-color:#fff}iframe{border:0}figcaption,figure,main{display:block}.body-backdrop{position:fixed;top:0;left:0;width:100%;height:100%;cursor:pointer;z-index:1040}.bg-blue{background-color:#3369d6 !important}a.bg-blue:hover,a.bg-blue:focus,button.bg-blue:hover,button.bg-blue:focus{background-color:#2453b2 !important}.bg-indigo{background-color:#5603ad !important}a.bg-indigo:hover,a.bg-indigo:focus,button.bg-indigo:hover,button.bg-indigo:focus{background-color:#3d027b !important}.bg-purple{background-color:#801096 !important}a.bg-purple:hover,a.bg-purple:focus,button.bg-purple:hover,button.bg-purple:focus{background-color:#590b68 !important}.bg-pink{background-color:#e36397 !important}a.bg-pink:hover,a.bg-pink:focus,button.bg-pink:hover,button.bg-pink:focus{background-color:#db387a !important}.bg-red{background-color:#f03 !important}a.bg-red:hover,a.bg-red:focus,button.bg-red:hover,button.bg-red:focus{background-color:#cc0029 !important}.bg-orange{background-color:#ff3b00 !important}a.bg-orange:hover,a.bg-orange:focus,button.bg-orange:hover,button.bg-orange:focus{background-color:#cc2f00 !important}.bg-yellow{background-color:#ffd600 !important}a.bg-yellow:hover,a.bg-yellow:focus,button.bg-yellow:hover,button.bg-yellow:focus{background-color:#ccab00 !important}.bg-green{background-color:#00c759 !important}a.bg-green:hover,a.bg-green:focus,button.bg-green:hover,button.bg-green:focus{background-color:#009442 !important}.bg-teal{background-color:#73e9ef !important}a.bg-teal:hover,a.bg-teal:focus,button.bg-teal:hover,button.bg-teal:focus{background-color:#45e2ea !important}.bg-cyan{background-color:#2bffc6 !important}a.bg-cyan:hover,a.bg-cyan:focus,button.bg-cyan:hover,button.bg-cyan:focus{background-color:#00f7b5 !important}.bg-white{background-color:#fff !important}a.bg-white:hover,a.bg-white:focus,button.bg-white:hover,button.bg-white:focus{background-color:#e6e6e6 !important}.bg-gray{background-color:#6c757d !important}a.bg-gray:hover,a.bg-gray:focus,button.bg-gray:hover,button.bg-gray:focus{background-color:#545b62 !important}.bg-gray-dark{background-color:#343a40 !important}a.bg-gray-dark:hover,a.bg-gray-dark:focus,button.bg-gray-dark:hover,button.bg-gray-dark:focus{background-color:#1d2124 !important}.bg-light{background-color:#dee2e6 !important}a.bg-light:hover,a.bg-light:focus,button.bg-light:hover,button.bg-light:focus{background-color:#c1c9d0 !important}.bg-lighter{background-color:#f8f9fa !important}a.bg-lighter:hover,a.bg-lighter:focus,button.bg-lighter:hover,button.bg-lighter:focus{background-color:#dae0e5 !important}.bg-gradient-blue{background:#3369d6 linear-gradient(180deg, #5280dc, #3369d6) repeat-x !important}.bg-gradient-indigo{background:#5603ad linear-gradient(180deg, #6f29b9, #5603ad) repeat-x !important}.bg-gradient-purple{background:#801096 linear-gradient(180deg, #9334a6, #801096) repeat-x !important}.bg-gradient-pink{background:#e36397 linear-gradient(180deg, #e77aa7, #e36397) repeat-x !important}.bg-gradient-red{background:#f03 linear-gradient(180deg, #ff2652, #f03) repeat-x !important}.bg-gradient-orange{background:#ff3b00 linear-gradient(180deg, #ff5826, #ff3b00) repeat-x !important}.bg-gradient-yellow{background:#ffd600 linear-gradient(180deg, #ffdc26, #ffd600) repeat-x !important}.bg-gradient-green{background:#00c759 linear-gradient(180deg, #26cf72, #00c759) repeat-x !important}.bg-gradient-teal{background:#73e9ef linear-gradient(180deg, #88ecf1, #73e9ef) repeat-x !important}.bg-gradient-cyan{background:#2bffc6 linear-gradient(180deg, #4bffcf, #2bffc6) repeat-x !important}.bg-gradient-white{background:#fff linear-gradient(180deg, #fff, #fff) repeat-x !important}.bg-gradient-gray{background:#6c757d linear-gradient(180deg, #828a91, #6c757d) repeat-x !important}.bg-gradient-gray-dark{background:#343a40 linear-gradient(180deg, #52585d, #343a40) repeat-x !important}.bg-gradient-light{background:#dee2e6 linear-gradient(180deg, #e3e6ea, #dee2e6) repeat-x !important}.bg-gradient-lighter{background:#f8f9fa linear-gradient(180deg, #f9fafb, #f8f9fa) repeat-x !important}.z-depth--removed{border-width:1px !important;box-shadow:none !important}.z-depth-1:not(.btn),.z-depth-1--hover:not(.btn):hover,.z-depth-1-top:not(.btn),.z-depth-1-top--hover:not(.btn):hover,.z-depth-1-bottom:not(.btn),.z-depth-1-bottom--hover:not(.btn):hover,.z-depth-2:not(.btn),.z-depth-2--hover:not(.btn):hover,.z-depth-2-top:not(.btn),.z-depth-2-top--hover:not(.btn):hover,.z-depth-2-bottom:not(.btn),.z-depth-2-bottom--hover:not(.btn):hover,.z-depth-3:not(.btn),.z-depth-3--hover:not(.btn):hover,.z-depth-3-top:not(.btn),.z-depth-3-top--hover:not(.btn):hover,.z-depth-3-bottom:not(.btn),.z-depth-3-bottom--hover:not(.btn):hover,.z-depth-4:not(.btn),.z-depth-4--hover:not(.btn):hover,.z-depth-4-top:not(.btn),.z-depth-4-top--hover:not(.btn):hover,.z-depth-4-bottom:not(.btn),.z-depth-4-bottom--hover:not(.btn):hover,.z-depth-5:not(.btn),.z-depth-5--hover:not(.btn):hover,.z-depth-5-top:not(.btn),.z-depth-5-top--hover:not(.btn):hover,.z-depth-5-bottom:not(.btn),.z-depth-5-bottom--hover:not(.btn):hover{border-color:transparent !important}.z-depth-0,.z-depth-0--hover:hover{box-shadow:none !important}.z-depth-1,.z-depth-1--hover:hover{box-shadow:0 2px 5px rgba(0,0,0,0.1),0 2px 10px rgba(0,0,0,0.1)}.z-depth-1-top,.z-depth-1-top--hover:hover{box-shadow:0 2px 10px rgba(0,0,0,0.1)}.z-depth-1-bottom,.z-depth-1-bottom--hover:hover{box-shadow:0 2px 5px rgba(0,0,0,0.1)}.z-depth-2,.z-depth-2--hover:hover{box-shadow:0 8px 17px rgba(0,0,0,0.1),0 6px 20px rgba(0,0,0,0.1)}.z-depth-2-top,.z-depth-2-top--hover:hover{box-shadow:0 6px 20px rgba(0,0,0,0.1)}.z-depth-2-bottom,.z-depth-2-bottom--hover:hover{box-shadow:0 8px 17px rgba(0,0,0,0.1)}.z-depth-3,.z-depth-3--hover:hover{box-shadow:0 12px 15px rgba(0,0,0,0.1),0 17px 50px rgba(0,0,0,0.1)}.z-depth-3-top,.z-depth-3-top--hover:hover{box-shadow:0 17px 50px rgba(0,0,0,0.1)}.z-depth-3-bottom,.z-depth-3-bottom--hover:hover{box-shadow:0 12px 15px rgba(0,0,0,0.1)}.z-depth-4,.z-depth-4--hover:hover{box-shadow:0 16px 28px rgba(0,0,0,0.1),0 25px 55px rgba(0,0,0,0.1)}.z-depth-4-top,.z-depth-4-top--hover:hover{box-shadow:0 25px 55px rgba(0,0,0,0.1)}.z-depth-4-bottom,.z-depth-4-bottom--hover:hover{box-shadow:0 16px 28px rgba(0,0,0,0.1)}.z-depth-5,.z-depth-5--hover:hover{box-shadow:0 27px 24px rgba(0,0,0,0.1),0 40px 77px rgba(0,0,0,0.1)}.z-depth-5-top,.z-depth-5-top--hover:hover{box-shadow:0 40px 77px rgba(0,0,0,0.1)}.z-depth-5-bottom,.z-depth-5-bottom--hover:hover{box-shadow:0 27px 24px rgba(0,0,0,0.1)}.overflow-visible{overflow:visible !important}.overflow-hidden{overflow:hidden !important}.alpha-1,.alpha-container:hover .alpha-1--hover{opacity:0.1}.alpha-2,.alpha-container:hover .alpha-2--hover{opacity:0.2}.alpha-3,.alpha-container:hover .alpha-3--hover{opacity:0.3}.alpha-4,.alpha-container:hover .alpha-4--hover{opacity:0.4}.alpha-5,.alpha-container:hover .alpha-5--hover{opacity:0.5}.alpha-6,.alpha-container:hover .alpha-6--hover{opacity:0.6}.alpha-7,.alpha-container:hover .alpha-7--hover{opacity:0.7}.alpha-8,.alpha-container:hover .alpha-8--hover{opacity:0.8}.alpha-9,.alpha-container:hover .alpha-9--hover{opacity:0.9}.img-center{display:block;margin-left:auto;margin-right:auto}.top-0{top:0}.right-0{right:0}.bottom-0{bottom:0}.left-0{left:0}.top-1{top:.25rem}.right-1{right:.25rem}.bottom-1{bottom:.25rem}.left-1{left:.25rem}.top-2{top:.5rem}.right-2{right:.5rem}.bottom-2{bottom:.5rem}.left-2{left:.5rem}.top-3{top:1rem}.right-3{right:1rem}.bottom-3{bottom:1rem}.left-3{left:1rem}.top-4{top:1.5rem}.right-4{right:1.5rem}.bottom-4{bottom:1.5rem}.left-4{left:1.5rem}.top-5{top:3rem}.right-5{right:3rem}.bottom-5{bottom:3rem}.left-5{left:3rem}.top-sm{top:2rem}.right-sm{right:2rem}.bottom-sm{bottom:2rem}.left-sm{left:2rem}.top-md{top:4rem}.right-md{right:4rem}.bottom-md{bottom:4rem}.left-md{left:4rem}.top-lg{top:6rem}.right-lg{right:6rem}.bottom-lg{bottom:6rem}.left-lg{left:6rem}.top-xl{top:8rem}.right-xl{right:8rem}.bottom-xl{bottom:8rem}.left-xl{left:8rem}.cols-space>div[class*='col-']:not(:last-child){margin-bottom:4rem}@media (max-width: 575px){.cols-xs-space>div[class*='col-']:not(:last-child){margin-bottom:4rem}}@media (max-width: 767px){.cols-sm-space>div[class*='col-']:not(:last-child){margin-bottom:4rem}}@media (max-width: 991px){.cols-md-space>div[class*='col-']:not(:last-child){margin-bottom:4rem}}@media (max-width: 1199px){.cols-lg-space>div[class*='col-']:not(:last-child){margin-bottom:4rem}}@media (max-width: 575px){.row-wrapper>.row .col-12:not(:last-child),.row-wrapper>.row:not(:last-child){margin-bottom:3rem}}@media (min-width: 576px) and (max-width: 767px){.row-wrapper>.row .col-sm-12:not(:last-child),.row-wrapper>.row:not(:last-child){margin-bottom:3rem}}@media (min-width: 768px) and (max-width: 991px){.row-wrapper .row .col-md-12:not(:last-child),.row-wrapper .row:not(:last-child){margin-bottom:3rem}}@media (min-width: 992px){.row-wrapper>.row:not(:last-child){margin-bottom:3rem}}.font-weight-300{font-weight:300 !important}.font-weight-400{font-weight:400 !important}.font-weight-500{font-weight:500 !important}.font-weight-600{font-weight:600 !important}.font-weight-700{font-weight:700 !important}.font-weight-800{font-weight:800 !important}.font-weight-900{font-weight:900 !important}.lh-100{line-height:1}.lh-125{line-height:1.25}.lh-150{line-height:1.5}.lh-180{line-height:1.8}.alert{padding:1rem 1.5rem;border:0;border-radius:.375rem}.alert .alert-inner--icon{font-size:1.25rem;margin-right:1.25rem;display:inline-block;vertical-align:middle}.alert .alert-inner--text{display:inline-block;vertical-align:middle}.alert-shadow{box-shadow:0 8px 22px 0 rgba(0,0,0,0.37)}[class*="alert-"] .alert-link{color:#fff;border-bottom:1px dotted rgba(255,255,255,0.5)}.alert-heading{font-weight:600;font-size:1.3125rem;margin-top:0.15rem}.alert-dismissible .close{top:50%;right:1.5rem;padding:0;transform:translateY(-50%);color:rgba(255,255,255,0.6)}.alert-dismissible .close>span:not(.sr-only){background-color:rgba(255,255,255,0.3);line-height:19px;height:20px;width:20px;border-radius:50%;font-size:0.8rem;display:block}.alert-dismissible .close:hover,.alert-dismissible .close:focus{color:#fff}.alert-dismissible .close:hover span:not(.sr-only),.alert-dismissible .close:focus span:not(.sr-only){background-color:rgba(255,255,255,0.5)}.alert-dismissible .undo{position:absolute;right:3.5rem;top:50%;transform:translateY(-50%);color:rgba(255,255,255,0.5);text-transform:uppercase;font-size:.765625rem;font-weight:600;background:transparent;border:0;cursor:pointer}.alert-dismissible .undo:hover,.alert-dismissible .undo:focus{color:rgba(255,255,255,0.8)}.alert-inverse{background-color:#454545;color:#fff}.alert-notify{max-width:600px;width:100%;padding-right:60px}.avatar{color:#fff;background-color:#adb5bd;display:inline-flex;align-items:center;justify-content:center;font-size:1rem;border-radius:50%;height:48px;width:48px}.avatar img{width:100%;border-radius:50%}.avatar+.avatar-content{display:inline-block;margin-left:.75rem}.avatar-lg{width:58px;height:58px;font-size:.765625rem}.avatar-sm{width:38px;height:38px;font-size:.765625rem}.badge a{color:#FFF}.badge-inline{margin-right:.625rem}.badge-inline+span{top:2px;position:relative}.badge-inline+span>a{text-decoration:underline}.badge-md{padding:.65em 1em}.badge-lg{padding:.85em 1.375em}.badge-dot{padding-left:0;padding-right:0;background:transparent;color:#ced4da;font-size:.765625rem}.badge-dot strong{color:#343a40}.badge-dot>i{display:inline-block;vertical-align:middle;width:6px;height:6px;border-radius:6px;margin-right:6px}.btn-outline-secondary{color:#0065e8}.btn-xl{padding:1.15rem 1rem;font-size:1.3125rem;line-height:1.5;border-radius:.375rem}.btn svg:not(:first-child),.btn i:not(:first-child){margin-left:0.5rem}.btn svg:not(:last-child),.btn i:not(:last-child){margin-right:0.5rem}.btn-animated{position:relative;overflow:hidden}.btn-animated .btn-inner--visible{position:relative}.btn-animated .btn-inner--hidden{position:absolute;width:100%;top:50%;transform:translateY(-50%)}.btn-animated-x .btn-inner--visible{right:0;-webkit-transition:right .3s ease 0s;transition:right .3s ease 0s}.btn-animated-x .btn-inner--hidden{right:-100%;-webkit-transition:right .3s ease 0s;transition:right .3s ease 0s}.btn-animated-x:hover .btn-inner--hidden{right:0}.btn-animated-x:hover .btn-inner--visible{right:150%}.btn-animated-y .btn-inner--visible{top:0;-webkit-transition:top .3s ease 0s;transition:top .3s ease 0s}.btn-animated-y .btn-inner--hidden{left:0;bottom:-150%;-webkit-transition:bottom .3s ease 0s;transition:bottom .3s ease 0s}.btn-animated-y:hover .btn-inner--hidden{bottom:0}.btn-animated-y:hover .btn-inner--visible{top:100px}.btn-action-label .btn-label:hover{background:transparent;color:#343a40}.btn-action-label .btn-secondary:hover{color:#288cff}.btn-icon-label{position:relative}.btn-icon-label .btn-inner--icon{position:absolute;height:100%;line-height:1;border-radius:0;text-align:center;margin:0;width:3em;background-color:rgba(0,0,0,0.1)}.btn-icon-label .btn-inner--icon:not(:first-child){right:0;top:0;border-top-right-radius:inherit;border-bottom-right-radius:inherit}.btn-icon-label .btn-inner--icon:not(:last-child){left:0;top:0;border-top-left-radius:inherit;border-bottom-left-radius:inherit}.btn-icon-label .btn-inner--icon svg{position:relative;top:50%;transform:translateY(-50%)}.btn-icon-label .btn-inner--text:not(:first-child){padding-left:3em}.btn-icon-label .btn-inner--text:not(:last-child){padding-right:3em}.btn-icon .btn-inner--text:not(:first-child){margin-left:0.75em}.btn-icon .btn-inner--text:not(:last-child){margin-right:0.75em}.btn-icon-only{width:3rem;height:3rem;padding:0}a.btn-icon-only{line-height:3rem}.btn-icon-only.btn-sm,.btn-group-sm>.btn-icon-only.btn{width:2rem;height:2rem}.btn-nobg{padding:0;background:transparent !important}.btn-nobg:hover{background:transparent !important;border-color:transparent !important}.btn-facebook{color:#fff;background:#3b5999 linear-gradient(180deg, #5872a8, #3b5999) repeat-x;border-color:#3b5999;box-shadow:none}.btn-facebook:hover{color:#fff;background:#30497d linear-gradient(180deg, #4f6491, #30497d) repeat-x;border-color:#2d4474}.btn-facebook:focus,.btn-facebook.focus{box-shadow:none,0 0 0 0 rgba(59,89,153,0.5)}.btn-facebook.disabled,.btn-facebook:disabled{color:#fff;background-color:#3b5999;border-color:#3b5999}.btn-facebook:not(:disabled):not(.disabled):active,.btn-facebook:not(:disabled):not(.disabled).active,.show>.btn-facebook.dropdown-toggle{color:#fff;background-color:#2d4474;background-image:none;border-color:#293e6b}.btn-facebook:not(:disabled):not(.disabled):active:focus,.btn-facebook:not(:disabled):not(.disabled).active:focus,.show>.btn-facebook.dropdown-toggle:focus{box-shadow:none,0 0 0 0 rgba(59,89,153,0.5)}.btn-twitter{color:#fff;background:#1da1f2 linear-gradient(180deg, #3faff4, #1da1f2) repeat-x;border-color:#1da1f2;box-shadow:none}.btn-twitter:hover{color:#fff;background:#0d8ddc linear-gradient(180deg, #319ee1, #0d8ddc) repeat-x;border-color:#0c85d0}.btn-twitter:focus,.btn-twitter.focus{box-shadow:none,0 0 0 0 rgba(29,161,242,0.5)}.btn-twitter.disabled,.btn-twitter:disabled{color:#fff;background-color:#1da1f2;border-color:#1da1f2}.btn-twitter:not(:disabled):not(.disabled):active,.btn-twitter:not(:disabled):not(.disabled).active,.show>.btn-twitter.dropdown-toggle{color:#fff;background-color:#0c85d0;background-image:none;border-color:#0b7ec4}.btn-twitter:not(:disabled):not(.disabled):active:focus,.btn-twitter:not(:disabled):not(.disabled).active:focus,.show>.btn-twitter.dropdown-toggle:focus{box-shadow:none,0 0 0 0 rgba(29,161,242,0.5)}.btn-google-plus{color:#fff;background:#dd4b39 linear-gradient(180deg, #e26657, #dd4b39) repeat-x;border-color:#dd4b39;box-shadow:none}.btn-google-plus:hover{color:#fff;background:#cd3623 linear-gradient(180deg, #d55444, #cd3623) repeat-x;border-color:#c23321}.btn-google-plus:focus,.btn-google-plus.focus{box-shadow:none,0 0 0 0 rgba(221,75,57,0.5)}.btn-google-plus.disabled,.btn-google-plus:disabled{color:#fff;background-color:#dd4b39;border-color:#dd4b39}.btn-google-plus:not(:disabled):not(.disabled):active,.btn-google-plus:not(:disabled):not(.disabled).active,.show>.btn-google-plus.dropdown-toggle{color:#fff;background-color:#c23321;background-image:none;border-color:#b7301f}.btn-google-plus:not(:disabled):not(.disabled):active:focus,.btn-google-plus:not(:disabled):not(.disabled).active:focus,.show>.btn-google-plus.dropdown-toggle:focus{box-shadow:none,0 0 0 0 rgba(221,75,57,0.5)}.btn-instagram{color:#fff;background:#e4405f linear-gradient(180deg, #e85d77, #e4405f) repeat-x;border-color:#e4405f;box-shadow:none}.btn-instagram:hover{color:#fff;background:#de1f44 linear-gradient(180deg, #e34160, #de1f44) repeat-x;border-color:#d31e40}.btn-instagram:focus,.btn-instagram.focus{box-shadow:none,0 0 0 0 rgba(228,64,95,0.5)}.btn-instagram.disabled,.btn-instagram:disabled{color:#fff;background-color:#e4405f;border-color:#e4405f}.btn-instagram:not(:disabled):not(.disabled):active,.btn-instagram:not(:disabled):not(.disabled).active,.show>.btn-instagram.dropdown-toggle{color:#fff;background-color:#d31e40;background-image:none;border-color:#c81c3d}.btn-instagram:not(:disabled):not(.disabled):active:focus,.btn-instagram:not(:disabled):not(.disabled).active:focus,.show>.btn-instagram.dropdown-toggle:focus{box-shadow:none,0 0 0 0 rgba(228,64,95,0.5)}.btn-pinterest{color:#fff;background:#bd081c linear-gradient(180deg, #c72d3e, #bd081c) repeat-x;border-color:#bd081c;box-shadow:none}.btn-pinterest:hover{color:#fff;background:#980617 linear-gradient(180deg, #a72b3a, #980617) repeat-x;border-color:#8c0615}.btn-pinterest:focus,.btn-pinterest.focus{box-shadow:none,0 0 0 0 rgba(189,8,28,0.5)}.btn-pinterest.disabled,.btn-pinterest:disabled{color:#fff;background-color:#bd081c;border-color:#bd081c}.btn-pinterest:not(:disabled):not(.disabled):active,.btn-pinterest:not(:disabled):not(.disabled).active,.show>.btn-pinterest.dropdown-toggle{color:#fff;background-color:#8c0615;background-image:none;border-color:#800513}.btn-pinterest:not(:disabled):not(.disabled):active:focus,.btn-pinterest:not(:disabled):not(.disabled).active:focus,.show>.btn-pinterest.dropdown-toggle:focus{box-shadow:none,0 0 0 0 rgba(189,8,28,0.5)}.btn-youtube{color:#fff;background:#cd201f linear-gradient(180deg, #d54141, #cd201f) repeat-x;border-color:#cd201f;box-shadow:none}.btn-youtube:hover{color:#fff;background:#ac1b1a linear-gradient(180deg, #b83d3c, #ac1b1a) repeat-x;border-color:#a11918}.btn-youtube:focus,.btn-youtube.focus{box-shadow:none,0 0 0 0 rgba(205,32,31,0.5)}.btn-youtube.disabled,.btn-youtube:disabled{color:#fff;background-color:#cd201f;border-color:#cd201f}.btn-youtube:not(:disabled):not(.disabled):active,.btn-youtube:not(:disabled):not(.disabled).active,.show>.btn-youtube.dropdown-toggle{color:#fff;background-color:#a11918;background-image:none;border-color:#961717}.btn-youtube:not(:disabled):not(.disabled):active:focus,.btn-youtube:not(:disabled):not(.disabled).active:focus,.show>.btn-youtube.dropdown-toggle:focus{box-shadow:none,0 0 0 0 rgba(205,32,31,0.5)}.btn-slack{color:#fff;background:#3aaf85 linear-gradient(180deg, #58bb97, #3aaf85) repeat-x;border-color:#3aaf85;box-shadow:none}.btn-slack:hover{color:#fff;background:#30926f linear-gradient(180deg, #4fa285, #30926f) repeat-x;border-color:#2d8968}.btn-slack:focus,.btn-slack.focus{box-shadow:none,0 0 0 0 rgba(58,175,133,0.5)}.btn-slack.disabled,.btn-slack:disabled{color:#fff;background-color:#3aaf85;border-color:#3aaf85}.btn-slack:not(:disabled):not(.disabled):active,.btn-slack:not(:disabled):not(.disabled).active,.show>.btn-slack.dropdown-toggle{color:#fff;background-color:#2d8968;background-image:none;border-color:#2a7f61}.btn-slack:not(:disabled):not(.disabled):active:focus,.btn-slack:not(:disabled):not(.disabled).active:focus,.show>.btn-slack.dropdown-toggle:focus{box-shadow:none,0 0 0 0 rgba(58,175,133,0.5)}.btn-dribbble{color:#fff;background:#ea4c89 linear-gradient(180deg, #ed679b, #ea4c89) repeat-x;border-color:#ea4c89;box-shadow:none}.btn-dribbble:hover{color:#fff;background:#e62a72 linear-gradient(180deg, #ea4a87, #e62a72) repeat-x;border-color:#e51e6b}.btn-dribbble:focus,.btn-dribbble.focus{box-shadow:none,0 0 0 0 rgba(234,76,137,0.5)}.btn-dribbble.disabled,.btn-dribbble:disabled{color:#fff;background-color:#ea4c89;border-color:#ea4c89}.btn-dribbble:not(:disabled):not(.disabled):active,.btn-dribbble:not(:disabled):not(.disabled).active,.show>.btn-dribbble.dropdown-toggle{color:#fff;background-color:#e51e6b;background-image:none;border-color:#dc1a65}.btn-dribbble:not(:disabled):not(.disabled):active:focus,.btn-dribbble:not(:disabled):not(.disabled).active:focus,.show>.btn-dribbble.dropdown-toggle:focus{box-shadow:none,0 0 0 0 rgba(234,76,137,0.5)}.btn-primary{color:#fff;background:#288cff linear-gradient(180deg, #489dff, #288cff) repeat-x;border-color:#288cff;box-shadow:none}.btn-primary:hover{color:#fff;background:#0278ff linear-gradient(180deg, #288cff, #0278ff) repeat-x;border-color:#0071f4}.btn-primary:focus,.btn-primary.focus{box-shadow:none,0 0 0 0 rgba(40,140,255,0.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#288cff;border-color:#288cff}.btn-primary:not(:disabled):not(.disabled):active,.btn-primary:not(:disabled):not(.disabled).active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0071f4;background-image:none;border-color:#006ce7}.btn-primary:not(:disabled):not(.disabled):active:focus,.btn-primary:not(:disabled):not(.disabled).active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:none,0 0 0 0 rgba(40,140,255,0.5)}.btn-secondary{color:#212529;background:#e8f2ff linear-gradient(180deg, #ebf4ff, #e8f2ff) repeat-x;border-color:#e8f2ff;box-shadow:none}.btn-secondary:hover{color:#212529;background:#c2dcff linear-gradient(180deg, #cbe1ff, #c2dcff) repeat-x;border-color:#b5d5ff}.btn-secondary:focus,.btn-secondary.focus{box-shadow:none,0 0 0 0 rgba(232,242,255,0.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#212529;background-color:#e8f2ff;border-color:#e8f2ff}.btn-secondary:not(:disabled):not(.disabled):active,.btn-secondary:not(:disabled):not(.disabled).active,.show>.btn-secondary.dropdown-toggle{color:#212529;background-color:#b5d5ff;background-image:none;border-color:#a8ceff}.btn-secondary:not(:disabled):not(.disabled):active:focus,.btn-secondary:not(:disabled):not(.disabled).active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:none,0 0 0 0 rgba(232,242,255,0.5)}.btn-tertiary{color:#fff;background:#192b3f linear-gradient(180deg, #3c4b5c, #192b3f) repeat-x;border-color:#192b3f;box-shadow:none}.btn-tertiary:hover{color:#fff;background:#0e1824 linear-gradient(180deg, #323b45, #0e1824) repeat-x;border-color:#0b121a}.btn-tertiary:focus,.btn-tertiary.focus{box-shadow:none,0 0 0 0 rgba(25,43,63,0.5)}.btn-tertiary.disabled,.btn-tertiary:disabled{color:#fff;background-color:#192b3f;border-color:#192b3f}.btn-tertiary:not(:disabled):not(.disabled):active,.btn-tertiary:not(:disabled):not(.disabled).active,.show>.btn-tertiary.dropdown-toggle{color:#fff;background-color:#0b121a;background-image:none;border-color:#070c11}.btn-tertiary:not(:disabled):not(.disabled):active:focus,.btn-tertiary:not(:disabled):not(.disabled).active:focus,.show>.btn-tertiary.dropdown-toggle:focus{box-shadow:none,0 0 0 0 rgba(25,43,63,0.5)}.btn-success{color:#fff;background:#00c759 linear-gradient(180deg, #26cf72, #00c759) repeat-x;border-color:#00c759;box-shadow:none}.btn-success:hover{color:#fff;background:#00a148 linear-gradient(180deg, #26af63, #00a148) repeat-x;border-color:#009442}.btn-success:focus,.btn-success.focus{box-shadow:none,0 0 0 0 rgba(0,199,89,0.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#00c759;border-color:#00c759}.btn-success:not(:disabled):not(.disabled):active,.btn-success:not(:disabled):not(.disabled).active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#009442;background-image:none;border-color:#00873c}.btn-success:not(:disabled):not(.disabled):active:focus,.btn-success:not(:disabled):not(.disabled).active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:none,0 0 0 0 rgba(0,199,89,0.5)}.btn-info{color:#212529;background:#73e9ef linear-gradient(180deg, #88ecf1, #73e9ef) repeat-x;border-color:#73e9ef;box-shadow:none}.btn-info:hover{color:#212529;background:#51e4eb linear-gradient(180deg, #6be8ee, #51e4eb) repeat-x;border-color:#45e2ea}.btn-info:focus,.btn-info.focus{box-shadow:none,0 0 0 0 rgba(115,233,239,0.5)}.btn-info.disabled,.btn-info:disabled{color:#212529;background-color:#73e9ef;border-color:#73e9ef}.btn-info:not(:disabled):not(.disabled):active,.btn-info:not(:disabled):not(.disabled).active,.show>.btn-info.dropdown-toggle{color:#212529;background-color:#45e2ea;background-image:none;border-color:#3ae0e8}.btn-info:not(:disabled):not(.disabled):active:focus,.btn-info:not(:disabled):not(.disabled).active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:none,0 0 0 0 rgba(115,233,239,0.5)}.btn-warning{color:#fff;background:#ff3b00 linear-gradient(180deg, #ff5826, #ff3b00) repeat-x;border-color:#ff3b00;box-shadow:none}.btn-warning:hover{color:#fff;background:#d93200 linear-gradient(180deg, #df5126, #d93200) repeat-x;border-color:#cc2f00}.btn-warning:focus,.btn-warning.focus{box-shadow:none,0 0 0 0 rgba(255,59,0,0.5)}.btn-warning.disabled,.btn-warning:disabled{color:#fff;background-color:#ff3b00;border-color:#ff3b00}.btn-warning:not(:disabled):not(.disabled):active,.btn-warning:not(:disabled):not(.disabled).active,.show>.btn-warning.dropdown-toggle{color:#fff;background-color:#cc2f00;background-image:none;border-color:#bf2c00}.btn-warning:not(:disabled):not(.disabled):active:focus,.btn-warning:not(:disabled):not(.disabled).active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:none,0 0 0 0 rgba(255,59,0,0.5)}.btn-danger{color:#fff;background:#f03 linear-gradient(180deg, #ff2652, #f03) repeat-x;border-color:#f03;box-shadow:none}.btn-danger:hover{color:#fff;background:#d9002b linear-gradient(180deg, #df264b, #d9002b) repeat-x;border-color:#cc0029}.btn-danger:focus,.btn-danger.focus{box-shadow:none,0 0 0 0 rgba(255,0,51,0.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#f03;border-color:#f03}.btn-danger:not(:disabled):not(.disabled):active,.btn-danger:not(:disabled):not(.disabled).active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#cc0029;background-image:none;border-color:#bf0026}.btn-danger:not(:disabled):not(.disabled):active:focus,.btn-danger:not(:disabled):not(.disabled).active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:none,0 0 0 0 rgba(255,0,51,0.5)}.btn-light{color:#212529;background:#e9ecef linear-gradient(180deg, #eceff1, #e9ecef) repeat-x;border-color:#e9ecef;box-shadow:none}.btn-light:hover{color:#212529;background:#d3d9df linear-gradient(180deg, #dadfe4, #d3d9df) repeat-x;border-color:#cbd3da}.btn-light:focus,.btn-light.focus{box-shadow:none,0 0 0 0 rgba(233,236,239,0.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#e9ecef;border-color:#e9ecef}.btn-light:not(:disabled):not(.disabled):active,.btn-light:not(:disabled):not(.disabled).active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#cbd3da;background-image:none;border-color:#c4ccd4}.btn-light:not(:disabled):not(.disabled):active:focus,.btn-light:not(:disabled):not(.disabled).active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:none,0 0 0 0 rgba(233,236,239,0.5)}.btn-dark{color:#fff;background:#343a40 linear-gradient(180deg, #52585d, #343a40) repeat-x;border-color:#343a40;box-shadow:none}.btn-dark:hover{color:#fff;background:#23272b linear-gradient(180deg, #44474b, #23272b) repeat-x;border-color:#1d2124}.btn-dark:focus,.btn-dark.focus{box-shadow:none,0 0 0 0 rgba(52,58,64,0.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled):active,.btn-dark:not(:disabled):not(.disabled).active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;background-image:none;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled):active:focus,.btn-dark:not(:disabled):not(.disabled).active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:none,0 0 0 0 rgba(52,58,64,0.5)}.btn-zoom--hover:hover{transform:scale(1.1)}.card-img-bg{width:100%;height:100%;position:absolute;left:0;top:0;background-size:cover;border-radius:.375rem;-webkit-backface-visibility:hidden;transition:all 0.7s cubic-bezier(0.2, 1, 0.22, 1);-webkit-transition:all 0.7s cubic-bezier(0.2, 1, 0.22, 1)}.card:hover .card-img-bg{transform:scale(1.1);-webkit-transform:scale(1.1)}.card-img-bg ~ .card-body{position:relative}.card-pricing .card-header{padding-top:1.25rem;padding-bottom:1.25rem}.card-pricing .list-unstyled li{padding:.5rem 0;color:#6c757d}.card-pricing.popular{border:3px solid #288cff !important}.card-icon-actions a{display:inline-block;margin-right:0.625rem;color:#6c757d;font-size:0.875rem}.card-icon-actions-lg a{font-size:1.25rem;margin-right:0.875rem}.card-icon-actions a:last-of-type{margin-right:0}.card-icon-actions>a:hover,.card-icon-actions>.active{color:#343a40}.card-icon-actions>.favorite:hover,.card-icon-actions>.favorite.active{color:#ffd600}.card-icon-actions>.love:hover,.card-icon-actions>.love.active{color:#f03}.card-icon-actions>.like:hover,.card-icon-actions>.like.active{color:#3369d6}.card-comment-box input,.card-comment-box textarea{width:100%;border:0;background:transparent;padding:0.3125rem 0;margin:0;color:#343a40;outline:none;resize:none}.card-comment-box input:focus,.card-comment-box textarea:focus{background:transparent}.close{transition:all 0.2s ease-in-out}.close>span:not(.sr-only){background-color:rgba(0,0,0,0.3);line-height:17px;height:1.25rem;width:1.25rem;border-radius:50%;font-size:.8rem;display:block;transition:all 0.2s ease-in-out}.close:hover,.close:focus{color:#fff}.close:hover span:not(.sr-only),.close:focus span:not(.sr-only){background-color:rgba(0,0,0,0.5)}.custom-control-label::before{border:.0625rem solid #ced4da;transition:all 0.2s ease-in-out}.custom-control-label:hover::before{background:#dee2e6;border-color:#dee2e6}.custom-control-input:active ~ .custom-control-label::before{border-color:#288cff}.custom-checkbox .custom-control-input ~ .custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.custom-checkbox .custom-control-input:checked ~ .custom-control-label::before{border-color:#288cff}.custom-radio .custom-control-input ~ .custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E")}.custom-radio .custom-control-input:checked ~ .custom-control-label::before{border-color:#288cff}.toggle-switch{position:relative;display:inline-block;width:50px;height:1.5rem}.toggle-switch input{display:none}.toggle-switch input:checked+.toggle-switch-slider:before{background-color:#288cff;border-color:#288cff}.toggle-switch input:checked+.toggle-switch-slider{border:.0625rem solid #288cff}.toggle-switch input:checked+.toggle-switch-slider:before{-webkit-transform:translateX(1.625rem);-ms-transform:translateX(1.625rem);transform:translateX(1.625rem)}.toggle-switch input:disabled+.toggle-switch-slider{border:.0625rem solid #e9ecef}.toggle-switch input:checked:disabled+.toggle-switch-slider{border:.0625rem solid #e9ecef}.toggle-switch input:checked:disabled+.toggle-switch-slider:before{background-color:#5ba7ff}.toggle-switch-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;border:.0625rem solid #ced4da;border-radius:.25rem;background-color:transparent;-webkit-transition:0.4s;transition:0.4s}.toggle-switch-slider:before{position:absolute;content:"";height:18px;width:18px;left:.0625rem;bottom:2px;border-radius:.25rem;background-color:#ced4da;-webkit-transition:0.3s;transition:0.3s}.toggle-switch-slider.rounded-circle{border-radius:34px !important}.toggle-switch-slider.rounded-circle:before{border-radius:50% !important}.custom-input-file{width:0.1px;height:0.1px;opacity:0;outline:none;overflow:hidden;position:absolute;z-index:-1}.custom-input-file+label{text-overflow:ellipsis;white-space:nowrap;cursor:pointer;display:block;overflow:hidden;padding:0.625rem 1.25rem;border:1px solid #ced4da;border-radius:.375rem;color:#495057;background-color:#fff;outline:none}.custom-input-file+label:hover,.custom-input-file.has-focus+label,.custom-input-file:focus+label{background-color:#f8f9fa}.no-js .custom-input-file+label{display:none}.custom-input-file.has-focus+label,.custom-input-file:focus+label{outline:1px dotted #000;outline:-webkit-focus-ring-color auto 5px}.custom-input-file+label i{width:1em;height:1em;vertical-align:middle;fill:currentColor;margin-top:-0.25em;margin-right:.5em}.custom-input-file--2+label{color:#fff;border-color:#288cff;background:#288cff}.custom-input-file--2+label:hover,.custom-input-file--2.has-focus+label,.custom-input-file--2:focus+label{color:#fff;border-color:#0071f4;background:#0071f4}[data-delimiter="1"]::before{content:'';display:block;width:80%;position:absolute;bottom:0;left:50%;margin-left:-40%;height:1px;background:radial-gradient(ellipse at center, rgba(0,0,0,0.2) 0, rgba(255,255,255,0) 75%)}.dropdown,.dropup,.dropright,.dropleft{display:inline-block}.dropdown-menu{min-width:12rem}.dropdown-menu .dropdown-item{padding:0.5rem 1rem;font-size:.765625rem}.dropdown-menu .dropdown-item>i,.dropdown-menu .dropdown-item>svg{margin-right:1rem;font-size:1rem;vertical-align:-17%}.dropdown-header{padding-left:1rem;padding-right:1rem}.dropdown-menu-inverse{background:#282f37;border-color:#242a31}.dropdown-menu-inverse .dropdown-item{color:#dadada}.dropdown-menu-inverse .dropdown-item:active,.dropdown-menu-inverse .dropdown-item:focus,.dropdown-menu-inverse .dropdown-item:hover{color:#fff;background:#31353e}.dropdown-menu-inverse .dropdown-divider{background:#191e23}.dropdown-menu.dropdown-menu-sm{min-width:100px;border:.25rem}.dropdown-menu.dropdown-menu-lg{min-width:260px;border-radius:.375rem}.dropdown-menu.dropdown-menu-xl{min-width:320px;border-radius:.375rem}.footer{background:#fff;color:#6c757d}.footer .nav .nav-item .nav-link,.footer .footer-link{color:#6c757d !important}.footer .nav .nav-item .nav-link:hover,.footer .footer-link:hover{color:#288cff !important}.footer .list-unstyled li a{display:inline-block;padding:.125rem 0}.footer .list-unstyled li a:hover{color:#288cff !important}.footer-dark .heading{color:#fff}textarea[resize="none"]{resize:none !important}textarea[resize="both"]{resize:both !important}textarea[resize="vertical"]{resize:vertical !important}textarea[resize="horizontal"]{resize:horizontal !important}.form-control-xl{padding:1.15rem 1rem;font-size:1.3125rem;line-height:1.5;border-radius:.375rem}.has-floating-label{position:relative}.has-floating-label .control-label{font-size:.875rem;pointer-events:none;position:absolute;top:50%;padding:0 .5rem;margin:0 .5rem;color:#6c757d;transform:translateY(-50%) scale(1);transform-origin:left top;transition:0.3s;z-index:1}.has-floating-label .input-group .control-label{left:2rem}.has-floating-label.focused .control-label{padding:0;margin:0;top:-1.25rem;left:0;transform:translateY(0) scale(0.85)}.has-floating-label .control-label-xl{font-size:1.3125rem;padding:0 .5rem;margin:0 .5rem}.has-floating-label .control-label-lg{font-size:1.09375rem;padding:0 .5rem;margin:0 .5rem}.has-floating-label .control-label-sm{font-size:.765625rem;padding:0 .5rem;margin:0 .5rem}.form-primary .form-control{color:#fff;background-color:#006dea;border:.0625rem solid #006dea}.form-primary .form-control:focus{background-color:#0063d5;border:.0625rem solid #0063d5}.form-primary .form-control::placeholder{color:rgba(255,255,255,0.8)}.icon{width:3rem;height:3rem}.icon i,.icon svg{font-size:2.25rem}.icon+.icon-text{padding-left:1rem;width:calc(100% - $icon-size - 1)}.icon-xl{width:5rem;height:5rem i,svg;height-font-size:4.25rem}.icon-xl+.icon-text{width:calc(100% - $icon-size-xl - 1)}.icon-lg{width:4rem;height:4rem i,svg;height-font-size:3.25rem}.icon-lg+.icon-text{width:calc(100% - $icon-size-lg - 1)}.icon-sm{width:2rem;height:2rem i,svg;height-font-size:1.25rem}.icon-sm+.icon-text{width:calc(100% - $icon-size-sm - 1)}.input-group-text{transition:all 0.2s ease-in-out}.focused .input-group-text{color:#288cff;background-color:#e9ecef;border-color:#ced4da}.input-group-transparent .input-group-text{color:#6c757d;background-color:transparent;border:.0625rem solid #ced4da}.focused .input-group-transparent .input-group-text{background-color:#f8f9fa}.input-group-transparent .form-control:not(:first-child){border-left:0;padding-left:0}.input-group-transparent .form-control:not(:last-child){border-right:0;padding-right:0}.list-group{border-left:0;border-right:0}.list-group-item{padding:1rem 1rem;border:0;border-bottom:1px solid #e9ecef;color:#adb5bd;font-size:.765625rem;margin-bottom:0}.list-group-item-sm{padding:0.75rem 1rem}.list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0;border-top:1px solid #e9ecef}.list-group-item:last-child{border-bottom-right-radius:0;border-bottom-left-radius:0}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{background-color:#adb5bd;color:#343a40;border-color:#adb5bd}.list-group-item .label{margin-left:1rem}.card .list-group .list-group-item:first-child{border-top:0 !important}.card .list-group .list-group-item:last-child{border-bottom:0 !important}.list-group-img{width:3rem;height:3rem;border-radius:50%;vertical-align:top;margin:-.1rem 1.2rem 0 -.2rem}.list-group-content{-webkit-box-flex:1;-ms-flex:1;flex:1;min-width:0}.list-group-content>p{color:#adb5bd;line-height:1.5;margin:.2rem 0 0}.list-group-heading{font-size:.875rem;color:#343a40}.list-group-heading>small{float:right;color:#adb5bd;font-weight:500}.mask{position:absolute;top:0;left:0;width:100%;height:100%;transition:all 0.3s ease-in-out;-webkit-transition:all 0.3s ease-in-out}.modal-content{border:0;border-radius:.375rem}.modal-fluid .modal-dialog{margin-top:0;margin-bottom:0}.modal-fluid .modal-content{border-radius:0}.modal-primary .modal-title{color:#fff}.modal-primary .modal-header,.modal-primary .modal-footer{border-color:rgba(255,255,255,0.075)}.modal-primary .modal-content{background-color:#288cff;color:#fff}.modal-primary .modal-content .heading{color:#fff}.modal-primary .close>span:not(.sr-only){color:#fff}.modal-secondary .modal-title{color:#212529}.modal-secondary .modal-header,.modal-secondary .modal-footer{border-color:rgba(33,37,41,0.075)}.modal-secondary .modal-content{background-color:#e8f2ff;color:#212529}.modal-secondary .modal-content .heading{color:#212529}.modal-secondary .close>span:not(.sr-only){color:#fff}.modal-success .modal-title{color:#fff}.modal-success .modal-header,.modal-success .modal-footer{border-color:rgba(255,255,255,0.075)}.modal-success .modal-content{background-color:#00c759;color:#fff}.modal-success .modal-content .heading{color:#fff}.modal-success .close>span:not(.sr-only){color:#fff}.modal-info .modal-title{color:#212529}.modal-info .modal-header,.modal-info .modal-footer{border-color:rgba(33,37,41,0.075)}.modal-info .modal-content{background-color:#73e9ef;color:#212529}.modal-info .modal-content .heading{color:#212529}.modal-info .close>span:not(.sr-only){color:#fff}.modal-warning .modal-title{color:#fff}.modal-warning .modal-header,.modal-warning .modal-footer{border-color:rgba(255,255,255,0.075)}.modal-warning .modal-content{background-color:#ff3b00;color:#fff}.modal-warning .modal-content .heading{color:#fff}.modal-warning .close>span:not(.sr-only){color:#fff}.modal-danger .modal-title{color:#fff}.modal-danger .modal-header,.modal-danger .modal-footer{border-color:rgba(255,255,255,0.075)}.modal-danger .modal-content{background-color:#f03;color:#fff}.modal-danger .modal-content .heading{color:#fff}.modal-danger .close>span:not(.sr-only){color:#fff}.modal-light .modal-title{color:#212529}.modal-light .modal-header,.modal-light .modal-footer{border-color:rgba(33,37,41,0.075)}.modal-light .modal-content{background-color:#e9ecef;color:#212529}.modal-light .modal-content .heading{color:#212529}.modal-light .close>span:not(.sr-only){color:#fff}.modal-dark .modal-title{color:#fff}.modal-dark .modal-header,.modal-dark .modal-footer{border-color:rgba(255,255,255,0.075)}.modal-dark .modal-content{background-color:#343a40;color:#fff}.modal-dark .modal-content .heading{color:#fff}.modal-dark .close>span:not(.sr-only){color:#fff}.modal-tertiary .modal-title{color:#fff}.modal-tertiary .modal-header,.modal-tertiary .modal-footer{border-color:rgba(255,255,255,0.075)}.modal-tertiary .modal-content{background-color:#192b3f;color:#fff}.modal-tertiary .modal-content .heading{color:#fff}.modal-tertiary .close>span:not(.sr-only){color:#fff}.nav-pills .nav-link{padding:1rem 1rem;border:1px solid #dee2e6;border-radius:0;color:#6c757d;font-weight:500}.nav-pills .nav-link:hover{color:#343a40}.nav-pills .nav-item:not(:first-child) .nav-link{border-left:0}.nav-pills .nav-item:first-child .nav-link{border-top-left-radius:.375rem;border-bottom-left-radius:.375rem}.nav-pills .nav-item:last-child .nav-link{border-top-right-radius:.375rem;border-bottom-right-radius:.375rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#288cff;background-color:transparent}@media (max-width: 576px){.nav-pills .nav-item{margin-bottom:1rem}}.navbar-nav .nav-link{font-size:.875rem;font-family:"Nunito",sans-serif;font-weight:500;text-transform:normal;letter-spacing:0;-webkit-transition:all 0.15s linear;transition:all 0.15s linear}@media (min-width: 992px){.navbar-nav .nav-item{margin-right:0.5rem}.navbar-nav .nav-link{padding-top:.75rem;padding-bottom:.75rem;border-radius:.375rem}.navbar-nav .nav-link-icon{border-radius:.375rem}}.navbar-light .navbar-brand{color:rgba(0,0,0,0.9)}.navbar-light .navbar-brand:hover,.navbar-light .navbar-brand:focus{color:rgba(0,0,0,0.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,0.5)}.navbar-light .navbar-nav .nav-link:hover,.navbar-light .navbar-nav .nav-link:focus{color:rgba(0,0,0,0.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,0.3)}.navbar-light .navbar-nav .show>.nav-link,.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .nav-link.active{color:rgba(0,0,0,0.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,0.5);border-color:rgba(0,0,0,0.1)}.navbar-light .navbar-toggler-icon{background-image:str-replace(url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(0,0,0,0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E"), "#", "%23")}.navbar-light .navbar-text{color:rgba(0,0,0,0.5)}.navbar-light .navbar-text a{color:rgba(0,0,0,0.9)}.navbar-light .navbar-text a:hover,.navbar-light .navbar-text a:focus{color:rgba(0,0,0,0.9)}.navbar-dark .navbar-nav .nav-link{background-color:transparent}.navbar-dark .navbar-nav .nav-link:hover,.navbar-dark .navbar-nav .nav-link:focus{background-color:rgba(255,255,255,0.1)}.navbar-dark .navbar-nav .show>.nav-link,.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .nav-link.active{background-color:rgba(255,255,255,0.1)}@media (min-width: 992px){.navbar-transparent{position:absolute;top:0;width:100%;z-index:100;background-color:transparent !important;border:0;box-shadow:none}.navbar-transparent.border-bottom{border-color:rgba(0,0,0,0.1)}}@media (max-width: 767.98px){.offcanvas-collapse{width:270px;position:fixed;top:0;bottom:0;right:0;z-index:1050;padding:1.5rem;overflow-y:auto;transition:transform 300ms, opacity 300ms;transform:translate3d(100%, 0, 0);opacity:0}.offcanvas-collapse .navbar-nav .nav-item{margin-bottom:0.2rem}.offcanvas-collapse .navbar-nav .nav-link{padding-left:1rem;padding-right:1rem;border-radius:.375rem}.offcanvas-collapse.open{box-shadow:-5px 0px 10px 0px rgba(0,0,0,0.15);opacity:1;transform:translate3d(0, 0, 0)}.navbar-light .offcanvas-collapse{background-color:#fff}.navbar-light .dropdown-divider{border-color:rgba(0,0,0,0.1)}.navbar-dark .offcanvas-collapse{background-color:#343a40}.navbar-dark .dropdown-divider{border-color:rgba(255,255,255,0.1)}}.page-item .page-link,.page-item>span{margin:0 3px;border-radius:.25rem;text-align:center}.pagination-circle .page-item .page-link,.pagination-circle .page-item>span{border-radius:50% !important;margin:0 5px;display:block;width:36px;height:36px}.pagination-circle.pagination-lg .page-item .page-link,.pagination-circle.pagination-lg .page-item>span{border-radius:50% !important;margin:0 5px;display:block;width:52px;height:52px}.popover{border:0}.popover-header{font-weight:600}.popover-primary{background-color:#288cff}.popover-primary .popover-header,.popover-primary .popover-body{background-color:#288cff;color:#fff}.popover-primary .popover-header{border-color:rgba(255,255,255,0.2)}.popover-primary.bs-popover-top .arrow::after,.popover-primary.bs-popover-auto[x-placement^="top"] .arrow::after{border-top-color:#288cff}.popover-primary.bs-popover-right .arrow::after,.popover-primary.bs-popover-auto[x-placement^="right"] .arrow::after{border-right-color:#288cff}.popover-primary.bs-popover-bottom .arrow::after,.popover-primary.bs-popover-auto[x-placement^="bottom"] .arrow::after{border-bottom-color:#288cff}.popover-primary.bs-popover-left .arrow::after,.popover-primary.bs-popover-auto[x-placement^="left"] .arrow::after{border-left-color:#288cff}.popover-secondary{background-color:#e8f2ff}.popover-secondary .popover-header,.popover-secondary .popover-body{background-color:#e8f2ff;color:#212529}.popover-secondary .popover-header{border-color:rgba(33,37,41,0.2)}.popover-secondary.bs-popover-top .arrow::after,.popover-secondary.bs-popover-auto[x-placement^="top"] .arrow::after{border-top-color:#e8f2ff}.popover-secondary.bs-popover-right .arrow::after,.popover-secondary.bs-popover-auto[x-placement^="right"] .arrow::after{border-right-color:#e8f2ff}.popover-secondary.bs-popover-bottom .arrow::after,.popover-secondary.bs-popover-auto[x-placement^="bottom"] .arrow::after{border-bottom-color:#e8f2ff}.popover-secondary.bs-popover-left .arrow::after,.popover-secondary.bs-popover-auto[x-placement^="left"] .arrow::after{border-left-color:#e8f2ff}.popover-success{background-color:#00c759}.popover-success .popover-header,.popover-success .popover-body{background-color:#00c759;color:#fff}.popover-success .popover-header{border-color:rgba(255,255,255,0.2)}.popover-success.bs-popover-top .arrow::after,.popover-success.bs-popover-auto[x-placement^="top"] .arrow::after{border-top-color:#00c759}.popover-success.bs-popover-right .arrow::after,.popover-success.bs-popover-auto[x-placement^="right"] .arrow::after{border-right-color:#00c759}.popover-success.bs-popover-bottom .arrow::after,.popover-success.bs-popover-auto[x-placement^="bottom"] .arrow::after{border-bottom-color:#00c759}.popover-success.bs-popover-left .arrow::after,.popover-success.bs-popover-auto[x-placement^="left"] .arrow::after{border-left-color:#00c759}.popover-info{background-color:#73e9ef}.popover-info .popover-header,.popover-info .popover-body{background-color:#73e9ef;color:#212529}.popover-info .popover-header{border-color:rgba(33,37,41,0.2)}.popover-info.bs-popover-top .arrow::after,.popover-info.bs-popover-auto[x-placement^="top"] .arrow::after{border-top-color:#73e9ef}.popover-info.bs-popover-right .arrow::after,.popover-info.bs-popover-auto[x-placement^="right"] .arrow::after{border-right-color:#73e9ef}.popover-info.bs-popover-bottom .arrow::after,.popover-info.bs-popover-auto[x-placement^="bottom"] .arrow::after{border-bottom-color:#73e9ef}.popover-info.bs-popover-left .arrow::after,.popover-info.bs-popover-auto[x-placement^="left"] .arrow::after{border-left-color:#73e9ef}.popover-warning{background-color:#ff3b00}.popover-warning .popover-header,.popover-warning .popover-body{background-color:#ff3b00;color:#fff}.popover-warning .popover-header{border-color:rgba(255,255,255,0.2)}.popover-warning.bs-popover-top .arrow::after,.popover-warning.bs-popover-auto[x-placement^="top"] .arrow::after{border-top-color:#ff3b00}.popover-warning.bs-popover-right .arrow::after,.popover-warning.bs-popover-auto[x-placement^="right"] .arrow::after{border-right-color:#ff3b00}.popover-warning.bs-popover-bottom .arrow::after,.popover-warning.bs-popover-auto[x-placement^="bottom"] .arrow::after{border-bottom-color:#ff3b00}.popover-warning.bs-popover-left .arrow::after,.popover-warning.bs-popover-auto[x-placement^="left"] .arrow::after{border-left-color:#ff3b00}.popover-danger{background-color:#f03}.popover-danger .popover-header,.popover-danger .popover-body{background-color:#f03;color:#fff}.popover-danger .popover-header{border-color:rgba(255,255,255,0.2)}.popover-danger.bs-popover-top .arrow::after,.popover-danger.bs-popover-auto[x-placement^="top"] .arrow::after{border-top-color:#f03}.popover-danger.bs-popover-right .arrow::after,.popover-danger.bs-popover-auto[x-placement^="right"] .arrow::after{border-right-color:#f03}.popover-danger.bs-popover-bottom .arrow::after,.popover-danger.bs-popover-auto[x-placement^="bottom"] .arrow::after{border-bottom-color:#f03}.popover-danger.bs-popover-left .arrow::after,.popover-danger.bs-popover-auto[x-placement^="left"] .arrow::after{border-left-color:#f03}.popover-light{background-color:#e9ecef}.popover-light .popover-header,.popover-light .popover-body{background-color:#e9ecef;color:#212529}.popover-light .popover-header{border-color:rgba(33,37,41,0.2)}.popover-light.bs-popover-top .arrow::after,.popover-light.bs-popover-auto[x-placement^="top"] .arrow::after{border-top-color:#e9ecef}.popover-light.bs-popover-right .arrow::after,.popover-light.bs-popover-auto[x-placement^="right"] .arrow::after{border-right-color:#e9ecef}.popover-light.bs-popover-bottom .arrow::after,.popover-light.bs-popover-auto[x-placement^="bottom"] .arrow::after{border-bottom-color:#e9ecef}.popover-light.bs-popover-left .arrow::after,.popover-light.bs-popover-auto[x-placement^="left"] .arrow::after{border-left-color:#e9ecef}.popover-dark{background-color:#343a40}.popover-dark .popover-header,.popover-dark .popover-body{background-color:#343a40;color:#fff}.popover-dark .popover-header{border-color:rgba(255,255,255,0.2)}.popover-dark.bs-popover-top .arrow::after,.popover-dark.bs-popover-auto[x-placement^="top"] .arrow::after{border-top-color:#343a40}.popover-dark.bs-popover-right .arrow::after,.popover-dark.bs-popover-auto[x-placement^="right"] .arrow::after{border-right-color:#343a40}.popover-dark.bs-popover-bottom .arrow::after,.popover-dark.bs-popover-auto[x-placement^="bottom"] .arrow::after{border-bottom-color:#343a40}.popover-dark.bs-popover-left .arrow::after,.popover-dark.bs-popover-auto[x-placement^="left"] .arrow::after{border-left-color:#343a40}.popover-tertiary{background-color:#192b3f}.popover-tertiary .popover-header,.popover-tertiary .popover-body{background-color:#192b3f;color:#fff}.popover-tertiary .popover-header{border-color:rgba(255,255,255,0.2)}.popover-tertiary.bs-popover-top .arrow::after,.popover-tertiary.bs-popover-auto[x-placement^="top"] .arrow::after{border-top-color:#192b3f}.popover-tertiary.bs-popover-right .arrow::after,.popover-tertiary.bs-popover-auto[x-placement^="right"] .arrow::after{border-right-color:#192b3f}.popover-tertiary.bs-popover-bottom .arrow::after,.popover-tertiary.bs-popover-auto[x-placement^="bottom"] .arrow::after{border-bottom-color:#192b3f}.popover-tertiary.bs-popover-left .arrow::after,.popover-tertiary.bs-popover-auto[x-placement^="left"] .arrow::after{border-left-color:#192b3f}.progress-wrapper{position:relative;padding-top:1.5rem}.progress{height:1rem;margin-bottom:1rem;overflow:hidden;border-radius:.25rem;background-color:#e9ecef;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-inverse{background-color:#343a40}.progress.progress-lg{height:1.5rem}.progress.progress-md{height:1rem}.progress.progress-sm{height:0.625rem}.progress.progress-xs{height:0.25rem}.progress .sr-only{width:auto;height:20px;margin:0 0 0 30px;left:0;clip:auto;line-height:20px;font-size:13px}.progress-heading{font-size:14px;font-weight:500;margin:0 0 2px;padding:0}.progress-bar{-webkit-box-shadow:none;box-shadow:none;border-radius:0;height:auto}.progress-text{margin-bottom:0}.progress-text .mark{float:left;width:50%;background:transparent}.progress-text .mark.right{text-align:right}.progress-tooltip{display:inline-block;background:rgba(0,0,0,0.8);color:#fff;padding:.25rem .375rem;line-height:1;font-size:0.7rem;position:relative;bottom:8px;border-radius:3px;margin-left:-15px}.progress-tooltip:after{top:100%;left:10px;border:solid transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none;border-color:rgba(51,51,51,0);border-top-color:rgba(0,0,0,0.8);border-width:5px}.progress-label{display:inline-block;color:#6c757d;position:absolute;top:0;left:0;font-size:.65625rem}.progress-percentage{display:inline-block;color:#6c757d;font-size:1rem;position:absolute;right:0;top:0}.main{position:relative}.slice{position:relative;padding-top:4rem;padding-bottom:4rem}.slice-xl{padding-top:8rem;padding-bottom:8rem}.slice-lg{padding-top:6rem;padding-bottom:6rem}.slice-sm{padding-top:2rem;padding-bottom:2rem}.offset-top{padding-top:4rem}.offset-top-xl{padding-top:8rem}.offset-top-lg{padding-top:6rem}.offset-top-sm{padding-top:2rem}.sidebar-sticky.is_stuck{padding-top:1.5rem}.spotlight{position:relative}.spotlight .container{height:100%}@media (min-height: 600px) and (min-width: 767px){[data-spotlight="fullscreen"]{height:100vh}}.table .table.align-items-center th,.table .table.align-items-center td,.table.align-items-center th,.table.align-items-center td{vertical-align:middle}.table-hover tr{-webkit-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out}.table.table-cards{border-collapse:collapse}.table.table-cards th,.table.table-cards td{border:none}.table-cards tr.bg-white>th,.table-cards tr.bg-white>td{padding:1rem;position:relative}.table-cards tr.bg-white>th:after,.table-cards tr.bg-white>td:after{content:'';position:absolute;width:100%;height:100%;border-top:1px solid #dee2e6;border-bottom:1px solid #dee2e6;left:0;top:0;pointer-events:none}.table-cards tr.bg-white>th{border-radius:.375rem 0 0 .375rem}.table-cards tr.bg-white>th:after{border-radius:.375rem 0 0 .375rem;border-left:1px solid #dee2e6}.table-cards tr.bg-white>td:last-child{border-radius:0 .375rem .375rem 0}.table-cards tr.bg-white>td:last-child:after{border-radius:0 .375rem .375rem 0;border-right:1px solid #dee2e6}.table-hover tr.bg-white:hover{background-color:rgba(0,0,0,0.075) !important}tr.table-divider{height:0.75rem}body{font-family:"Nunito",sans-serif;font-size:.875rem;line-height:1.6}.heading{font-family:"Nunito",sans-serif}.fluid-paragraph{width:680px;margin:auto;padding:0 1.5rem;position:relative}@media (max-width: 767px){.fluid-paragraph{width:100%}}select.bs-select-hidden,select.selectpicker{display:none !important}.bootstrap-select{width:220px\9}.bootstrap-select>.dropdown-toggle{width:100%;padding-right:25px;z-index:1}.bootstrap-select>select{position:absolute !important;bottom:0;left:50%;display:block !important;width:0.5px !important;height:100% !important;padding:0 !important;opacity:0 !important;border:none}.bootstrap-select>select.mobile-device{top:0;left:0;display:block !important;width:100% !important;z-index:2}.error .bootstrap-select .dropdown-toggle,.has-error .bootstrap-select .dropdown-toggle{border-color:#b94a48}.bootstrap-select.fit-width{width:auto !important}.bootstrap-select:not([class*=col-]):not([class*=form-control]):not(.input-group-btn){width:220px}.bootstrap-select .dropdown-toggle:focus{outline:thin dotted #333 !important;outline:5px auto -webkit-focus-ring-color !important;outline-offset:-2px}.bootstrap-select.form-control{margin-bottom:0;padding:0;border:none}.bootstrap-select.form-control:not([class*=col-]){width:100%}.bootstrap-select.form-control.input-group-btn{z-index:auto}.bootstrap-select.form-control.input-group-btn:not(:first-child):not(:last-child)>.btn{border-radius:0}.bootstrap-select.btn-group:not(.input-group-btn),.bootstrap-select.btn-group[class*=col-]{float:none;display:inline-block;margin-left:0}.bootstrap-select.btn-group.dropdown-menu-right,.bootstrap-select.btn-group[class*=col-].dropdown-menu-right,.row .bootstrap-select.btn-group[class*=col-].dropdown-menu-right{float:right}.form-group .bootstrap-select.btn-group,.form-horizontal .bootstrap-select.btn-group,.form-inline .bootstrap-select.btn-group{margin-bottom:0}.form-group-lg .bootstrap-select.btn-group.form-control,.form-group-sm .bootstrap-select.btn-group.form-control{padding:0}.form-group-lg .bootstrap-select.btn-group.form-control .dropdown-toggle,.form-group-sm .bootstrap-select.btn-group.form-control .dropdown-toggle{height:100%;font-size:inherit;line-height:inherit;border-radius:inherit}.form-inline .bootstrap-select.btn-group .form-control{width:100%}.bootstrap-select.btn-group.disabled,.bootstrap-select.btn-group>.disabled{cursor:not-allowed}.bootstrap-select.btn-group.disabled:focus,.bootstrap-select.btn-group>.disabled:focus{outline:0 !important}.bootstrap-select.btn-group.bs-container{position:absolute;height:0 !important;padding:0 !important}.bootstrap-select.btn-group.bs-container .dropdown-menu{z-index:1060}.bootstrap-select.btn-group .dropdown-toggle .filter-option{display:inline-block;overflow:hidden;width:100%;text-align:left}.bootstrap-select.btn-group .dropdown-toggle .caret{position:absolute;top:50%;right:12px;margin-top:-2px;vertical-align:middle}.bootstrap-select.btn-group[class*=col-] .dropdown-toggle{width:100%}.bootstrap-select.btn-group .dropdown-menu{min-width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bootstrap-select.btn-group .dropdown-menu.inner{display:block;position:static;float:none;border:0;padding:0;margin:0;border-radius:0;-webkit-box-shadow:none;box-shadow:none}.bootstrap-select.btn-group .dropdown-menu li{position:relative}.bootstrap-select.btn-group .dropdown-menu li.active small{color:#fff}.bootstrap-select.btn-group .dropdown-menu li.disabled a{cursor:not-allowed}.bootstrap-select.btn-group .dropdown-menu li a{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.bootstrap-select.btn-group .dropdown-menu li a.opt{position:relative;padding-left:2.25em}.bootstrap-select.btn-group .dropdown-menu li a span.check-mark{display:none}.bootstrap-select.btn-group .dropdown-menu li a span.text{display:inline-block}.bootstrap-select.btn-group .dropdown-menu li small{padding-left:0.5em}.bootstrap-select.btn-group .dropdown-menu .notify{position:absolute;bottom:5px;width:96%;margin:0 2%;min-height:26px;padding:3px 5px;background:#f5f5f5;border:1px solid #e3e3e3;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);pointer-events:none;opacity:.9;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bootstrap-select.btn-group .no-results{padding:3px;background:#f5f5f5;margin:0 5px;white-space:nowrap}.bootstrap-select.btn-group.fit-width .dropdown-toggle .filter-option{position:static}.bootstrap-select.btn-group.fit-width .dropdown-toggle .caret{position:static;top:auto;margin-top:-1px}.bootstrap-select.btn-group.show-tick .dropdown-menu li.selected a span.check-mark{position:absolute;display:inline-block;right:15px;margin-top:5px}.bootstrap-select.btn-group.show-tick .dropdown-menu li a span.text{margin-right:34px}.bootstrap-select.show-menu-arrow.open>.dropdown-toggle{z-index:1061}.bootstrap-select.show-menu-arrow .dropdown-toggle:before{content:'';border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid rgba(204,204,204,0.2);position:absolute;bottom:-4px;left:9px;display:none}.bootstrap-select.show-menu-arrow .dropdown-toggle:after{content:'';border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #fff;position:absolute;bottom:-4px;left:10px;display:none}.bootstrap-select.show-menu-arrow.dropup .dropdown-toggle:before{bottom:auto;top:-3px;border-top:7px solid rgba(204,204,204,0.2);border-bottom:0}.bootstrap-select.show-menu-arrow.dropup .dropdown-toggle:after{bottom:auto;top:-3px;border-top:6px solid #fff;border-bottom:0}.bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle:before{right:12px;left:auto}.bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle:after{right:13px;left:auto}.bootstrap-select.show-menu-arrow.open>.dropdown-toggle:after,.bootstrap-select.show-menu-arrow.open>.dropdown-toggle:before{display:block}.bs-actionsbox,.bs-donebutton,.bs-searchbox{padding:4px 8px}.bs-actionsbox{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bs-actionsbox .btn-group button{width:50%}.bs-donebutton{float:left;width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bs-donebutton .btn-group button{width:100%}.bs-searchbox+.bs-actionsbox{padding:0 8px 4px}.bs-searchbox .form-control{margin-bottom:0;width:100%;float:none;padding:1rem}.bootstrap-select:not([class*="col-"]):not([class*="form-control"]):not(.input-group-btn){width:100%}.bootstrap-select .dropdown-toggle{text-align:left}.bootstrap-select .btn-default.bs-placeholder{color:#6c757d;font-weight:normal}.bootstrap-select .dropdown-toggle.btn-default{color:#495057;background-color:#fff;border-color:#ced4da;text-align:left}.bootstrap-select .bs-placeholder{font-weight:normal}.bootstrap-select .btn-default.bs-placeholder{color:#6c757d}.bootstrap-select .dropdown-toggle.btn-default:active,.bootstrap-select.show>.btn-default.dropdown-toggle{background-color:#f8f9fa;color:#6c757d;border-color:#ced4da;box-shadow:none}.bootstrap-select .btn svg,.bootstrap-select .btn i{margin-right:0.5rem;color:#6c757d}.input-group>.input-group-prepend>.bootstrap-select,.input-group>.input-group-append>.bootstrap-select{max-width:100%}.input-group .bootstrap-select .btn{display:flex;align-items:center;padding:.75rem 2rem .75rem 1rem;margin-bottom:0;font-size:.875rem;font-weight:400;line-height:1.6;color:#6c757d;text-align:center;white-space:nowrap;background-color:#f8f9fa;border:.0625rem solid #ced4da;border-radius:.375rem}.input-group>.input-group-prepend>.bootstrap-select>.btn{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.bootstrap-select>.btn{border-top-left-radius:0;border-bottom-left-radius:0}.focused .bootstrap-select .btn{color:#288cff;background-color:#e9ecef;border-color:#ced4da}.bootstrap-select.show>.dropdown-menu>.dropdown-menu{display:block}.bootstrap-select .dropdown-menu .selected .dropdown-item{color:#288cff}.bootstrap-select>.dropdown-menu>.dropdown-menu li.hidden{display:none}.bootstrap-select.btn-group .dropdown-menu li small{display:block;padding:0}.bootstrap-select .dropdown-menu .dropdown-item svg,.bootstrap-select .dropdown-menu .selected i{margin-right:0.5rem;color:#6c757d}.bootstrap-select>.dropdown-toggle:after{position:absolute;right:1rem;top:50%;transform:translateY(-50%)}.bs-searchbox{padding:0;margin-bottom:.5rem;margin-top:-.5rem}.bootstrap-select .form-control{background-color:transparent;border:0;border-bottom:1px solid #e9ecef;border-radius:0}.bootstrap-select .check-mark{font-size:.65625rem}.bootstrap-select button{overflow:hidden;text-overflow:ellipsis}.bootstrap-select.btn-group .dropdown-toggle .filter-option{display:inline !important}.bootstrap-tagsinput{background-color:#fff;border:.0625rem solid #ced4da;display:inline-block;padding:.3em .3em;color:#ced4da;vertical-align:middle;border-radius:.375rem;max-width:100%;cursor:text}.bootstrap-tagsinput input{border:none;box-shadow:none;outline:none;background-color:transparent;padding:0 6px;margin:0;width:auto;max-width:inherit}.bootstrap-tagsinput.form-control input::-moz-placeholder{color:#6c757d;opacity:1}.bootstrap-tagsinput.form-control input:-ms-input-placeholder{color:#6c757d}.bootstrap-tagsinput.form-control input::-webkit-input-placeholder{color:#6c757d}.bootstrap-tagsinput input:focus{border:none;box-shadow:none}.bootstrap-tagsinput .badge{padding:1em .8em;margin-right:0.125rem;border-radius:.375rem}.bootstrap-tagsinput [data-role="remove"]{margin-left:8px;cursor:pointer;color:rgba(255,255,255,0.6)}.bootstrap-tagsinput [data-role="remove"]:after{content:"x";padding:0px 2px}.bootstrap-tagsinput [data-role="remove"]:hover{color:#fff}.noUi-target,.noUi-target *{-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;-ms-touch-action:none;touch-action:none;-ms-user-select:none;-moz-user-select:none;user-select:none;-moz-box-sizing:border-box;box-sizing:border-box}.noUi-target{position:relative;direction:ltr}.noUi-base,.noUi-connects{width:100%;height:100%;position:relative;z-index:1}.noUi-connects{overflow:hidden;z-index:0}.noUi-connect,.noUi-origin{will-change:transform;position:absolute;z-index:1;top:0;left:0;height:100%;width:100%;-webkit-transform-origin:0 0;transform-origin:0 0}html:not([dir="rtl"]) .noUi-horizontal .noUi-origin{left:auto;right:0}.noUi-vertical .noUi-origin{width:0}.noUi-horizontal .noUi-origin{height:0}.noUi-handle{position:absolute}.noUi-state-tap .noUi-connect,.noUi-state-tap .noUi-origin{-webkit-transition:transform 0.3s;transition:transform 0.3s}.noUi-state-drag *{cursor:inherit !important}.noUi-horizontal{height:.0625rem}.noUi-horizontal .noUi-handle{width:34px;height:28px;left:-17px;top:-6px}.noUi-vertical{width:.0625rem}.noUi-vertical .noUi-handle{width:28px;height:34px;left:-6px;top:-17px}html:not([dir="rtl"]) .noUi-horizontal .noUi-handle{right:-17px;left:auto}.noUi-target{background:#dee2e6;border-radius:4px;border:0;box-shadow:inset 0 1px 1px #F0F0F0, 0 3px 6px -5px #BBB}.noUi-connects{border-radius:3px}.noUi-connect{background:#288cff}.noUi-draggable{cursor:ew-resize}.noUi-vertical .noUi-draggable{cursor:ns-resize}.noUi-handle{border:1px solid #D9D9D9;border-radius:3px;background:#FFF;cursor:default;box-shadow:inset 0 0 1px #FFF, inset 0 1px 7px #EBEBEB, 0 3px 6px -3px #BBB}.noUi-active{box-shadow:inset 0 0 1px #FFF, inset 0 1px 7px #DDD, 0 3px 6px -3px #BBB}[disabled] .noUi-connect{background:#B8B8B8}[disabled].noUi-target,[disabled].noUi-handle,[disabled] .noUi-handle{cursor:not-allowed}.noUi-pips,.noUi-pips *{-moz-box-sizing:border-box;box-sizing:border-box}.noUi-pips{position:absolute;color:#999}.noUi-value{position:absolute;white-space:nowrap;text-align:center}.noUi-value-sub{color:#ccc;font-size:10px}.noUi-marker{position:absolute;background:#CCC}.noUi-marker-sub{background:#AAA}.noUi-marker-large{background:#AAA}.noUi-pips-horizontal{padding:10px 0;height:80px;top:100%;left:0;width:100%}.noUi-value-horizontal{-webkit-transform:translate(-50%, 50%);transform:translate(-50%, 50%)}.noUi-rtl .noUi-value-horizontal{-webkit-transform:translate(50%, 50%);transform:translate(50%, 50%)}.noUi-marker-horizontal.noUi-marker{margin-left:-1px;width:2px;height:5px}.noUi-marker-horizontal.noUi-marker-sub{height:10px}.noUi-marker-horizontal.noUi-marker-large{height:15px}.noUi-pips-vertical{padding:0 10px;height:100%;top:0;left:100%}.noUi-value-vertical{-webkit-transform:translate(0, -50%);transform:translate(0, -50%, 0);padding-left:25px}.noUi-rtl .noUi-value-vertical{-webkit-transform:translate(0, 50%);transform:translate(0, 50%)}.noUi-marker-vertical.noUi-marker{width:5px;height:2px;margin-top:-1px}.noUi-marker-vertical.noUi-marker-sub{width:10px}.noUi-marker-vertical.noUi-marker-large{width:15px}.noUi-tooltip{display:block;position:absolute;border:1px solid #D9D9D9;border-radius:3px;background:#fff;color:#000;padding:5px;text-align:center;white-space:nowrap}.noUi-horizontal .noUi-tooltip{-webkit-transform:translate(-50%, 0);transform:translate(-50%, 0);left:50%;bottom:120%}.noUi-vertical .noUi-tooltip{-webkit-transform:translate(0, -50%);transform:translate(0, -50%);top:50%;right:120%}.noUi-target{border-radius:0;box-shadow:none;border:0;background:#dee2e6;margin:15px 0}.noUi-horizontal{height:.0625rem}html:not([dir="rtl"]) .noUi-horizontal .noUi-handle{right:-10px}.noUi-vertical{width:.0625rem}.noUi-connect{background:#288cff;box-shadow:none}.noUi-horizontal .noUi-handle,.noUi-vertical .noUi-handle{top:-7px;width:15px;height:15px;border:0;border-radius:100%;box-shadow:none;cursor:pointer;background-color:#288cff;transition:box-shadow 0.2s,-webkit-transform 0.2s;transition:box-shadow 0.2s,transform 0.2s;transition:box-shadow 0.2s,transform 0.2s,-webkit-transform 0.2s}.noUi-horizontal .noUi-handle:after,.noUi-horizontal .noUi-handle:before,.noUi-vertical .noUi-handle:after,.noUi-vertical .noUi-handle:before{display:none}.noUi-horizontal .noUi-handle.noUi-active,.noUi-vertical .noUi-handle.noUi-active{-webkit-transform:scale(1.3);transform:scale(1.3)}.noUi-horizontal .noUi-active,.noUi-vertical .noUi-active{box-shadow:0 0 0 3px rgba(0,0,0,0.1)}.input-slider--cyan .noUi-connect{background:#2bffc6}.input-slider--cyan.noUi-horizontal .noUi-handle,.input-slider--cyan.noUi-vertical .noUi-handle{background-color:#2bffc6}.input-slider--red .noUi-connect{background:#f03}.input-slider--red.noUi-horizontal .noUi-handle,.input-slider--red.noUi-vertical .noUi-handle{background-color:#f03}.input-slider--green .noUi-connect{background:#00c759}.input-slider--green.noUi-horizontal .noUi-handle,.input-slider--green.noUi-vertical .noUi-handle{background-color:#00c759}.input-slider--yellow .noUi-connect{background:#ffd600}.input-slider--yellow.noUi-horizontal .noUi-handle,.input-slider--yellow.noUi-vertical .noUi-handle{background-color:#ffd600}.input-slider--pink .noUi-connect{background:#e36397}.input-slider--pink.noUi-horizontal .noUi-handle,.input-slider--pink.noUi-vertical .noUi-handle{background-color:#e36397}[disabled] .noUi-connect,[disabled].noUi-connect{background:#b2b2b2}[disabled] .noUi-handle,[disabled].noUi-origin{cursor:not-allowed}.range-slider-value{font-size:.65625rem;font-weight:500;background-color:rgba(52,58,64,0.7);color:#fff;border-radius:10px;padding:.4em .8em .3em .85em}.range-slider-wrapper .upper-info{font-weight:400;margin-bottom:5px}.input-slider-value-output{background:#333;color:#fff;padding:4px 8px;position:relative;top:12px;font-size:11px;border-radius:2px}.input-slider-value-output:after{bottom:100%;left:10px;border:solid transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none;border-color:rgba(136,183,213,0);border-bottom-color:#333;border-width:4px;margin-left:-4px}.input-slider-value-output.left:after{left:10px;right:auto}.input-slider-value-output.right:after{right:10px;left:auto} diff --git a/static/images/backgrounds/img-1.jpg b/static/images/backgrounds/img-1.jpg new file mode 100644 index 0000000..4360745 Binary files /dev/null and b/static/images/backgrounds/img-1.jpg differ diff --git a/static/images/backgrounds/img-1.png b/static/images/backgrounds/img-1.png new file mode 100644 index 0000000..7447e21 Binary files /dev/null and b/static/images/backgrounds/img-1.png differ diff --git a/static/images/backgrounds/img-2.jpg b/static/images/backgrounds/img-2.jpg new file mode 100644 index 0000000..95bde3a Binary files /dev/null and b/static/images/backgrounds/img-2.jpg differ diff --git a/static/images/backgrounds/img-3.jpg b/static/images/backgrounds/img-3.jpg new file mode 100644 index 0000000..db2732a Binary files /dev/null and b/static/images/backgrounds/img-3.jpg differ diff --git a/static/images/brand/icon.png b/static/images/brand/icon.png new file mode 100644 index 0000000..f81a0ee Binary files /dev/null and b/static/images/brand/icon.png differ diff --git a/static/images/prv/city-1.jpg b/static/images/prv/city-1.jpg new file mode 100644 index 0000000..d0965e1 Binary files /dev/null and b/static/images/prv/city-1.jpg differ diff --git a/static/images/prv/city-2.jpg b/static/images/prv/city-2.jpg new file mode 100644 index 0000000..456adb5 Binary files /dev/null and b/static/images/prv/city-2.jpg differ diff --git a/static/images/prv/client-1.png b/static/images/prv/client-1.png new file mode 100644 index 0000000..bff9a7f Binary files /dev/null and b/static/images/prv/client-1.png differ diff --git a/static/images/prv/client-2.png b/static/images/prv/client-2.png new file mode 100644 index 0000000..8cf3f49 Binary files /dev/null and b/static/images/prv/client-2.png differ diff --git a/static/images/prv/client-3.png b/static/images/prv/client-3.png new file mode 100644 index 0000000..3ef341a Binary files /dev/null and b/static/images/prv/client-3.png differ diff --git a/static/images/prv/client-4.png b/static/images/prv/client-4.png new file mode 100644 index 0000000..d28b13b Binary files /dev/null and b/static/images/prv/client-4.png differ diff --git a/static/images/prv/client-5.png b/static/images/prv/client-5.png new file mode 100644 index 0000000..e4566b7 Binary files /dev/null and b/static/images/prv/client-5.png differ diff --git a/static/images/prv/client-6.png b/static/images/prv/client-6.png new file mode 100644 index 0000000..7dec5ec Binary files /dev/null and b/static/images/prv/client-6.png differ diff --git a/static/images/prv/device-1.png b/static/images/prv/device-1.png new file mode 100644 index 0000000..0983501 Binary files /dev/null and b/static/images/prv/device-1.png differ diff --git a/static/images/prv/img-1-1000x900.jpg b/static/images/prv/img-1-1000x900.jpg new file mode 100644 index 0000000..8a918da Binary files /dev/null and b/static/images/prv/img-1-1000x900.jpg differ diff --git a/static/images/prv/img-1-800x600.jpg b/static/images/prv/img-1-800x600.jpg new file mode 100644 index 0000000..9d19475 Binary files /dev/null and b/static/images/prv/img-1-800x600.jpg differ diff --git a/static/images/prv/img-1.jpg b/static/images/prv/img-1.jpg new file mode 100644 index 0000000..d17e22a Binary files /dev/null and b/static/images/prv/img-1.jpg differ diff --git a/static/images/prv/img-2-1000x900.jpg b/static/images/prv/img-2-1000x900.jpg new file mode 100644 index 0000000..a9bf8e7 Binary files /dev/null and b/static/images/prv/img-2-1000x900.jpg differ diff --git a/static/images/prv/img-2-800x600.jpg b/static/images/prv/img-2-800x600.jpg new file mode 100644 index 0000000..fcc2493 Binary files /dev/null and b/static/images/prv/img-2-800x600.jpg differ diff --git a/static/images/prv/img-2.jpg b/static/images/prv/img-2.jpg new file mode 100644 index 0000000..b785607 Binary files /dev/null and b/static/images/prv/img-2.jpg differ diff --git a/static/images/prv/img-3-800x600.jpg b/static/images/prv/img-3-800x600.jpg new file mode 100644 index 0000000..ba67e3c Binary files /dev/null and b/static/images/prv/img-3-800x600.jpg differ diff --git a/static/images/prv/img-3.jpg b/static/images/prv/img-3.jpg new file mode 100644 index 0000000..ab77478 Binary files /dev/null and b/static/images/prv/img-3.jpg differ diff --git a/static/images/prv/img-4-800x600.jpg b/static/images/prv/img-4-800x600.jpg new file mode 100644 index 0000000..f57a230 Binary files /dev/null and b/static/images/prv/img-4-800x600.jpg differ diff --git a/static/images/prv/img-4.jpg b/static/images/prv/img-4.jpg new file mode 100644 index 0000000..3d39134 Binary files /dev/null and b/static/images/prv/img-4.jpg differ diff --git a/static/images/prv/img-5-800x600.jpg b/static/images/prv/img-5-800x600.jpg new file mode 100644 index 0000000..870eaca Binary files /dev/null and b/static/images/prv/img-5-800x600.jpg differ diff --git a/static/images/prv/img-5.jpg b/static/images/prv/img-5.jpg new file mode 100644 index 0000000..9579c7d Binary files /dev/null and b/static/images/prv/img-5.jpg differ diff --git a/static/images/prv/screen-about.jpg b/static/images/prv/screen-about.jpg new file mode 100644 index 0000000..2f5b957 Binary files /dev/null and b/static/images/prv/screen-about.jpg differ diff --git a/static/images/prv/screen-contact.jpg b/static/images/prv/screen-contact.jpg new file mode 100644 index 0000000..564809f Binary files /dev/null and b/static/images/prv/screen-contact.jpg differ diff --git a/static/images/prv/screen-cover.jpg b/static/images/prv/screen-cover.jpg new file mode 100644 index 0000000..f55cc42 Binary files /dev/null and b/static/images/prv/screen-cover.jpg differ diff --git a/static/images/prv/screen-homepage.jpg b/static/images/prv/screen-homepage.jpg new file mode 100644 index 0000000..f55cc42 Binary files /dev/null and b/static/images/prv/screen-homepage.jpg differ diff --git a/static/images/prv/screen-login.jpg b/static/images/prv/screen-login.jpg new file mode 100644 index 0000000..d6194b5 Binary files /dev/null and b/static/images/prv/screen-login.jpg differ diff --git a/static/images/prv/splash.png b/static/images/prv/splash.png new file mode 100644 index 0000000..163e1ab Binary files /dev/null and b/static/images/prv/splash.png differ diff --git a/static/images/prv/team-1.jpg b/static/images/prv/team-1.jpg new file mode 100644 index 0000000..cbe8ca1 Binary files /dev/null and b/static/images/prv/team-1.jpg differ diff --git a/static/images/prv/team-2.jpg b/static/images/prv/team-2.jpg new file mode 100644 index 0000000..cec8b94 Binary files /dev/null and b/static/images/prv/team-2.jpg differ diff --git a/static/images/prv/team-3.jpg b/static/images/prv/team-3.jpg new file mode 100644 index 0000000..00507d8 Binary files /dev/null and b/static/images/prv/team-3.jpg differ diff --git a/static/images/prv/team-4.jpg b/static/images/prv/team-4.jpg new file mode 100644 index 0000000..3d0f7ea Binary files /dev/null and b/static/images/prv/team-4.jpg differ diff --git a/static/images/prv/thumb-1.jpg b/static/images/prv/thumb-1.jpg new file mode 100644 index 0000000..796acf0 Binary files /dev/null and b/static/images/prv/thumb-1.jpg differ diff --git a/static/images/prv/thumb-2.jpg b/static/images/prv/thumb-2.jpg new file mode 100644 index 0000000..75c996b Binary files /dev/null and b/static/images/prv/thumb-2.jpg differ diff --git a/static/images/slider/iphone.png b/static/images/slider/iphone.png new file mode 100644 index 0000000..1a19fa8 Binary files /dev/null and b/static/images/slider/iphone.png differ diff --git a/static/js/bootstrap/bootstrap.bundle.js b/static/js/bootstrap/bootstrap.bundle.js new file mode 100644 index 0000000..45b357d --- /dev/null +++ b/static/js/bootstrap/bootstrap.bundle.js @@ -0,0 +1,6328 @@ +/*! + * Bootstrap v4.0.0 (https://getbootstrap.com) + * Copyright 2011-2018 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('jquery')) : + typeof define === 'function' && define.amd ? define(['exports', 'jquery'], factory) : + (factory((global.bootstrap = {}),global.jQuery)); +}(this, (function (exports,$) { 'use strict'; + +$ = $ && $.hasOwnProperty('default') ? $['default'] : $; + +function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } +} + +function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + return Constructor; +} + +function _extends() { + _extends = Object.assign || function (target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + + for (var key in source) { + if (Object.prototype.hasOwnProperty.call(source, key)) { + target[key] = source[key]; + } + } + } + + return target; + }; + + return _extends.apply(this, arguments); +} + +function _inheritsLoose(subClass, superClass) { + subClass.prototype = Object.create(superClass.prototype); + subClass.prototype.constructor = subClass; + subClass.__proto__ = superClass; +} + +/** + * -------------------------------------------------------------------------- + * Bootstrap (v4.0.0): util.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * -------------------------------------------------------------------------- + */ + +var Util = function ($$$1) { + /** + * ------------------------------------------------------------------------ + * Private TransitionEnd Helpers + * ------------------------------------------------------------------------ + */ + var transition = false; + var MAX_UID = 1000000; // Shoutout AngusCroll (https://goo.gl/pxwQGp) + + function toType(obj) { + return {}.toString.call(obj).match(/\s([a-zA-Z]+)/)[1].toLowerCase(); + } + + function getSpecialTransitionEndEvent() { + return { + bindType: transition.end, + delegateType: transition.end, + handle: function handle(event) { + if ($$$1(event.target).is(this)) { + return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params + } + + return undefined; // eslint-disable-line no-undefined + } + }; + } + + function transitionEndTest() { + if (typeof window !== 'undefined' && window.QUnit) { + return false; + } + + return { + end: 'transitionend' + }; + } + + function transitionEndEmulator(duration) { + var _this = this; + + var called = false; + $$$1(this).one(Util.TRANSITION_END, function () { + called = true; + }); + setTimeout(function () { + if (!called) { + Util.triggerTransitionEnd(_this); + } + }, duration); + return this; + } + + function setTransitionEndSupport() { + transition = transitionEndTest(); + $$$1.fn.emulateTransitionEnd = transitionEndEmulator; + + if (Util.supportsTransitionEnd()) { + $$$1.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent(); + } + } + + function escapeId(selector) { + // We escape IDs in case of special selectors (selector = '#myId:something') + // $.escapeSelector does not exist in jQuery < 3 + selector = typeof $$$1.escapeSelector === 'function' ? $$$1.escapeSelector(selector).substr(1) : selector.replace(/(:|\.|\[|\]|,|=|@)/g, '\\$1'); + return selector; + } + /** + * -------------------------------------------------------------------------- + * Public Util Api + * -------------------------------------------------------------------------- + */ + + + var Util = { + TRANSITION_END: 'bsTransitionEnd', + getUID: function getUID(prefix) { + do { + // eslint-disable-next-line no-bitwise + prefix += ~~(Math.random() * MAX_UID); // "~~" acts like a faster Math.floor() here + } while (document.getElementById(prefix)); + + return prefix; + }, + getSelectorFromElement: function getSelectorFromElement(element) { + var selector = element.getAttribute('data-target'); + + if (!selector || selector === '#') { + selector = element.getAttribute('href') || ''; + } // If it's an ID + + + if (selector.charAt(0) === '#') { + selector = escapeId(selector); + } + + try { + var $selector = $$$1(document).find(selector); + return $selector.length > 0 ? selector : null; + } catch (err) { + return null; + } + }, + reflow: function reflow(element) { + return element.offsetHeight; + }, + triggerTransitionEnd: function triggerTransitionEnd(element) { + $$$1(element).trigger(transition.end); + }, + supportsTransitionEnd: function supportsTransitionEnd() { + return Boolean(transition); + }, + isElement: function isElement(obj) { + return (obj[0] || obj).nodeType; + }, + typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) { + for (var property in configTypes) { + if (Object.prototype.hasOwnProperty.call(configTypes, property)) { + var expectedTypes = configTypes[property]; + var value = config[property]; + var valueType = value && Util.isElement(value) ? 'element' : toType(value); + + if (!new RegExp(expectedTypes).test(valueType)) { + throw new Error(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\".")); + } + } + } + } + }; + setTransitionEndSupport(); + return Util; +}($); + +/** + * -------------------------------------------------------------------------- + * Bootstrap (v4.0.0): alert.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * -------------------------------------------------------------------------- + */ + +var Alert = function ($$$1) { + /** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + var NAME = 'alert'; + var VERSION = '4.0.0'; + var DATA_KEY = 'bs.alert'; + var EVENT_KEY = "." + DATA_KEY; + var DATA_API_KEY = '.data-api'; + var JQUERY_NO_CONFLICT = $$$1.fn[NAME]; + var TRANSITION_DURATION = 150; + var Selector = { + DISMISS: '[data-dismiss="alert"]' + }; + var Event = { + CLOSE: "close" + EVENT_KEY, + CLOSED: "closed" + EVENT_KEY, + CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY + }; + var ClassName = { + ALERT: 'alert', + FADE: 'fade', + SHOW: 'show' + /** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + + }; + + var Alert = + /*#__PURE__*/ + function () { + function Alert(element) { + this._element = element; + } // Getters + + + var _proto = Alert.prototype; + + // Public + _proto.close = function close(element) { + element = element || this._element; + + var rootElement = this._getRootElement(element); + + var customEvent = this._triggerCloseEvent(rootElement); + + if (customEvent.isDefaultPrevented()) { + return; + } + + this._removeElement(rootElement); + }; + + _proto.dispose = function dispose() { + $$$1.removeData(this._element, DATA_KEY); + this._element = null; + }; // Private + + + _proto._getRootElement = function _getRootElement(element) { + var selector = Util.getSelectorFromElement(element); + var parent = false; + + if (selector) { + parent = $$$1(selector)[0]; + } + + if (!parent) { + parent = $$$1(element).closest("." + ClassName.ALERT)[0]; + } + + return parent; + }; + + _proto._triggerCloseEvent = function _triggerCloseEvent(element) { + var closeEvent = $$$1.Event(Event.CLOSE); + $$$1(element).trigger(closeEvent); + return closeEvent; + }; + + _proto._removeElement = function _removeElement(element) { + var _this = this; + + $$$1(element).removeClass(ClassName.SHOW); + + if (!Util.supportsTransitionEnd() || !$$$1(element).hasClass(ClassName.FADE)) { + this._destroyElement(element); + + return; + } + + $$$1(element).one(Util.TRANSITION_END, function (event) { + return _this._destroyElement(element, event); + }).emulateTransitionEnd(TRANSITION_DURATION); + }; + + _proto._destroyElement = function _destroyElement(element) { + $$$1(element).detach().trigger(Event.CLOSED).remove(); + }; // Static + + + Alert._jQueryInterface = function _jQueryInterface(config) { + return this.each(function () { + var $element = $$$1(this); + var data = $element.data(DATA_KEY); + + if (!data) { + data = new Alert(this); + $element.data(DATA_KEY, data); + } + + if (config === 'close') { + data[config](this); + } + }); + }; + + Alert._handleDismiss = function _handleDismiss(alertInstance) { + return function (event) { + if (event) { + event.preventDefault(); + } + + alertInstance.close(this); + }; + }; + + _createClass(Alert, null, [{ + key: "VERSION", + get: function get() { + return VERSION; + } + }]); + return Alert; + }(); + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + + $$$1(document).on(Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert())); + /** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + */ + + $$$1.fn[NAME] = Alert._jQueryInterface; + $$$1.fn[NAME].Constructor = Alert; + + $$$1.fn[NAME].noConflict = function () { + $$$1.fn[NAME] = JQUERY_NO_CONFLICT; + return Alert._jQueryInterface; + }; + + return Alert; +}($); + +/** + * -------------------------------------------------------------------------- + * Bootstrap (v4.0.0): button.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * -------------------------------------------------------------------------- + */ + +var Button = function ($$$1) { + /** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + var NAME = 'button'; + var VERSION = '4.0.0'; + var DATA_KEY = 'bs.button'; + var EVENT_KEY = "." + DATA_KEY; + var DATA_API_KEY = '.data-api'; + var JQUERY_NO_CONFLICT = $$$1.fn[NAME]; + var ClassName = { + ACTIVE: 'active', + BUTTON: 'btn', + FOCUS: 'focus' + }; + var Selector = { + DATA_TOGGLE_CARROT: '[data-toggle^="button"]', + DATA_TOGGLE: '[data-toggle="buttons"]', + INPUT: 'input', + ACTIVE: '.active', + BUTTON: '.btn' + }; + var Event = { + CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY, + FOCUS_BLUR_DATA_API: "focus" + EVENT_KEY + DATA_API_KEY + " " + ("blur" + EVENT_KEY + DATA_API_KEY) + /** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + + }; + + var Button = + /*#__PURE__*/ + function () { + function Button(element) { + this._element = element; + } // Getters + + + var _proto = Button.prototype; + + // Public + _proto.toggle = function toggle() { + var triggerChangeEvent = true; + var addAriaPressed = true; + var rootElement = $$$1(this._element).closest(Selector.DATA_TOGGLE)[0]; + + if (rootElement) { + var input = $$$1(this._element).find(Selector.INPUT)[0]; + + if (input) { + if (input.type === 'radio') { + if (input.checked && $$$1(this._element).hasClass(ClassName.ACTIVE)) { + triggerChangeEvent = false; + } else { + var activeElement = $$$1(rootElement).find(Selector.ACTIVE)[0]; + + if (activeElement) { + $$$1(activeElement).removeClass(ClassName.ACTIVE); + } + } + } + + if (triggerChangeEvent) { + if (input.hasAttribute('disabled') || rootElement.hasAttribute('disabled') || input.classList.contains('disabled') || rootElement.classList.contains('disabled')) { + return; + } + + input.checked = !$$$1(this._element).hasClass(ClassName.ACTIVE); + $$$1(input).trigger('change'); + } + + input.focus(); + addAriaPressed = false; + } + } + + if (addAriaPressed) { + this._element.setAttribute('aria-pressed', !$$$1(this._element).hasClass(ClassName.ACTIVE)); + } + + if (triggerChangeEvent) { + $$$1(this._element).toggleClass(ClassName.ACTIVE); + } + }; + + _proto.dispose = function dispose() { + $$$1.removeData(this._element, DATA_KEY); + this._element = null; + }; // Static + + + Button._jQueryInterface = function _jQueryInterface(config) { + return this.each(function () { + var data = $$$1(this).data(DATA_KEY); + + if (!data) { + data = new Button(this); + $$$1(this).data(DATA_KEY, data); + } + + if (config === 'toggle') { + data[config](); + } + }); + }; + + _createClass(Button, null, [{ + key: "VERSION", + get: function get() { + return VERSION; + } + }]); + return Button; + }(); + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + + $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) { + event.preventDefault(); + var button = event.target; + + if (!$$$1(button).hasClass(ClassName.BUTTON)) { + button = $$$1(button).closest(Selector.BUTTON); + } + + Button._jQueryInterface.call($$$1(button), 'toggle'); + }).on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) { + var button = $$$1(event.target).closest(Selector.BUTTON)[0]; + $$$1(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type)); + }); + /** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + */ + + $$$1.fn[NAME] = Button._jQueryInterface; + $$$1.fn[NAME].Constructor = Button; + + $$$1.fn[NAME].noConflict = function () { + $$$1.fn[NAME] = JQUERY_NO_CONFLICT; + return Button._jQueryInterface; + }; + + return Button; +}($); + +/** + * -------------------------------------------------------------------------- + * Bootstrap (v4.0.0): carousel.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * -------------------------------------------------------------------------- + */ + +var Carousel = function ($$$1) { + /** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + var NAME = 'carousel'; + var VERSION = '4.0.0'; + var DATA_KEY = 'bs.carousel'; + var EVENT_KEY = "." + DATA_KEY; + var DATA_API_KEY = '.data-api'; + var JQUERY_NO_CONFLICT = $$$1.fn[NAME]; + var TRANSITION_DURATION = 600; + var ARROW_LEFT_KEYCODE = 37; // KeyboardEvent.which value for left arrow key + + var ARROW_RIGHT_KEYCODE = 39; // KeyboardEvent.which value for right arrow key + + var TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch + + var Default = { + interval: 5000, + keyboard: true, + slide: false, + pause: 'hover', + wrap: true + }; + var DefaultType = { + interval: '(number|boolean)', + keyboard: 'boolean', + slide: '(boolean|string)', + pause: '(string|boolean)', + wrap: 'boolean' + }; + var Direction = { + NEXT: 'next', + PREV: 'prev', + LEFT: 'left', + RIGHT: 'right' + }; + var Event = { + SLIDE: "slide" + EVENT_KEY, + SLID: "slid" + EVENT_KEY, + KEYDOWN: "keydown" + EVENT_KEY, + MOUSEENTER: "mouseenter" + EVENT_KEY, + MOUSELEAVE: "mouseleave" + EVENT_KEY, + TOUCHEND: "touchend" + EVENT_KEY, + LOAD_DATA_API: "load" + EVENT_KEY + DATA_API_KEY, + CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY + }; + var ClassName = { + CAROUSEL: 'carousel', + ACTIVE: 'active', + SLIDE: 'slide', + RIGHT: 'carousel-item-right', + LEFT: 'carousel-item-left', + NEXT: 'carousel-item-next', + PREV: 'carousel-item-prev', + ITEM: 'carousel-item' + }; + var Selector = { + ACTIVE: '.active', + ACTIVE_ITEM: '.active.carousel-item', + ITEM: '.carousel-item', + NEXT_PREV: '.carousel-item-next, .carousel-item-prev', + INDICATORS: '.carousel-indicators', + DATA_SLIDE: '[data-slide], [data-slide-to]', + DATA_RIDE: '[data-ride="carousel"]' + /** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + + }; + + var Carousel = + /*#__PURE__*/ + function () { + function Carousel(element, config) { + this._items = null; + this._interval = null; + this._activeElement = null; + this._isPaused = false; + this._isSliding = false; + this.touchTimeout = null; + this._config = this._getConfig(config); + this._element = $$$1(element)[0]; + this._indicatorsElement = $$$1(this._element).find(Selector.INDICATORS)[0]; + + this._addEventListeners(); + } // Getters + + + var _proto = Carousel.prototype; + + // Public + _proto.next = function next() { + if (!this._isSliding) { + this._slide(Direction.NEXT); + } + }; + + _proto.nextWhenVisible = function nextWhenVisible() { + // Don't call next when the page isn't visible + // or the carousel or its parent isn't visible + if (!document.hidden && $$$1(this._element).is(':visible') && $$$1(this._element).css('visibility') !== 'hidden') { + this.next(); + } + }; + + _proto.prev = function prev() { + if (!this._isSliding) { + this._slide(Direction.PREV); + } + }; + + _proto.pause = function pause(event) { + if (!event) { + this._isPaused = true; + } + + if ($$$1(this._element).find(Selector.NEXT_PREV)[0] && Util.supportsTransitionEnd()) { + Util.triggerTransitionEnd(this._element); + this.cycle(true); + } + + clearInterval(this._interval); + this._interval = null; + }; + + _proto.cycle = function cycle(event) { + if (!event) { + this._isPaused = false; + } + + if (this._interval) { + clearInterval(this._interval); + this._interval = null; + } + + if (this._config.interval && !this._isPaused) { + this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval); + } + }; + + _proto.to = function to(index) { + var _this = this; + + this._activeElement = $$$1(this._element).find(Selector.ACTIVE_ITEM)[0]; + + var activeIndex = this._getItemIndex(this._activeElement); + + if (index > this._items.length - 1 || index < 0) { + return; + } + + if (this._isSliding) { + $$$1(this._element).one(Event.SLID, function () { + return _this.to(index); + }); + return; + } + + if (activeIndex === index) { + this.pause(); + this.cycle(); + return; + } + + var direction = index > activeIndex ? Direction.NEXT : Direction.PREV; + + this._slide(direction, this._items[index]); + }; + + _proto.dispose = function dispose() { + $$$1(this._element).off(EVENT_KEY); + $$$1.removeData(this._element, DATA_KEY); + this._items = null; + this._config = null; + this._element = null; + this._interval = null; + this._isPaused = null; + this._isSliding = null; + this._activeElement = null; + this._indicatorsElement = null; + }; // Private + + + _proto._getConfig = function _getConfig(config) { + config = _extends({}, Default, config); + Util.typeCheckConfig(NAME, config, DefaultType); + return config; + }; + + _proto._addEventListeners = function _addEventListeners() { + var _this2 = this; + + if (this._config.keyboard) { + $$$1(this._element).on(Event.KEYDOWN, function (event) { + return _this2._keydown(event); + }); + } + + if (this._config.pause === 'hover') { + $$$1(this._element).on(Event.MOUSEENTER, function (event) { + return _this2.pause(event); + }).on(Event.MOUSELEAVE, function (event) { + return _this2.cycle(event); + }); + + if ('ontouchstart' in document.documentElement) { + // If it's a touch-enabled device, mouseenter/leave are fired as + // part of the mouse compatibility events on first tap - the carousel + // would stop cycling until user tapped out of it; + // here, we listen for touchend, explicitly pause the carousel + // (as if it's the second time we tap on it, mouseenter compat event + // is NOT fired) and after a timeout (to allow for mouse compatibility + // events to fire) we explicitly restart cycling + $$$1(this._element).on(Event.TOUCHEND, function () { + _this2.pause(); + + if (_this2.touchTimeout) { + clearTimeout(_this2.touchTimeout); + } + + _this2.touchTimeout = setTimeout(function (event) { + return _this2.cycle(event); + }, TOUCHEVENT_COMPAT_WAIT + _this2._config.interval); + }); + } + } + }; + + _proto._keydown = function _keydown(event) { + if (/input|textarea/i.test(event.target.tagName)) { + return; + } + + switch (event.which) { + case ARROW_LEFT_KEYCODE: + event.preventDefault(); + this.prev(); + break; + + case ARROW_RIGHT_KEYCODE: + event.preventDefault(); + this.next(); + break; + + default: + } + }; + + _proto._getItemIndex = function _getItemIndex(element) { + this._items = $$$1.makeArray($$$1(element).parent().find(Selector.ITEM)); + return this._items.indexOf(element); + }; + + _proto._getItemByDirection = function _getItemByDirection(direction, activeElement) { + var isNextDirection = direction === Direction.NEXT; + var isPrevDirection = direction === Direction.PREV; + + var activeIndex = this._getItemIndex(activeElement); + + var lastItemIndex = this._items.length - 1; + var isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex === lastItemIndex; + + if (isGoingToWrap && !this._config.wrap) { + return activeElement; + } + + var delta = direction === Direction.PREV ? -1 : 1; + var itemIndex = (activeIndex + delta) % this._items.length; + return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex]; + }; + + _proto._triggerSlideEvent = function _triggerSlideEvent(relatedTarget, eventDirectionName) { + var targetIndex = this._getItemIndex(relatedTarget); + + var fromIndex = this._getItemIndex($$$1(this._element).find(Selector.ACTIVE_ITEM)[0]); + + var slideEvent = $$$1.Event(Event.SLIDE, { + relatedTarget: relatedTarget, + direction: eventDirectionName, + from: fromIndex, + to: targetIndex + }); + $$$1(this._element).trigger(slideEvent); + return slideEvent; + }; + + _proto._setActiveIndicatorElement = function _setActiveIndicatorElement(element) { + if (this._indicatorsElement) { + $$$1(this._indicatorsElement).find(Selector.ACTIVE).removeClass(ClassName.ACTIVE); + + var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)]; + + if (nextIndicator) { + $$$1(nextIndicator).addClass(ClassName.ACTIVE); + } + } + }; + + _proto._slide = function _slide(direction, element) { + var _this3 = this; + + var activeElement = $$$1(this._element).find(Selector.ACTIVE_ITEM)[0]; + + var activeElementIndex = this._getItemIndex(activeElement); + + var nextElement = element || activeElement && this._getItemByDirection(direction, activeElement); + + var nextElementIndex = this._getItemIndex(nextElement); + + var isCycling = Boolean(this._interval); + var directionalClassName; + var orderClassName; + var eventDirectionName; + + if (direction === Direction.NEXT) { + directionalClassName = ClassName.LEFT; + orderClassName = ClassName.NEXT; + eventDirectionName = Direction.LEFT; + } else { + directionalClassName = ClassName.RIGHT; + orderClassName = ClassName.PREV; + eventDirectionName = Direction.RIGHT; + } + + if (nextElement && $$$1(nextElement).hasClass(ClassName.ACTIVE)) { + this._isSliding = false; + return; + } + + var slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName); + + if (slideEvent.isDefaultPrevented()) { + return; + } + + if (!activeElement || !nextElement) { + // Some weirdness is happening, so we bail + return; + } + + this._isSliding = true; + + if (isCycling) { + this.pause(); + } + + this._setActiveIndicatorElement(nextElement); + + var slidEvent = $$$1.Event(Event.SLID, { + relatedTarget: nextElement, + direction: eventDirectionName, + from: activeElementIndex, + to: nextElementIndex + }); + + if (Util.supportsTransitionEnd() && $$$1(this._element).hasClass(ClassName.SLIDE)) { + $$$1(nextElement).addClass(orderClassName); + Util.reflow(nextElement); + $$$1(activeElement).addClass(directionalClassName); + $$$1(nextElement).addClass(directionalClassName); + $$$1(activeElement).one(Util.TRANSITION_END, function () { + $$$1(nextElement).removeClass(directionalClassName + " " + orderClassName).addClass(ClassName.ACTIVE); + $$$1(activeElement).removeClass(ClassName.ACTIVE + " " + orderClassName + " " + directionalClassName); + _this3._isSliding = false; + setTimeout(function () { + return $$$1(_this3._element).trigger(slidEvent); + }, 0); + }).emulateTransitionEnd(TRANSITION_DURATION); + } else { + $$$1(activeElement).removeClass(ClassName.ACTIVE); + $$$1(nextElement).addClass(ClassName.ACTIVE); + this._isSliding = false; + $$$1(this._element).trigger(slidEvent); + } + + if (isCycling) { + this.cycle(); + } + }; // Static + + + Carousel._jQueryInterface = function _jQueryInterface(config) { + return this.each(function () { + var data = $$$1(this).data(DATA_KEY); + + var _config = _extends({}, Default, $$$1(this).data()); + + if (typeof config === 'object') { + _config = _extends({}, _config, config); + } + + var action = typeof config === 'string' ? config : _config.slide; + + if (!data) { + data = new Carousel(this, _config); + $$$1(this).data(DATA_KEY, data); + } + + if (typeof config === 'number') { + data.to(config); + } else if (typeof action === 'string') { + if (typeof data[action] === 'undefined') { + throw new TypeError("No method named \"" + action + "\""); + } + + data[action](); + } else if (_config.interval) { + data.pause(); + data.cycle(); + } + }); + }; + + Carousel._dataApiClickHandler = function _dataApiClickHandler(event) { + var selector = Util.getSelectorFromElement(this); + + if (!selector) { + return; + } + + var target = $$$1(selector)[0]; + + if (!target || !$$$1(target).hasClass(ClassName.CAROUSEL)) { + return; + } + + var config = _extends({}, $$$1(target).data(), $$$1(this).data()); + var slideIndex = this.getAttribute('data-slide-to'); + + if (slideIndex) { + config.interval = false; + } + + Carousel._jQueryInterface.call($$$1(target), config); + + if (slideIndex) { + $$$1(target).data(DATA_KEY).to(slideIndex); + } + + event.preventDefault(); + }; + + _createClass(Carousel, null, [{ + key: "VERSION", + get: function get() { + return VERSION; + } + }, { + key: "Default", + get: function get() { + return Default; + } + }]); + return Carousel; + }(); + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + + $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler); + $$$1(window).on(Event.LOAD_DATA_API, function () { + $$$1(Selector.DATA_RIDE).each(function () { + var $carousel = $$$1(this); + + Carousel._jQueryInterface.call($carousel, $carousel.data()); + }); + }); + /** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + */ + + $$$1.fn[NAME] = Carousel._jQueryInterface; + $$$1.fn[NAME].Constructor = Carousel; + + $$$1.fn[NAME].noConflict = function () { + $$$1.fn[NAME] = JQUERY_NO_CONFLICT; + return Carousel._jQueryInterface; + }; + + return Carousel; +}($); + +/** + * -------------------------------------------------------------------------- + * Bootstrap (v4.0.0): collapse.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * -------------------------------------------------------------------------- + */ + +var Collapse = function ($$$1) { + /** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + var NAME = 'collapse'; + var VERSION = '4.0.0'; + var DATA_KEY = 'bs.collapse'; + var EVENT_KEY = "." + DATA_KEY; + var DATA_API_KEY = '.data-api'; + var JQUERY_NO_CONFLICT = $$$1.fn[NAME]; + var TRANSITION_DURATION = 600; + var Default = { + toggle: true, + parent: '' + }; + var DefaultType = { + toggle: 'boolean', + parent: '(string|element)' + }; + var Event = { + SHOW: "show" + EVENT_KEY, + SHOWN: "shown" + EVENT_KEY, + HIDE: "hide" + EVENT_KEY, + HIDDEN: "hidden" + EVENT_KEY, + CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY + }; + var ClassName = { + SHOW: 'show', + COLLAPSE: 'collapse', + COLLAPSING: 'collapsing', + COLLAPSED: 'collapsed' + }; + var Dimension = { + WIDTH: 'width', + HEIGHT: 'height' + }; + var Selector = { + ACTIVES: '.show, .collapsing', + DATA_TOGGLE: '[data-toggle="collapse"]' + /** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + + }; + + var Collapse = + /*#__PURE__*/ + function () { + function Collapse(element, config) { + this._isTransitioning = false; + this._element = element; + this._config = this._getConfig(config); + this._triggerArray = $$$1.makeArray($$$1("[data-toggle=\"collapse\"][href=\"#" + element.id + "\"]," + ("[data-toggle=\"collapse\"][data-target=\"#" + element.id + "\"]"))); + var tabToggles = $$$1(Selector.DATA_TOGGLE); + + for (var i = 0; i < tabToggles.length; i++) { + var elem = tabToggles[i]; + var selector = Util.getSelectorFromElement(elem); + + if (selector !== null && $$$1(selector).filter(element).length > 0) { + this._selector = selector; + + this._triggerArray.push(elem); + } + } + + this._parent = this._config.parent ? this._getParent() : null; + + if (!this._config.parent) { + this._addAriaAndCollapsedClass(this._element, this._triggerArray); + } + + if (this._config.toggle) { + this.toggle(); + } + } // Getters + + + var _proto = Collapse.prototype; + + // Public + _proto.toggle = function toggle() { + if ($$$1(this._element).hasClass(ClassName.SHOW)) { + this.hide(); + } else { + this.show(); + } + }; + + _proto.show = function show() { + var _this = this; + + if (this._isTransitioning || $$$1(this._element).hasClass(ClassName.SHOW)) { + return; + } + + var actives; + var activesData; + + if (this._parent) { + actives = $$$1.makeArray($$$1(this._parent).find(Selector.ACTIVES).filter("[data-parent=\"" + this._config.parent + "\"]")); + + if (actives.length === 0) { + actives = null; + } + } + + if (actives) { + activesData = $$$1(actives).not(this._selector).data(DATA_KEY); + + if (activesData && activesData._isTransitioning) { + return; + } + } + + var startEvent = $$$1.Event(Event.SHOW); + $$$1(this._element).trigger(startEvent); + + if (startEvent.isDefaultPrevented()) { + return; + } + + if (actives) { + Collapse._jQueryInterface.call($$$1(actives).not(this._selector), 'hide'); + + if (!activesData) { + $$$1(actives).data(DATA_KEY, null); + } + } + + var dimension = this._getDimension(); + + $$$1(this._element).removeClass(ClassName.COLLAPSE).addClass(ClassName.COLLAPSING); + this._element.style[dimension] = 0; + + if (this._triggerArray.length > 0) { + $$$1(this._triggerArray).removeClass(ClassName.COLLAPSED).attr('aria-expanded', true); + } + + this.setTransitioning(true); + + var complete = function complete() { + $$$1(_this._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).addClass(ClassName.SHOW); + _this._element.style[dimension] = ''; + + _this.setTransitioning(false); + + $$$1(_this._element).trigger(Event.SHOWN); + }; + + if (!Util.supportsTransitionEnd()) { + complete(); + return; + } + + var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1); + var scrollSize = "scroll" + capitalizedDimension; + $$$1(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION); + this._element.style[dimension] = this._element[scrollSize] + "px"; + }; + + _proto.hide = function hide() { + var _this2 = this; + + if (this._isTransitioning || !$$$1(this._element).hasClass(ClassName.SHOW)) { + return; + } + + var startEvent = $$$1.Event(Event.HIDE); + $$$1(this._element).trigger(startEvent); + + if (startEvent.isDefaultPrevented()) { + return; + } + + var dimension = this._getDimension(); + + this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + "px"; + Util.reflow(this._element); + $$$1(this._element).addClass(ClassName.COLLAPSING).removeClass(ClassName.COLLAPSE).removeClass(ClassName.SHOW); + + if (this._triggerArray.length > 0) { + for (var i = 0; i < this._triggerArray.length; i++) { + var trigger = this._triggerArray[i]; + var selector = Util.getSelectorFromElement(trigger); + + if (selector !== null) { + var $elem = $$$1(selector); + + if (!$elem.hasClass(ClassName.SHOW)) { + $$$1(trigger).addClass(ClassName.COLLAPSED).attr('aria-expanded', false); + } + } + } + } + + this.setTransitioning(true); + + var complete = function complete() { + _this2.setTransitioning(false); + + $$$1(_this2._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).trigger(Event.HIDDEN); + }; + + this._element.style[dimension] = ''; + + if (!Util.supportsTransitionEnd()) { + complete(); + return; + } + + $$$1(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION); + }; + + _proto.setTransitioning = function setTransitioning(isTransitioning) { + this._isTransitioning = isTransitioning; + }; + + _proto.dispose = function dispose() { + $$$1.removeData(this._element, DATA_KEY); + this._config = null; + this._parent = null; + this._element = null; + this._triggerArray = null; + this._isTransitioning = null; + }; // Private + + + _proto._getConfig = function _getConfig(config) { + config = _extends({}, Default, config); + config.toggle = Boolean(config.toggle); // Coerce string values + + Util.typeCheckConfig(NAME, config, DefaultType); + return config; + }; + + _proto._getDimension = function _getDimension() { + var hasWidth = $$$1(this._element).hasClass(Dimension.WIDTH); + return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT; + }; + + _proto._getParent = function _getParent() { + var _this3 = this; + + var parent = null; + + if (Util.isElement(this._config.parent)) { + parent = this._config.parent; // It's a jQuery object + + if (typeof this._config.parent.jquery !== 'undefined') { + parent = this._config.parent[0]; + } + } else { + parent = $$$1(this._config.parent)[0]; + } + + var selector = "[data-toggle=\"collapse\"][data-parent=\"" + this._config.parent + "\"]"; + $$$1(parent).find(selector).each(function (i, element) { + _this3._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]); + }); + return parent; + }; + + _proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) { + if (element) { + var isOpen = $$$1(element).hasClass(ClassName.SHOW); + + if (triggerArray.length > 0) { + $$$1(triggerArray).toggleClass(ClassName.COLLAPSED, !isOpen).attr('aria-expanded', isOpen); + } + } + }; // Static + + + Collapse._getTargetFromElement = function _getTargetFromElement(element) { + var selector = Util.getSelectorFromElement(element); + return selector ? $$$1(selector)[0] : null; + }; + + Collapse._jQueryInterface = function _jQueryInterface(config) { + return this.each(function () { + var $this = $$$1(this); + var data = $this.data(DATA_KEY); + + var _config = _extends({}, Default, $this.data(), typeof config === 'object' && config); + + if (!data && _config.toggle && /show|hide/.test(config)) { + _config.toggle = false; + } + + if (!data) { + data = new Collapse(this, _config); + $this.data(DATA_KEY, data); + } + + if (typeof config === 'string') { + if (typeof data[config] === 'undefined') { + throw new TypeError("No method named \"" + config + "\""); + } + + data[config](); + } + }); + }; + + _createClass(Collapse, null, [{ + key: "VERSION", + get: function get() { + return VERSION; + } + }, { + key: "Default", + get: function get() { + return Default; + } + }]); + return Collapse; + }(); + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + + $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) { + // preventDefault only for elements (which change the URL) not inside the collapsible element + if (event.currentTarget.tagName === 'A') { + event.preventDefault(); + } + + var $trigger = $$$1(this); + var selector = Util.getSelectorFromElement(this); + $$$1(selector).each(function () { + var $target = $$$1(this); + var data = $target.data(DATA_KEY); + var config = data ? 'toggle' : $trigger.data(); + + Collapse._jQueryInterface.call($target, config); + }); + }); + /** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + */ + + $$$1.fn[NAME] = Collapse._jQueryInterface; + $$$1.fn[NAME].Constructor = Collapse; + + $$$1.fn[NAME].noConflict = function () { + $$$1.fn[NAME] = JQUERY_NO_CONFLICT; + return Collapse._jQueryInterface; + }; + + return Collapse; +}($); + +/**! + * @fileOverview Kickass library to create and place poppers near their reference elements. + * @version 1.12.9 + * @license + * Copyright (c) 2016 Federico Zivolo and contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined'; +var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox']; +var timeoutDuration = 0; +for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) { + if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) { + timeoutDuration = 1; + break; + } +} + +function microtaskDebounce(fn) { + var called = false; + return function () { + if (called) { + return; + } + called = true; + window.Promise.resolve().then(function () { + called = false; + fn(); + }); + }; +} + +function taskDebounce(fn) { + var scheduled = false; + return function () { + if (!scheduled) { + scheduled = true; + setTimeout(function () { + scheduled = false; + fn(); + }, timeoutDuration); + } + }; +} + +var supportsMicroTasks = isBrowser && window.Promise; + +/** +* Create a debounced version of a method, that's asynchronously deferred +* but called in the minimum time possible. +* +* @method +* @memberof Popper.Utils +* @argument {Function} fn +* @returns {Function} +*/ +var debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce; + +/** + * Check if the given variable is a function + * @method + * @memberof Popper.Utils + * @argument {Any} functionToCheck - variable to check + * @returns {Boolean} answer to: is a function? + */ +function isFunction(functionToCheck) { + var getType = {}; + return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]'; +} + +/** + * Get CSS computed property of the given element + * @method + * @memberof Popper.Utils + * @argument {Eement} element + * @argument {String} property + */ +function getStyleComputedProperty(element, property) { + if (element.nodeType !== 1) { + return []; + } + // NOTE: 1 DOM access here + var css = getComputedStyle(element, null); + return property ? css[property] : css; +} + +/** + * Returns the parentNode or the host of the element + * @method + * @memberof Popper.Utils + * @argument {Element} element + * @returns {Element} parent + */ +function getParentNode(element) { + if (element.nodeName === 'HTML') { + return element; + } + return element.parentNode || element.host; +} + +/** + * Returns the scrolling parent of the given element + * @method + * @memberof Popper.Utils + * @argument {Element} element + * @returns {Element} scroll parent + */ +function getScrollParent(element) { + // Return body, `getScroll` will take care to get the correct `scrollTop` from it + if (!element) { + return document.body; + } + + switch (element.nodeName) { + case 'HTML': + case 'BODY': + return element.ownerDocument.body; + case '#document': + return element.body; + } + + // Firefox want us to check `-x` and `-y` variations as well + + var _getStyleComputedProp = getStyleComputedProperty(element), + overflow = _getStyleComputedProp.overflow, + overflowX = _getStyleComputedProp.overflowX, + overflowY = _getStyleComputedProp.overflowY; + + if (/(auto|scroll)/.test(overflow + overflowY + overflowX)) { + return element; + } + + return getScrollParent(getParentNode(element)); +} + +/** + * Returns the offset parent of the given element + * @method + * @memberof Popper.Utils + * @argument {Element} element + * @returns {Element} offset parent + */ +function getOffsetParent(element) { + // NOTE: 1 DOM access here + var offsetParent = element && element.offsetParent; + var nodeName = offsetParent && offsetParent.nodeName; + + if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') { + if (element) { + return element.ownerDocument.documentElement; + } + + return document.documentElement; + } + + // .offsetParent will return the closest TD or TABLE in case + // no offsetParent is present, I hate this job... + if (['TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') { + return getOffsetParent(offsetParent); + } + + return offsetParent; +} + +function isOffsetContainer(element) { + var nodeName = element.nodeName; + + if (nodeName === 'BODY') { + return false; + } + return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element; +} + +/** + * Finds the root node (document, shadowDOM root) of the given element + * @method + * @memberof Popper.Utils + * @argument {Element} node + * @returns {Element} root node + */ +function getRoot(node) { + if (node.parentNode !== null) { + return getRoot(node.parentNode); + } + + return node; +} + +/** + * Finds the offset parent common to the two provided nodes + * @method + * @memberof Popper.Utils + * @argument {Element} element1 + * @argument {Element} element2 + * @returns {Element} common offset parent + */ +function findCommonOffsetParent(element1, element2) { + // This check is needed to avoid errors in case one of the elements isn't defined for any reason + if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) { + return document.documentElement; + } + + // Here we make sure to give as "start" the element that comes first in the DOM + var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING; + var start = order ? element1 : element2; + var end = order ? element2 : element1; + + // Get common ancestor container + var range = document.createRange(); + range.setStart(start, 0); + range.setEnd(end, 0); + var commonAncestorContainer = range.commonAncestorContainer; + + // Both nodes are inside #document + + if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) { + if (isOffsetContainer(commonAncestorContainer)) { + return commonAncestorContainer; + } + + return getOffsetParent(commonAncestorContainer); + } + + // one of the nodes is inside shadowDOM, find which one + var element1root = getRoot(element1); + if (element1root.host) { + return findCommonOffsetParent(element1root.host, element2); + } else { + return findCommonOffsetParent(element1, getRoot(element2).host); + } +} + +/** + * Gets the scroll value of the given element in the given side (top and left) + * @method + * @memberof Popper.Utils + * @argument {Element} element + * @argument {String} side `top` or `left` + * @returns {number} amount of scrolled pixels + */ +function getScroll(element) { + var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top'; + + var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft'; + var nodeName = element.nodeName; + + if (nodeName === 'BODY' || nodeName === 'HTML') { + var html = element.ownerDocument.documentElement; + var scrollingElement = element.ownerDocument.scrollingElement || html; + return scrollingElement[upperSide]; + } + + return element[upperSide]; +} + +/* + * Sum or subtract the element scroll values (left and top) from a given rect object + * @method + * @memberof Popper.Utils + * @param {Object} rect - Rect object you want to change + * @param {HTMLElement} element - The element from the function reads the scroll values + * @param {Boolean} subtract - set to true if you want to subtract the scroll values + * @return {Object} rect - The modifier rect object + */ +function includeScroll(rect, element) { + var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + + var scrollTop = getScroll(element, 'top'); + var scrollLeft = getScroll(element, 'left'); + var modifier = subtract ? -1 : 1; + rect.top += scrollTop * modifier; + rect.bottom += scrollTop * modifier; + rect.left += scrollLeft * modifier; + rect.right += scrollLeft * modifier; + return rect; +} + +/* + * Helper to detect borders of a given element + * @method + * @memberof Popper.Utils + * @param {CSSStyleDeclaration} styles + * Result of `getStyleComputedProperty` on the given element + * @param {String} axis - `x` or `y` + * @return {number} borders - The borders size of the given axis + */ + +function getBordersSize(styles, axis) { + var sideA = axis === 'x' ? 'Left' : 'Top'; + var sideB = sideA === 'Left' ? 'Right' : 'Bottom'; + + return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10); +} + +/** + * Tells if you are running Internet Explorer 10 + * @method + * @memberof Popper.Utils + * @returns {Boolean} isIE10 + */ +var isIE10 = undefined; + +var isIE10$1 = function () { + if (isIE10 === undefined) { + isIE10 = navigator.appVersion.indexOf('MSIE 10') !== -1; + } + return isIE10; +}; + +function getSize(axis, body, html, computedStyle) { + return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE10$1() ? html['offset' + axis] + computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')] + computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')] : 0); +} + +function getWindowSizes() { + var body = document.body; + var html = document.documentElement; + var computedStyle = isIE10$1() && getComputedStyle(html); + + return { + height: getSize('Height', body, html, computedStyle), + width: getSize('Width', body, html, computedStyle) + }; +} + +var classCallCheck = function (instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } +}; + +var createClass = function () { + function defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + + return function (Constructor, protoProps, staticProps) { + if (protoProps) defineProperties(Constructor.prototype, protoProps); + if (staticProps) defineProperties(Constructor, staticProps); + return Constructor; + }; +}(); + + + + + +var defineProperty = function (obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + + return obj; +}; + +var _extends$1 = Object.assign || function (target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + + for (var key in source) { + if (Object.prototype.hasOwnProperty.call(source, key)) { + target[key] = source[key]; + } + } + } + + return target; +}; + +/** + * Given element offsets, generate an output similar to getBoundingClientRect + * @method + * @memberof Popper.Utils + * @argument {Object} offsets + * @returns {Object} ClientRect like output + */ +function getClientRect(offsets) { + return _extends$1({}, offsets, { + right: offsets.left + offsets.width, + bottom: offsets.top + offsets.height + }); +} + +/** + * Get bounding client rect of given element + * @method + * @memberof Popper.Utils + * @param {HTMLElement} element + * @return {Object} client rect + */ +function getBoundingClientRect(element) { + var rect = {}; + + // IE10 10 FIX: Please, don't ask, the element isn't + // considered in DOM in some circumstances... + // This isn't reproducible in IE10 compatibility mode of IE11 + if (isIE10$1()) { + try { + rect = element.getBoundingClientRect(); + var scrollTop = getScroll(element, 'top'); + var scrollLeft = getScroll(element, 'left'); + rect.top += scrollTop; + rect.left += scrollLeft; + rect.bottom += scrollTop; + rect.right += scrollLeft; + } catch (err) {} + } else { + rect = element.getBoundingClientRect(); + } + + var result = { + left: rect.left, + top: rect.top, + width: rect.right - rect.left, + height: rect.bottom - rect.top + }; + + // subtract scrollbar size from sizes + var sizes = element.nodeName === 'HTML' ? getWindowSizes() : {}; + var width = sizes.width || element.clientWidth || result.right - result.left; + var height = sizes.height || element.clientHeight || result.bottom - result.top; + + var horizScrollbar = element.offsetWidth - width; + var vertScrollbar = element.offsetHeight - height; + + // if an hypothetical scrollbar is detected, we must be sure it's not a `border` + // we make this check conditional for performance reasons + if (horizScrollbar || vertScrollbar) { + var styles = getStyleComputedProperty(element); + horizScrollbar -= getBordersSize(styles, 'x'); + vertScrollbar -= getBordersSize(styles, 'y'); + + result.width -= horizScrollbar; + result.height -= vertScrollbar; + } + + return getClientRect(result); +} + +function getOffsetRectRelativeToArbitraryNode(children, parent) { + var isIE10 = isIE10$1(); + var isHTML = parent.nodeName === 'HTML'; + var childrenRect = getBoundingClientRect(children); + var parentRect = getBoundingClientRect(parent); + var scrollParent = getScrollParent(children); + + var styles = getStyleComputedProperty(parent); + var borderTopWidth = parseFloat(styles.borderTopWidth, 10); + var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10); + + var offsets = getClientRect({ + top: childrenRect.top - parentRect.top - borderTopWidth, + left: childrenRect.left - parentRect.left - borderLeftWidth, + width: childrenRect.width, + height: childrenRect.height + }); + offsets.marginTop = 0; + offsets.marginLeft = 0; + + // Subtract margins of documentElement in case it's being used as parent + // we do this only on HTML because it's the only element that behaves + // differently when margins are applied to it. The margins are included in + // the box of the documentElement, in the other cases not. + if (!isIE10 && isHTML) { + var marginTop = parseFloat(styles.marginTop, 10); + var marginLeft = parseFloat(styles.marginLeft, 10); + + offsets.top -= borderTopWidth - marginTop; + offsets.bottom -= borderTopWidth - marginTop; + offsets.left -= borderLeftWidth - marginLeft; + offsets.right -= borderLeftWidth - marginLeft; + + // Attach marginTop and marginLeft because in some circumstances we may need them + offsets.marginTop = marginTop; + offsets.marginLeft = marginLeft; + } + + if (isIE10 ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') { + offsets = includeScroll(offsets, parent); + } + + return offsets; +} + +function getViewportOffsetRectRelativeToArtbitraryNode(element) { + var html = element.ownerDocument.documentElement; + var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html); + var width = Math.max(html.clientWidth, window.innerWidth || 0); + var height = Math.max(html.clientHeight, window.innerHeight || 0); + + var scrollTop = getScroll(html); + var scrollLeft = getScroll(html, 'left'); + + var offset = { + top: scrollTop - relativeOffset.top + relativeOffset.marginTop, + left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft, + width: width, + height: height + }; + + return getClientRect(offset); +} + +/** + * Check if the given element is fixed or is inside a fixed parent + * @method + * @memberof Popper.Utils + * @argument {Element} element + * @argument {Element} customContainer + * @returns {Boolean} answer to "isFixed?" + */ +function isFixed(element) { + var nodeName = element.nodeName; + if (nodeName === 'BODY' || nodeName === 'HTML') { + return false; + } + if (getStyleComputedProperty(element, 'position') === 'fixed') { + return true; + } + return isFixed(getParentNode(element)); +} + +/** + * Computed the boundaries limits and return them + * @method + * @memberof Popper.Utils + * @param {HTMLElement} popper + * @param {HTMLElement} reference + * @param {number} padding + * @param {HTMLElement} boundariesElement - Element used to define the boundaries + * @returns {Object} Coordinates of the boundaries + */ +function getBoundaries(popper, reference, padding, boundariesElement) { + // NOTE: 1 DOM access here + var boundaries = { top: 0, left: 0 }; + var offsetParent = findCommonOffsetParent(popper, reference); + + // Handle viewport case + if (boundariesElement === 'viewport') { + boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent); + } else { + // Handle other cases based on DOM element used as boundaries + var boundariesNode = void 0; + if (boundariesElement === 'scrollParent') { + boundariesNode = getScrollParent(getParentNode(reference)); + if (boundariesNode.nodeName === 'BODY') { + boundariesNode = popper.ownerDocument.documentElement; + } + } else if (boundariesElement === 'window') { + boundariesNode = popper.ownerDocument.documentElement; + } else { + boundariesNode = boundariesElement; + } + + var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent); + + // In case of HTML, we need a different computation + if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) { + var _getWindowSizes = getWindowSizes(), + height = _getWindowSizes.height, + width = _getWindowSizes.width; + + boundaries.top += offsets.top - offsets.marginTop; + boundaries.bottom = height + offsets.top; + boundaries.left += offsets.left - offsets.marginLeft; + boundaries.right = width + offsets.left; + } else { + // for all the other DOM elements, this one is good + boundaries = offsets; + } + } + + // Add paddings + boundaries.left += padding; + boundaries.top += padding; + boundaries.right -= padding; + boundaries.bottom -= padding; + + return boundaries; +} + +function getArea(_ref) { + var width = _ref.width, + height = _ref.height; + + return width * height; +} + +/** + * Utility used to transform the `auto` placement to the placement with more + * available space. + * @method + * @memberof Popper.Utils + * @argument {Object} data - The data object generated by update method + * @argument {Object} options - Modifiers configuration and options + * @returns {Object} The data object, properly modified + */ +function computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) { + var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0; + + if (placement.indexOf('auto') === -1) { + return placement; + } + + var boundaries = getBoundaries(popper, reference, padding, boundariesElement); + + var rects = { + top: { + width: boundaries.width, + height: refRect.top - boundaries.top + }, + right: { + width: boundaries.right - refRect.right, + height: boundaries.height + }, + bottom: { + width: boundaries.width, + height: boundaries.bottom - refRect.bottom + }, + left: { + width: refRect.left - boundaries.left, + height: boundaries.height + } + }; + + var sortedAreas = Object.keys(rects).map(function (key) { + return _extends$1({ + key: key + }, rects[key], { + area: getArea(rects[key]) + }); + }).sort(function (a, b) { + return b.area - a.area; + }); + + var filteredAreas = sortedAreas.filter(function (_ref2) { + var width = _ref2.width, + height = _ref2.height; + return width >= popper.clientWidth && height >= popper.clientHeight; + }); + + var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key; + + var variation = placement.split('-')[1]; + + return computedPlacement + (variation ? '-' + variation : ''); +} + +/** + * Get offsets to the reference element + * @method + * @memberof Popper.Utils + * @param {Object} state + * @param {Element} popper - the popper element + * @param {Element} reference - the reference element (the popper will be relative to this) + * @returns {Object} An object containing the offsets which will be applied to the popper + */ +function getReferenceOffsets(state, popper, reference) { + var commonOffsetParent = findCommonOffsetParent(popper, reference); + return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent); +} + +/** + * Get the outer sizes of the given element (offset size + margins) + * @method + * @memberof Popper.Utils + * @argument {Element} element + * @returns {Object} object containing width and height properties + */ +function getOuterSizes(element) { + var styles = getComputedStyle(element); + var x = parseFloat(styles.marginTop) + parseFloat(styles.marginBottom); + var y = parseFloat(styles.marginLeft) + parseFloat(styles.marginRight); + var result = { + width: element.offsetWidth + y, + height: element.offsetHeight + x + }; + return result; +} + +/** + * Get the opposite placement of the given one + * @method + * @memberof Popper.Utils + * @argument {String} placement + * @returns {String} flipped placement + */ +function getOppositePlacement(placement) { + var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' }; + return placement.replace(/left|right|bottom|top/g, function (matched) { + return hash[matched]; + }); +} + +/** + * Get offsets to the popper + * @method + * @memberof Popper.Utils + * @param {Object} position - CSS position the Popper will get applied + * @param {HTMLElement} popper - the popper element + * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this) + * @param {String} placement - one of the valid placement options + * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper + */ +function getPopperOffsets(popper, referenceOffsets, placement) { + placement = placement.split('-')[0]; + + // Get popper node sizes + var popperRect = getOuterSizes(popper); + + // Add position, width and height to our offsets object + var popperOffsets = { + width: popperRect.width, + height: popperRect.height + }; + + // depending by the popper placement we have to compute its offsets slightly differently + var isHoriz = ['right', 'left'].indexOf(placement) !== -1; + var mainSide = isHoriz ? 'top' : 'left'; + var secondarySide = isHoriz ? 'left' : 'top'; + var measurement = isHoriz ? 'height' : 'width'; + var secondaryMeasurement = !isHoriz ? 'height' : 'width'; + + popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2; + if (placement === secondarySide) { + popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement]; + } else { + popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)]; + } + + return popperOffsets; +} + +/** + * Mimics the `find` method of Array + * @method + * @memberof Popper.Utils + * @argument {Array} arr + * @argument prop + * @argument value + * @returns index or -1 + */ +function find(arr, check) { + // use native find if supported + if (Array.prototype.find) { + return arr.find(check); + } + + // use `filter` to obtain the same behavior of `find` + return arr.filter(check)[0]; +} + +/** + * Return the index of the matching object + * @method + * @memberof Popper.Utils + * @argument {Array} arr + * @argument prop + * @argument value + * @returns index or -1 + */ +function findIndex(arr, prop, value) { + // use native findIndex if supported + if (Array.prototype.findIndex) { + return arr.findIndex(function (cur) { + return cur[prop] === value; + }); + } + + // use `find` + `indexOf` if `findIndex` isn't supported + var match = find(arr, function (obj) { + return obj[prop] === value; + }); + return arr.indexOf(match); +} + +/** + * Loop trough the list of modifiers and run them in order, + * each of them will then edit the data object. + * @method + * @memberof Popper.Utils + * @param {dataObject} data + * @param {Array} modifiers + * @param {String} ends - Optional modifier name used as stopper + * @returns {dataObject} + */ +function runModifiers(modifiers, data, ends) { + var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends)); + + modifiersToRun.forEach(function (modifier) { + if (modifier['function']) { + // eslint-disable-line dot-notation + console.warn('`modifier.function` is deprecated, use `modifier.fn`!'); + } + var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation + if (modifier.enabled && isFunction(fn)) { + // Add properties to offsets to make them a complete clientRect object + // we do this before each modifier to make sure the previous one doesn't + // mess with these values + data.offsets.popper = getClientRect(data.offsets.popper); + data.offsets.reference = getClientRect(data.offsets.reference); + + data = fn(data, modifier); + } + }); + + return data; +} + +/** + * Updates the position of the popper, computing the new offsets and applying + * the new style.
+ * Prefer `scheduleUpdate` over `update` because of performance reasons. + * @method + * @memberof Popper + */ +function update() { + // if popper is destroyed, don't perform any further update + if (this.state.isDestroyed) { + return; + } + + var data = { + instance: this, + styles: {}, + arrowStyles: {}, + attributes: {}, + flipped: false, + offsets: {} + }; + + // compute reference element offsets + data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference); + + // compute auto placement, store placement inside the data object, + // modifiers will be able to edit `placement` if needed + // and refer to originalPlacement to know the original value + data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding); + + // store the computed placement inside `originalPlacement` + data.originalPlacement = data.placement; + + // compute the popper offsets + data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement); + data.offsets.popper.position = 'absolute'; + + // run the modifiers + data = runModifiers(this.modifiers, data); + + // the first `update` will call `onCreate` callback + // the other ones will call `onUpdate` callback + if (!this.state.isCreated) { + this.state.isCreated = true; + this.options.onCreate(data); + } else { + this.options.onUpdate(data); + } +} + +/** + * Helper used to know if the given modifier is enabled. + * @method + * @memberof Popper.Utils + * @returns {Boolean} + */ +function isModifierEnabled(modifiers, modifierName) { + return modifiers.some(function (_ref) { + var name = _ref.name, + enabled = _ref.enabled; + return enabled && name === modifierName; + }); +} + +/** + * Get the prefixed supported property name + * @method + * @memberof Popper.Utils + * @argument {String} property (camelCase) + * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix) + */ +function getSupportedPropertyName(property) { + var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O']; + var upperProp = property.charAt(0).toUpperCase() + property.slice(1); + + for (var i = 0; i < prefixes.length - 1; i++) { + var prefix = prefixes[i]; + var toCheck = prefix ? '' + prefix + upperProp : property; + if (typeof document.body.style[toCheck] !== 'undefined') { + return toCheck; + } + } + return null; +} + +/** + * Destroy the popper + * @method + * @memberof Popper + */ +function destroy() { + this.state.isDestroyed = true; + + // touch DOM only if `applyStyle` modifier is enabled + if (isModifierEnabled(this.modifiers, 'applyStyle')) { + this.popper.removeAttribute('x-placement'); + this.popper.style.left = ''; + this.popper.style.position = ''; + this.popper.style.top = ''; + this.popper.style[getSupportedPropertyName('transform')] = ''; + } + + this.disableEventListeners(); + + // remove the popper if user explicity asked for the deletion on destroy + // do not use `remove` because IE11 doesn't support it + if (this.options.removeOnDestroy) { + this.popper.parentNode.removeChild(this.popper); + } + return this; +} + +/** + * Get the window associated with the element + * @argument {Element} element + * @returns {Window} + */ +function getWindow(element) { + var ownerDocument = element.ownerDocument; + return ownerDocument ? ownerDocument.defaultView : window; +} + +function attachToScrollParents(scrollParent, event, callback, scrollParents) { + var isBody = scrollParent.nodeName === 'BODY'; + var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent; + target.addEventListener(event, callback, { passive: true }); + + if (!isBody) { + attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents); + } + scrollParents.push(target); +} + +/** + * Setup needed event listeners used to update the popper position + * @method + * @memberof Popper.Utils + * @private + */ +function setupEventListeners(reference, options, state, updateBound) { + // Resize event listener on window + state.updateBound = updateBound; + getWindow(reference).addEventListener('resize', state.updateBound, { passive: true }); + + // Scroll event listener on scroll parents + var scrollElement = getScrollParent(reference); + attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents); + state.scrollElement = scrollElement; + state.eventsEnabled = true; + + return state; +} + +/** + * It will add resize/scroll events and start recalculating + * position of the popper element when they are triggered. + * @method + * @memberof Popper + */ +function enableEventListeners() { + if (!this.state.eventsEnabled) { + this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate); + } +} + +/** + * Remove event listeners used to update the popper position + * @method + * @memberof Popper.Utils + * @private + */ +function removeEventListeners(reference, state) { + // Remove resize event listener on window + getWindow(reference).removeEventListener('resize', state.updateBound); + + // Remove scroll event listener on scroll parents + state.scrollParents.forEach(function (target) { + target.removeEventListener('scroll', state.updateBound); + }); + + // Reset state + state.updateBound = null; + state.scrollParents = []; + state.scrollElement = null; + state.eventsEnabled = false; + return state; +} + +/** + * It will remove resize/scroll events and won't recalculate popper position + * when they are triggered. It also won't trigger onUpdate callback anymore, + * unless you call `update` method manually. + * @method + * @memberof Popper + */ +function disableEventListeners() { + if (this.state.eventsEnabled) { + cancelAnimationFrame(this.scheduleUpdate); + this.state = removeEventListeners(this.reference, this.state); + } +} + +/** + * Tells if a given input is a number + * @method + * @memberof Popper.Utils + * @param {*} input to check + * @return {Boolean} + */ +function isNumeric(n) { + return n !== '' && !isNaN(parseFloat(n)) && isFinite(n); +} + +/** + * Set the style to the given popper + * @method + * @memberof Popper.Utils + * @argument {Element} element - Element to apply the style to + * @argument {Object} styles + * Object with a list of properties and values which will be applied to the element + */ +function setStyles(element, styles) { + Object.keys(styles).forEach(function (prop) { + var unit = ''; + // add unit if the value is numeric and is one of the following + if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) { + unit = 'px'; + } + element.style[prop] = styles[prop] + unit; + }); +} + +/** + * Set the attributes to the given popper + * @method + * @memberof Popper.Utils + * @argument {Element} element - Element to apply the attributes to + * @argument {Object} styles + * Object with a list of properties and values which will be applied to the element + */ +function setAttributes(element, attributes) { + Object.keys(attributes).forEach(function (prop) { + var value = attributes[prop]; + if (value !== false) { + element.setAttribute(prop, attributes[prop]); + } else { + element.removeAttribute(prop); + } + }); +} + +/** + * @function + * @memberof Modifiers + * @argument {Object} data - The data object generated by `update` method + * @argument {Object} data.styles - List of style properties - values to apply to popper element + * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element + * @argument {Object} options - Modifiers configuration and options + * @returns {Object} The same data object + */ +function applyStyle(data) { + // any property present in `data.styles` will be applied to the popper, + // in this way we can make the 3rd party modifiers add custom styles to it + // Be aware, modifiers could override the properties defined in the previous + // lines of this modifier! + setStyles(data.instance.popper, data.styles); + + // any property present in `data.attributes` will be applied to the popper, + // they will be set as HTML attributes of the element + setAttributes(data.instance.popper, data.attributes); + + // if arrowElement is defined and arrowStyles has some properties + if (data.arrowElement && Object.keys(data.arrowStyles).length) { + setStyles(data.arrowElement, data.arrowStyles); + } + + return data; +} + +/** + * Set the x-placement attribute before everything else because it could be used + * to add margins to the popper margins needs to be calculated to get the + * correct popper offsets. + * @method + * @memberof Popper.modifiers + * @param {HTMLElement} reference - The reference element used to position the popper + * @param {HTMLElement} popper - The HTML element used as popper. + * @param {Object} options - Popper.js options + */ +function applyStyleOnLoad(reference, popper, options, modifierOptions, state) { + // compute reference element offsets + var referenceOffsets = getReferenceOffsets(state, popper, reference); + + // compute auto placement, store placement inside the data object, + // modifiers will be able to edit `placement` if needed + // and refer to originalPlacement to know the original value + var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding); + + popper.setAttribute('x-placement', placement); + + // Apply `position` to popper before anything else because + // without the position applied we can't guarantee correct computations + setStyles(popper, { position: 'absolute' }); + + return options; +} + +/** + * @function + * @memberof Modifiers + * @argument {Object} data - The data object generated by `update` method + * @argument {Object} options - Modifiers configuration and options + * @returns {Object} The data object, properly modified + */ +function computeStyle(data, options) { + var x = options.x, + y = options.y; + var popper = data.offsets.popper; + + // Remove this legacy support in Popper.js v2 + + var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) { + return modifier.name === 'applyStyle'; + }).gpuAcceleration; + if (legacyGpuAccelerationOption !== undefined) { + console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!'); + } + var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration; + + var offsetParent = getOffsetParent(data.instance.popper); + var offsetParentRect = getBoundingClientRect(offsetParent); + + // Styles + var styles = { + position: popper.position + }; + + // floor sides to avoid blurry text + var offsets = { + left: Math.floor(popper.left), + top: Math.floor(popper.top), + bottom: Math.floor(popper.bottom), + right: Math.floor(popper.right) + }; + + var sideA = x === 'bottom' ? 'top' : 'bottom'; + var sideB = y === 'right' ? 'left' : 'right'; + + // if gpuAcceleration is set to `true` and transform is supported, + // we use `translate3d` to apply the position to the popper we + // automatically use the supported prefixed version if needed + var prefixedProperty = getSupportedPropertyName('transform'); + + // now, let's make a step back and look at this code closely (wtf?) + // If the content of the popper grows once it's been positioned, it + // may happen that the popper gets misplaced because of the new content + // overflowing its reference element + // To avoid this problem, we provide two options (x and y), which allow + // the consumer to define the offset origin. + // If we position a popper on top of a reference element, we can set + // `x` to `top` to make the popper grow towards its top instead of + // its bottom. + var left = void 0, + top = void 0; + if (sideA === 'bottom') { + top = -offsetParentRect.height + offsets.bottom; + } else { + top = offsets.top; + } + if (sideB === 'right') { + left = -offsetParentRect.width + offsets.right; + } else { + left = offsets.left; + } + if (gpuAcceleration && prefixedProperty) { + styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)'; + styles[sideA] = 0; + styles[sideB] = 0; + styles.willChange = 'transform'; + } else { + // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties + var invertTop = sideA === 'bottom' ? -1 : 1; + var invertLeft = sideB === 'right' ? -1 : 1; + styles[sideA] = top * invertTop; + styles[sideB] = left * invertLeft; + styles.willChange = sideA + ', ' + sideB; + } + + // Attributes + var attributes = { + 'x-placement': data.placement + }; + + // Update `data` attributes, styles and arrowStyles + data.attributes = _extends$1({}, attributes, data.attributes); + data.styles = _extends$1({}, styles, data.styles); + data.arrowStyles = _extends$1({}, data.offsets.arrow, data.arrowStyles); + + return data; +} + +/** + * Helper used to know if the given modifier depends from another one.
+ * It checks if the needed modifier is listed and enabled. + * @method + * @memberof Popper.Utils + * @param {Array} modifiers - list of modifiers + * @param {String} requestingName - name of requesting modifier + * @param {String} requestedName - name of requested modifier + * @returns {Boolean} + */ +function isModifierRequired(modifiers, requestingName, requestedName) { + var requesting = find(modifiers, function (_ref) { + var name = _ref.name; + return name === requestingName; + }); + + var isRequired = !!requesting && modifiers.some(function (modifier) { + return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order; + }); + + if (!isRequired) { + var _requesting = '`' + requestingName + '`'; + var requested = '`' + requestedName + '`'; + console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!'); + } + return isRequired; +} + +/** + * @function + * @memberof Modifiers + * @argument {Object} data - The data object generated by update method + * @argument {Object} options - Modifiers configuration and options + * @returns {Object} The data object, properly modified + */ +function arrow(data, options) { + var _data$offsets$arrow; + + // arrow depends on keepTogether in order to work + if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) { + return data; + } + + var arrowElement = options.element; + + // if arrowElement is a string, suppose it's a CSS selector + if (typeof arrowElement === 'string') { + arrowElement = data.instance.popper.querySelector(arrowElement); + + // if arrowElement is not found, don't run the modifier + if (!arrowElement) { + return data; + } + } else { + // if the arrowElement isn't a query selector we must check that the + // provided DOM node is child of its popper node + if (!data.instance.popper.contains(arrowElement)) { + console.warn('WARNING: `arrow.element` must be child of its popper element!'); + return data; + } + } + + var placement = data.placement.split('-')[0]; + var _data$offsets = data.offsets, + popper = _data$offsets.popper, + reference = _data$offsets.reference; + + var isVertical = ['left', 'right'].indexOf(placement) !== -1; + + var len = isVertical ? 'height' : 'width'; + var sideCapitalized = isVertical ? 'Top' : 'Left'; + var side = sideCapitalized.toLowerCase(); + var altSide = isVertical ? 'left' : 'top'; + var opSide = isVertical ? 'bottom' : 'right'; + var arrowElementSize = getOuterSizes(arrowElement)[len]; + + // + // extends keepTogether behavior making sure the popper and its + // reference have enough pixels in conjuction + // + + // top/left side + if (reference[opSide] - arrowElementSize < popper[side]) { + data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize); + } + // bottom/right side + if (reference[side] + arrowElementSize > popper[opSide]) { + data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide]; + } + data.offsets.popper = getClientRect(data.offsets.popper); + + // compute center of the popper + var center = reference[side] + reference[len] / 2 - arrowElementSize / 2; + + // Compute the sideValue using the updated popper offsets + // take popper margin in account because we don't have this info available + var css = getStyleComputedProperty(data.instance.popper); + var popperMarginSide = parseFloat(css['margin' + sideCapitalized], 10); + var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width'], 10); + var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide; + + // prevent arrowElement from being placed not contiguously to its popper + sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0); + + data.arrowElement = arrowElement; + data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow); + + return data; +} + +/** + * Get the opposite placement variation of the given one + * @method + * @memberof Popper.Utils + * @argument {String} placement variation + * @returns {String} flipped placement variation + */ +function getOppositeVariation(variation) { + if (variation === 'end') { + return 'start'; + } else if (variation === 'start') { + return 'end'; + } + return variation; +} + +/** + * List of accepted placements to use as values of the `placement` option.
+ * Valid placements are: + * - `auto` + * - `top` + * - `right` + * - `bottom` + * - `left` + * + * Each placement can have a variation from this list: + * - `-start` + * - `-end` + * + * Variations are interpreted easily if you think of them as the left to right + * written languages. Horizontally (`top` and `bottom`), `start` is left and `end` + * is right.
+ * Vertically (`left` and `right`), `start` is top and `end` is bottom. + * + * Some valid examples are: + * - `top-end` (on top of reference, right aligned) + * - `right-start` (on right of reference, top aligned) + * - `bottom` (on bottom, centered) + * - `auto-right` (on the side with more space available, alignment depends by placement) + * + * @static + * @type {Array} + * @enum {String} + * @readonly + * @method placements + * @memberof Popper + */ +var placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start']; + +// Get rid of `auto` `auto-start` and `auto-end` +var validPlacements = placements.slice(3); + +/** + * Given an initial placement, returns all the subsequent placements + * clockwise (or counter-clockwise). + * + * @method + * @memberof Popper.Utils + * @argument {String} placement - A valid placement (it accepts variations) + * @argument {Boolean} counter - Set to true to walk the placements counterclockwise + * @returns {Array} placements including their variations + */ +function clockwise(placement) { + var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + + var index = validPlacements.indexOf(placement); + var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index)); + return counter ? arr.reverse() : arr; +} + +var BEHAVIORS = { + FLIP: 'flip', + CLOCKWISE: 'clockwise', + COUNTERCLOCKWISE: 'counterclockwise' +}; + +/** + * @function + * @memberof Modifiers + * @argument {Object} data - The data object generated by update method + * @argument {Object} options - Modifiers configuration and options + * @returns {Object} The data object, properly modified + */ +function flip(data, options) { + // if `inner` modifier is enabled, we can't use the `flip` modifier + if (isModifierEnabled(data.instance.modifiers, 'inner')) { + return data; + } + + if (data.flipped && data.placement === data.originalPlacement) { + // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides + return data; + } + + var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement); + + var placement = data.placement.split('-')[0]; + var placementOpposite = getOppositePlacement(placement); + var variation = data.placement.split('-')[1] || ''; + + var flipOrder = []; + + switch (options.behavior) { + case BEHAVIORS.FLIP: + flipOrder = [placement, placementOpposite]; + break; + case BEHAVIORS.CLOCKWISE: + flipOrder = clockwise(placement); + break; + case BEHAVIORS.COUNTERCLOCKWISE: + flipOrder = clockwise(placement, true); + break; + default: + flipOrder = options.behavior; + } + + flipOrder.forEach(function (step, index) { + if (placement !== step || flipOrder.length === index + 1) { + return data; + } + + placement = data.placement.split('-')[0]; + placementOpposite = getOppositePlacement(placement); + + var popperOffsets = data.offsets.popper; + var refOffsets = data.offsets.reference; + + // using floor because the reference offsets may contain decimals we are not going to consider here + var floor = Math.floor; + var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom); + + var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left); + var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right); + var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top); + var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom); + + var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom; + + // flip the variation if required + var isVertical = ['top', 'bottom'].indexOf(placement) !== -1; + var flippedVariation = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom); + + if (overlapsRef || overflowsBoundaries || flippedVariation) { + // this boolean to detect any flip loop + data.flipped = true; + + if (overlapsRef || overflowsBoundaries) { + placement = flipOrder[index + 1]; + } + + if (flippedVariation) { + variation = getOppositeVariation(variation); + } + + data.placement = placement + (variation ? '-' + variation : ''); + + // this object contains `position`, we want to preserve it along with + // any additional property we may add in the future + data.offsets.popper = _extends$1({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement)); + + data = runModifiers(data.instance.modifiers, data, 'flip'); + } + }); + return data; +} + +/** + * @function + * @memberof Modifiers + * @argument {Object} data - The data object generated by update method + * @argument {Object} options - Modifiers configuration and options + * @returns {Object} The data object, properly modified + */ +function keepTogether(data) { + var _data$offsets = data.offsets, + popper = _data$offsets.popper, + reference = _data$offsets.reference; + + var placement = data.placement.split('-')[0]; + var floor = Math.floor; + var isVertical = ['top', 'bottom'].indexOf(placement) !== -1; + var side = isVertical ? 'right' : 'bottom'; + var opSide = isVertical ? 'left' : 'top'; + var measurement = isVertical ? 'width' : 'height'; + + if (popper[side] < floor(reference[opSide])) { + data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement]; + } + if (popper[opSide] > floor(reference[side])) { + data.offsets.popper[opSide] = floor(reference[side]); + } + + return data; +} + +/** + * Converts a string containing value + unit into a px value number + * @function + * @memberof {modifiers~offset} + * @private + * @argument {String} str - Value + unit string + * @argument {String} measurement - `height` or `width` + * @argument {Object} popperOffsets + * @argument {Object} referenceOffsets + * @returns {Number|String} + * Value in pixels, or original string if no values were extracted + */ +function toValue(str, measurement, popperOffsets, referenceOffsets) { + // separate value from unit + var split = str.match(/((?:\-|\+)?\d*\.?\d*)(.*)/); + var value = +split[1]; + var unit = split[2]; + + // If it's not a number it's an operator, I guess + if (!value) { + return str; + } + + if (unit.indexOf('%') === 0) { + var element = void 0; + switch (unit) { + case '%p': + element = popperOffsets; + break; + case '%': + case '%r': + default: + element = referenceOffsets; + } + + var rect = getClientRect(element); + return rect[measurement] / 100 * value; + } else if (unit === 'vh' || unit === 'vw') { + // if is a vh or vw, we calculate the size based on the viewport + var size = void 0; + if (unit === 'vh') { + size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0); + } else { + size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0); + } + return size / 100 * value; + } else { + // if is an explicit pixel unit, we get rid of the unit and keep the value + // if is an implicit unit, it's px, and we return just the value + return value; + } +} + +/** + * Parse an `offset` string to extrapolate `x` and `y` numeric offsets. + * @function + * @memberof {modifiers~offset} + * @private + * @argument {String} offset + * @argument {Object} popperOffsets + * @argument {Object} referenceOffsets + * @argument {String} basePlacement + * @returns {Array} a two cells array with x and y offsets in numbers + */ +function parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) { + var offsets = [0, 0]; + + // Use height if placement is left or right and index is 0 otherwise use width + // in this way the first offset will use an axis and the second one + // will use the other one + var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1; + + // Split the offset string to obtain a list of values and operands + // The regex addresses values with the plus or minus sign in front (+10, -20, etc) + var fragments = offset.split(/(\+|\-)/).map(function (frag) { + return frag.trim(); + }); + + // Detect if the offset string contains a pair of values or a single one + // they could be separated by comma or space + var divider = fragments.indexOf(find(fragments, function (frag) { + return frag.search(/,|\s/) !== -1; + })); + + if (fragments[divider] && fragments[divider].indexOf(',') === -1) { + console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.'); + } + + // If divider is found, we divide the list of values and operands to divide + // them by ofset X and Y. + var splitRegex = /\s*,\s*|\s+/; + var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments]; + + // Convert the values with units to absolute pixels to allow our computations + ops = ops.map(function (op, index) { + // Most of the units rely on the orientation of the popper + var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width'; + var mergeWithPrevious = false; + return op + // This aggregates any `+` or `-` sign that aren't considered operators + // e.g.: 10 + +5 => [10, +, +5] + .reduce(function (a, b) { + if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) { + a[a.length - 1] = b; + mergeWithPrevious = true; + return a; + } else if (mergeWithPrevious) { + a[a.length - 1] += b; + mergeWithPrevious = false; + return a; + } else { + return a.concat(b); + } + }, []) + // Here we convert the string values into number values (in px) + .map(function (str) { + return toValue(str, measurement, popperOffsets, referenceOffsets); + }); + }); + + // Loop trough the offsets arrays and execute the operations + ops.forEach(function (op, index) { + op.forEach(function (frag, index2) { + if (isNumeric(frag)) { + offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1); + } + }); + }); + return offsets; +} + +/** + * @function + * @memberof Modifiers + * @argument {Object} data - The data object generated by update method + * @argument {Object} options - Modifiers configuration and options + * @argument {Number|String} options.offset=0 + * The offset value as described in the modifier description + * @returns {Object} The data object, properly modified + */ +function offset(data, _ref) { + var offset = _ref.offset; + var placement = data.placement, + _data$offsets = data.offsets, + popper = _data$offsets.popper, + reference = _data$offsets.reference; + + var basePlacement = placement.split('-')[0]; + + var offsets = void 0; + if (isNumeric(+offset)) { + offsets = [+offset, 0]; + } else { + offsets = parseOffset(offset, popper, reference, basePlacement); + } + + if (basePlacement === 'left') { + popper.top += offsets[0]; + popper.left -= offsets[1]; + } else if (basePlacement === 'right') { + popper.top += offsets[0]; + popper.left += offsets[1]; + } else if (basePlacement === 'top') { + popper.left += offsets[0]; + popper.top -= offsets[1]; + } else if (basePlacement === 'bottom') { + popper.left += offsets[0]; + popper.top += offsets[1]; + } + + data.popper = popper; + return data; +} + +/** + * @function + * @memberof Modifiers + * @argument {Object} data - The data object generated by `update` method + * @argument {Object} options - Modifiers configuration and options + * @returns {Object} The data object, properly modified + */ +function preventOverflow(data, options) { + var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper); + + // If offsetParent is the reference element, we really want to + // go one step up and use the next offsetParent as reference to + // avoid to make this modifier completely useless and look like broken + if (data.instance.reference === boundariesElement) { + boundariesElement = getOffsetParent(boundariesElement); + } + + var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement); + options.boundaries = boundaries; + + var order = options.priority; + var popper = data.offsets.popper; + + var check = { + primary: function primary(placement) { + var value = popper[placement]; + if (popper[placement] < boundaries[placement] && !options.escapeWithReference) { + value = Math.max(popper[placement], boundaries[placement]); + } + return defineProperty({}, placement, value); + }, + secondary: function secondary(placement) { + var mainSide = placement === 'right' ? 'left' : 'top'; + var value = popper[mainSide]; + if (popper[placement] > boundaries[placement] && !options.escapeWithReference) { + value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height)); + } + return defineProperty({}, mainSide, value); + } + }; + + order.forEach(function (placement) { + var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary'; + popper = _extends$1({}, popper, check[side](placement)); + }); + + data.offsets.popper = popper; + + return data; +} + +/** + * @function + * @memberof Modifiers + * @argument {Object} data - The data object generated by `update` method + * @argument {Object} options - Modifiers configuration and options + * @returns {Object} The data object, properly modified + */ +function shift(data) { + var placement = data.placement; + var basePlacement = placement.split('-')[0]; + var shiftvariation = placement.split('-')[1]; + + // if shift shiftvariation is specified, run the modifier + if (shiftvariation) { + var _data$offsets = data.offsets, + reference = _data$offsets.reference, + popper = _data$offsets.popper; + + var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1; + var side = isVertical ? 'left' : 'top'; + var measurement = isVertical ? 'width' : 'height'; + + var shiftOffsets = { + start: defineProperty({}, side, reference[side]), + end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement]) + }; + + data.offsets.popper = _extends$1({}, popper, shiftOffsets[shiftvariation]); + } + + return data; +} + +/** + * @function + * @memberof Modifiers + * @argument {Object} data - The data object generated by update method + * @argument {Object} options - Modifiers configuration and options + * @returns {Object} The data object, properly modified + */ +function hide(data) { + if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) { + return data; + } + + var refRect = data.offsets.reference; + var bound = find(data.instance.modifiers, function (modifier) { + return modifier.name === 'preventOverflow'; + }).boundaries; + + if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) { + // Avoid unnecessary DOM access if visibility hasn't changed + if (data.hide === true) { + return data; + } + + data.hide = true; + data.attributes['x-out-of-boundaries'] = ''; + } else { + // Avoid unnecessary DOM access if visibility hasn't changed + if (data.hide === false) { + return data; + } + + data.hide = false; + data.attributes['x-out-of-boundaries'] = false; + } + + return data; +} + +/** + * @function + * @memberof Modifiers + * @argument {Object} data - The data object generated by `update` method + * @argument {Object} options - Modifiers configuration and options + * @returns {Object} The data object, properly modified + */ +function inner(data) { + var placement = data.placement; + var basePlacement = placement.split('-')[0]; + var _data$offsets = data.offsets, + popper = _data$offsets.popper, + reference = _data$offsets.reference; + + var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1; + + var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1; + + popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0); + + data.placement = getOppositePlacement(placement); + data.offsets.popper = getClientRect(popper); + + return data; +} + +/** + * Modifier function, each modifier can have a function of this type assigned + * to its `fn` property.
+ * These functions will be called on each update, this means that you must + * make sure they are performant enough to avoid performance bottlenecks. + * + * @function ModifierFn + * @argument {dataObject} data - The data object generated by `update` method + * @argument {Object} options - Modifiers configuration and options + * @returns {dataObject} The data object, properly modified + */ + +/** + * Modifiers are plugins used to alter the behavior of your poppers.
+ * Popper.js uses a set of 9 modifiers to provide all the basic functionalities + * needed by the library. + * + * Usually you don't want to override the `order`, `fn` and `onLoad` props. + * All the other properties are configurations that could be tweaked. + * @namespace modifiers + */ +var modifiers = { + /** + * Modifier used to shift the popper on the start or end of its reference + * element.
+ * It will read the variation of the `placement` property.
+ * It can be one either `-end` or `-start`. + * @memberof modifiers + * @inner + */ + shift: { + /** @prop {number} order=100 - Index used to define the order of execution */ + order: 100, + /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ + enabled: true, + /** @prop {ModifierFn} */ + fn: shift + }, + + /** + * The `offset` modifier can shift your popper on both its axis. + * + * It accepts the following units: + * - `px` or unitless, interpreted as pixels + * - `%` or `%r`, percentage relative to the length of the reference element + * - `%p`, percentage relative to the length of the popper element + * - `vw`, CSS viewport width unit + * - `vh`, CSS viewport height unit + * + * For length is intended the main axis relative to the placement of the popper.
+ * This means that if the placement is `top` or `bottom`, the length will be the + * `width`. In case of `left` or `right`, it will be the height. + * + * You can provide a single value (as `Number` or `String`), or a pair of values + * as `String` divided by a comma or one (or more) white spaces.
+ * The latter is a deprecated method because it leads to confusion and will be + * removed in v2.
+ * Additionally, it accepts additions and subtractions between different units. + * Note that multiplications and divisions aren't supported. + * + * Valid examples are: + * ``` + * 10 + * '10%' + * '10, 10' + * '10%, 10' + * '10 + 10%' + * '10 - 5vh + 3%' + * '-10px + 5vh, 5px - 6%' + * ``` + * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap + * > with their reference element, unfortunately, you will have to disable the `flip` modifier. + * > More on this [reading this issue](https://github.com/FezVrasta/popper.js/issues/373) + * + * @memberof modifiers + * @inner + */ + offset: { + /** @prop {number} order=200 - Index used to define the order of execution */ + order: 200, + /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ + enabled: true, + /** @prop {ModifierFn} */ + fn: offset, + /** @prop {Number|String} offset=0 + * The offset value as described in the modifier description + */ + offset: 0 + }, + + /** + * Modifier used to prevent the popper from being positioned outside the boundary. + * + * An scenario exists where the reference itself is not within the boundaries.
+ * We can say it has "escaped the boundaries" — or just "escaped".
+ * In this case we need to decide whether the popper should either: + * + * - detach from the reference and remain "trapped" in the boundaries, or + * - if it should ignore the boundary and "escape with its reference" + * + * When `escapeWithReference` is set to`true` and reference is completely + * outside its boundaries, the popper will overflow (or completely leave) + * the boundaries in order to remain attached to the edge of the reference. + * + * @memberof modifiers + * @inner + */ + preventOverflow: { + /** @prop {number} order=300 - Index used to define the order of execution */ + order: 300, + /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ + enabled: true, + /** @prop {ModifierFn} */ + fn: preventOverflow, + /** + * @prop {Array} [priority=['left','right','top','bottom']] + * Popper will try to prevent overflow following these priorities by default, + * then, it could overflow on the left and on top of the `boundariesElement` + */ + priority: ['left', 'right', 'top', 'bottom'], + /** + * @prop {number} padding=5 + * Amount of pixel used to define a minimum distance between the boundaries + * and the popper this makes sure the popper has always a little padding + * between the edges of its container + */ + padding: 5, + /** + * @prop {String|HTMLElement} boundariesElement='scrollParent' + * Boundaries used by the modifier, can be `scrollParent`, `window`, + * `viewport` or any DOM element. + */ + boundariesElement: 'scrollParent' + }, + + /** + * Modifier used to make sure the reference and its popper stay near eachothers + * without leaving any gap between the two. Expecially useful when the arrow is + * enabled and you want to assure it to point to its reference element. + * It cares only about the first axis, you can still have poppers with margin + * between the popper and its reference element. + * @memberof modifiers + * @inner + */ + keepTogether: { + /** @prop {number} order=400 - Index used to define the order of execution */ + order: 400, + /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ + enabled: true, + /** @prop {ModifierFn} */ + fn: keepTogether + }, + + /** + * This modifier is used to move the `arrowElement` of the popper to make + * sure it is positioned between the reference element and its popper element. + * It will read the outer size of the `arrowElement` node to detect how many + * pixels of conjuction are needed. + * + * It has no effect if no `arrowElement` is provided. + * @memberof modifiers + * @inner + */ + arrow: { + /** @prop {number} order=500 - Index used to define the order of execution */ + order: 500, + /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ + enabled: true, + /** @prop {ModifierFn} */ + fn: arrow, + /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */ + element: '[x-arrow]' + }, + + /** + * Modifier used to flip the popper's placement when it starts to overlap its + * reference element. + * + * Requires the `preventOverflow` modifier before it in order to work. + * + * **NOTE:** this modifier will interrupt the current update cycle and will + * restart it if it detects the need to flip the placement. + * @memberof modifiers + * @inner + */ + flip: { + /** @prop {number} order=600 - Index used to define the order of execution */ + order: 600, + /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ + enabled: true, + /** @prop {ModifierFn} */ + fn: flip, + /** + * @prop {String|Array} behavior='flip' + * The behavior used to change the popper's placement. It can be one of + * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid + * placements (with optional variations). + */ + behavior: 'flip', + /** + * @prop {number} padding=5 + * The popper will flip if it hits the edges of the `boundariesElement` + */ + padding: 5, + /** + * @prop {String|HTMLElement} boundariesElement='viewport' + * The element which will define the boundaries of the popper position, + * the popper will never be placed outside of the defined boundaries + * (except if keepTogether is enabled) + */ + boundariesElement: 'viewport' + }, + + /** + * Modifier used to make the popper flow toward the inner of the reference element. + * By default, when this modifier is disabled, the popper will be placed outside + * the reference element. + * @memberof modifiers + * @inner + */ + inner: { + /** @prop {number} order=700 - Index used to define the order of execution */ + order: 700, + /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */ + enabled: false, + /** @prop {ModifierFn} */ + fn: inner + }, + + /** + * Modifier used to hide the popper when its reference element is outside of the + * popper boundaries. It will set a `x-out-of-boundaries` attribute which can + * be used to hide with a CSS selector the popper when its reference is + * out of boundaries. + * + * Requires the `preventOverflow` modifier before it in order to work. + * @memberof modifiers + * @inner + */ + hide: { + /** @prop {number} order=800 - Index used to define the order of execution */ + order: 800, + /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ + enabled: true, + /** @prop {ModifierFn} */ + fn: hide + }, + + /** + * Computes the style that will be applied to the popper element to gets + * properly positioned. + * + * Note that this modifier will not touch the DOM, it just prepares the styles + * so that `applyStyle` modifier can apply it. This separation is useful + * in case you need to replace `applyStyle` with a custom implementation. + * + * This modifier has `850` as `order` value to maintain backward compatibility + * with previous versions of Popper.js. Expect the modifiers ordering method + * to change in future major versions of the library. + * + * @memberof modifiers + * @inner + */ + computeStyle: { + /** @prop {number} order=850 - Index used to define the order of execution */ + order: 850, + /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ + enabled: true, + /** @prop {ModifierFn} */ + fn: computeStyle, + /** + * @prop {Boolean} gpuAcceleration=true + * If true, it uses the CSS 3d transformation to position the popper. + * Otherwise, it will use the `top` and `left` properties. + */ + gpuAcceleration: true, + /** + * @prop {string} [x='bottom'] + * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin. + * Change this if your popper should grow in a direction different from `bottom` + */ + x: 'bottom', + /** + * @prop {string} [x='left'] + * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin. + * Change this if your popper should grow in a direction different from `right` + */ + y: 'right' + }, + + /** + * Applies the computed styles to the popper element. + * + * All the DOM manipulations are limited to this modifier. This is useful in case + * you want to integrate Popper.js inside a framework or view library and you + * want to delegate all the DOM manipulations to it. + * + * Note that if you disable this modifier, you must make sure the popper element + * has its position set to `absolute` before Popper.js can do its work! + * + * Just disable this modifier and define you own to achieve the desired effect. + * + * @memberof modifiers + * @inner + */ + applyStyle: { + /** @prop {number} order=900 - Index used to define the order of execution */ + order: 900, + /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ + enabled: true, + /** @prop {ModifierFn} */ + fn: applyStyle, + /** @prop {Function} */ + onLoad: applyStyleOnLoad, + /** + * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier + * @prop {Boolean} gpuAcceleration=true + * If true, it uses the CSS 3d transformation to position the popper. + * Otherwise, it will use the `top` and `left` properties. + */ + gpuAcceleration: undefined + } +}; + +/** + * The `dataObject` is an object containing all the informations used by Popper.js + * this object get passed to modifiers and to the `onCreate` and `onUpdate` callbacks. + * @name dataObject + * @property {Object} data.instance The Popper.js instance + * @property {String} data.placement Placement applied to popper + * @property {String} data.originalPlacement Placement originally defined on init + * @property {Boolean} data.flipped True if popper has been flipped by flip modifier + * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper. + * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier + * @property {Object} data.styles Any CSS property defined here will be applied to the popper, it expects the JavaScript nomenclature (eg. `marginBottom`) + * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow, it expects the JavaScript nomenclature (eg. `marginBottom`) + * @property {Object} data.boundaries Offsets of the popper boundaries + * @property {Object} data.offsets The measurements of popper, reference and arrow elements. + * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values + * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values + * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0 + */ + +/** + * Default options provided to Popper.js constructor.
+ * These can be overriden using the `options` argument of Popper.js.
+ * To override an option, simply pass as 3rd argument an object with the same + * structure of this object, example: + * ``` + * new Popper(ref, pop, { + * modifiers: { + * preventOverflow: { enabled: false } + * } + * }) + * ``` + * @type {Object} + * @static + * @memberof Popper + */ +var Defaults = { + /** + * Popper's placement + * @prop {Popper.placements} placement='bottom' + */ + placement: 'bottom', + + /** + * Whether events (resize, scroll) are initially enabled + * @prop {Boolean} eventsEnabled=true + */ + eventsEnabled: true, + + /** + * Set to true if you want to automatically remove the popper when + * you call the `destroy` method. + * @prop {Boolean} removeOnDestroy=false + */ + removeOnDestroy: false, + + /** + * Callback called when the popper is created.
+ * By default, is set to no-op.
+ * Access Popper.js instance with `data.instance`. + * @prop {onCreate} + */ + onCreate: function onCreate() {}, + + /** + * Callback called when the popper is updated, this callback is not called + * on the initialization/creation of the popper, but only on subsequent + * updates.
+ * By default, is set to no-op.
+ * Access Popper.js instance with `data.instance`. + * @prop {onUpdate} + */ + onUpdate: function onUpdate() {}, + + /** + * List of modifiers used to modify the offsets before they are applied to the popper. + * They provide most of the functionalities of Popper.js + * @prop {modifiers} + */ + modifiers: modifiers +}; + +/** + * @callback onCreate + * @param {dataObject} data + */ + +/** + * @callback onUpdate + * @param {dataObject} data + */ + +// Utils +// Methods +var Popper = function () { + /** + * Create a new Popper.js instance + * @class Popper + * @param {HTMLElement|referenceObject} reference - The reference element used to position the popper + * @param {HTMLElement} popper - The HTML element used as popper. + * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults) + * @return {Object} instance - The generated Popper.js instance + */ + function Popper(reference, popper) { + var _this = this; + + var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; + classCallCheck(this, Popper); + + this.scheduleUpdate = function () { + return requestAnimationFrame(_this.update); + }; + + // make update() debounced, so that it only runs at most once-per-tick + this.update = debounce(this.update.bind(this)); + + // with {} we create a new object with the options inside it + this.options = _extends$1({}, Popper.Defaults, options); + + // init state + this.state = { + isDestroyed: false, + isCreated: false, + scrollParents: [] + }; + + // get reference and popper elements (allow jQuery wrappers) + this.reference = reference && reference.jquery ? reference[0] : reference; + this.popper = popper && popper.jquery ? popper[0] : popper; + + // Deep merge modifiers options + this.options.modifiers = {}; + Object.keys(_extends$1({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) { + _this.options.modifiers[name] = _extends$1({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {}); + }); + + // Refactoring modifiers' list (Object => Array) + this.modifiers = Object.keys(this.options.modifiers).map(function (name) { + return _extends$1({ + name: name + }, _this.options.modifiers[name]); + }) + // sort the modifiers by order + .sort(function (a, b) { + return a.order - b.order; + }); + + // modifiers have the ability to execute arbitrary code when Popper.js get inited + // such code is executed in the same order of its modifier + // they could add new properties to their options configuration + // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`! + this.modifiers.forEach(function (modifierOptions) { + if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) { + modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state); + } + }); + + // fire the first update to position the popper in the right place + this.update(); + + var eventsEnabled = this.options.eventsEnabled; + if (eventsEnabled) { + // setup event listeners, they will take care of update the position in specific situations + this.enableEventListeners(); + } + + this.state.eventsEnabled = eventsEnabled; + } + + // We can't use class properties because they don't get listed in the + // class prototype and break stuff like Sinon stubs + + + createClass(Popper, [{ + key: 'update', + value: function update$$1() { + return update.call(this); + } + }, { + key: 'destroy', + value: function destroy$$1() { + return destroy.call(this); + } + }, { + key: 'enableEventListeners', + value: function enableEventListeners$$1() { + return enableEventListeners.call(this); + } + }, { + key: 'disableEventListeners', + value: function disableEventListeners$$1() { + return disableEventListeners.call(this); + } + + /** + * Schedule an update, it will run on the next UI update available + * @method scheduleUpdate + * @memberof Popper + */ + + + /** + * Collection of utilities useful when writing custom modifiers. + * Starting from version 1.7, this method is available only if you + * include `popper-utils.js` before `popper.js`. + * + * **DEPRECATION**: This way to access PopperUtils is deprecated + * and will be removed in v2! Use the PopperUtils module directly instead. + * Due to the high instability of the methods contained in Utils, we can't + * guarantee them to follow semver. Use them at your own risk! + * @static + * @private + * @type {Object} + * @deprecated since version 1.8 + * @member Utils + * @memberof Popper + */ + + }]); + return Popper; +}(); + +/** + * The `referenceObject` is an object that provides an interface compatible with Popper.js + * and lets you use it as replacement of a real DOM node.
+ * You can use this method to position a popper relatively to a set of coordinates + * in case you don't have a DOM node to use as reference. + * + * ``` + * new Popper(referenceObject, popperNode); + * ``` + * + * NB: This feature isn't supported in Internet Explorer 10 + * @name referenceObject + * @property {Function} data.getBoundingClientRect + * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method. + * @property {number} data.clientWidth + * An ES6 getter that will return the width of the virtual reference element. + * @property {number} data.clientHeight + * An ES6 getter that will return the height of the virtual reference element. + */ + + +Popper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils; +Popper.placements = placements; +Popper.Defaults = Defaults; + +/** + * -------------------------------------------------------------------------- + * Bootstrap (v4.0.0): dropdown.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * -------------------------------------------------------------------------- + */ + +var Dropdown = function ($$$1) { + /** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + var NAME = 'dropdown'; + var VERSION = '4.0.0'; + var DATA_KEY = 'bs.dropdown'; + var EVENT_KEY = "." + DATA_KEY; + var DATA_API_KEY = '.data-api'; + var JQUERY_NO_CONFLICT = $$$1.fn[NAME]; + var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key + + var SPACE_KEYCODE = 32; // KeyboardEvent.which value for space key + + var TAB_KEYCODE = 9; // KeyboardEvent.which value for tab key + + var ARROW_UP_KEYCODE = 38; // KeyboardEvent.which value for up arrow key + + var ARROW_DOWN_KEYCODE = 40; // KeyboardEvent.which value for down arrow key + + var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse) + + var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEYCODE + "|" + ARROW_DOWN_KEYCODE + "|" + ESCAPE_KEYCODE); + var Event = { + HIDE: "hide" + EVENT_KEY, + HIDDEN: "hidden" + EVENT_KEY, + SHOW: "show" + EVENT_KEY, + SHOWN: "shown" + EVENT_KEY, + CLICK: "click" + EVENT_KEY, + CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY, + KEYDOWN_DATA_API: "keydown" + EVENT_KEY + DATA_API_KEY, + KEYUP_DATA_API: "keyup" + EVENT_KEY + DATA_API_KEY + }; + var ClassName = { + DISABLED: 'disabled', + SHOW: 'show', + DROPUP: 'dropup', + DROPRIGHT: 'dropright', + DROPLEFT: 'dropleft', + MENURIGHT: 'dropdown-menu-right', + MENULEFT: 'dropdown-menu-left', + POSITION_STATIC: 'position-static' + }; + var Selector = { + DATA_TOGGLE: '[data-toggle="dropdown"]', + FORM_CHILD: '.dropdown form', + MENU: '.dropdown-menu', + NAVBAR_NAV: '.navbar-nav', + VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled)' + }; + var AttachmentMap = { + TOP: 'top-start', + TOPEND: 'top-end', + BOTTOM: 'bottom-start', + BOTTOMEND: 'bottom-end', + RIGHT: 'right-start', + RIGHTEND: 'right-end', + LEFT: 'left-start', + LEFTEND: 'left-end' + }; + var Default = { + offset: 0, + flip: true, + boundary: 'scrollParent' + }; + var DefaultType = { + offset: '(number|string|function)', + flip: 'boolean', + boundary: '(string|element)' + /** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + + }; + + var Dropdown = + /*#__PURE__*/ + function () { + function Dropdown(element, config) { + this._element = element; + this._popper = null; + this._config = this._getConfig(config); + this._menu = this._getMenuElement(); + this._inNavbar = this._detectNavbar(); + + this._addEventListeners(); + } // Getters + + + var _proto = Dropdown.prototype; + + // Public + _proto.toggle = function toggle() { + if (this._element.disabled || $$$1(this._element).hasClass(ClassName.DISABLED)) { + return; + } + + var parent = Dropdown._getParentFromElement(this._element); + + var isActive = $$$1(this._menu).hasClass(ClassName.SHOW); + + Dropdown._clearMenus(); + + if (isActive) { + return; + } + + var relatedTarget = { + relatedTarget: this._element + }; + var showEvent = $$$1.Event(Event.SHOW, relatedTarget); + $$$1(parent).trigger(showEvent); + + if (showEvent.isDefaultPrevented()) { + return; + } // Disable totally Popper.js for Dropdown in Navbar + + + if (!this._inNavbar) { + /** + * Check for Popper dependency + * Popper - https://popper.js.org + */ + if (typeof Popper === 'undefined') { + throw new TypeError('Bootstrap dropdown require Popper.js (https://popper.js.org)'); + } + + var element = this._element; // For dropup with alignment we use the parent as popper container + + if ($$$1(parent).hasClass(ClassName.DROPUP)) { + if ($$$1(this._menu).hasClass(ClassName.MENULEFT) || $$$1(this._menu).hasClass(ClassName.MENURIGHT)) { + element = parent; + } + } // If boundary is not `scrollParent`, then set position to `static` + // to allow the menu to "escape" the scroll parent's boundaries + // https://github.com/twbs/bootstrap/issues/24251 + + + if (this._config.boundary !== 'scrollParent') { + $$$1(parent).addClass(ClassName.POSITION_STATIC); + } + + this._popper = new Popper(element, this._menu, this._getPopperConfig()); + } // If this is a touch-enabled device we add extra + // empty mouseover listeners to the body's immediate children; + // only needed because of broken event delegation on iOS + // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html + + + if ('ontouchstart' in document.documentElement && $$$1(parent).closest(Selector.NAVBAR_NAV).length === 0) { + $$$1('body').children().on('mouseover', null, $$$1.noop); + } + + this._element.focus(); + + this._element.setAttribute('aria-expanded', true); + + $$$1(this._menu).toggleClass(ClassName.SHOW); + $$$1(parent).toggleClass(ClassName.SHOW).trigger($$$1.Event(Event.SHOWN, relatedTarget)); + }; + + _proto.dispose = function dispose() { + $$$1.removeData(this._element, DATA_KEY); + $$$1(this._element).off(EVENT_KEY); + this._element = null; + this._menu = null; + + if (this._popper !== null) { + this._popper.destroy(); + + this._popper = null; + } + }; + + _proto.update = function update() { + this._inNavbar = this._detectNavbar(); + + if (this._popper !== null) { + this._popper.scheduleUpdate(); + } + }; // Private + + + _proto._addEventListeners = function _addEventListeners() { + var _this = this; + + $$$1(this._element).on(Event.CLICK, function (event) { + event.preventDefault(); + event.stopPropagation(); + + _this.toggle(); + }); + }; + + _proto._getConfig = function _getConfig(config) { + config = _extends({}, this.constructor.Default, $$$1(this._element).data(), config); + Util.typeCheckConfig(NAME, config, this.constructor.DefaultType); + return config; + }; + + _proto._getMenuElement = function _getMenuElement() { + if (!this._menu) { + var parent = Dropdown._getParentFromElement(this._element); + + this._menu = $$$1(parent).find(Selector.MENU)[0]; + } + + return this._menu; + }; + + _proto._getPlacement = function _getPlacement() { + var $parentDropdown = $$$1(this._element).parent(); + var placement = AttachmentMap.BOTTOM; // Handle dropup + + if ($parentDropdown.hasClass(ClassName.DROPUP)) { + placement = AttachmentMap.TOP; + + if ($$$1(this._menu).hasClass(ClassName.MENURIGHT)) { + placement = AttachmentMap.TOPEND; + } + } else if ($parentDropdown.hasClass(ClassName.DROPRIGHT)) { + placement = AttachmentMap.RIGHT; + } else if ($parentDropdown.hasClass(ClassName.DROPLEFT)) { + placement = AttachmentMap.LEFT; + } else if ($$$1(this._menu).hasClass(ClassName.MENURIGHT)) { + placement = AttachmentMap.BOTTOMEND; + } + + return placement; + }; + + _proto._detectNavbar = function _detectNavbar() { + return $$$1(this._element).closest('.navbar').length > 0; + }; + + _proto._getPopperConfig = function _getPopperConfig() { + var _this2 = this; + + var offsetConf = {}; + + if (typeof this._config.offset === 'function') { + offsetConf.fn = function (data) { + data.offsets = _extends({}, data.offsets, _this2._config.offset(data.offsets) || {}); + return data; + }; + } else { + offsetConf.offset = this._config.offset; + } + + var popperConfig = { + placement: this._getPlacement(), + modifiers: { + offset: offsetConf, + flip: { + enabled: this._config.flip + }, + preventOverflow: { + boundariesElement: this._config.boundary + } + } + }; + return popperConfig; + }; // Static + + + Dropdown._jQueryInterface = function _jQueryInterface(config) { + return this.each(function () { + var data = $$$1(this).data(DATA_KEY); + + var _config = typeof config === 'object' ? config : null; + + if (!data) { + data = new Dropdown(this, _config); + $$$1(this).data(DATA_KEY, data); + } + + if (typeof config === 'string') { + if (typeof data[config] === 'undefined') { + throw new TypeError("No method named \"" + config + "\""); + } + + data[config](); + } + }); + }; + + Dropdown._clearMenus = function _clearMenus(event) { + if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH || event.type === 'keyup' && event.which !== TAB_KEYCODE)) { + return; + } + + var toggles = $$$1.makeArray($$$1(Selector.DATA_TOGGLE)); + + for (var i = 0; i < toggles.length; i++) { + var parent = Dropdown._getParentFromElement(toggles[i]); + + var context = $$$1(toggles[i]).data(DATA_KEY); + var relatedTarget = { + relatedTarget: toggles[i] + }; + + if (!context) { + continue; + } + + var dropdownMenu = context._menu; + + if (!$$$1(parent).hasClass(ClassName.SHOW)) { + continue; + } + + if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) && $$$1.contains(parent, event.target)) { + continue; + } + + var hideEvent = $$$1.Event(Event.HIDE, relatedTarget); + $$$1(parent).trigger(hideEvent); + + if (hideEvent.isDefaultPrevented()) { + continue; + } // If this is a touch-enabled device we remove the extra + // empty mouseover listeners we added for iOS support + + + if ('ontouchstart' in document.documentElement) { + $$$1('body').children().off('mouseover', null, $$$1.noop); + } + + toggles[i].setAttribute('aria-expanded', 'false'); + $$$1(dropdownMenu).removeClass(ClassName.SHOW); + $$$1(parent).removeClass(ClassName.SHOW).trigger($$$1.Event(Event.HIDDEN, relatedTarget)); + } + }; + + Dropdown._getParentFromElement = function _getParentFromElement(element) { + var parent; + var selector = Util.getSelectorFromElement(element); + + if (selector) { + parent = $$$1(selector)[0]; + } + + return parent || element.parentNode; + }; // eslint-disable-next-line complexity + + + Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) { + // If not input/textarea: + // - And not a key in REGEXP_KEYDOWN => not a dropdown command + // If input/textarea: + // - If space key => not a dropdown command + // - If key is other than escape + // - If key is not up or down => not a dropdown command + // - If trigger inside the menu => not a dropdown command + if (/input|textarea/i.test(event.target.tagName) ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE && (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE || $$$1(event.target).closest(Selector.MENU).length) : !REGEXP_KEYDOWN.test(event.which)) { + return; + } + + event.preventDefault(); + event.stopPropagation(); + + if (this.disabled || $$$1(this).hasClass(ClassName.DISABLED)) { + return; + } + + var parent = Dropdown._getParentFromElement(this); + + var isActive = $$$1(parent).hasClass(ClassName.SHOW); + + if (!isActive && (event.which !== ESCAPE_KEYCODE || event.which !== SPACE_KEYCODE) || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) { + if (event.which === ESCAPE_KEYCODE) { + var toggle = $$$1(parent).find(Selector.DATA_TOGGLE)[0]; + $$$1(toggle).trigger('focus'); + } + + $$$1(this).trigger('click'); + return; + } + + var items = $$$1(parent).find(Selector.VISIBLE_ITEMS).get(); + + if (items.length === 0) { + return; + } + + var index = items.indexOf(event.target); + + if (event.which === ARROW_UP_KEYCODE && index > 0) { + // Up + index--; + } + + if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { + // Down + index++; + } + + if (index < 0) { + index = 0; + } + + items[index].focus(); + }; + + _createClass(Dropdown, null, [{ + key: "VERSION", + get: function get() { + return VERSION; + } + }, { + key: "Default", + get: function get() { + return Default; + } + }, { + key: "DefaultType", + get: function get() { + return DefaultType; + } + }]); + return Dropdown; + }(); + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + + $$$1(document).on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler).on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler).on(Event.CLICK_DATA_API + " " + Event.KEYUP_DATA_API, Dropdown._clearMenus).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) { + event.preventDefault(); + event.stopPropagation(); + + Dropdown._jQueryInterface.call($$$1(this), 'toggle'); + }).on(Event.CLICK_DATA_API, Selector.FORM_CHILD, function (e) { + e.stopPropagation(); + }); + /** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + */ + + $$$1.fn[NAME] = Dropdown._jQueryInterface; + $$$1.fn[NAME].Constructor = Dropdown; + + $$$1.fn[NAME].noConflict = function () { + $$$1.fn[NAME] = JQUERY_NO_CONFLICT; + return Dropdown._jQueryInterface; + }; + + return Dropdown; +}($, Popper); + +/** + * -------------------------------------------------------------------------- + * Bootstrap (v4.0.0): modal.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * -------------------------------------------------------------------------- + */ + +var Modal = function ($$$1) { + /** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + var NAME = 'modal'; + var VERSION = '4.0.0'; + var DATA_KEY = 'bs.modal'; + var EVENT_KEY = "." + DATA_KEY; + var DATA_API_KEY = '.data-api'; + var JQUERY_NO_CONFLICT = $$$1.fn[NAME]; + var TRANSITION_DURATION = 300; + var BACKDROP_TRANSITION_DURATION = 150; + var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key + + var Default = { + backdrop: true, + keyboard: true, + focus: true, + show: true + }; + var DefaultType = { + backdrop: '(boolean|string)', + keyboard: 'boolean', + focus: 'boolean', + show: 'boolean' + }; + var Event = { + HIDE: "hide" + EVENT_KEY, + HIDDEN: "hidden" + EVENT_KEY, + SHOW: "show" + EVENT_KEY, + SHOWN: "shown" + EVENT_KEY, + FOCUSIN: "focusin" + EVENT_KEY, + RESIZE: "resize" + EVENT_KEY, + CLICK_DISMISS: "click.dismiss" + EVENT_KEY, + KEYDOWN_DISMISS: "keydown.dismiss" + EVENT_KEY, + MOUSEUP_DISMISS: "mouseup.dismiss" + EVENT_KEY, + MOUSEDOWN_DISMISS: "mousedown.dismiss" + EVENT_KEY, + CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY + }; + var ClassName = { + SCROLLBAR_MEASURER: 'modal-scrollbar-measure', + BACKDROP: 'modal-backdrop', + OPEN: 'modal-open', + FADE: 'fade', + SHOW: 'show' + }; + var Selector = { + DIALOG: '.modal-dialog', + DATA_TOGGLE: '[data-toggle="modal"]', + DATA_DISMISS: '[data-dismiss="modal"]', + FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top', + STICKY_CONTENT: '.sticky-top', + NAVBAR_TOGGLER: '.navbar-toggler' + /** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + + }; + + var Modal = + /*#__PURE__*/ + function () { + function Modal(element, config) { + this._config = this._getConfig(config); + this._element = element; + this._dialog = $$$1(element).find(Selector.DIALOG)[0]; + this._backdrop = null; + this._isShown = false; + this._isBodyOverflowing = false; + this._ignoreBackdropClick = false; + this._originalBodyPadding = 0; + this._scrollbarWidth = 0; + } // Getters + + + var _proto = Modal.prototype; + + // Public + _proto.toggle = function toggle(relatedTarget) { + return this._isShown ? this.hide() : this.show(relatedTarget); + }; + + _proto.show = function show(relatedTarget) { + var _this = this; + + if (this._isTransitioning || this._isShown) { + return; + } + + if (Util.supportsTransitionEnd() && $$$1(this._element).hasClass(ClassName.FADE)) { + this._isTransitioning = true; + } + + var showEvent = $$$1.Event(Event.SHOW, { + relatedTarget: relatedTarget + }); + $$$1(this._element).trigger(showEvent); + + if (this._isShown || showEvent.isDefaultPrevented()) { + return; + } + + this._isShown = true; + + this._checkScrollbar(); + + this._setScrollbar(); + + this._adjustDialog(); + + $$$1(document.body).addClass(ClassName.OPEN); + + this._setEscapeEvent(); + + this._setResizeEvent(); + + $$$1(this._element).on(Event.CLICK_DISMISS, Selector.DATA_DISMISS, function (event) { + return _this.hide(event); + }); + $$$1(this._dialog).on(Event.MOUSEDOWN_DISMISS, function () { + $$$1(_this._element).one(Event.MOUSEUP_DISMISS, function (event) { + if ($$$1(event.target).is(_this._element)) { + _this._ignoreBackdropClick = true; + } + }); + }); + + this._showBackdrop(function () { + return _this._showElement(relatedTarget); + }); + }; + + _proto.hide = function hide(event) { + var _this2 = this; + + if (event) { + event.preventDefault(); + } + + if (this._isTransitioning || !this._isShown) { + return; + } + + var hideEvent = $$$1.Event(Event.HIDE); + $$$1(this._element).trigger(hideEvent); + + if (!this._isShown || hideEvent.isDefaultPrevented()) { + return; + } + + this._isShown = false; + var transition = Util.supportsTransitionEnd() && $$$1(this._element).hasClass(ClassName.FADE); + + if (transition) { + this._isTransitioning = true; + } + + this._setEscapeEvent(); + + this._setResizeEvent(); + + $$$1(document).off(Event.FOCUSIN); + $$$1(this._element).removeClass(ClassName.SHOW); + $$$1(this._element).off(Event.CLICK_DISMISS); + $$$1(this._dialog).off(Event.MOUSEDOWN_DISMISS); + + if (transition) { + $$$1(this._element).one(Util.TRANSITION_END, function (event) { + return _this2._hideModal(event); + }).emulateTransitionEnd(TRANSITION_DURATION); + } else { + this._hideModal(); + } + }; + + _proto.dispose = function dispose() { + $$$1.removeData(this._element, DATA_KEY); + $$$1(window, document, this._element, this._backdrop).off(EVENT_KEY); + this._config = null; + this._element = null; + this._dialog = null; + this._backdrop = null; + this._isShown = null; + this._isBodyOverflowing = null; + this._ignoreBackdropClick = null; + this._scrollbarWidth = null; + }; + + _proto.handleUpdate = function handleUpdate() { + this._adjustDialog(); + }; // Private + + + _proto._getConfig = function _getConfig(config) { + config = _extends({}, Default, config); + Util.typeCheckConfig(NAME, config, DefaultType); + return config; + }; + + _proto._showElement = function _showElement(relatedTarget) { + var _this3 = this; + + var transition = Util.supportsTransitionEnd() && $$$1(this._element).hasClass(ClassName.FADE); + + if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) { + // Don't move modal's DOM position + document.body.appendChild(this._element); + } + + this._element.style.display = 'block'; + + this._element.removeAttribute('aria-hidden'); + + this._element.scrollTop = 0; + + if (transition) { + Util.reflow(this._element); + } + + $$$1(this._element).addClass(ClassName.SHOW); + + if (this._config.focus) { + this._enforceFocus(); + } + + var shownEvent = $$$1.Event(Event.SHOWN, { + relatedTarget: relatedTarget + }); + + var transitionComplete = function transitionComplete() { + if (_this3._config.focus) { + _this3._element.focus(); + } + + _this3._isTransitioning = false; + $$$1(_this3._element).trigger(shownEvent); + }; + + if (transition) { + $$$1(this._dialog).one(Util.TRANSITION_END, transitionComplete).emulateTransitionEnd(TRANSITION_DURATION); + } else { + transitionComplete(); + } + }; + + _proto._enforceFocus = function _enforceFocus() { + var _this4 = this; + + $$$1(document).off(Event.FOCUSIN) // Guard against infinite focus loop + .on(Event.FOCUSIN, function (event) { + if (document !== event.target && _this4._element !== event.target && $$$1(_this4._element).has(event.target).length === 0) { + _this4._element.focus(); + } + }); + }; + + _proto._setEscapeEvent = function _setEscapeEvent() { + var _this5 = this; + + if (this._isShown && this._config.keyboard) { + $$$1(this._element).on(Event.KEYDOWN_DISMISS, function (event) { + if (event.which === ESCAPE_KEYCODE) { + event.preventDefault(); + + _this5.hide(); + } + }); + } else if (!this._isShown) { + $$$1(this._element).off(Event.KEYDOWN_DISMISS); + } + }; + + _proto._setResizeEvent = function _setResizeEvent() { + var _this6 = this; + + if (this._isShown) { + $$$1(window).on(Event.RESIZE, function (event) { + return _this6.handleUpdate(event); + }); + } else { + $$$1(window).off(Event.RESIZE); + } + }; + + _proto._hideModal = function _hideModal() { + var _this7 = this; + + this._element.style.display = 'none'; + + this._element.setAttribute('aria-hidden', true); + + this._isTransitioning = false; + + this._showBackdrop(function () { + $$$1(document.body).removeClass(ClassName.OPEN); + + _this7._resetAdjustments(); + + _this7._resetScrollbar(); + + $$$1(_this7._element).trigger(Event.HIDDEN); + }); + }; + + _proto._removeBackdrop = function _removeBackdrop() { + if (this._backdrop) { + $$$1(this._backdrop).remove(); + this._backdrop = null; + } + }; + + _proto._showBackdrop = function _showBackdrop(callback) { + var _this8 = this; + + var animate = $$$1(this._element).hasClass(ClassName.FADE) ? ClassName.FADE : ''; + + if (this._isShown && this._config.backdrop) { + var doAnimate = Util.supportsTransitionEnd() && animate; + this._backdrop = document.createElement('div'); + this._backdrop.className = ClassName.BACKDROP; + + if (animate) { + $$$1(this._backdrop).addClass(animate); + } + + $$$1(this._backdrop).appendTo(document.body); + $$$1(this._element).on(Event.CLICK_DISMISS, function (event) { + if (_this8._ignoreBackdropClick) { + _this8._ignoreBackdropClick = false; + return; + } + + if (event.target !== event.currentTarget) { + return; + } + + if (_this8._config.backdrop === 'static') { + _this8._element.focus(); + } else { + _this8.hide(); + } + }); + + if (doAnimate) { + Util.reflow(this._backdrop); + } + + $$$1(this._backdrop).addClass(ClassName.SHOW); + + if (!callback) { + return; + } + + if (!doAnimate) { + callback(); + return; + } + + $$$1(this._backdrop).one(Util.TRANSITION_END, callback).emulateTransitionEnd(BACKDROP_TRANSITION_DURATION); + } else if (!this._isShown && this._backdrop) { + $$$1(this._backdrop).removeClass(ClassName.SHOW); + + var callbackRemove = function callbackRemove() { + _this8._removeBackdrop(); + + if (callback) { + callback(); + } + }; + + if (Util.supportsTransitionEnd() && $$$1(this._element).hasClass(ClassName.FADE)) { + $$$1(this._backdrop).one(Util.TRANSITION_END, callbackRemove).emulateTransitionEnd(BACKDROP_TRANSITION_DURATION); + } else { + callbackRemove(); + } + } else if (callback) { + callback(); + } + }; // ---------------------------------------------------------------------- + // the following methods are used to handle overflowing modals + // todo (fat): these should probably be refactored out of modal.js + // ---------------------------------------------------------------------- + + + _proto._adjustDialog = function _adjustDialog() { + var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight; + + if (!this._isBodyOverflowing && isModalOverflowing) { + this._element.style.paddingLeft = this._scrollbarWidth + "px"; + } + + if (this._isBodyOverflowing && !isModalOverflowing) { + this._element.style.paddingRight = this._scrollbarWidth + "px"; + } + }; + + _proto._resetAdjustments = function _resetAdjustments() { + this._element.style.paddingLeft = ''; + this._element.style.paddingRight = ''; + }; + + _proto._checkScrollbar = function _checkScrollbar() { + var rect = document.body.getBoundingClientRect(); + this._isBodyOverflowing = rect.left + rect.right < window.innerWidth; + this._scrollbarWidth = this._getScrollbarWidth(); + }; + + _proto._setScrollbar = function _setScrollbar() { + var _this9 = this; + + if (this._isBodyOverflowing) { + // Note: DOMNode.style.paddingRight returns the actual value or '' if not set + // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set + // Adjust fixed content padding + $$$1(Selector.FIXED_CONTENT).each(function (index, element) { + var actualPadding = $$$1(element)[0].style.paddingRight; + var calculatedPadding = $$$1(element).css('padding-right'); + $$$1(element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + _this9._scrollbarWidth + "px"); + }); // Adjust sticky content margin + + $$$1(Selector.STICKY_CONTENT).each(function (index, element) { + var actualMargin = $$$1(element)[0].style.marginRight; + var calculatedMargin = $$$1(element).css('margin-right'); + $$$1(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) - _this9._scrollbarWidth + "px"); + }); // Adjust navbar-toggler margin + + $$$1(Selector.NAVBAR_TOGGLER).each(function (index, element) { + var actualMargin = $$$1(element)[0].style.marginRight; + var calculatedMargin = $$$1(element).css('margin-right'); + $$$1(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) + _this9._scrollbarWidth + "px"); + }); // Adjust body padding + + var actualPadding = document.body.style.paddingRight; + var calculatedPadding = $$$1('body').css('padding-right'); + $$$1('body').data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + this._scrollbarWidth + "px"); + } + }; + + _proto._resetScrollbar = function _resetScrollbar() { + // Restore fixed content padding + $$$1(Selector.FIXED_CONTENT).each(function (index, element) { + var padding = $$$1(element).data('padding-right'); + + if (typeof padding !== 'undefined') { + $$$1(element).css('padding-right', padding).removeData('padding-right'); + } + }); // Restore sticky content and navbar-toggler margin + + $$$1(Selector.STICKY_CONTENT + ", " + Selector.NAVBAR_TOGGLER).each(function (index, element) { + var margin = $$$1(element).data('margin-right'); + + if (typeof margin !== 'undefined') { + $$$1(element).css('margin-right', margin).removeData('margin-right'); + } + }); // Restore body padding + + var padding = $$$1('body').data('padding-right'); + + if (typeof padding !== 'undefined') { + $$$1('body').css('padding-right', padding).removeData('padding-right'); + } + }; + + _proto._getScrollbarWidth = function _getScrollbarWidth() { + // thx d.walsh + var scrollDiv = document.createElement('div'); + scrollDiv.className = ClassName.SCROLLBAR_MEASURER; + document.body.appendChild(scrollDiv); + var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth; + document.body.removeChild(scrollDiv); + return scrollbarWidth; + }; // Static + + + Modal._jQueryInterface = function _jQueryInterface(config, relatedTarget) { + return this.each(function () { + var data = $$$1(this).data(DATA_KEY); + + var _config = _extends({}, Modal.Default, $$$1(this).data(), typeof config === 'object' && config); + + if (!data) { + data = new Modal(this, _config); + $$$1(this).data(DATA_KEY, data); + } + + if (typeof config === 'string') { + if (typeof data[config] === 'undefined') { + throw new TypeError("No method named \"" + config + "\""); + } + + data[config](relatedTarget); + } else if (_config.show) { + data.show(relatedTarget); + } + }); + }; + + _createClass(Modal, null, [{ + key: "VERSION", + get: function get() { + return VERSION; + } + }, { + key: "Default", + get: function get() { + return Default; + } + }]); + return Modal; + }(); + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + + $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) { + var _this10 = this; + + var target; + var selector = Util.getSelectorFromElement(this); + + if (selector) { + target = $$$1(selector)[0]; + } + + var config = $$$1(target).data(DATA_KEY) ? 'toggle' : _extends({}, $$$1(target).data(), $$$1(this).data()); + + if (this.tagName === 'A' || this.tagName === 'AREA') { + event.preventDefault(); + } + + var $target = $$$1(target).one(Event.SHOW, function (showEvent) { + if (showEvent.isDefaultPrevented()) { + // Only register focus restorer if modal will actually get shown + return; + } + + $target.one(Event.HIDDEN, function () { + if ($$$1(_this10).is(':visible')) { + _this10.focus(); + } + }); + }); + + Modal._jQueryInterface.call($$$1(target), config, this); + }); + /** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + */ + + $$$1.fn[NAME] = Modal._jQueryInterface; + $$$1.fn[NAME].Constructor = Modal; + + $$$1.fn[NAME].noConflict = function () { + $$$1.fn[NAME] = JQUERY_NO_CONFLICT; + return Modal._jQueryInterface; + }; + + return Modal; +}($); + +/** + * -------------------------------------------------------------------------- + * Bootstrap (v4.0.0): tooltip.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * -------------------------------------------------------------------------- + */ + +var Tooltip = function ($$$1) { + /** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + var NAME = 'tooltip'; + var VERSION = '4.0.0'; + var DATA_KEY = 'bs.tooltip'; + var EVENT_KEY = "." + DATA_KEY; + var JQUERY_NO_CONFLICT = $$$1.fn[NAME]; + var TRANSITION_DURATION = 150; + var CLASS_PREFIX = 'bs-tooltip'; + var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g'); + var DefaultType = { + animation: 'boolean', + template: 'string', + title: '(string|element|function)', + trigger: 'string', + delay: '(number|object)', + html: 'boolean', + selector: '(string|boolean)', + placement: '(string|function)', + offset: '(number|string)', + container: '(string|element|boolean)', + fallbackPlacement: '(string|array)', + boundary: '(string|element)' + }; + var AttachmentMap = { + AUTO: 'auto', + TOP: 'top', + RIGHT: 'right', + BOTTOM: 'bottom', + LEFT: 'left' + }; + var Default = { + animation: true, + template: '', + trigger: 'hover focus', + title: '', + delay: 0, + html: false, + selector: false, + placement: 'top', + offset: 0, + container: false, + fallbackPlacement: 'flip', + boundary: 'scrollParent' + }; + var HoverState = { + SHOW: 'show', + OUT: 'out' + }; + var Event = { + HIDE: "hide" + EVENT_KEY, + HIDDEN: "hidden" + EVENT_KEY, + SHOW: "show" + EVENT_KEY, + SHOWN: "shown" + EVENT_KEY, + INSERTED: "inserted" + EVENT_KEY, + CLICK: "click" + EVENT_KEY, + FOCUSIN: "focusin" + EVENT_KEY, + FOCUSOUT: "focusout" + EVENT_KEY, + MOUSEENTER: "mouseenter" + EVENT_KEY, + MOUSELEAVE: "mouseleave" + EVENT_KEY + }; + var ClassName = { + FADE: 'fade', + SHOW: 'show' + }; + var Selector = { + TOOLTIP: '.tooltip', + TOOLTIP_INNER: '.tooltip-inner', + ARROW: '.arrow' + }; + var Trigger = { + HOVER: 'hover', + FOCUS: 'focus', + CLICK: 'click', + MANUAL: 'manual' + /** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + + }; + + var Tooltip = + /*#__PURE__*/ + function () { + function Tooltip(element, config) { + /** + * Check for Popper dependency + * Popper - https://popper.js.org + */ + if (typeof Popper === 'undefined') { + throw new TypeError('Bootstrap tooltips require Popper.js (https://popper.js.org)'); + } // private + + + this._isEnabled = true; + this._timeout = 0; + this._hoverState = ''; + this._activeTrigger = {}; + this._popper = null; // Protected + + this.element = element; + this.config = this._getConfig(config); + this.tip = null; + + this._setListeners(); + } // Getters + + + var _proto = Tooltip.prototype; + + // Public + _proto.enable = function enable() { + this._isEnabled = true; + }; + + _proto.disable = function disable() { + this._isEnabled = false; + }; + + _proto.toggleEnabled = function toggleEnabled() { + this._isEnabled = !this._isEnabled; + }; + + _proto.toggle = function toggle(event) { + if (!this._isEnabled) { + return; + } + + if (event) { + var dataKey = this.constructor.DATA_KEY; + var context = $$$1(event.currentTarget).data(dataKey); + + if (!context) { + context = new this.constructor(event.currentTarget, this._getDelegateConfig()); + $$$1(event.currentTarget).data(dataKey, context); + } + + context._activeTrigger.click = !context._activeTrigger.click; + + if (context._isWithActiveTrigger()) { + context._enter(null, context); + } else { + context._leave(null, context); + } + } else { + if ($$$1(this.getTipElement()).hasClass(ClassName.SHOW)) { + this._leave(null, this); + + return; + } + + this._enter(null, this); + } + }; + + _proto.dispose = function dispose() { + clearTimeout(this._timeout); + $$$1.removeData(this.element, this.constructor.DATA_KEY); + $$$1(this.element).off(this.constructor.EVENT_KEY); + $$$1(this.element).closest('.modal').off('hide.bs.modal'); + + if (this.tip) { + $$$1(this.tip).remove(); + } + + this._isEnabled = null; + this._timeout = null; + this._hoverState = null; + this._activeTrigger = null; + + if (this._popper !== null) { + this._popper.destroy(); + } + + this._popper = null; + this.element = null; + this.config = null; + this.tip = null; + }; + + _proto.show = function show() { + var _this = this; + + if ($$$1(this.element).css('display') === 'none') { + throw new Error('Please use show on visible elements'); + } + + var showEvent = $$$1.Event(this.constructor.Event.SHOW); + + if (this.isWithContent() && this._isEnabled) { + $$$1(this.element).trigger(showEvent); + var isInTheDom = $$$1.contains(this.element.ownerDocument.documentElement, this.element); + + if (showEvent.isDefaultPrevented() || !isInTheDom) { + return; + } + + var tip = this.getTipElement(); + var tipId = Util.getUID(this.constructor.NAME); + tip.setAttribute('id', tipId); + this.element.setAttribute('aria-describedby', tipId); + this.setContent(); + + if (this.config.animation) { + $$$1(tip).addClass(ClassName.FADE); + } + + var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement; + + var attachment = this._getAttachment(placement); + + this.addAttachmentClass(attachment); + var container = this.config.container === false ? document.body : $$$1(this.config.container); + $$$1(tip).data(this.constructor.DATA_KEY, this); + + if (!$$$1.contains(this.element.ownerDocument.documentElement, this.tip)) { + $$$1(tip).appendTo(container); + } + + $$$1(this.element).trigger(this.constructor.Event.INSERTED); + this._popper = new Popper(this.element, tip, { + placement: attachment, + modifiers: { + offset: { + offset: this.config.offset + }, + flip: { + behavior: this.config.fallbackPlacement + }, + arrow: { + element: Selector.ARROW + }, + preventOverflow: { + boundariesElement: this.config.boundary + } + }, + onCreate: function onCreate(data) { + if (data.originalPlacement !== data.placement) { + _this._handlePopperPlacementChange(data); + } + }, + onUpdate: function onUpdate(data) { + _this._handlePopperPlacementChange(data); + } + }); + $$$1(tip).addClass(ClassName.SHOW); // If this is a touch-enabled device we add extra + // empty mouseover listeners to the body's immediate children; + // only needed because of broken event delegation on iOS + // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html + + if ('ontouchstart' in document.documentElement) { + $$$1('body').children().on('mouseover', null, $$$1.noop); + } + + var complete = function complete() { + if (_this.config.animation) { + _this._fixTransition(); + } + + var prevHoverState = _this._hoverState; + _this._hoverState = null; + $$$1(_this.element).trigger(_this.constructor.Event.SHOWN); + + if (prevHoverState === HoverState.OUT) { + _this._leave(null, _this); + } + }; + + if (Util.supportsTransitionEnd() && $$$1(this.tip).hasClass(ClassName.FADE)) { + $$$1(this.tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(Tooltip._TRANSITION_DURATION); + } else { + complete(); + } + } + }; + + _proto.hide = function hide(callback) { + var _this2 = this; + + var tip = this.getTipElement(); + var hideEvent = $$$1.Event(this.constructor.Event.HIDE); + + var complete = function complete() { + if (_this2._hoverState !== HoverState.SHOW && tip.parentNode) { + tip.parentNode.removeChild(tip); + } + + _this2._cleanTipClass(); + + _this2.element.removeAttribute('aria-describedby'); + + $$$1(_this2.element).trigger(_this2.constructor.Event.HIDDEN); + + if (_this2._popper !== null) { + _this2._popper.destroy(); + } + + if (callback) { + callback(); + } + }; + + $$$1(this.element).trigger(hideEvent); + + if (hideEvent.isDefaultPrevented()) { + return; + } + + $$$1(tip).removeClass(ClassName.SHOW); // If this is a touch-enabled device we remove the extra + // empty mouseover listeners we added for iOS support + + if ('ontouchstart' in document.documentElement) { + $$$1('body').children().off('mouseover', null, $$$1.noop); + } + + this._activeTrigger[Trigger.CLICK] = false; + this._activeTrigger[Trigger.FOCUS] = false; + this._activeTrigger[Trigger.HOVER] = false; + + if (Util.supportsTransitionEnd() && $$$1(this.tip).hasClass(ClassName.FADE)) { + $$$1(tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION); + } else { + complete(); + } + + this._hoverState = ''; + }; + + _proto.update = function update() { + if (this._popper !== null) { + this._popper.scheduleUpdate(); + } + }; // Protected + + + _proto.isWithContent = function isWithContent() { + return Boolean(this.getTitle()); + }; + + _proto.addAttachmentClass = function addAttachmentClass(attachment) { + $$$1(this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment); + }; + + _proto.getTipElement = function getTipElement() { + this.tip = this.tip || $$$1(this.config.template)[0]; + return this.tip; + }; + + _proto.setContent = function setContent() { + var $tip = $$$1(this.getTipElement()); + this.setElementContent($tip.find(Selector.TOOLTIP_INNER), this.getTitle()); + $tip.removeClass(ClassName.FADE + " " + ClassName.SHOW); + }; + + _proto.setElementContent = function setElementContent($element, content) { + var html = this.config.html; + + if (typeof content === 'object' && (content.nodeType || content.jquery)) { + // Content is a DOM node or a jQuery + if (html) { + if (!$$$1(content).parent().is($element)) { + $element.empty().append(content); + } + } else { + $element.text($$$1(content).text()); + } + } else { + $element[html ? 'html' : 'text'](content); + } + }; + + _proto.getTitle = function getTitle() { + var title = this.element.getAttribute('data-original-title'); + + if (!title) { + title = typeof this.config.title === 'function' ? this.config.title.call(this.element) : this.config.title; + } + + return title; + }; // Private + + + _proto._getAttachment = function _getAttachment(placement) { + return AttachmentMap[placement.toUpperCase()]; + }; + + _proto._setListeners = function _setListeners() { + var _this3 = this; + + var triggers = this.config.trigger.split(' '); + triggers.forEach(function (trigger) { + if (trigger === 'click') { + $$$1(_this3.element).on(_this3.constructor.Event.CLICK, _this3.config.selector, function (event) { + return _this3.toggle(event); + }); + } else if (trigger !== Trigger.MANUAL) { + var eventIn = trigger === Trigger.HOVER ? _this3.constructor.Event.MOUSEENTER : _this3.constructor.Event.FOCUSIN; + var eventOut = trigger === Trigger.HOVER ? _this3.constructor.Event.MOUSELEAVE : _this3.constructor.Event.FOCUSOUT; + $$$1(_this3.element).on(eventIn, _this3.config.selector, function (event) { + return _this3._enter(event); + }).on(eventOut, _this3.config.selector, function (event) { + return _this3._leave(event); + }); + } + + $$$1(_this3.element).closest('.modal').on('hide.bs.modal', function () { + return _this3.hide(); + }); + }); + + if (this.config.selector) { + this.config = _extends({}, this.config, { + trigger: 'manual', + selector: '' + }); + } else { + this._fixTitle(); + } + }; + + _proto._fixTitle = function _fixTitle() { + var titleType = typeof this.element.getAttribute('data-original-title'); + + if (this.element.getAttribute('title') || titleType !== 'string') { + this.element.setAttribute('data-original-title', this.element.getAttribute('title') || ''); + this.element.setAttribute('title', ''); + } + }; + + _proto._enter = function _enter(event, context) { + var dataKey = this.constructor.DATA_KEY; + context = context || $$$1(event.currentTarget).data(dataKey); + + if (!context) { + context = new this.constructor(event.currentTarget, this._getDelegateConfig()); + $$$1(event.currentTarget).data(dataKey, context); + } + + if (event) { + context._activeTrigger[event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER] = true; + } + + if ($$$1(context.getTipElement()).hasClass(ClassName.SHOW) || context._hoverState === HoverState.SHOW) { + context._hoverState = HoverState.SHOW; + return; + } + + clearTimeout(context._timeout); + context._hoverState = HoverState.SHOW; + + if (!context.config.delay || !context.config.delay.show) { + context.show(); + return; + } + + context._timeout = setTimeout(function () { + if (context._hoverState === HoverState.SHOW) { + context.show(); + } + }, context.config.delay.show); + }; + + _proto._leave = function _leave(event, context) { + var dataKey = this.constructor.DATA_KEY; + context = context || $$$1(event.currentTarget).data(dataKey); + + if (!context) { + context = new this.constructor(event.currentTarget, this._getDelegateConfig()); + $$$1(event.currentTarget).data(dataKey, context); + } + + if (event) { + context._activeTrigger[event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER] = false; + } + + if (context._isWithActiveTrigger()) { + return; + } + + clearTimeout(context._timeout); + context._hoverState = HoverState.OUT; + + if (!context.config.delay || !context.config.delay.hide) { + context.hide(); + return; + } + + context._timeout = setTimeout(function () { + if (context._hoverState === HoverState.OUT) { + context.hide(); + } + }, context.config.delay.hide); + }; + + _proto._isWithActiveTrigger = function _isWithActiveTrigger() { + for (var trigger in this._activeTrigger) { + if (this._activeTrigger[trigger]) { + return true; + } + } + + return false; + }; + + _proto._getConfig = function _getConfig(config) { + config = _extends({}, this.constructor.Default, $$$1(this.element).data(), config); + + if (typeof config.delay === 'number') { + config.delay = { + show: config.delay, + hide: config.delay + }; + } + + if (typeof config.title === 'number') { + config.title = config.title.toString(); + } + + if (typeof config.content === 'number') { + config.content = config.content.toString(); + } + + Util.typeCheckConfig(NAME, config, this.constructor.DefaultType); + return config; + }; + + _proto._getDelegateConfig = function _getDelegateConfig() { + var config = {}; + + if (this.config) { + for (var key in this.config) { + if (this.constructor.Default[key] !== this.config[key]) { + config[key] = this.config[key]; + } + } + } + + return config; + }; + + _proto._cleanTipClass = function _cleanTipClass() { + var $tip = $$$1(this.getTipElement()); + var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX); + + if (tabClass !== null && tabClass.length > 0) { + $tip.removeClass(tabClass.join('')); + } + }; + + _proto._handlePopperPlacementChange = function _handlePopperPlacementChange(data) { + this._cleanTipClass(); + + this.addAttachmentClass(this._getAttachment(data.placement)); + }; + + _proto._fixTransition = function _fixTransition() { + var tip = this.getTipElement(); + var initConfigAnimation = this.config.animation; + + if (tip.getAttribute('x-placement') !== null) { + return; + } + + $$$1(tip).removeClass(ClassName.FADE); + this.config.animation = false; + this.hide(); + this.show(); + this.config.animation = initConfigAnimation; + }; // Static + + + Tooltip._jQueryInterface = function _jQueryInterface(config) { + return this.each(function () { + var data = $$$1(this).data(DATA_KEY); + + var _config = typeof config === 'object' && config; + + if (!data && /dispose|hide/.test(config)) { + return; + } + + if (!data) { + data = new Tooltip(this, _config); + $$$1(this).data(DATA_KEY, data); + } + + if (typeof config === 'string') { + if (typeof data[config] === 'undefined') { + throw new TypeError("No method named \"" + config + "\""); + } + + data[config](); + } + }); + }; + + _createClass(Tooltip, null, [{ + key: "VERSION", + get: function get() { + return VERSION; + } + }, { + key: "Default", + get: function get() { + return Default; + } + }, { + key: "NAME", + get: function get() { + return NAME; + } + }, { + key: "DATA_KEY", + get: function get() { + return DATA_KEY; + } + }, { + key: "Event", + get: function get() { + return Event; + } + }, { + key: "EVENT_KEY", + get: function get() { + return EVENT_KEY; + } + }, { + key: "DefaultType", + get: function get() { + return DefaultType; + } + }]); + return Tooltip; + }(); + /** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + */ + + + $$$1.fn[NAME] = Tooltip._jQueryInterface; + $$$1.fn[NAME].Constructor = Tooltip; + + $$$1.fn[NAME].noConflict = function () { + $$$1.fn[NAME] = JQUERY_NO_CONFLICT; + return Tooltip._jQueryInterface; + }; + + return Tooltip; +}($, Popper); + +/** + * -------------------------------------------------------------------------- + * Bootstrap (v4.0.0): popover.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * -------------------------------------------------------------------------- + */ + +var Popover = function ($$$1) { + /** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + var NAME = 'popover'; + var VERSION = '4.0.0'; + var DATA_KEY = 'bs.popover'; + var EVENT_KEY = "." + DATA_KEY; + var JQUERY_NO_CONFLICT = $$$1.fn[NAME]; + var CLASS_PREFIX = 'bs-popover'; + var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g'); + var Default = _extends({}, Tooltip.Default, { + placement: 'right', + trigger: 'click', + content: '', + template: '' + }); + var DefaultType = _extends({}, Tooltip.DefaultType, { + content: '(string|element|function)' + }); + var ClassName = { + FADE: 'fade', + SHOW: 'show' + }; + var Selector = { + TITLE: '.popover-header', + CONTENT: '.popover-body' + }; + var Event = { + HIDE: "hide" + EVENT_KEY, + HIDDEN: "hidden" + EVENT_KEY, + SHOW: "show" + EVENT_KEY, + SHOWN: "shown" + EVENT_KEY, + INSERTED: "inserted" + EVENT_KEY, + CLICK: "click" + EVENT_KEY, + FOCUSIN: "focusin" + EVENT_KEY, + FOCUSOUT: "focusout" + EVENT_KEY, + MOUSEENTER: "mouseenter" + EVENT_KEY, + MOUSELEAVE: "mouseleave" + EVENT_KEY + /** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + + }; + + var Popover = + /*#__PURE__*/ + function (_Tooltip) { + _inheritsLoose(Popover, _Tooltip); + + function Popover() { + return _Tooltip.apply(this, arguments) || this; + } + + var _proto = Popover.prototype; + + // Overrides + _proto.isWithContent = function isWithContent() { + return this.getTitle() || this._getContent(); + }; + + _proto.addAttachmentClass = function addAttachmentClass(attachment) { + $$$1(this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment); + }; + + _proto.getTipElement = function getTipElement() { + this.tip = this.tip || $$$1(this.config.template)[0]; + return this.tip; + }; + + _proto.setContent = function setContent() { + var $tip = $$$1(this.getTipElement()); // We use append for html objects to maintain js events + + this.setElementContent($tip.find(Selector.TITLE), this.getTitle()); + + var content = this._getContent(); + + if (typeof content === 'function') { + content = content.call(this.element); + } + + this.setElementContent($tip.find(Selector.CONTENT), content); + $tip.removeClass(ClassName.FADE + " " + ClassName.SHOW); + }; // Private + + + _proto._getContent = function _getContent() { + return this.element.getAttribute('data-content') || this.config.content; + }; + + _proto._cleanTipClass = function _cleanTipClass() { + var $tip = $$$1(this.getTipElement()); + var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX); + + if (tabClass !== null && tabClass.length > 0) { + $tip.removeClass(tabClass.join('')); + } + }; // Static + + + Popover._jQueryInterface = function _jQueryInterface(config) { + return this.each(function () { + var data = $$$1(this).data(DATA_KEY); + + var _config = typeof config === 'object' ? config : null; + + if (!data && /destroy|hide/.test(config)) { + return; + } + + if (!data) { + data = new Popover(this, _config); + $$$1(this).data(DATA_KEY, data); + } + + if (typeof config === 'string') { + if (typeof data[config] === 'undefined') { + throw new TypeError("No method named \"" + config + "\""); + } + + data[config](); + } + }); + }; + + _createClass(Popover, null, [{ + key: "VERSION", + // Getters + get: function get() { + return VERSION; + } + }, { + key: "Default", + get: function get() { + return Default; + } + }, { + key: "NAME", + get: function get() { + return NAME; + } + }, { + key: "DATA_KEY", + get: function get() { + return DATA_KEY; + } + }, { + key: "Event", + get: function get() { + return Event; + } + }, { + key: "EVENT_KEY", + get: function get() { + return EVENT_KEY; + } + }, { + key: "DefaultType", + get: function get() { + return DefaultType; + } + }]); + return Popover; + }(Tooltip); + /** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + */ + + + $$$1.fn[NAME] = Popover._jQueryInterface; + $$$1.fn[NAME].Constructor = Popover; + + $$$1.fn[NAME].noConflict = function () { + $$$1.fn[NAME] = JQUERY_NO_CONFLICT; + return Popover._jQueryInterface; + }; + + return Popover; +}($); + +/** + * -------------------------------------------------------------------------- + * Bootstrap (v4.0.0): scrollspy.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * -------------------------------------------------------------------------- + */ + +var ScrollSpy = function ($$$1) { + /** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + var NAME = 'scrollspy'; + var VERSION = '4.0.0'; + var DATA_KEY = 'bs.scrollspy'; + var EVENT_KEY = "." + DATA_KEY; + var DATA_API_KEY = '.data-api'; + var JQUERY_NO_CONFLICT = $$$1.fn[NAME]; + var Default = { + offset: 10, + method: 'auto', + target: '' + }; + var DefaultType = { + offset: 'number', + method: 'string', + target: '(string|element)' + }; + var Event = { + ACTIVATE: "activate" + EVENT_KEY, + SCROLL: "scroll" + EVENT_KEY, + LOAD_DATA_API: "load" + EVENT_KEY + DATA_API_KEY + }; + var ClassName = { + DROPDOWN_ITEM: 'dropdown-item', + DROPDOWN_MENU: 'dropdown-menu', + ACTIVE: 'active' + }; + var Selector = { + DATA_SPY: '[data-spy="scroll"]', + ACTIVE: '.active', + NAV_LIST_GROUP: '.nav, .list-group', + NAV_LINKS: '.nav-link', + NAV_ITEMS: '.nav-item', + LIST_ITEMS: '.list-group-item', + DROPDOWN: '.dropdown', + DROPDOWN_ITEMS: '.dropdown-item', + DROPDOWN_TOGGLE: '.dropdown-toggle' + }; + var OffsetMethod = { + OFFSET: 'offset', + POSITION: 'position' + /** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + + }; + + var ScrollSpy = + /*#__PURE__*/ + function () { + function ScrollSpy(element, config) { + var _this = this; + + this._element = element; + this._scrollElement = element.tagName === 'BODY' ? window : element; + this._config = this._getConfig(config); + this._selector = this._config.target + " " + Selector.NAV_LINKS + "," + (this._config.target + " " + Selector.LIST_ITEMS + ",") + (this._config.target + " " + Selector.DROPDOWN_ITEMS); + this._offsets = []; + this._targets = []; + this._activeTarget = null; + this._scrollHeight = 0; + $$$1(this._scrollElement).on(Event.SCROLL, function (event) { + return _this._process(event); + }); + this.refresh(); + + this._process(); + } // Getters + + + var _proto = ScrollSpy.prototype; + + // Public + _proto.refresh = function refresh() { + var _this2 = this; + + var autoMethod = this._scrollElement === this._scrollElement.window ? OffsetMethod.OFFSET : OffsetMethod.POSITION; + var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method; + var offsetBase = offsetMethod === OffsetMethod.POSITION ? this._getScrollTop() : 0; + this._offsets = []; + this._targets = []; + this._scrollHeight = this._getScrollHeight(); + var targets = $$$1.makeArray($$$1(this._selector)); + targets.map(function (element) { + var target; + var targetSelector = Util.getSelectorFromElement(element); + + if (targetSelector) { + target = $$$1(targetSelector)[0]; + } + + if (target) { + var targetBCR = target.getBoundingClientRect(); + + if (targetBCR.width || targetBCR.height) { + // TODO (fat): remove sketch reliance on jQuery position/offset + return [$$$1(target)[offsetMethod]().top + offsetBase, targetSelector]; + } + } + + return null; + }).filter(function (item) { + return item; + }).sort(function (a, b) { + return a[0] - b[0]; + }).forEach(function (item) { + _this2._offsets.push(item[0]); + + _this2._targets.push(item[1]); + }); + }; + + _proto.dispose = function dispose() { + $$$1.removeData(this._element, DATA_KEY); + $$$1(this._scrollElement).off(EVENT_KEY); + this._element = null; + this._scrollElement = null; + this._config = null; + this._selector = null; + this._offsets = null; + this._targets = null; + this._activeTarget = null; + this._scrollHeight = null; + }; // Private + + + _proto._getConfig = function _getConfig(config) { + config = _extends({}, Default, config); + + if (typeof config.target !== 'string') { + var id = $$$1(config.target).attr('id'); + + if (!id) { + id = Util.getUID(NAME); + $$$1(config.target).attr('id', id); + } + + config.target = "#" + id; + } + + Util.typeCheckConfig(NAME, config, DefaultType); + return config; + }; + + _proto._getScrollTop = function _getScrollTop() { + return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop; + }; + + _proto._getScrollHeight = function _getScrollHeight() { + return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight); + }; + + _proto._getOffsetHeight = function _getOffsetHeight() { + return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height; + }; + + _proto._process = function _process() { + var scrollTop = this._getScrollTop() + this._config.offset; + + var scrollHeight = this._getScrollHeight(); + + var maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight(); + + if (this._scrollHeight !== scrollHeight) { + this.refresh(); + } + + if (scrollTop >= maxScroll) { + var target = this._targets[this._targets.length - 1]; + + if (this._activeTarget !== target) { + this._activate(target); + } + + return; + } + + if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) { + this._activeTarget = null; + + this._clear(); + + return; + } + + for (var i = this._offsets.length; i--;) { + var isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]); + + if (isActiveTarget) { + this._activate(this._targets[i]); + } + } + }; + + _proto._activate = function _activate(target) { + this._activeTarget = target; + + this._clear(); + + var queries = this._selector.split(','); // eslint-disable-next-line arrow-body-style + + + queries = queries.map(function (selector) { + return selector + "[data-target=\"" + target + "\"]," + (selector + "[href=\"" + target + "\"]"); + }); + var $link = $$$1(queries.join(',')); + + if ($link.hasClass(ClassName.DROPDOWN_ITEM)) { + $link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE); + $link.addClass(ClassName.ACTIVE); + } else { + // Set triggered link as active + $link.addClass(ClassName.ACTIVE); // Set triggered links parents as active + // With both