From c972f79e0cb9b238c97c1dc550f48e2be780911f Mon Sep 17 00:00:00 2001 From: Nikolaos Triantafyllis Date: Fri, 29 Apr 2022 16:46:20 +0300 Subject: [PATCH 01/89] Adding tooltip to variables (see REC-25) --- report.html.prototype | 40 +++++++++++++++++++++++++++++++++++++--- 1 file changed, 37 insertions(+), 3 deletions(-) diff --git a/report.html.prototype b/report.html.prototype index 4e29b9b..2c4406a 100644 --- a/report.html.prototype +++ b/report.html.prototype @@ -11,7 +11,7 @@ .card { animation-name: fadein; - animation-duration: 2s; + animation-duration: 1s; } @keyframes fadein { @@ -33,7 +33,38 @@ color: #FAC0E7; } - +span { + position: relative; +} + +span:hover:after { + background: #333; + background: rgba(0, 0, 0, .8); + border-radius: 5px; + bottom: -34px; + color: #fff; + content: attr(gloss); + left: 20%; + padding: 5px 15px; + position: absolute; + z-index: 98; + width: 350px; + font-size: 14px; +} + +span:hover:before { + border: solid; + border-color: #333 transparent; + border-width: 0 6px 6px 6px; + bottom: -4px; + content: ""; + left: 50%; + position: absolute; + z-index: 99; + font-size: 14px; +} + +
@@ -136,7 +167,10 @@ function fill(data){ for (item of fill_list) { key = 'val_' + item value = data[item] - el = document.getElementById(key).textContent = value + value_doc=data[item+'_doc'] + document.getElementById(key).textContent = value + document.getElementById(key).setAttribute('gloss', value_doc); + //document.getElementById(key).gloss=value_doc } } From 73d2ed4e47827e0bda2870d31331235a36b9d4ea Mon Sep 17 00:00:00 2001 From: Nikolaos Triantafyllis Date: Fri, 29 Apr 2022 16:47:34 +0300 Subject: [PATCH 02/89] Update README.md --- README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index b765902..28edea0 100644 --- a/README.md +++ b/README.md @@ -3,15 +3,15 @@ A framework for counting the recommender metrics # Preprocessor v.0.2

- - + +

# RS metrics v.0.2

- - + +

@@ -62,8 +62,8 @@ optional arguments: 8. Configure `./preprocessor.py` by editting the `config.yaml` or providing another with `-c`:

- - + +

From e7003b8e811dfa22c264f8587b73db95127aeb49 Mon Sep 17 00:00:00 2001 From: Nikolaos Triantafyllis Date: Fri, 29 Apr 2022 18:09:20 +0300 Subject: [PATCH 03/89] Adding timestamp in UI (see REC-18) --- report.html.prototype | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/report.html.prototype b/report.html.prototype index 2c4406a..bc9e230 100644 --- a/report.html.prototype +++ b/report.html.prototype @@ -79,6 +79,7 @@ span:hover:before { This report contains information about the detailed results of the evaluation process of the recommendation system as well as statistics related to the ingested dataset of user actions and recommendations

+
@@ -151,6 +152,14 @@ span:hover:before {
+
+ +

+

+ + Generated on: +

+
@@ -162,7 +171,7 @@ span:hover:before { function fill(data){ // what to fill - let fill_list = ['users', 'recommendations', 'services', 'user_actions','user_actions_order', 'user_actions_registered', 'user_actions_anonymous', 'user_actions_order_registered', 'user_actions_order_anonymous', 'user_actions_registered_perc', 'user_actions_anonymous_perc', 'user_actions_order_registered_perc', 'user_actions_order_anonymous_perc', 'catalog_coverage_perc', 'user_coverage_perc']; + let fill_list = ['users', 'recommendations', 'services', 'user_actions','user_actions_order', 'user_actions_registered', 'user_actions_anonymous', 'user_actions_order_registered', 'user_actions_order_anonymous', 'user_actions_registered_perc', 'user_actions_anonymous_perc', 'user_actions_order_registered_perc', 'user_actions_order_anonymous_perc', 'catalog_coverage_perc', 'user_coverage_perc', 'timestamp']; for (item of fill_list) { key = 'val_' + item @@ -170,8 +179,6 @@ function fill(data){ value_doc=data[item+'_doc'] document.getElementById(key).textContent = value document.getElementById(key).setAttribute('gloss', value_doc); - //document.getElementById(key).gloss=value_doc - } } From 9eca706037e6dba85f43addda1209c724b7a1782 Mon Sep 17 00:00:00 2001 From: Nikolaos Triantafyllis Date: Fri, 6 May 2022 18:27:11 +0300 Subject: [PATCH 04/89] no-changes --- config.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/config.yaml b/config.yaml index 6513966..62ac9d0 100644 --- a/config.yaml +++ b/config.yaml @@ -20,10 +20,10 @@ Service: export: true #from: 'user_actions' #from: 'recommendations' - from: 'source' - #from: 'page_map' + #from: 'source' + from: 'page_map' - published: false # applies only on source option + published: true # applies only on source option User-actions: merge: false # not implemented yet From 9cd885d71f993a275226823683e63d76f8e75eec Mon Sep 17 00:00:00 2001 From: nikosT Date: Sat, 7 May 2022 18:20:32 +0300 Subject: [PATCH 05/89] User actions is enriched according to REC-34. Additionally, reward function has been altered where transition csv file is being read once, leading to an overall greater execution performance --- preprocessor.py | 71 +++++++++++++++++++++++++++-------------------- reward_mapping.py | 4 +-- 2 files changed, 43 insertions(+), 32 deletions(-) diff --git a/preprocessor.py b/preprocessor.py index 3be128e..27f381e 100755 --- a/preprocessor.py +++ b/preprocessor.py @@ -7,7 +7,7 @@ import os from natsort import natsorted import natsort as ns - +import pandas as pd import retrieval import reward_mapping as rm @@ -128,9 +128,6 @@ def __init__(self, source_page_id, target_page_id, order): recdb = myclient[config["Source"]["MongoDB"]["db"]] - - - # automatically associate page ids to service ids if config['Service']['download']: service_list_path = os.path.join(args.output,config['Service']['path']) @@ -155,9 +152,20 @@ def __init__(self, source_page_id, target_page_id, order): dmap=dict(zip(keys, values)) #=> {'a': 1, 'b': 2} -uas={} +# reward_mapping.py is modified so that the function +# reads the Transition rewards csv file once +# consequently, one argument has been added to the +# called function +ROOT_DIR='./' + +TRANSITION_REWARDS_CSV_PATH = os.path.join( + ROOT_DIR, "resources", "transition_rewards.csv" +) +transition_rewards_df = pd.read_csv(TRANSITION_REWARDS_CSV_PATH, index_col="source") -for ua in recdb["user_action"].find(query): +luas=[] + +for ua in recdb["user_action"].find(query).sort("user"): # set -1 to anonymous users try: @@ -166,44 +174,48 @@ def __init__(self, source_page_id, target_page_id, order): user=-1 # process data that map from page id to service id exist + # for both source and target page ids + # if not set service id to -1 try: - _pageid="/"+"/".join(ua['target']['page_id'].split('/')[1:3]) - service_id=dmap[_pageid] + _pageid="/"+"/".join(ua['source']['page_id'].split('/')[1:3]) + source_service_id=dmap[_pageid] + except: + source_service_id=-1 + try: + _pageid="/"+"/".join(ua['target']['page_id'].split('/')[1:3]) + target_service_id=dmap[_pageid] except: - continue + target_service_id=-1 - symbolic_reward=rm.ua_to_reward_id(User_Action(ua['source']['page_id'], + # function has been modified where one more argument is given + # in order to avoid time-consuming processing of reading csv file + # for every func call + symbolic_reward=rm.ua_to_reward_id(transition_rewards_df, + User_Action(ua['source']['page_id'], ua['target']['page_id'], ua['action']['order'])) reward=reward_mapping[symbolic_reward] - uas.setdefault(user,{}) - - # then we need to merge rewards - # keep the max value for each record - try: - if uas[user][service_id][0] < reward: - uas[user][service_id]=[reward, ua['source']['root']['type'], ua['timestamp']] - except: - uas[user].setdefault(service_id,[reward, ua['source']['root']['type'], ua['timestamp']]) - -luas=[] - -for user,_ in natsorted(uas.items(),alg=ns.ns.SIGNED): - for service,act in natsorted(uas[user].items(),alg=ns.ns.SIGNED): - - if service: - luas.append('{},{},{},{},{}\n'.format(user, service, *act)) + luas.append('{},{},{},{},{},{},{},{}\n'.format(user, + source_service_id, + target_service_id, + reward, + ua['source']['root']['type'], + ua['timestamp'], + ua['source']['page_id'], + ua['target']['page_id'])) +#luas=natsorted(luas,alg=ns.ns.SIGNED) with open(os.path.join(args.output,'user_actions.csv'), 'w') as o: o.writelines(luas) + recs=[] -for rec in recdb["recommendation"].find(query): +for rec in recdb["recommendation"].find(query).sort("user"): try: user=rec['user'] @@ -213,7 +225,7 @@ def __init__(self, source_page_id, target_page_id, order): for service in rec['services']: recs.append('{},{},{},{}\n'.format(user, service, '1', rec['timestamp'])) -recs=natsorted(recs,alg=ns.ns.SIGNED) +#recs=natsorted(recs,alg=ns.ns.SIGNED) with open(os.path.join(args.output,'recommendations.csv'), 'w') as o: o.writelines(recs) @@ -234,7 +246,6 @@ def __init__(self, source_page_id, target_page_id, order): with open(os.path.join(args.output,'users.csv'), 'w') as o: o.writelines(us) - # export service catalog if config['Service']['export']: diff --git a/reward_mapping.py b/reward_mapping.py index 25891a4..1b8d0f4 100755 --- a/reward_mapping.py +++ b/reward_mapping.py @@ -47,7 +47,7 @@ def _to_abstract_page_id(page_id: str, valid_page_ids: List[str]) -> str: return "unknown_page_id" -def ua_to_reward_id(user_action) -> str: +def ua_to_reward_id(transition_rewards_df, user_action) -> str: """ This function maps user_action to the symbolic reward. Mapping is using ONLY following fields of user_action: @@ -61,7 +61,7 @@ def ua_to_reward_id(user_action) -> str: For now it just return generic reward id. """ - transition_rewards_df = pd.read_csv(TRANSITION_REWARDS_CSV_PATH, index_col="source") + valid_page_ids = transition_rewards_df.index.values.tolist() source = _to_abstract_page_id(user_action.source.page_id, valid_page_ids) From cfe4e88159aa21e079391e3c5bd00580a33103f2 Mon Sep 17 00:00:00 2001 From: Nikolaos Triantafyllis Date: Mon, 9 May 2022 15:53:44 +0300 Subject: [PATCH 06/89] Removing merge (REC-32) --- config.yaml | 3 --- 1 file changed, 3 deletions(-) diff --git a/config.yaml b/config.yaml index 62ac9d0..fd7e0e4 100644 --- a/config.yaml +++ b/config.yaml @@ -25,9 +25,6 @@ Service: published: true # applies only on source option -User-actions: - merge: false # not implemented yet - # Calculate source's metrics Metrics: true From b0d913761ebefb308bae82083b3cbe50ff6b5a5a Mon Sep 17 00:00:00 2001 From: Nikolaos Triantafyllis Date: Mon, 9 May 2022 16:14:54 +0300 Subject: [PATCH 07/89] Adding start and end time according to REC-29. Min and max values are selected respectively between user_action and recommendation collections' timestamps --- preprocessor.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/preprocessor.py b/preprocessor.py index 27f381e..3ea3fba 100755 --- a/preprocessor.py +++ b/preprocessor.py @@ -274,6 +274,14 @@ def __init__(self, source_page_id, target_page_id, order): m.timestamp=str(datetime.utcnow()) + ua_start=recdb["user_action"].find_one(sort=[("timestamp", 1)])["timestamp"] + ua_end=recdb["user_action"].find_one(sort=[("timestamp", -1)])["timestamp"] + rec_start=recdb["recommendation"].find_one(sort=[("timestamp", 1)])["timestamp"] + rec_end=recdb["recommendation"].find_one(sort=[("timestamp", -1)])["timestamp"] + + m.start=str(min(ua_start, rec_start)) + m.end=str(max(ua_end, rec_end)) + m.users=recdb["user"].count_documents({}) m.recommendations=recdb["recommendation"].count_documents(query) m.services=recdb["service"].count_documents({}) From 9208aabce63140c3d67096bf85633f353d012ac2 Mon Sep 17 00:00:00 2001 From: Nikolaos Triantafyllis Date: Mon, 9 May 2022 16:22:27 +0300 Subject: [PATCH 08/89] fixing bug in start and end metrics where start and end arguments were not taken into account --- preprocessor.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/preprocessor.py b/preprocessor.py index 3ea3fba..2d0630c 100755 --- a/preprocessor.py +++ b/preprocessor.py @@ -274,10 +274,10 @@ def __init__(self, source_page_id, target_page_id, order): m.timestamp=str(datetime.utcnow()) - ua_start=recdb["user_action"].find_one(sort=[("timestamp", 1)])["timestamp"] - ua_end=recdb["user_action"].find_one(sort=[("timestamp", -1)])["timestamp"] - rec_start=recdb["recommendation"].find_one(sort=[("timestamp", 1)])["timestamp"] - rec_end=recdb["recommendation"].find_one(sort=[("timestamp", -1)])["timestamp"] + ua_start=recdb["user_action"].find_one(query,sort=[("timestamp", 1)])["timestamp"] + ua_end=recdb["user_action"].find_one(query,sort=[("timestamp", -1)])["timestamp"] + rec_start=recdb["recommendation"].find_one(query,sort=[("timestamp", 1)])["timestamp"] + rec_end=recdb["recommendation"].find_one(query,sort=[("timestamp", -1)])["timestamp"] m.start=str(min(ua_start, rec_start)) m.end=str(max(ua_end, rec_end)) From ada065dc0c646de5a59ca867e32bde63cb8f0c88 Mon Sep 17 00:00:00 2001 From: Nikolaos Triantafyllis Date: Mon, 9 May 2022 17:00:44 +0300 Subject: [PATCH 09/89] Needed commit so that rsmetrics can read the new user_actions format (user,source_id,target_id,reward,timestamp,source_page,target_page) --- metrics.py | 4 ++-- rsmetrics.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/metrics.py b/metrics.py index f901135..3681df9 100644 --- a/metrics.py +++ b/metrics.py @@ -38,12 +38,12 @@ def services(object): """ Calculate the total number of unique services found in Pandas DataFrame object services (if provided) - or user_actions otherwise + or user_actions otherwise (from both Source and Target Service) """ if isinstance(object.services, pd.DataFrame): return int(object.services.nunique()['Service']) else: - return int(object.user_actions.nunique()['Service']) + return len(np.unique(np.concatenate([object.user_actions['Source_Service'].unique(),object.user_actions['Target_Service'].unique()]))) @doc('The total number of recommendations found in recommendations.csv') diff --git a/rsmetrics.py b/rsmetrics.py index 129bb42..3325e9e 100755 --- a/rsmetrics.py +++ b/rsmetrics.py @@ -73,7 +73,7 @@ def inner(): sys.exit(0) # read data -run.user_actions=pd.read_csv(os.path.join(args.input,'user_actions.csv'),names=["User", "Service", "Reward", "Action", "Timestamp"]) +run.user_actions=pd.read_csv(os.path.join(args.input,'user_actions.csv'),names=["User", "Source_Service", "Target_Service", "Reward", "Action", "Timestamp", "Source_Page_ID", "Target_Page_ID"]) run.recommendations=pd.read_csv(os.path.join(args.input,'recommendations.csv'),names=["User", "Service", "Rating", "Timestamp"]) # convert timestamp column to datetime object From 1c65e667044bf37cdb136e6d427e84d2f61d68d9 Mon Sep 17 00:00:00 2001 From: Nikolaos Triantafyllis Date: Mon, 9 May 2022 17:10:15 +0300 Subject: [PATCH 10/89] Set start and end metrics. Get the min/max from both user_actions and recommendations csv files --- metrics.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/metrics.py b/metrics.py index 3681df9..bbee950 100644 --- a/metrics.py +++ b/metrics.py @@ -20,6 +20,25 @@ def wrapper(f): # Metrics + +@doc('The initial date where metrics are calculated on') +def start(object): + """ + Calculate the start date where metrics are calculated on + found in min value between Pandas DataFrame object user_action + and recommendation + """ + return str(min(min(object.user_actions['Timestamp']),min(object.recommendations['Timestamp']))) + +@doc('The final date where metrics are calculated on') +def end(object): + """ + Calculate the end date where metrics are calculated on + found in max value between Pandas DataFrame object user_action + and recommendation + """ + return str(max(max(object.user_actions['Timestamp']),max(object.recommendations['Timestamp']))) + @doc('The total number of unique users found in users.csv (if provided), otherwise in user_actions.csv') def users(object): """ From e2eb2a55a2834b8af37a6bfcf2b4d76e17dfd50d Mon Sep 17 00:00:00 2001 From: Nikolaos Triantafyllis Date: Mon, 9 May 2022 17:42:35 +0300 Subject: [PATCH 11/89] Users and Services consistency according to REC-19. Also, published config option affects calculations with service collection --- config.yaml | 15 ++++++--------- preprocessor.py | 26 +++++++++----------------- 2 files changed, 15 insertions(+), 26 deletions(-) diff --git a/config.yaml b/config.yaml index fd7e0e4..5b4eb8e 100644 --- a/config.yaml +++ b/config.yaml @@ -7,23 +7,20 @@ Source: User: export: true - #from: 'user_actions' - #from: 'recommendations' - from: 'source' Service: + # if true it keeps only published, otherwise all + # this has an effect in exporting when from is set to 'source' + # and also in metrics calculations where service is considered + published: true + # Use the EOSC-Marketplace webpage # to associate page_id and service_id download: true path: ./page_map export: true - #from: 'user_actions' - #from: 'recommendations' - #from: 'source' - from: 'page_map' - - published: true # applies only on source option + from: 'page_map' # or 'source' # Calculate source's metrics Metrics: true diff --git a/preprocessor.py b/preprocessor.py index 2d0630c..761359c 100755 --- a/preprocessor.py +++ b/preprocessor.py @@ -234,14 +234,7 @@ def __init__(self, source_page_id, target_page_id, order): # export user catalog if config['User']['export']: - if config['User']['from']=='user_actions': - us=natsorted(list(set(list(map(lambda x: x.split(',')[0]+'\n',luas)))),alg=ns.ns.SIGNED) - - elif config['User']['from']=='recommendations': - us=natsorted(list(set(list(map(lambda x: x.split(',')[0]+'\n',recs)))),alg=ns.ns.SIGNED) - - else: # 'source' - us=natsorted(list(set(list(map(lambda x: str(x['_id'])+'\n',recdb["user"].find({}))))),alg=ns.ns.SIGNED) + us=natsorted(list(set(list(map(lambda x: str(x['_id'])+'\n',recdb["user"].find({}))))),alg=ns.ns.SIGNED) with open(os.path.join(args.output,'users.csv'), 'w') as o: o.writelines(us) @@ -249,13 +242,7 @@ def __init__(self, source_page_id, target_page_id, order): # export service catalog if config['Service']['export']: - if config['Service']['from']=='user_actions': - ss=natsorted(list(set(list(map(lambda x: x.split(',')[1]+'\n',luas)))),alg=ns.ns.SIGNED) - - elif config['Service']['from']=='recommendations': - ss=natsorted(list(set(list(map(lambda x: x.split(',')[1]+'\n',recs)))),alg=ns.ns.SIGNED) - - elif config['Service']['from']=='page_map': + if config['Service']['from']=='page_map': ss=natsorted(list(set(list(map(lambda x: x+'\n',values)))),alg=ns.ns.SIGNED) else: # 'source' @@ -270,7 +257,6 @@ def __init__(self, source_page_id, target_page_id, order): # calculate pre metrics if config['Metrics']: - time_range=recdb["user_action"].distinct("timestamp", query) m.timestamp=str(datetime.utcnow()) @@ -283,8 +269,14 @@ def __init__(self, source_page_id, target_page_id, order): m.end=str(max(ua_end, rec_end)) m.users=recdb["user"].count_documents({}) + m.recommendations=recdb["recommendation"].count_documents(query) - m.services=recdb["service"].count_documents({}) + + if config['Service']['published']: + m.services=recdb["service"].count_documents({"status":"published"}) + else: + m.services=recdb["service"].count_documents({}) + m.user_actions=recdb["user_action"].count_documents(query) m.user_actions_registered=recdb["user_action"].count_documents({**query,**{"user":{"$exists":True}}}) From 605c842fc80f73e3229c83dfecd1d7bb48c04669 Mon Sep 17 00:00:00 2001 From: Nikolaos Triantafyllis Date: Mon, 9 May 2022 17:45:37 +0300 Subject: [PATCH 12/89] Setting v.0.2.2 in both Preprocessor and RSmetrics --- preprocessor.py | 2 +- rsmetrics.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/preprocessor.py b/preprocessor.py index 761359c..0648e3d 100755 --- a/preprocessor.py +++ b/preprocessor.py @@ -16,7 +16,7 @@ __copyright__ = "© "+str(datetime.utcnow().year)+", National Infrastructures for Research and Technology (GRNET)" __status__ = "Production" -__version__ = "0.2" +__version__ = "0.2.2" os.environ['COLUMNS'] = "90" diff --git a/rsmetrics.py b/rsmetrics.py index 3325e9e..d5a3fbb 100755 --- a/rsmetrics.py +++ b/rsmetrics.py @@ -14,7 +14,7 @@ __copyright__ = "© "+str(datetime.utcnow().year)+", National Infrastructures for Research and Technology (GRNET)" __status__ = "Production" -__version__ = "0.2" +__version__ = "0.2.2" os.environ['COLUMNS'] = "90" From 1a9958db7dd876291e4cd2ceb32fddb9d1e64c8f Mon Sep 17 00:00:00 2001 From: Nikolaos Triantafyllis Date: Thu, 12 May 2022 20:27:21 +0300 Subject: [PATCH 13/89] Pre-metrics have been encapsulated in functions and appended with description (see REC-24) --- preprocessor.py | 98 ++++++++++++++++++++++++++++++++++--------------- 1 file changed, 69 insertions(+), 29 deletions(-) diff --git a/preprocessor.py b/preprocessor.py index 0648e3d..99d8cce 100755 --- a/preprocessor.py +++ b/preprocessor.py @@ -8,8 +8,11 @@ from natsort import natsorted import natsort as ns import pandas as pd +from inspect import getmembers, isfunction import retrieval +# local lib +import pre_metrics as pm import reward_mapping as rm from get_service_catalog import get_eosc_marketplace_url, get_service_catalog_items, get_service_catalog_page_content, save_service_items_to_csv @@ -258,49 +261,86 @@ def __init__(self, source_page_id, target_page_id, order): # calculate pre metrics if config['Metrics']: - m.timestamp=str(datetime.utcnow()) + run=pm.Runtime() + run.recdb=recdb + run.query=query + run.config=config - ua_start=recdb["user_action"].find_one(query,sort=[("timestamp", 1)])["timestamp"] - ua_end=recdb["user_action"].find_one(query,sort=[("timestamp", -1)])["timestamp"] - rec_start=recdb["recommendation"].find_one(query,sort=[("timestamp", 1)])["timestamp"] - rec_end=recdb["recommendation"].find_one(query,sort=[("timestamp", -1)])["timestamp"] + md={'timestamp':str(datetime.utcnow())} - m.start=str(min(ua_start, rec_start)) - m.end=str(max(ua_end, rec_end)) + # get all functions found in pre_metrics module + # apart from 'doc' func + # run and save the result in dictionary + # where key is the name of the function + # and value what it returns + # whereas, for each found functions + # an extra key_doc element in dictionary is set + # to save the text of the function + funcs = list(map(lambda x: x[0], getmembers(pm, isfunction))) + funcs = list(filter(lambda x: not x=='doc',funcs)) + for func in funcs: + md[func+'_doc']=getattr(pm, func).text + md[func]=getattr(pm, func)(run) - m.users=recdb["user"].count_documents({}) - m.recommendations=recdb["recommendation"].count_documents(query) + jsonstr = json.dumps(md) - if config['Service']['published']: - m.services=recdb["service"].count_documents({"status":"published"}) - else: - m.services=recdb["service"].count_documents({}) + print(jsonstr) + + # Using a JSON string + with open(os.path.join(args.output,'pre_metrics.json'), 'w') as outfile: + outfile.write(jsonstr) + + + + + + + + + + + + + import sys + sys.exit(0) + + + + #m.timestamp=str(datetime.utcnow()) + + #m.users=recdb["user"].count_documents({}) + + #m.recommendations=recdb["recommendation"].count_documents(query) - m.user_actions=recdb["user_action"].count_documents(query) + #if config['Service']['published']: + # m.services=recdb["service"].count_documents({"status":"published"}) + #else: + # m.services=recdb["service"].count_documents({}) - m.user_actions_registered=recdb["user_action"].count_documents({**query,**{"user":{"$exists":True}}}) - m.user_actions_anonymous=m.user_actions-m.user_actions_registered - m.user_actions_registered_perc=round(m.user_actions_registered*100.0/m.user_actions,2) - m.user_actions_anonymous_perc=100-m.user_actions_registered_perc + #m.user_actions=recdb["user_action"].count_documents(query) - m.user_actions_order=recdb["user_action"].count_documents({**query, **{"action.order":True}}) - m.user_actions_order_registered=recdb["user_action"].count_documents({**query, **{"action.order":True,"user":{"$exists":True}}}) - m.user_actions_order_anonymous=m.user_actions_order-m.user_actions_order_registered - m.user_actions_order_registered_perc=round(m.user_actions_order_registered*100.0/m.user_actions_order,2) - m.user_actions_order_anonymous_perc=100-m.user_actions_order_registered_perc + #m.user_actions_registered=recdb["user_action"].count_documents({**query,**{"user":{"$exists":True}}}) + #m.user_actions_anonymous=m.user_actions-m.user_actions_registered + #m.user_actions_registered_perc=round(m.user_actions_registered*100.0/m.user_actions,2) + #m.user_actions_anonymous_perc=100-m.user_actions_registered_perc - m.user_actions_panel=recdb["user_action"].count_documents({**query, **{"source.root.type":"recommendation_panel"}}) - m.user_actions_panel_perc=round(m.user_actions_panel*100.0/m.user_actions,2) + #m.user_actions_order=recdb["user_action"].count_documents({**query, **{"action.order":True}}) + #m.user_actions_order_registered=recdb["user_action"].count_documents({**query, **{"action.order":True,"user":{"$exists":True}}}) + #m.user_actions_order_anonymous=m.user_actions_order-m.user_actions_order_registered + #m.user_actions_order_registered_perc=round(m.user_actions_order_registered*100.0/m.user_actions_order,2) + #m.user_actions_order_anonymous_perc=100-m.user_actions_order_registered_perc - m.service_catalog=len(recdb["recommendation"].distinct("services", query)) + #m.user_actions_panel=recdb["user_action"].count_documents({**query, **{"source.root.type":"recommendation_panel"}}) + #m.user_actions_panel_perc=round(m.user_actions_panel*100.0/m.user_actions,2) # catalog coverage - m.service_catalog_perc=round(m.service_catalog*100.0/m.services,2) + #m.service_catalog=len(recdb["recommendation"].distinct("services", query)) + #m.service_catalog_perc=round(m.service_catalog*100.0/m.services,2) # user coverage - m.user_catalog=len(recdb["user_action"].distinct("user", query)) - m.user_catalog_perc=round(m.user_catalog*100.0/m.users,2) + #m.user_catalog=len(recdb["user_action"].distinct("user", query)) + #m.user_catalog_perc=round(m.user_catalog*100.0/m.users,2) jsonstr = json.dumps(m.__dict__) print(jsonstr) From 2b05222be08ce9c936c21af8e0f5480515c201dd Mon Sep 17 00:00:00 2001 From: Nikolaos Triantafyllis Date: Fri, 13 May 2022 12:45:00 +0300 Subject: [PATCH 14/89] Pre-metrics have been encapsulated in functions and appended with description (see REC-24) [Missing pre_metrics.py file added] --- pre_metrics.py | 227 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 227 insertions(+) create mode 100644 pre_metrics.py diff --git a/pre_metrics.py b/pre_metrics.py new file mode 100644 index 0000000..668b805 --- /dev/null +++ b/pre_metrics.py @@ -0,0 +1,227 @@ +#!/usr/bin/env python3 +import pandas as pd +import numpy as np + + +class Runtime: + def __init__(self): + self.query={} + self.recdb=None + self.config=None + +# decorator to add the text attribute to function +def doc(r): + def wrapper(f): + f.text = r + return f + return wrapper + + +# Pre Metrics + + +@doc('The initial date where metrics are calculated on') +def start(object): + """ + Calculate the start date where metrics are calculated on + found in min value between source object user_action + and recommendation + """ + ua_start=object.recdb["user_action"].find_one(object.query,sort=[("timestamp", 1)])["timestamp"] + rec_start=object.recdb["recommendation"].find_one(object.query,sort=[("timestamp", 1)])["timestamp"] + + return str(min(ua_start, rec_start)) + + +@doc('The final date where metrics are calculated on') +def end(object): + """ + Calculate the end date where metrics are calculated on + found in max value between source object user_action + and recommendation + """ + ua_end=object.recdb["user_action"].find_one(object.query,sort=[("timestamp", -1)])["timestamp"] + rec_end=object.recdb["recommendation"].find_one(object.query,sort=[("timestamp", -1)])["timestamp"] + return str(max(ua_end, rec_end)) + + +@doc('The total number of unique users found in source') +def users(object): + """ + Calculate the total number of unique users + found in source object + """ + return object.recdb["user"].count_documents({}) + + +@doc('The total number of unique services found in source (default to published only)') +def services(object): + """ + Calculate the total number of unique services + found in source object (default to published only) + """ + if object.config['Service']['published']: + return object.recdb["service"].count_documents({"status":"published"}) + else: + return object.recdb["service"].count_documents({}) + + +@doc('The total number of recommendations found in source') +def recommendations(object): + """ + Calculate the total number of recommendations + found in source object + """ + return object.recdb["recommendation"].count_documents(object.query) + + +@doc('The total number of user actions found in source') +def user_actions(object): + """ + Calculate the total number of user_actions + found in source object + """ + return object.recdb["user_action"].count_documents(object.query) + + +@doc('The total number of user actions occurred by registered users found in source') +def user_actions_registered(object): + """ + Calculate the total number of user_actions occurred by registered users + found in source object + """ + return object.recdb["user_action"].count_documents({**object.query,**{"user":{"$exists":True}}}) + + +@doc('The total number of user actions occurred by anonymous users found in source') +def user_actions_anonymous(object): + """ + Calculate the total number of user_actions occurred by anonymous users + found in source object + """ + return user_actions(object)-user_actions_registered(object) + + +@doc('The percentage (%) of user actions occurred by registered users to the total user actions') +def user_actions_registered_perc(object): + """ + Calculate the percentage (%) of user actions occurred + by registered users to the total user actions + found in source object user_actions (in two decimals) + """ + return round(user_actions_registered(object)*100.0/user_actions(object),2) + + +@doc('The percentage (%) of user actions occurred by anonymous users to the total user actions') +def user_actions_anonymous_perc(object): + """ + Calculate the percentage (%) of user actions occurred + by anonymous users to the total user actions + found in source object user_actions (in two decimals) + """ + return round(100.0-user_actions_registered_perc(object),2) + + +@doc('The total number of user actions led to order found in source') +def user_actions_order(object): + """ + Calculate the total number of user_actions led to order + found in source object user_actions + """ + return object.recdb["user_action"].count_documents({**object.query, **{"action.order":True}}) + + +@doc('The total number of user actions led to order by registered users found in source') +def user_actions_order_registered(object): + """ + Calculate the total number of user_actions led to order by registered users + found in source object user_actions + """ + return object.recdb["user_action"].count_documents({**object.query, **{"action.order":True,"user":{"$exists":True}}}) + + +@doc('The total number of user actions led to order by anonymous users found in source') +def user_actions_order_anonymous(object): + """ + Calculate the total number of user_actions led to order by anonymous users + found in source object user_actions + """ + return user_actions_order(object)-user_actions_order_registered(object) + + +@doc('The percentage (%) of user actions occurred by registered users and led to order to the total user actions that led to order') +def user_actions_order_registered_perc(object): + """ + Calculate the percentage (%) of user actions occurred + by registered users and led to order to the total user actions that led to order + found in source object user_actions (in two decimals) + """ + return round(user_actions_order_registered(object)*100.0/user_actions_order(object),2) + + +@doc('The percentage (%) of user actions occurred by anonymous users and led to order to the total user actions that led to order') +def user_actions_order_anonymous_perc(object): + """ + Calculate the percentage (%) of user actions occurred + by anonymous users and led to order to the total user actions that led to order + found in source object user_actions (in two decimals) + """ + return round(100.0-user_actions_order_registered_perc(object),2) + + +@doc('The total number of user actions assosicated with the recommendation panel found in source') +def user_actions_panel(object): + """ + Calculate the total number of user_actions assosicated with the recommendation panel + found in source object user_actions + """ + return object.recdb["user_action"].count_documents({**object.query, **{"source.root.type":"recommendation_panel"}}) + + +@doc('The percentage (%) of user actions assosicated with the recommendation panel to the total user actions') +def user_actions_panel_perc(object): + """ + Calculate the percentage (%) of user actions assosicated with + the recommendation panel to the total user actions + found in source object user_actions (in two decimals) + """ + return round(user_actions_panel(object)*100.0/user_actions(object),2) + + +@doc('The total number of unique services found in source') +def catalog_coverage(object): + """ + Calculate the total number of unique services + found in recommendations.csv + """ + return len(object.recdb["recommendation"].distinct("services", object.query)) + + +@doc('The percentage (%) of unique services found in recommedations.csv to the total number of services (provided or found otherwise in source)') +def catalog_coverage_perc(object): + """ + Calculate the percentage (%) of unique services + found in source + """ + return round(catalog_coverage(object)*100.0/services(object),2) + + +@doc('The total number of unique users found in recommendations.csv') +def user_coverage(object): + """ + Calculate the total number of unique users + found in source + """ + return len(object.recdb["user_action"].distinct("user", object.query)) + + +@doc('The percentage (%) of unique users found in recommedations.csv to the total number of users (provided or found otherwise in source)') +def user_coverage_perc(object): + """ + Calculate the percentage (%) of unique users + found in source to the total number + of users + """ + return round(user_coverage(object)*100.0/users(object),2) + + From ba71c5afc8998965d6e6ea22c92647672100cc07 Mon Sep 17 00:00:00 2001 From: Nikolaos Triantafyllis Date: Fri, 13 May 2022 14:47:58 +0300 Subject: [PATCH 15/89] Bug-Fix in user_coverage calculation --- config.yaml | 2 +- pre_metrics.py | 30 +++++++++++++++--------------- preprocessor.py | 22 ---------------------- 3 files changed, 16 insertions(+), 38 deletions(-) diff --git a/config.yaml b/config.yaml index 5b4eb8e..77590d5 100644 --- a/config.yaml +++ b/config.yaml @@ -12,7 +12,7 @@ Service: # if true it keeps only published, otherwise all # this has an effect in exporting when from is set to 'source' # and also in metrics calculations where service is considered - published: true + published: false # Use the EOSC-Marketplace webpage # to associate page_id and service_id diff --git a/pre_metrics.py b/pre_metrics.py index 668b805..943761b 100644 --- a/pre_metrics.py +++ b/pre_metrics.py @@ -45,7 +45,7 @@ def end(object): return str(max(ua_end, rec_end)) -@doc('The total number of unique users found in source') +@doc('The total number of unique users found in users of the source') def users(object): """ Calculate the total number of unique users @@ -54,7 +54,7 @@ def users(object): return object.recdb["user"].count_documents({}) -@doc('The total number of unique services found in source (default to published only)') +@doc('The total number of unique services found in services of the source') def services(object): """ Calculate the total number of unique services @@ -66,7 +66,7 @@ def services(object): return object.recdb["service"].count_documents({}) -@doc('The total number of recommendations found in source') +@doc('The total number of recommendations found in recommendations of the source') def recommendations(object): """ Calculate the total number of recommendations @@ -75,7 +75,7 @@ def recommendations(object): return object.recdb["recommendation"].count_documents(object.query) -@doc('The total number of user actions found in source') +@doc('The total number of user actions found in user actions of the source') def user_actions(object): """ Calculate the total number of user_actions @@ -84,7 +84,7 @@ def user_actions(object): return object.recdb["user_action"].count_documents(object.query) -@doc('The total number of user actions occurred by registered users found in source') +@doc('The total number of user actions occurred by registered users found in user actions of the source') def user_actions_registered(object): """ Calculate the total number of user_actions occurred by registered users @@ -93,7 +93,7 @@ def user_actions_registered(object): return object.recdb["user_action"].count_documents({**object.query,**{"user":{"$exists":True}}}) -@doc('The total number of user actions occurred by anonymous users found in source') +@doc('The total number of user actions occurred by anonymous users found in user actions of the source') def user_actions_anonymous(object): """ Calculate the total number of user_actions occurred by anonymous users @@ -122,7 +122,7 @@ def user_actions_anonymous_perc(object): return round(100.0-user_actions_registered_perc(object),2) -@doc('The total number of user actions led to order found in source') +@doc('The total number of user actions led to order found in user actions of the source') def user_actions_order(object): """ Calculate the total number of user_actions led to order @@ -131,7 +131,7 @@ def user_actions_order(object): return object.recdb["user_action"].count_documents({**object.query, **{"action.order":True}}) -@doc('The total number of user actions led to order by registered users found in source') +@doc('The total number of user actions led to order by registered users found in user actions of the source') def user_actions_order_registered(object): """ Calculate the total number of user_actions led to order by registered users @@ -140,7 +140,7 @@ def user_actions_order_registered(object): return object.recdb["user_action"].count_documents({**object.query, **{"action.order":True,"user":{"$exists":True}}}) -@doc('The total number of user actions led to order by anonymous users found in source') +@doc('The total number of user actions led to order by anonymous users found in user actions of the source') def user_actions_order_anonymous(object): """ Calculate the total number of user_actions led to order by anonymous users @@ -169,7 +169,7 @@ def user_actions_order_anonymous_perc(object): return round(100.0-user_actions_order_registered_perc(object),2) -@doc('The total number of user actions assosicated with the recommendation panel found in source') +@doc('The total number of user actions assosicated with the recommendation panel found in user actions of the source') def user_actions_panel(object): """ Calculate the total number of user_actions assosicated with the recommendation panel @@ -188,7 +188,7 @@ def user_actions_panel_perc(object): return round(user_actions_panel(object)*100.0/user_actions(object),2) -@doc('The total number of unique services found in source') +@doc('The total number of unique services found in recommendations of the source') def catalog_coverage(object): """ Calculate the total number of unique services @@ -197,7 +197,7 @@ def catalog_coverage(object): return len(object.recdb["recommendation"].distinct("services", object.query)) -@doc('The percentage (%) of unique services found in recommedations.csv to the total number of services (provided or found otherwise in source)') +@doc('The percentage (%) of unique services found in recommedations of the source to the total number of services (provided or found otherwise in source)') def catalog_coverage_perc(object): """ Calculate the percentage (%) of unique services @@ -206,16 +206,16 @@ def catalog_coverage_perc(object): return round(catalog_coverage(object)*100.0/services(object),2) -@doc('The total number of unique users found in recommendations.csv') +@doc('The total number of unique users found in recommendations of the source') def user_coverage(object): """ Calculate the total number of unique users found in source """ - return len(object.recdb["user_action"].distinct("user", object.query)) + return len(object.recdb["recommendation"].distinct("user", object.query)) -@doc('The percentage (%) of unique users found in recommedations.csv to the total number of users (provided or found otherwise in source)') +@doc('The percentage (%) of unique users found in recommedations of the source to the total number of users (provided or found otherwise in source)') def user_coverage_perc(object): """ Calculate the percentage (%) of unique users diff --git a/preprocessor.py b/preprocessor.py index 99d8cce..a37c785 100755 --- a/preprocessor.py +++ b/preprocessor.py @@ -291,22 +291,6 @@ def __init__(self, source_page_id, target_page_id, order): with open(os.path.join(args.output,'pre_metrics.json'), 'w') as outfile: outfile.write(jsonstr) - - - - - - - - - - - - import sys - sys.exit(0) - - - #m.timestamp=str(datetime.utcnow()) #m.users=recdb["user"].count_documents({}) @@ -342,9 +326,3 @@ def __init__(self, source_page_id, target_page_id, order): #m.user_catalog=len(recdb["user_action"].distinct("user", query)) #m.user_catalog_perc=round(m.user_catalog*100.0/m.users,2) - jsonstr = json.dumps(m.__dict__) - print(jsonstr) - - # Using a JSON string - with open(os.path.join(args.output,'pre_metrics.json'), 'w') as outfile: - outfile.write(jsonstr) From d94af93da24ff4bd23013e21a4e824bc21a8345f Mon Sep 17 00:00:00 2001 From: Nikolaos Triantafyllis Date: Fri, 13 May 2022 15:51:47 +0300 Subject: [PATCH 16/89] default to publish --- config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config.yaml b/config.yaml index 77590d5..5b4eb8e 100644 --- a/config.yaml +++ b/config.yaml @@ -12,7 +12,7 @@ Service: # if true it keeps only published, otherwise all # this has an effect in exporting when from is set to 'source' # and also in metrics calculations where service is considered - published: false + published: true # Use the EOSC-Marketplace webpage # to associate page_id and service_id From ed3933f79ed3e63a8be16c484673709ff1d90c6d Mon Sep 17 00:00:00 2001 From: Nikolaos Triantafyllis Date: Fri, 13 May 2022 17:31:47 +0300 Subject: [PATCH 17/89] Resolving ticket REC-36 for Consistency between users/services in user_actions/recommendations --- rsmetrics.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/rsmetrics.py b/rsmetrics.py index d5a3fbb..1c3b658 100755 --- a/rsmetrics.py +++ b/rsmetrics.py @@ -80,7 +80,7 @@ def inner(): run.user_actions['Timestamp']= pd.to_datetime(run.user_actions['Timestamp']) run.recommendations['Timestamp']= pd.to_datetime(run.recommendations['Timestamp']) -# restrict data to datetime range +# restrict user actions and recommendations data to datetime range if args.starttime: run.user_actions=run.user_actions[(run.user_actions['Timestamp'] > args.starttime) & (run.user_actions['Timestamp'] < args.endtime)] run.recommendations=run.recommendations[(run.recommendations['Timestamp'] > args.starttime) & (run.recommendations['Timestamp'] < args.endtime)] @@ -98,6 +98,17 @@ def inner(): if args.services: run.services=pd.read_csv(os.path.join(args.input,'services.csv'),names=["Service"]) +# remove user actions when user or service does not exist in users' or services' catalogs +# adding -1 in all catalogs indicating the anonynoums users or not-known services +run.user_actions = run.user_actions[run.user_actions['User'].isin(run.users['User'].tolist()+[-1])] +run.user_actions = run.user_actions[run.user_actions['Source_Service'].isin(run.services['Service'].tolist()+[-1])] +run.user_actions = run.user_actions[run.user_actions['Target_Service'].isin(run.services['Service'].tolist()+[-1])] + +# remove recommendations when user or service does not exist in users' or services' catalogs +# adding -1 in all catalogs indicating the anonynoums users or not-known services +run.recommendations = run.recommendations[run.recommendations['User'].isin(run.users['User'].tolist()+[-1])] +run.recommendations = run.recommendations[run.recommendations['Service'].isin(run.services['Service'].tolist()+[-1])] + md={'timestamp':str(datetime.utcnow())} From d69efc4a044ed4c75d398016df692a728d7789f6 Mon Sep 17 00:00:00 2001 From: Nikolaos Triantafyllis Date: Fri, 13 May 2022 17:36:45 +0300 Subject: [PATCH 18/89] RSmetrics typical usage added --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 28edea0..9e92bb1 100644 --- a/README.md +++ b/README.md @@ -68,7 +68,7 @@ optional arguments:

-9. Run from terminal: `./rsmetrics.py` to run RSmetrics +9. Run from terminal: `./rsmetrics.py --users --services` to run RSmetrics and include the users.csv and services.csv files genrated by the Preprocessor ```bash _____ _____ _ _ | __ \ / ____| | | (_) From 1c9e4f148fe78628d025467c791b864832d6b7f9 Mon Sep 17 00:00:00 2001 From: Nikolaos Triantafyllis Date: Fri, 13 May 2022 17:37:35 +0300 Subject: [PATCH 19/89] RSmetrics typical usage added (fix) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9e92bb1..e04a175 100644 --- a/README.md +++ b/README.md @@ -68,7 +68,7 @@ optional arguments:

-9. Run from terminal: `./rsmetrics.py --users --services` to run RSmetrics and include the users.csv and services.csv files genrated by the Preprocessor +9. Run from terminal: `./rsmetrics.py --users --services` to run RSmetrics and include the `users.csv` and `services.csv` files generated by the Preprocessor ```bash _____ _____ _ _ | __ \ / ____| | | (_) From 62160b0970d4b5991e8ec8e4fcf38efc00f40c08 Mon Sep 17 00:00:00 2001 From: Nikolaos Triantafyllis Date: Fri, 13 May 2022 17:39:50 +0300 Subject: [PATCH 20/89] RSmetrics typical usage added (fix config) --- README.md | 34 +++++++++++++++++++++++++++++----- 1 file changed, 29 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index e04a175..bbdde53 100644 --- a/README.md +++ b/README.md @@ -61,12 +61,36 @@ optional arguments: ``` 8. Configure `./preprocessor.py` by editting the `config.yaml` or providing another with `-c`: -

- - - -

+```yaml + +# Set the desired connector (e.g. MongoDB) +Source: + MongoDB: + host: localhost + port: 27017 + db: recommender_dev + +User: + export: true +Service: + # if true it keeps only published, otherwise all + # this has an effect in exporting when from is set to 'source' + # and also in metrics calculations where service is considered + published: true + + # Use the EOSC-Marketplace webpage + # to associate page_id and service_id + download: true + path: ./page_map + + export: true + from: 'page_map' # or 'source' + +# Calculate source's metrics +Metrics: true + +``` 9. Run from terminal: `./rsmetrics.py --users --services` to run RSmetrics and include the `users.csv` and `services.csv` files generated by the Preprocessor ```bash From b8db5db0c8e538073331bec3c96bbcaa212bb45d Mon Sep 17 00:00:00 2001 From: Nikolaos Triantafyllis Date: Fri, 13 May 2022 18:32:00 +0300 Subject: [PATCH 21/89] Resolving ticket REC-36 for Consistency between users/services in user_actions/recommendations. Counting no appearance of user in recommendations as an anonymous user; thus +1 in user_coverage --- pre_metrics.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pre_metrics.py b/pre_metrics.py index 943761b..c24acf8 100644 --- a/pre_metrics.py +++ b/pre_metrics.py @@ -212,6 +212,10 @@ def user_coverage(object): Calculate the total number of unique users found in source """ + # count also anonymous user as a user + anonymous=object.recdb["recommendation"].find_one({'user':None}) + if anonymous: + return len(object.recdb["recommendation"].distinct("user", object.query))+1 return len(object.recdb["recommendation"].distinct("user", object.query)) From f919b0a0ad057781482e56bdd73c4f6132950d62 Mon Sep 17 00:00:00 2001 From: Nikolaos Triantafyllis Date: Tue, 24 May 2022 00:03:29 +0300 Subject: [PATCH 22/89] Adding new metrics: recommendations_registered, recommendations_anonymous with their percentages too --- metrics.py | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/metrics.py b/metrics.py index bbee950..73a482f 100644 --- a/metrics.py +++ b/metrics.py @@ -73,6 +73,43 @@ def recommendations(object): """ return len(object.recommendations.index) +@doc('The total number of recommendations for registered users found in recommendations.csv') +def recommendations_registered(object): + """ + Calculate the total number of recommendations for registered users + found in Pandas DataFrame object recommendations + """ + return len(object.recommendations[object.recommendations['User'] != -1].index) + + +@doc('The total number of recommendations for anonymous users found in recommendations.csv') +def recommendations_anonymous(object): + """ + Calculate the total number of recommendations for anonymous users + found in Pandas DataFrame object recommendations + """ + return recommendations(object)-recommendations_registered(object) + + +@doc('The percentage (%) of recommendations for registered users to the total recommendations') +def recommendations_registered_perc(object): + """ + Calculate the percentage (%) of recommendations occurred + by registered users to the total recommendations + found in Pandas DataFrame object recommendations (in two decimals) + """ + return round(recommendations_registered(object)*100.0/recommendations(object),2) + + +@doc('The percentage (%) of recommendations for anonymous users to the total recommendations') +def recommendations_anonymous_perc(object): + """ + Calculate the percentage (%) of recommendations occurred + by anonymous users to the total recommendations + found in Pandas DataFrame object recommendations (in two decimals) + """ + return round(100.0-recommendations_registered_perc(object),2) + @doc('The total number of user actions found in user_actions.csv') def user_actions(object): From 1e3af3dd65a1930c2b936a89832cb62e33ea1231 Mon Sep 17 00:00:00 2001 From: Nikolaos Triantafyllis Date: Tue, 24 May 2022 00:13:06 +0300 Subject: [PATCH 23/89] Adding new metrics in Preprocessor: recommendations_registered, recommendations_anonymous with their percentages too --- pre_metrics.py | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/pre_metrics.py b/pre_metrics.py index c24acf8..264185f 100644 --- a/pre_metrics.py +++ b/pre_metrics.py @@ -74,6 +74,43 @@ def recommendations(object): """ return object.recdb["recommendation"].count_documents(object.query) +@doc('The total number of recommendations for registered users found in recommendations.csv') +def recommendations_registered(object): + """ + Calculate the total number of recommendations for registered users + found in Pandas DataFrame object recommendations + """ + return object.recdb["recommendation"].count_documents({**object.query,**{"user":{"$exists":True}}}) + + +@doc('The total number of recommendations for anonymous users found in recommendations.csv') +def recommendations_anonymous(object): + """ + Calculate the total number of recommendations for anonymous users + found in Pandas DataFrame object recommendations + """ + return recommendations(object)-recommendations_registered(object) + + +@doc('The percentage (%) of recommendations for registered users to the total recommendations') +def recommendations_registered_perc(object): + """ + Calculate the percentage (%) of recommendations occurred + by registered users to the total recommendations + found in Pandas DataFrame object recommendations (in two decimals) + """ + return round(recommendations_registered(object)*100.0/recommendations(object),2) + + +@doc('The percentage (%) of recommendations for anonymous users to the total recommendations') +def recommendations_anonymous_perc(object): + """ + Calculate the percentage (%) of recommendations occurred + by anonymous users to the total recommendations + found in Pandas DataFrame object recommendations (in two decimals) + """ + return round(100.0-recommendations_registered_perc(object),2) + @doc('The total number of user actions found in user actions of the source') def user_actions(object): From 36431b8002a9754fd9137adc02b2463e66771458 Mon Sep 17 00:00:00 2001 From: Nikolaos Triantafyllis Date: Tue, 24 May 2022 00:25:03 +0300 Subject: [PATCH 24/89] Removing user and service catalog metrics from Preprocessor (REC-45) --- pre_metrics.py | 78 +++++++++++++++++++++++++------------------------- 1 file changed, 39 insertions(+), 39 deletions(-) diff --git a/pre_metrics.py b/pre_metrics.py index 264185f..f75ef35 100644 --- a/pre_metrics.py +++ b/pre_metrics.py @@ -225,44 +225,44 @@ def user_actions_panel_perc(object): return round(user_actions_panel(object)*100.0/user_actions(object),2) -@doc('The total number of unique services found in recommendations of the source') -def catalog_coverage(object): - """ - Calculate the total number of unique services - found in recommendations.csv - """ - return len(object.recdb["recommendation"].distinct("services", object.query)) - - -@doc('The percentage (%) of unique services found in recommedations of the source to the total number of services (provided or found otherwise in source)') -def catalog_coverage_perc(object): - """ - Calculate the percentage (%) of unique services - found in source - """ - return round(catalog_coverage(object)*100.0/services(object),2) - - -@doc('The total number of unique users found in recommendations of the source') -def user_coverage(object): - """ - Calculate the total number of unique users - found in source - """ - # count also anonymous user as a user - anonymous=object.recdb["recommendation"].find_one({'user':None}) - if anonymous: - return len(object.recdb["recommendation"].distinct("user", object.query))+1 - return len(object.recdb["recommendation"].distinct("user", object.query)) - - -@doc('The percentage (%) of unique users found in recommedations of the source to the total number of users (provided or found otherwise in source)') -def user_coverage_perc(object): - """ - Calculate the percentage (%) of unique users - found in source to the total number - of users - """ - return round(user_coverage(object)*100.0/users(object),2) +#@doc('The total number of unique services found in recommendations of the source') +#def catalog_coverage(object): +# """ +# Calculate the total number of unique services +# found in recommendations.csv +# """ +# return len(object.recdb["recommendation"].distinct("services", object.query)) + + +#@doc('The percentage (%) of unique services found in recommedations of the source to the total number of services (provided or found otherwise in source)') +#def catalog_coverage_perc(object): +# """ +# Calculate the percentage (%) of unique services +# found in source +# """ +# return round(catalog_coverage(object)*100.0/services(object),2) + + +#@doc('The total number of unique users found in recommendations of the source') +#def user_coverage(object): +# """ +# Calculate the total number of unique users +# found in source +# """ +# # count also anonymous user as a user +# anonymous=object.recdb["recommendation"].find_one({'user':None}) +# if anonymous: +# return len(object.recdb["recommendation"].distinct("user", object.query))+1 +# return len(object.recdb["recommendation"].distinct("user", object.query)) + + +#@doc('The percentage (%) of unique users found in recommedations of the source to the total number of users (provided or found otherwise in source)') +#def user_coverage_perc(object): +# """ +# Calculate the percentage (%) of unique users +# found in source to the total number +# of users +# """ +# return round(user_coverage(object)*100.0/users(object),2) From 1ede7f2a05f879488567b33644e33b49c6b55e42 Mon Sep 17 00:00:00 2001 From: Nikolaos Triantafyllis Date: Thu, 12 May 2022 20:27:21 +0300 Subject: [PATCH 25/89] Pre-metrics have been encapsulated in functions and appended with description (see REC-24) Pre-metrics have been encapsulated in functions and appended with description (see REC-24) [Missing pre_metrics.py file added] Bug-Fix in user_coverage calculation services' selection in configuration is set to publish by default --- pre_metrics.py | 227 ++++++++++++++++++++++++++++++++++++++++++++++++ preprocessor.py | 88 +++++++++++-------- 2 files changed, 280 insertions(+), 35 deletions(-) create mode 100644 pre_metrics.py diff --git a/pre_metrics.py b/pre_metrics.py new file mode 100644 index 0000000..943761b --- /dev/null +++ b/pre_metrics.py @@ -0,0 +1,227 @@ +#!/usr/bin/env python3 +import pandas as pd +import numpy as np + + +class Runtime: + def __init__(self): + self.query={} + self.recdb=None + self.config=None + +# decorator to add the text attribute to function +def doc(r): + def wrapper(f): + f.text = r + return f + return wrapper + + +# Pre Metrics + + +@doc('The initial date where metrics are calculated on') +def start(object): + """ + Calculate the start date where metrics are calculated on + found in min value between source object user_action + and recommendation + """ + ua_start=object.recdb["user_action"].find_one(object.query,sort=[("timestamp", 1)])["timestamp"] + rec_start=object.recdb["recommendation"].find_one(object.query,sort=[("timestamp", 1)])["timestamp"] + + return str(min(ua_start, rec_start)) + + +@doc('The final date where metrics are calculated on') +def end(object): + """ + Calculate the end date where metrics are calculated on + found in max value between source object user_action + and recommendation + """ + ua_end=object.recdb["user_action"].find_one(object.query,sort=[("timestamp", -1)])["timestamp"] + rec_end=object.recdb["recommendation"].find_one(object.query,sort=[("timestamp", -1)])["timestamp"] + return str(max(ua_end, rec_end)) + + +@doc('The total number of unique users found in users of the source') +def users(object): + """ + Calculate the total number of unique users + found in source object + """ + return object.recdb["user"].count_documents({}) + + +@doc('The total number of unique services found in services of the source') +def services(object): + """ + Calculate the total number of unique services + found in source object (default to published only) + """ + if object.config['Service']['published']: + return object.recdb["service"].count_documents({"status":"published"}) + else: + return object.recdb["service"].count_documents({}) + + +@doc('The total number of recommendations found in recommendations of the source') +def recommendations(object): + """ + Calculate the total number of recommendations + found in source object + """ + return object.recdb["recommendation"].count_documents(object.query) + + +@doc('The total number of user actions found in user actions of the source') +def user_actions(object): + """ + Calculate the total number of user_actions + found in source object + """ + return object.recdb["user_action"].count_documents(object.query) + + +@doc('The total number of user actions occurred by registered users found in user actions of the source') +def user_actions_registered(object): + """ + Calculate the total number of user_actions occurred by registered users + found in source object + """ + return object.recdb["user_action"].count_documents({**object.query,**{"user":{"$exists":True}}}) + + +@doc('The total number of user actions occurred by anonymous users found in user actions of the source') +def user_actions_anonymous(object): + """ + Calculate the total number of user_actions occurred by anonymous users + found in source object + """ + return user_actions(object)-user_actions_registered(object) + + +@doc('The percentage (%) of user actions occurred by registered users to the total user actions') +def user_actions_registered_perc(object): + """ + Calculate the percentage (%) of user actions occurred + by registered users to the total user actions + found in source object user_actions (in two decimals) + """ + return round(user_actions_registered(object)*100.0/user_actions(object),2) + + +@doc('The percentage (%) of user actions occurred by anonymous users to the total user actions') +def user_actions_anonymous_perc(object): + """ + Calculate the percentage (%) of user actions occurred + by anonymous users to the total user actions + found in source object user_actions (in two decimals) + """ + return round(100.0-user_actions_registered_perc(object),2) + + +@doc('The total number of user actions led to order found in user actions of the source') +def user_actions_order(object): + """ + Calculate the total number of user_actions led to order + found in source object user_actions + """ + return object.recdb["user_action"].count_documents({**object.query, **{"action.order":True}}) + + +@doc('The total number of user actions led to order by registered users found in user actions of the source') +def user_actions_order_registered(object): + """ + Calculate the total number of user_actions led to order by registered users + found in source object user_actions + """ + return object.recdb["user_action"].count_documents({**object.query, **{"action.order":True,"user":{"$exists":True}}}) + + +@doc('The total number of user actions led to order by anonymous users found in user actions of the source') +def user_actions_order_anonymous(object): + """ + Calculate the total number of user_actions led to order by anonymous users + found in source object user_actions + """ + return user_actions_order(object)-user_actions_order_registered(object) + + +@doc('The percentage (%) of user actions occurred by registered users and led to order to the total user actions that led to order') +def user_actions_order_registered_perc(object): + """ + Calculate the percentage (%) of user actions occurred + by registered users and led to order to the total user actions that led to order + found in source object user_actions (in two decimals) + """ + return round(user_actions_order_registered(object)*100.0/user_actions_order(object),2) + + +@doc('The percentage (%) of user actions occurred by anonymous users and led to order to the total user actions that led to order') +def user_actions_order_anonymous_perc(object): + """ + Calculate the percentage (%) of user actions occurred + by anonymous users and led to order to the total user actions that led to order + found in source object user_actions (in two decimals) + """ + return round(100.0-user_actions_order_registered_perc(object),2) + + +@doc('The total number of user actions assosicated with the recommendation panel found in user actions of the source') +def user_actions_panel(object): + """ + Calculate the total number of user_actions assosicated with the recommendation panel + found in source object user_actions + """ + return object.recdb["user_action"].count_documents({**object.query, **{"source.root.type":"recommendation_panel"}}) + + +@doc('The percentage (%) of user actions assosicated with the recommendation panel to the total user actions') +def user_actions_panel_perc(object): + """ + Calculate the percentage (%) of user actions assosicated with + the recommendation panel to the total user actions + found in source object user_actions (in two decimals) + """ + return round(user_actions_panel(object)*100.0/user_actions(object),2) + + +@doc('The total number of unique services found in recommendations of the source') +def catalog_coverage(object): + """ + Calculate the total number of unique services + found in recommendations.csv + """ + return len(object.recdb["recommendation"].distinct("services", object.query)) + + +@doc('The percentage (%) of unique services found in recommedations of the source to the total number of services (provided or found otherwise in source)') +def catalog_coverage_perc(object): + """ + Calculate the percentage (%) of unique services + found in source + """ + return round(catalog_coverage(object)*100.0/services(object),2) + + +@doc('The total number of unique users found in recommendations of the source') +def user_coverage(object): + """ + Calculate the total number of unique users + found in source + """ + return len(object.recdb["recommendation"].distinct("user", object.query)) + + +@doc('The percentage (%) of unique users found in recommedations of the source to the total number of users (provided or found otherwise in source)') +def user_coverage_perc(object): + """ + Calculate the percentage (%) of unique users + found in source to the total number + of users + """ + return round(user_coverage(object)*100.0/users(object),2) + + diff --git a/preprocessor.py b/preprocessor.py index 0648e3d..a37c785 100755 --- a/preprocessor.py +++ b/preprocessor.py @@ -8,8 +8,11 @@ from natsort import natsorted import natsort as ns import pandas as pd +from inspect import getmembers, isfunction import retrieval +# local lib +import pre_metrics as pm import reward_mapping as rm from get_service_catalog import get_eosc_marketplace_url, get_service_catalog_items, get_service_catalog_page_content, save_service_items_to_csv @@ -258,53 +261,68 @@ def __init__(self, source_page_id, target_page_id, order): # calculate pre metrics if config['Metrics']: - m.timestamp=str(datetime.utcnow()) + run=pm.Runtime() + run.recdb=recdb + run.query=query + run.config=config - ua_start=recdb["user_action"].find_one(query,sort=[("timestamp", 1)])["timestamp"] - ua_end=recdb["user_action"].find_one(query,sort=[("timestamp", -1)])["timestamp"] - rec_start=recdb["recommendation"].find_one(query,sort=[("timestamp", 1)])["timestamp"] - rec_end=recdb["recommendation"].find_one(query,sort=[("timestamp", -1)])["timestamp"] + md={'timestamp':str(datetime.utcnow())} - m.start=str(min(ua_start, rec_start)) - m.end=str(max(ua_end, rec_end)) + # get all functions found in pre_metrics module + # apart from 'doc' func + # run and save the result in dictionary + # where key is the name of the function + # and value what it returns + # whereas, for each found functions + # an extra key_doc element in dictionary is set + # to save the text of the function + funcs = list(map(lambda x: x[0], getmembers(pm, isfunction))) + funcs = list(filter(lambda x: not x=='doc',funcs)) + for func in funcs: + md[func+'_doc']=getattr(pm, func).text + md[func]=getattr(pm, func)(run) - m.users=recdb["user"].count_documents({}) - m.recommendations=recdb["recommendation"].count_documents(query) + jsonstr = json.dumps(md) - if config['Service']['published']: - m.services=recdb["service"].count_documents({"status":"published"}) - else: - m.services=recdb["service"].count_documents({}) + print(jsonstr) + + # Using a JSON string + with open(os.path.join(args.output,'pre_metrics.json'), 'w') as outfile: + outfile.write(jsonstr) + + #m.timestamp=str(datetime.utcnow()) + + #m.users=recdb["user"].count_documents({}) - m.user_actions=recdb["user_action"].count_documents(query) + #m.recommendations=recdb["recommendation"].count_documents(query) - m.user_actions_registered=recdb["user_action"].count_documents({**query,**{"user":{"$exists":True}}}) - m.user_actions_anonymous=m.user_actions-m.user_actions_registered - m.user_actions_registered_perc=round(m.user_actions_registered*100.0/m.user_actions,2) - m.user_actions_anonymous_perc=100-m.user_actions_registered_perc + #if config['Service']['published']: + # m.services=recdb["service"].count_documents({"status":"published"}) + #else: + # m.services=recdb["service"].count_documents({}) - m.user_actions_order=recdb["user_action"].count_documents({**query, **{"action.order":True}}) - m.user_actions_order_registered=recdb["user_action"].count_documents({**query, **{"action.order":True,"user":{"$exists":True}}}) - m.user_actions_order_anonymous=m.user_actions_order-m.user_actions_order_registered - m.user_actions_order_registered_perc=round(m.user_actions_order_registered*100.0/m.user_actions_order,2) - m.user_actions_order_anonymous_perc=100-m.user_actions_order_registered_perc + #m.user_actions=recdb["user_action"].count_documents(query) - m.user_actions_panel=recdb["user_action"].count_documents({**query, **{"source.root.type":"recommendation_panel"}}) - m.user_actions_panel_perc=round(m.user_actions_panel*100.0/m.user_actions,2) + #m.user_actions_registered=recdb["user_action"].count_documents({**query,**{"user":{"$exists":True}}}) + #m.user_actions_anonymous=m.user_actions-m.user_actions_registered + #m.user_actions_registered_perc=round(m.user_actions_registered*100.0/m.user_actions,2) + #m.user_actions_anonymous_perc=100-m.user_actions_registered_perc - m.service_catalog=len(recdb["recommendation"].distinct("services", query)) + #m.user_actions_order=recdb["user_action"].count_documents({**query, **{"action.order":True}}) + #m.user_actions_order_registered=recdb["user_action"].count_documents({**query, **{"action.order":True,"user":{"$exists":True}}}) + #m.user_actions_order_anonymous=m.user_actions_order-m.user_actions_order_registered + #m.user_actions_order_registered_perc=round(m.user_actions_order_registered*100.0/m.user_actions_order,2) + #m.user_actions_order_anonymous_perc=100-m.user_actions_order_registered_perc + + #m.user_actions_panel=recdb["user_action"].count_documents({**query, **{"source.root.type":"recommendation_panel"}}) + #m.user_actions_panel_perc=round(m.user_actions_panel*100.0/m.user_actions,2) # catalog coverage - m.service_catalog_perc=round(m.service_catalog*100.0/m.services,2) + #m.service_catalog=len(recdb["recommendation"].distinct("services", query)) + #m.service_catalog_perc=round(m.service_catalog*100.0/m.services,2) # user coverage - m.user_catalog=len(recdb["user_action"].distinct("user", query)) - m.user_catalog_perc=round(m.user_catalog*100.0/m.users,2) - - jsonstr = json.dumps(m.__dict__) - print(jsonstr) + #m.user_catalog=len(recdb["user_action"].distinct("user", query)) + #m.user_catalog_perc=round(m.user_catalog*100.0/m.users,2) - # Using a JSON string - with open(os.path.join(args.output,'pre_metrics.json'), 'w') as outfile: - outfile.write(jsonstr) From f18b94b8f68baecfcdab60c53dd446cd17dbd2f9 Mon Sep 17 00:00:00 2001 From: Nikolaos Triantafyllis Date: Fri, 13 May 2022 17:31:47 +0300 Subject: [PATCH 26/89] Resolving ticket REC-36 for Consistency between users/services in user_actions/recommendations RSmetrics typical usage added RSmetrics typical usage added (fix) RSmetrics typical usage added (fix config) Resolving ticket REC-36 for Consistency between users/services in user_actions/recommendations. Counting no appearance of user in recommendations as an anonymous user; thus +1 in user_coverage --- README.md | 36 ++++++++++++++++++++++++++++++------ pre_metrics.py | 4 ++++ rsmetrics.py | 13 ++++++++++++- 3 files changed, 46 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 28edea0..bbdde53 100644 --- a/README.md +++ b/README.md @@ -61,14 +61,38 @@ optional arguments: ``` 8. Configure `./preprocessor.py` by editting the `config.yaml` or providing another with `-c`: -

- - - -

+```yaml + +# Set the desired connector (e.g. MongoDB) +Source: + MongoDB: + host: localhost + port: 27017 + db: recommender_dev + +User: + export: true +Service: + # if true it keeps only published, otherwise all + # this has an effect in exporting when from is set to 'source' + # and also in metrics calculations where service is considered + published: true + + # Use the EOSC-Marketplace webpage + # to associate page_id and service_id + download: true + path: ./page_map + + export: true + from: 'page_map' # or 'source' + +# Calculate source's metrics +Metrics: true + +``` -9. Run from terminal: `./rsmetrics.py` to run RSmetrics +9. Run from terminal: `./rsmetrics.py --users --services` to run RSmetrics and include the `users.csv` and `services.csv` files generated by the Preprocessor ```bash _____ _____ _ _ | __ \ / ____| | | (_) diff --git a/pre_metrics.py b/pre_metrics.py index 943761b..c24acf8 100644 --- a/pre_metrics.py +++ b/pre_metrics.py @@ -212,6 +212,10 @@ def user_coverage(object): Calculate the total number of unique users found in source """ + # count also anonymous user as a user + anonymous=object.recdb["recommendation"].find_one({'user':None}) + if anonymous: + return len(object.recdb["recommendation"].distinct("user", object.query))+1 return len(object.recdb["recommendation"].distinct("user", object.query)) diff --git a/rsmetrics.py b/rsmetrics.py index d5a3fbb..1c3b658 100755 --- a/rsmetrics.py +++ b/rsmetrics.py @@ -80,7 +80,7 @@ def inner(): run.user_actions['Timestamp']= pd.to_datetime(run.user_actions['Timestamp']) run.recommendations['Timestamp']= pd.to_datetime(run.recommendations['Timestamp']) -# restrict data to datetime range +# restrict user actions and recommendations data to datetime range if args.starttime: run.user_actions=run.user_actions[(run.user_actions['Timestamp'] > args.starttime) & (run.user_actions['Timestamp'] < args.endtime)] run.recommendations=run.recommendations[(run.recommendations['Timestamp'] > args.starttime) & (run.recommendations['Timestamp'] < args.endtime)] @@ -98,6 +98,17 @@ def inner(): if args.services: run.services=pd.read_csv(os.path.join(args.input,'services.csv'),names=["Service"]) +# remove user actions when user or service does not exist in users' or services' catalogs +# adding -1 in all catalogs indicating the anonynoums users or not-known services +run.user_actions = run.user_actions[run.user_actions['User'].isin(run.users['User'].tolist()+[-1])] +run.user_actions = run.user_actions[run.user_actions['Source_Service'].isin(run.services['Service'].tolist()+[-1])] +run.user_actions = run.user_actions[run.user_actions['Target_Service'].isin(run.services['Service'].tolist()+[-1])] + +# remove recommendations when user or service does not exist in users' or services' catalogs +# adding -1 in all catalogs indicating the anonynoums users or not-known services +run.recommendations = run.recommendations[run.recommendations['User'].isin(run.users['User'].tolist()+[-1])] +run.recommendations = run.recommendations[run.recommendations['Service'].isin(run.services['Service'].tolist()+[-1])] + md={'timestamp':str(datetime.utcnow())} From 0781bd557eac05ea2a07b95f5fd9c884ee99dbe3 Mon Sep 17 00:00:00 2001 From: Nikolaos Triantafyllis Date: Tue, 24 May 2022 00:03:29 +0300 Subject: [PATCH 27/89] Adding new metrics in RSmetrics: recommendations_registered, recommendations_anonymous with their percentages too Adding new metrics in Preprocessor: recommendations_registered, recommendations_anonymous with their percentages too --- metrics.py | 37 +++++++++++++++++++++++++++++++++++++ pre_metrics.py | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 74 insertions(+) diff --git a/metrics.py b/metrics.py index bbee950..73a482f 100644 --- a/metrics.py +++ b/metrics.py @@ -73,6 +73,43 @@ def recommendations(object): """ return len(object.recommendations.index) +@doc('The total number of recommendations for registered users found in recommendations.csv') +def recommendations_registered(object): + """ + Calculate the total number of recommendations for registered users + found in Pandas DataFrame object recommendations + """ + return len(object.recommendations[object.recommendations['User'] != -1].index) + + +@doc('The total number of recommendations for anonymous users found in recommendations.csv') +def recommendations_anonymous(object): + """ + Calculate the total number of recommendations for anonymous users + found in Pandas DataFrame object recommendations + """ + return recommendations(object)-recommendations_registered(object) + + +@doc('The percentage (%) of recommendations for registered users to the total recommendations') +def recommendations_registered_perc(object): + """ + Calculate the percentage (%) of recommendations occurred + by registered users to the total recommendations + found in Pandas DataFrame object recommendations (in two decimals) + """ + return round(recommendations_registered(object)*100.0/recommendations(object),2) + + +@doc('The percentage (%) of recommendations for anonymous users to the total recommendations') +def recommendations_anonymous_perc(object): + """ + Calculate the percentage (%) of recommendations occurred + by anonymous users to the total recommendations + found in Pandas DataFrame object recommendations (in two decimals) + """ + return round(100.0-recommendations_registered_perc(object),2) + @doc('The total number of user actions found in user_actions.csv') def user_actions(object): diff --git a/pre_metrics.py b/pre_metrics.py index c24acf8..264185f 100644 --- a/pre_metrics.py +++ b/pre_metrics.py @@ -74,6 +74,43 @@ def recommendations(object): """ return object.recdb["recommendation"].count_documents(object.query) +@doc('The total number of recommendations for registered users found in recommendations.csv') +def recommendations_registered(object): + """ + Calculate the total number of recommendations for registered users + found in Pandas DataFrame object recommendations + """ + return object.recdb["recommendation"].count_documents({**object.query,**{"user":{"$exists":True}}}) + + +@doc('The total number of recommendations for anonymous users found in recommendations.csv') +def recommendations_anonymous(object): + """ + Calculate the total number of recommendations for anonymous users + found in Pandas DataFrame object recommendations + """ + return recommendations(object)-recommendations_registered(object) + + +@doc('The percentage (%) of recommendations for registered users to the total recommendations') +def recommendations_registered_perc(object): + """ + Calculate the percentage (%) of recommendations occurred + by registered users to the total recommendations + found in Pandas DataFrame object recommendations (in two decimals) + """ + return round(recommendations_registered(object)*100.0/recommendations(object),2) + + +@doc('The percentage (%) of recommendations for anonymous users to the total recommendations') +def recommendations_anonymous_perc(object): + """ + Calculate the percentage (%) of recommendations occurred + by anonymous users to the total recommendations + found in Pandas DataFrame object recommendations (in two decimals) + """ + return round(100.0-recommendations_registered_perc(object),2) + @doc('The total number of user actions found in user actions of the source') def user_actions(object): From 1281de866b9fd7002c81e85fffbb94b69bcb8a4b Mon Sep 17 00:00:00 2001 From: Nikolaos Triantafyllis Date: Wed, 25 May 2022 13:49:38 +0300 Subject: [PATCH 28/89] Remove comments --- pre_metrics.py | 42 ------------------------------------------ 1 file changed, 42 deletions(-) diff --git a/pre_metrics.py b/pre_metrics.py index f75ef35..5727282 100644 --- a/pre_metrics.py +++ b/pre_metrics.py @@ -224,45 +224,3 @@ def user_actions_panel_perc(object): """ return round(user_actions_panel(object)*100.0/user_actions(object),2) - -#@doc('The total number of unique services found in recommendations of the source') -#def catalog_coverage(object): -# """ -# Calculate the total number of unique services -# found in recommendations.csv -# """ -# return len(object.recdb["recommendation"].distinct("services", object.query)) - - -#@doc('The percentage (%) of unique services found in recommedations of the source to the total number of services (provided or found otherwise in source)') -#def catalog_coverage_perc(object): -# """ -# Calculate the percentage (%) of unique services -# found in source -# """ -# return round(catalog_coverage(object)*100.0/services(object),2) - - -#@doc('The total number of unique users found in recommendations of the source') -#def user_coverage(object): -# """ -# Calculate the total number of unique users -# found in source -# """ -# # count also anonymous user as a user -# anonymous=object.recdb["recommendation"].find_one({'user':None}) -# if anonymous: -# return len(object.recdb["recommendation"].distinct("user", object.query))+1 -# return len(object.recdb["recommendation"].distinct("user", object.query)) - - -#@doc('The percentage (%) of unique users found in recommedations of the source to the total number of users (provided or found otherwise in source)') -#def user_coverage_perc(object): -# """ -# Calculate the percentage (%) of unique users -# found in source to the total number -# of users -# """ -# return round(user_coverage(object)*100.0/users(object),2) - - From b605bb243ea280bd368f4d17a0667e50724c77cc Mon Sep 17 00:00:00 2001 From: Nikolaos Triantafyllis Date: Wed, 25 May 2022 13:50:49 +0300 Subject: [PATCH 29/89] Remove comments --- preprocessor.py | 36 ------------------------------------ 1 file changed, 36 deletions(-) diff --git a/preprocessor.py b/preprocessor.py index a37c785..47543b5 100755 --- a/preprocessor.py +++ b/preprocessor.py @@ -290,39 +290,3 @@ def __init__(self, source_page_id, target_page_id, order): # Using a JSON string with open(os.path.join(args.output,'pre_metrics.json'), 'w') as outfile: outfile.write(jsonstr) - - #m.timestamp=str(datetime.utcnow()) - - #m.users=recdb["user"].count_documents({}) - - #m.recommendations=recdb["recommendation"].count_documents(query) - - #if config['Service']['published']: - # m.services=recdb["service"].count_documents({"status":"published"}) - #else: - # m.services=recdb["service"].count_documents({}) - - #m.user_actions=recdb["user_action"].count_documents(query) - - #m.user_actions_registered=recdb["user_action"].count_documents({**query,**{"user":{"$exists":True}}}) - #m.user_actions_anonymous=m.user_actions-m.user_actions_registered - #m.user_actions_registered_perc=round(m.user_actions_registered*100.0/m.user_actions,2) - #m.user_actions_anonymous_perc=100-m.user_actions_registered_perc - - #m.user_actions_order=recdb["user_action"].count_documents({**query, **{"action.order":True}}) - #m.user_actions_order_registered=recdb["user_action"].count_documents({**query, **{"action.order":True,"user":{"$exists":True}}}) - #m.user_actions_order_anonymous=m.user_actions_order-m.user_actions_order_registered - #m.user_actions_order_registered_perc=round(m.user_actions_order_registered*100.0/m.user_actions_order,2) - #m.user_actions_order_anonymous_perc=100-m.user_actions_order_registered_perc - - #m.user_actions_panel=recdb["user_action"].count_documents({**query, **{"source.root.type":"recommendation_panel"}}) - #m.user_actions_panel_perc=round(m.user_actions_panel*100.0/m.user_actions,2) - - # catalog coverage - #m.service_catalog=len(recdb["recommendation"].distinct("services", query)) - #m.service_catalog_perc=round(m.service_catalog*100.0/m.services,2) - - # user coverage - #m.user_catalog=len(recdb["user_action"].distinct("user", query)) - #m.user_catalog_perc=round(m.user_catalog*100.0/m.users,2) - From 40b7948604947ec83a5da2554777271decdac5ad Mon Sep 17 00:00:00 2001 From: Konstantinos Kagkelidis Date: Wed, 18 May 2022 04:27:29 +0300 Subject: [PATCH 30/89] REC-46 Calculate hit-rate --- metrics.py | 44 +++++++++++++++++++++++++++++++++++++-- preprocessor.py | 13 +++++++++--- report.html.prototype | 30 ++++++++++++++++++++++++--- rsmetrics.py | 48 +++++++------------------------------------ 4 files changed, 86 insertions(+), 49 deletions(-) diff --git a/metrics.py b/metrics.py index 73a482f..c43c5c9 100644 --- a/metrics.py +++ b/metrics.py @@ -47,7 +47,7 @@ def users(object): or user_actions otherwise """ if isinstance(object.users, pd.DataFrame): - return int(object.users.nunique()['User']) + return int(object.users['User'].nunique()) else: return int(object.user_actions.nunique()['User']) @@ -261,4 +261,44 @@ def user_coverage_perc(object): """ return round(user_coverage(object)*100.0/users(object),2) - +@doc('The ratio of user hits divided by the total number of users (user hit: a user that has accessed at least one service that is also a personal recommendation)') +def hit_rate(object): + """ + For each user get the recommended services and the services the user accessed + Check if the user has at least one accessed service in recommendations. If yes increase number of hits by one + Divide by the total number of users + """ + users = object.users.values.tolist() + recs = object.recommendations.values.tolist() + # Fill lookup dictionary with all services recommender per user id + user_recs = dict() + for item in recs: + # skip anonymous users + if item == -1: + continue + user_id = item[0] + service_id = item[1] + if user_id in user_recs.keys(): + user_recs[user_id].append(service_id) + else: + user_recs[user_id] = [service_id] + + hits = 0 + # For each user in users check if his accessed services are in his recommendations + + for user in users: + user_id = user[0] + # create a set of unique accessed services by user + services = set(user[1]) + if user_id in user_recs.keys(): + # create a set of unique recommended services to the user + recommendations = set(user_recs.get(user_id)) + # intersection should include services that have been both accessed by and recommended to the user + intersection = services.intersection(recommendations) + # If the user has at least one service (both recommended and accessed), this user is considered a hit + if len(intersection) > 0: + hits = hits + 1 + + + + return round(hits/len(users),5) diff --git a/preprocessor.py b/preprocessor.py index 47543b5..58400e1 100755 --- a/preprocessor.py +++ b/preprocessor.py @@ -10,6 +10,7 @@ import pandas as pd from inspect import getmembers, isfunction import retrieval +import csv # local lib import pre_metrics as pm @@ -237,10 +238,16 @@ def __init__(self, source_page_id, target_page_id, order): # export user catalog if config['User']['export']: - us=natsorted(list(set(list(map(lambda x: str(x['_id'])+'\n',recdb["user"].find({}))))),alg=ns.ns.SIGNED) + # produce users csv with each user id along with the user's accessed services + # query users from database for fields _id and accessed_services then create a list of rows + # each rows contains two elements, first: user_id in string format and second: a space separated sorted list of accessed services + users = recdb['user'].find({},{'accessed_services':1}) + users = list(map(lambda x: [str(x['_id']), " ".join([str(service_id) for service_id in sorted(set(x['accessed_services']))])], users)) - with open(os.path.join(args.output,'users.csv'), 'w') as o: - o.writelines(us) + # save the users list of rows to a csv file + with open(os.path.join(args.output,'users.csv'), 'w') as f: + writer = csv.writer(f) + writer.writerows(users) # export service catalog if config['Service']['export']: diff --git a/report.html.prototype b/report.html.prototype index bc9e230..a001951 100644 --- a/report.html.prototype +++ b/report.html.prototype @@ -33,6 +33,17 @@ color: #FAC0E7; } +.card-hit-rate { + background-color: #6cae80; + color: #d9fac0; +} + +.card-footer{ + background-color: rgb(247,247,247,0.8); + color: black; + font-style: italic; +} + span { position: relative; } @@ -139,7 +150,7 @@ span:hover:before {

User Coverage: %

- +
@@ -147,7 +158,15 @@ span:hover:before {

Catalog Coverage: %

- + +
+ +
+
+
+

Hit Rate: %

+
+
@@ -171,7 +190,7 @@ span:hover:before { function fill(data){ // what to fill - let fill_list = ['users', 'recommendations', 'services', 'user_actions','user_actions_order', 'user_actions_registered', 'user_actions_anonymous', 'user_actions_order_registered', 'user_actions_order_anonymous', 'user_actions_registered_perc', 'user_actions_anonymous_perc', 'user_actions_order_registered_perc', 'user_actions_order_anonymous_perc', 'catalog_coverage_perc', 'user_coverage_perc', 'timestamp']; + let fill_list = ['users', 'recommendations', 'services', 'user_actions','user_actions_order', 'user_actions_registered', 'user_actions_anonymous', 'user_actions_order_registered', 'user_actions_order_anonymous', 'user_actions_registered_perc', 'user_actions_anonymous_perc', 'user_actions_order_registered_perc', 'user_actions_order_anonymous_perc', 'catalog_coverage_perc', 'user_coverage_perc', 'timestamp', 'hit_rate']; for (item of fill_list) { key = 'val_' + item @@ -179,6 +198,11 @@ function fill(data){ value_doc=data[item+'_doc'] document.getElementById(key).textContent = value document.getElementById(key).setAttribute('gloss', value_doc); + // Add ui footers with documentation string for some prominent metrics + let doc_el = document.getElementById('doc_'+item); + if (doc_el) { + doc_el.textContent=value_doc; + } } } diff --git a/rsmetrics.py b/rsmetrics.py index 1c3b658..56041f2 100755 --- a/rsmetrics.py +++ b/rsmetrics.py @@ -46,8 +46,8 @@ def inner(): optional.add_argument('-s', '--starttime', metavar=('DATETIME'), help='calculate metrics starting from given datetime in ISO format (UTC) e.g. YYYY-MM-DD', nargs='?', default=None) optional.add_argument('-e', '--endtime', metavar=('DATETIME'), help='calculate metrics ending to given datetime in ISO format (UTC) e.g. YYYY-MM-DD', nargs='?', default=None) -optional.add_argument('--users', help='enable reading total users from users.csv, otherwise it will be calculated according to the user actions', action='store_true', default=False) -optional.add_argument('--services', help='enable reading total services from services.csv, otherwise it will be calculated according to the user actions', action='store_true', default=False) + +optional.add_argument('--services', help='enable reading total services from services.csv, otherwise it will be calculated according to the user actions', action='store_true', default=True) optional.add_argument('-h', '--help', action='help', help='show this help message and exit') optional.add_argument('-v', '--version', action='version', version='%(prog)s v'+__version__) @@ -89,12 +89,11 @@ def inner(): run.user_actions=run.user_actions[run.user_actions['Timestamp'] < args.endtime] run.recommendations=run.recommendations[run.recommendations['Timestamp'] < args.endtime] -# populate users and services -# if no users or services provided use -# respective columns found in user_actions instead -if args.users: - run.users=pd.read_csv(os.path.join(args.input,'users.csv'),names=["User"]) +# users are populated with two columns: one includes user id and the other includes a list of accessed services +run.users=pd.read_csv(os.path.join(args.input,'users.csv'),names=["User","Services"],converters={'Services': lambda x: map(int,x.split())}) + +# populate services if args.services: run.services=pd.read_csv(os.path.join(args.input,'services.csv'),names=["Service"]) @@ -126,42 +125,9 @@ def inner(): md[func+'_doc']=getattr(m, func).text md[func]=getattr(m, func)(run) -# get uniq values per column of user actions -#uniq_uas=uas.nunique() -#uniq_recs=recs.nunique() - -#m.users=int(uniq_uas['User']) if not args.users else int(us['User'].nunique()) -#m.services=int(uniq_uas['Service']) if not args.services else int(ss['Service']) - -#m.recommendations=len(recs.index) -#m.user_actions=len(uas.index) - -#m.user_actions_registered=len(uas[uas['User'] != -1].index) -#m.user_actions_anonymous=m.user_actions-m.user_actions_registered - -#m.user_actions_registered_perc=round(m.user_actions_registered*100.0/m.user_actions,2) -#m.user_actions_anonymous_perc=100-m.user_actions_registered_perc - -#m.user_actions_order=len(uas[uas['Reward'] == 1.0].index) - -#m.user_actions_order_registered=len(uas[(uas['Reward'] == 1.0) & (uas['User'] != -1)].index) -#m.user_actions_order_anonymous=m.user_actions_order-m.user_actions_order_registered -#m.user_actions_order_registered_perc=round(m.user_actions_order_registered*100.0/m.user_actions_order,2) -#m.user_actions_order_anonymous_perc=100-m.user_actions_order_registered_perc - -#m.user_actions_panel=len(uas[uas['Action'] == 'recommendation_panel'].index) -#m.user_actions_panel_perc=round(m.user_actions_panel*100.0/m.user_actions,2) - -#m.services_suggested=int(uniq_recs['Service']) - -# catalog coverage -#m.services_suggested_perc=round(m.services_suggested*100.0/m.services,2) -# user coverage -#m.users_suggested=int(uniq_recs['User']) -#m.users_suggested_perc=round(m.users_suggested*100.0/m.users,2) -jsonstr = json.dumps(md) +jsonstr = json.dumps(md,indent=4) #jsonstr = json.dumps(m.__dict__) print(jsonstr) From 34bce83c78dddda7043adba07d41ada9458c6537 Mon Sep 17 00:00:00 2001 From: Konstantinos Kagkelidis Date: Fri, 27 May 2022 19:49:45 +0300 Subject: [PATCH 31/89] REC-50 Add Click-Through Rate Metric --- metrics.py | 29 +++++++++++++++++++++++++++++ report.html.prototype | 19 ++++++++++++++++++- rsmetrics.py | 13 ++++++++----- 3 files changed, 55 insertions(+), 6 deletions(-) diff --git a/metrics.py b/metrics.py index c43c5c9..b839fb1 100644 --- a/metrics.py +++ b/metrics.py @@ -8,6 +8,7 @@ def __init__(self): self.users=None self.services=None self.user_actions=None + self.user_actions_all=None self.recommendations=None # decorator to add the text attribute to function @@ -302,3 +303,31 @@ def hit_rate(object): return round(hits/len(users),5) + + +@doc('The number of user clicks through recommendations panels divided by the total times recommendation panels were presented to users. Takes into account all historical data of user actions') +def click_through_rate(object): + """ + Get only the user actions that present a recommendation panel to the user in the source page + Those are actions with the following source paths: + - /services + - /services/ + - /services/c/{any category name} + Count the items in above list as they represent the times recommendations panels were presented to the users of the portal + Narrow the above list into a new subset by selecting only user actions that originate from a recommendation panel + Those are actions that have the 'recommendation' string in the Action column + Count the items in the subset as they represent the times users clicked through recommendations + Divide the items of the subset with the items of the first list to get the click-through rate + """ + + # get user actions + user_actions_all = object.user_actions_all.values.tolist() + + # filter only user actions with the needed source paths (/services, /services/, /services/c/...). + # source paths are on the [6] index of each list item + user_actions_recpanel_views = list(filter(lambda x: x[6] in ['/services', '/services/'] or x[6].startswith('/services/c/'),user_actions_all)) + + # further filter with those actions that they have 'recommender' + user_actions_recpanel_clicks = list(filter(lambda x: x[4]=='recommendation_panel',user_actions_recpanel_views)) + + return round(len(user_actions_recpanel_clicks)/len(user_actions_recpanel_views),2) \ No newline at end of file diff --git a/report.html.prototype b/report.html.prototype index a001951..90c8b12 100644 --- a/report.html.prototype +++ b/report.html.prototype @@ -12,6 +12,7 @@ .card { animation-name: fadein; animation-duration: 1s; + margin-bottom: 25px; } @keyframes fadein { @@ -38,6 +39,11 @@ color: #d9fac0; } +.card-ctr { + background-color: #a55f80; + color: #f9bdd6; +} + .card-footer{ background-color: rgb(247,247,247,0.8); color: black; @@ -169,6 +175,14 @@ span:hover:before { +
+
+
+

Click-through Rate (CTR): %

+
+ +
+
@@ -190,7 +204,10 @@ span:hover:before { function fill(data){ // what to fill - let fill_list = ['users', 'recommendations', 'services', 'user_actions','user_actions_order', 'user_actions_registered', 'user_actions_anonymous', 'user_actions_order_registered', 'user_actions_order_anonymous', 'user_actions_registered_perc', 'user_actions_anonymous_perc', 'user_actions_order_registered_perc', 'user_actions_order_anonymous_perc', 'catalog_coverage_perc', 'user_coverage_perc', 'timestamp', 'hit_rate']; + let fill_list = ['users', 'recommendations', 'services', 'user_actions','user_actions_order', 'user_actions_registered', + 'user_actions_anonymous', 'user_actions_order_registered', 'user_actions_order_anonymous', 'user_actions_registered_perc', + 'user_actions_anonymous_perc', 'user_actions_order_registered_perc', 'user_actions_order_anonymous_perc', + 'catalog_coverage_perc', 'user_coverage_perc', 'timestamp', 'hit_rate', 'click_through_rate']; for (item of fill_list) { key = 'val_' + item diff --git a/rsmetrics.py b/rsmetrics.py index 56041f2..73a00a3 100755 --- a/rsmetrics.py +++ b/rsmetrics.py @@ -73,20 +73,22 @@ def inner(): sys.exit(0) # read data -run.user_actions=pd.read_csv(os.path.join(args.input,'user_actions.csv'),names=["User", "Source_Service", "Target_Service", "Reward", "Action", "Timestamp", "Source_Page_ID", "Target_Page_ID"]) +run.user_actions_all=pd.read_csv(os.path.join(args.input,'user_actions.csv'),names=["User", "Source_Service", "Target_Service", "Reward", "Action", "Timestamp", "Source_Page_ID", "Target_Page_ID"]) run.recommendations=pd.read_csv(os.path.join(args.input,'recommendations.csv'),names=["User", "Service", "Rating", "Timestamp"]) # convert timestamp column to datetime object -run.user_actions['Timestamp']= pd.to_datetime(run.user_actions['Timestamp']) +run.user_actions_all['Timestamp']= pd.to_datetime(run.user_actions_all['Timestamp']) + + run.recommendations['Timestamp']= pd.to_datetime(run.recommendations['Timestamp']) # restrict user actions and recommendations data to datetime range if args.starttime: - run.user_actions=run.user_actions[(run.user_actions['Timestamp'] > args.starttime) & (run.user_actions['Timestamp'] < args.endtime)] + run.user_actions_all=run.user_actions_all[(run.user_actions_all['Timestamp'] > args.starttime) & (run.user_actions_all['Timestamp'] < args.endtime)] run.recommendations=run.recommendations[(run.recommendations['Timestamp'] > args.starttime) & (run.recommendations['Timestamp'] < args.endtime)] else: - run.user_actions=run.user_actions[run.user_actions['Timestamp'] < args.endtime] + run.user_actions_all=run.user_actions_all[run.user_actions_all['Timestamp'] < args.endtime] run.recommendations=run.recommendations[run.recommendations['Timestamp'] < args.endtime] @@ -97,9 +99,10 @@ def inner(): if args.services: run.services=pd.read_csv(os.path.join(args.input,'services.csv'),names=["Service"]) + # remove user actions when user or service does not exist in users' or services' catalogs # adding -1 in all catalogs indicating the anonynoums users or not-known services -run.user_actions = run.user_actions[run.user_actions['User'].isin(run.users['User'].tolist()+[-1])] +run.user_actions = run.user_actions_all[run.user_actions_all['User'].isin(run.users['User'].tolist()+[-1])] run.user_actions = run.user_actions[run.user_actions['Source_Service'].isin(run.services['Service'].tolist()+[-1])] run.user_actions = run.user_actions[run.user_actions['Target_Service'].isin(run.services['Service'].tolist()+[-1])] From d09aff5d65f018c4ee575a3566ec51f9c8655f4c Mon Sep 17 00:00:00 2001 From: Nikolaos Triantafyllis Date: Tue, 31 May 2022 16:37:40 +0300 Subject: [PATCH 32/89] First version of Shannon Entropy metric computation. More info at REC-49 --- metrics.py | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 70 insertions(+), 1 deletion(-) diff --git a/metrics.py b/metrics.py index b839fb1..92a794b 100644 --- a/metrics.py +++ b/metrics.py @@ -330,4 +330,73 @@ def click_through_rate(object): # further filter with those actions that they have 'recommender' user_actions_recpanel_clicks = list(filter(lambda x: x[4]=='recommendation_panel',user_actions_recpanel_views)) - return round(len(user_actions_recpanel_clicks)/len(user_actions_recpanel_views),2) \ No newline at end of file + return round(len(user_actions_recpanel_clicks)/len(user_actions_recpanel_views),2) + +@doc('The diversity of the recommendations according to Shannon Entropy. The entropy is 0 when a single item is always chosen or recommended, and log n when n items are chosen or recommended equally often. (see book https://link.springer.com/10.1007/978-1-4939-7131-2_110158)') +def diversity(object, anonymous=False): + """ + Calculate Shannon Entropy based on https://elliot.readthedocs.io/en/latest/guide/metrics/diversity.html?highlight=entropy#module-elliot.evaluation.metrics.diversity.shannon_entropy.shannon_entropy. The entropy is 0 when a single item is always chosen or recommended, and log n when n items are chosen or recommended equally often. See more in https://link.springer.com/content/pdf/10.1007/978-1-4899-7637-6.pdf, page 293. + """ + # keep recommendations with or without anonymous suggestions + # based on anonymous flag (default=False, i.e. ignore anonymous) + if anonymous: + recs=object.recommendations + else: + recs=object.recommendations[(object.recommendations['User'] != -1)] + + # this variable keeps the sum of user_norm (where user_norm is + # the count of how many times a User has been suggested) + # however since no cutoff at per user recommendations is applied and + # also since each recommendation entry is one-to-one + # then the total number of recommendations is equal to this sum + free_norm=len(recs.index) + + # (remember that recommendations have been previously + # filtered based on the existance of users in user.csv and + # services in services.csv) + + # user_norm + # group recommendations entries by user id and + # then count how many times each user has been suggested + gr_user=recs.groupby(['User']).count() + + # create a dictionary of user_norm in order to + # map the user id to the respective user_norm + # key= and value= + d_user=gr_user['Service'].to_dict() + + # item_count + # group recommendations entries by service id and + # then count how many times each service has been suggested + gr_service=recs.groupby(['Service']).count() + + # create a dictionary of item_count in order to + # map the service id to the respective item_count + # key= and value= + d_service=gr_service['User'].to_dict() + + # it loops here for each service id, where + # key=service_id + for key in d_service: + # the impact of the service is calculated here + # the below line creates a list of the user ids + # where this particular service was suggested to + # the user list can contain duplicate users, + # because the same service might be suggested to + # the same user more than once + # for each element of the user list the associated + # user_norm value is found from the d_user dictionary + # when all user_norm are found, then they summed up + # to determine the weight of the service + weight=sum(list(map(lambda x: 1./d_user[x],recs[(recs['Service']==key)]['User'].tolist()))) + + # this line calculates the Shannon Entropy of each particular + # service id and stores it to the d_service dictionary accordingly + # initially, the d_service[key] contains the item_count of each service + d_service[key]=-weight*math.log2(d_service[key]/free_norm) + + # an overall value of the Shannon Entropy is returned by + # summing all indivual ones and divide them by the number + # of unique users + return round(sum(d_service.values())/len(d_user),4) + From fef98f2f724bab03b3013ce45ca890d11e67f06d Mon Sep 17 00:00:00 2001 From: Konstantinos Kagkelidis Date: Tue, 31 May 2022 18:03:07 +0300 Subject: [PATCH 33/89] REC-52 Add diversity metric to report --- metrics.py | 2 +- report.html.prototype | 17 ++++++++++++++++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/metrics.py b/metrics.py index 92a794b..c5bb78e 100644 --- a/metrics.py +++ b/metrics.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 import pandas as pd import numpy as np - +import math class Runtime: def __init__(self): diff --git a/report.html.prototype b/report.html.prototype index 90c8b12..436daca 100644 --- a/report.html.prototype +++ b/report.html.prototype @@ -44,12 +44,19 @@ color: #f9bdd6; } +.card-diversity { + background-color: #FA8B1C; + color:#F4E588; +} + .card-footer{ background-color: rgb(247,247,247,0.8); color: black; font-style: italic; } + + span { position: relative; } @@ -183,6 +190,14 @@ span:hover:before {
+
+
+
+

Diversity (Shannon Entropy):

+
+ +
+
@@ -207,7 +222,7 @@ function fill(data){ let fill_list = ['users', 'recommendations', 'services', 'user_actions','user_actions_order', 'user_actions_registered', 'user_actions_anonymous', 'user_actions_order_registered', 'user_actions_order_anonymous', 'user_actions_registered_perc', 'user_actions_anonymous_perc', 'user_actions_order_registered_perc', 'user_actions_order_anonymous_perc', - 'catalog_coverage_perc', 'user_coverage_perc', 'timestamp', 'hit_rate', 'click_through_rate']; + 'catalog_coverage_perc', 'user_coverage_perc', 'timestamp', 'hit_rate', 'click_through_rate', 'diversity']; for (item of fill_list) { key = 'val_' + item From 1bf4c887ecb9e83e2d8bf4c5cac616dd0c087508 Mon Sep 17 00:00:00 2001 From: Konstantinos Kagkelidis Date: Tue, 31 May 2022 20:58:10 +0300 Subject: [PATCH 34/89] REC-51 Display report as a webservice --- .gitignore | 8 +++++++ README.md | 27 +++++++++++++++++++++ environment.yml | 12 +++++++++- report.html.prototype | 2 +- report.py | 14 +++++++++-- requirements.txt | 9 +++++++ webservice/.env | 1 + webservice/app.py | 28 ++++++++++++++++++++++ webservice/templates/report.html.prototype | 1 + 9 files changed, 98 insertions(+), 4 deletions(-) create mode 100644 webservice/.env create mode 100644 webservice/app.py create mode 120000 webservice/templates/report.html.prototype diff --git a/.gitignore b/.gitignore index b7b65a7..f1e6fdd 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,11 @@ +# The following are handy to ignore in this specific project +# please ignore generated folders with results such as /data and /report +/data +/report + +# please ignore changes in the configuration file. If default configuration file structure is changed please override this rule with git add -f +/config.yaml + # Byte-compiled / optimized / DLL files __pycache__/ *.py[cod] diff --git a/README.md b/README.md index bbdde53..dac0385 100644 --- a/README.md +++ b/README.md @@ -175,4 +175,31 @@ chmod u+x ./get_service_catalog.py ./get_service_catalog.py ``` +#### Serve Evaluation Reports as a Service + +The `webservice` folder hosts a simple webservice implemented in Flask framework which can be used to host the report results. + +__Note__: Please make sure you work in a virtual environment and you have already downloaded the required dependencies by issuing +`pip install -r requirements.txt` + +The webservice application serves two endpoints + - `/` : This is the frontend webpage that displays the Report Results in a UI + - `/api` : This api call returns the evaluation metrics in json format + +To run the webservice issue: +``` +cd ./webservice +flask run +``` + +The webservice by default runs in localhost:5000 you can override this by issuing for example: +``` +flask run -h 127.0.0.1 -p 8080 +``` + +There is an env variable `RS_EVAL_METRIC_SOURCE` which directs the webservice to the generated `metrics.json` file produced after the evaluation process. +This by default honors this repo's folder structure and directs to the root `/data/metrics.json` path + +You can override this by editing the `.env` file inside the `/webservice` folder, or specificy the `RS_EVAL_METRIC_SOURCE` variable accordingly before executing the `flask run` command + _Tested with python 3.9_ diff --git a/environment.yml b/environment.yml index db48d7e..f61f3d1 100644 --- a/environment.yml +++ b/environment.yml @@ -25,16 +25,24 @@ dependencies: - zlib=1.2.11=h7f8727e_4 - pip: - beautifulsoup4==4.10.0 + - certifi==2021.10.8 - charset-normalizer==2.0.12 + - click==8.1.3 + - Flask==2.1.2 - idna==3.3 + - importlib-metadata==4.11.4 + - itsdangerous==2.1.2 + - Jinja2==3.1.2 - joblib==1.1.0 + - MarkupSafe==2.1.1 - natsort==8.1.0 - numpy==1.22.3 - pandas==1.4.2 - pymongo==4.1.0 - python-dateutil==2.8.2 + - python-dotenv==0.20.0 - pytz==2022.1 - - pyyaml==6.0 + - PyYAML==6.0 - requests==2.27.1 - scikit-surprise==1.1.1 - scipy==1.8.0 @@ -42,3 +50,5 @@ dependencies: - soupsieve==2.3.2 - surprise==0.1 - urllib3==1.26.9 + - Werkzeug==2.1.2 + - zipp==3.8.0 diff --git a/report.html.prototype b/report.html.prototype index 436daca..d0fe318 100644 --- a/report.html.prototype +++ b/report.html.prototype @@ -240,7 +240,7 @@ function fill(data){ // Autostart (function() { - fetch('metrics.json') + fetch("{{metric_source}}") .then(response => response.json()) .then(data => fill(data)); }()); diff --git a/report.py b/report.py index 1c6bcf9..a5f192f 100755 --- a/report.py +++ b/report.py @@ -8,6 +8,7 @@ import argparse from pathlib import Path import shutil +from jinja2 import Template @@ -22,10 +23,19 @@ def main(args=None): # create output folder if doesn't exist Path(args.output).mkdir(parents=True, exist_ok=True) - # copy needed files - shutil.copy("./report.html.prototype", args.output+"/index.html") + # prepare needed files + + # copy metrics.json to the appropriate folder shutil.copy(args.input+"/metrics.json", args.output) + # modify report.htm.prototype template to generate appropriate html file + with open('./report.html.prototype') as f: + template = Template(f.read()) + # fill template with the source of the metric data which will be the metrics.json file + # save the template as index.html to the appropriate reports folder + template.stream(metric_source="metrics.json").dump(args.output+"/index.html") + + threading.Thread(target=start_server, args=(args,)).start() webbrowser.open_new("http://"+args.address+":"+args.port) diff --git a/requirements.txt b/requirements.txt index 688721f..cbf4e24 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,13 +1,20 @@ beautifulsoup4==4.10.0 certifi==2021.10.8 charset-normalizer==2.0.12 +click==8.1.3 +Flask==2.1.2 idna==3.3 +importlib-metadata==4.11.4 +itsdangerous==2.1.2 +Jinja2==3.1.2 joblib==1.1.0 +MarkupSafe==2.1.1 natsort==8.1.0 numpy==1.22.3 pandas==1.4.2 pymongo==4.1.0 python-dateutil==2.8.2 +python-dotenv==0.20.0 pytz==2022.1 PyYAML==6.0 requests==2.27.1 @@ -17,3 +24,5 @@ six==1.16.0 soupsieve==2.3.2 surprise==0.1 urllib3==1.26.9 +Werkzeug==2.1.2 +zipp==3.8.0 diff --git a/webservice/.env b/webservice/.env new file mode 100644 index 0000000..700691d --- /dev/null +++ b/webservice/.env @@ -0,0 +1 @@ +RS_EVALUATION_METRICS=../data/metrics.json \ No newline at end of file diff --git a/webservice/app.py b/webservice/app.py new file mode 100644 index 0000000..f7273f6 --- /dev/null +++ b/webservice/app.py @@ -0,0 +1,28 @@ +from flask import Flask, render_template, jsonify +import json, os +from dotenv import load_dotenv + + +app = Flask('RS_EVALUATION') +dotenv_path = os.path.join(app.instance_path, '.env') +load_dotenv(dotenv_path) + +app.config['RS_EVALUATION_METRICS'] = os.environ.get('RS_EVALUATION_METRICS') + + +@app.route("/") +def main_page(): + '''Serve the main page that constructs the report view''' + # Render the report template and specifiy metric resource to be '/api' since the report is hosted in the webservice + return render_template('./report.html.prototype',metric_source='/api') + + +@app.route("/api") +def api_metrics(): + '''Serve the metrics data in json format as a default api response''' + result = {} + + with open(app.config['RS_EVALUATION_METRICS'], 'r') as f: + result = json.load(f) + f.close() + return jsonify(result) \ No newline at end of file diff --git a/webservice/templates/report.html.prototype b/webservice/templates/report.html.prototype new file mode 120000 index 0000000..3159f23 --- /dev/null +++ b/webservice/templates/report.html.prototype @@ -0,0 +1 @@ +../../report.html.prototype \ No newline at end of file From 30e5cf98459a54de2f2d2827c135d832b89bc156 Mon Sep 17 00:00:00 2001 From: Nikolaos Triantafyllis Date: Mon, 6 Jun 2022 19:13:39 +0300 Subject: [PATCH 35/89] REC-53 Calculating Novelty --- metrics.py | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) diff --git a/metrics.py b/metrics.py index c5bb78e..65e52d6 100644 --- a/metrics.py +++ b/metrics.py @@ -400,3 +400,73 @@ def diversity(object, anonymous=False): # of unique users return round(sum(d_service.values())/len(d_user),4) +@doc('Calculate novelty (Expected Free Discovery -EFD-) as the expected Inverse Collection Frequency -ICF- of (relevant and seen) recommended items') +def novelty(object, anonymous=False): + """ + Calculate novelty (Expected Free Discovery -EFD-) as + the expected Inverse Collection Frequency -ICF- of + (relevant and seen) recommended items + """ + # inner function to run on each pandas df row + def nanmap(row): + if np.isnan(row.values[0]): + try: + return gr_service_target['User'][row.name] + except: + return gr_service_source['User'][row.name] + else: + return row + # no ranking (rank=1) - recommendation items are equally weighted + # no relevance (p(rel)=1) - an item is liked, picked, enjoyed (not such info) + # no discount - (disc(k)=1) - user views all recommendation items (not paging) + + # keep recommendations with or without anonymous suggestions + # based on anonymous flag (default=False, i.e. ignore anonymous) + if anonymous: + recs=object.recommendations + uas=object.user_actions + else: + recs=object.recommendations[(object.recommendations['User'] != -1)] + uas=object.user_actions[(object.user_actions['User'] != -1)] + + # item_count + # group user actions entries by service id and + # then count how many times each service has been suggested + gr_service_source=uas.groupby(['Source_Service']).count() + gr_service_target=uas.groupby(['Target_Service']).count() + # merge above results + gr_service=gr_service_source+gr_service_target + # when nan value find a keep the other value (search on both dfs) + gr_service=gr_service.apply(nanmap, axis=1) + + # create a dictionary of item_count in order to + # map the service id to the respective item_count + # key= and value= + d_service=gr_service['User'].to_dict() + + # this variable keeps the sum of user_norm (where user_norm is + # the count of how many times a User has been suggested) + # however since no cutoff at per user recommendations is applied and + # also since each recommendation entry is one-to-one + # then the total number of recommendations is equal to this sum + norm=sum(d_service.values()) + + # get the max novelty by getting the service with the lowest item_count + max_nov=-math.log2(min(d_service.values())/norm) + + # calculate novelty for all services + d_service = {service: -math.log2(item_count/norm) for service, item_count in d_service.items()} # fix user_actions not recommendations to gather services + + # get all unique users found in recommendations + users = recs['User'].unique() + + # use max_nov -> min count if x service not found (removed functionality) + d_user={} + for u in users: + u_norm=len(recs[(recs['User']==u)].index) + d_user[u]=sum(list(map(lambda x: d_service.get(x, max_nov),recs[(recs['User']==u)]['Service'].tolist())))/u_norm # fix norm=number of recommended items per user + + # average value (not in elliot) + return round(sum(d_user.values())/len(users),4) + + From d9dd6bbdad5b9456cdd08a89cc23fd77e6f12099 Mon Sep 17 00:00:00 2001 From: Konstantinos Kagkelidis Date: Tue, 14 Jun 2022 09:59:17 +0300 Subject: [PATCH 36/89] REC-57 Add novelty to the UI --- report.html.prototype | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/report.html.prototype b/report.html.prototype index d0fe318..6511667 100644 --- a/report.html.prototype +++ b/report.html.prototype @@ -49,6 +49,10 @@ color:#F4E588; } +.card-novelty { + background-color: #ffaf26; + color:#f6f5a2; +} .card-footer{ background-color: rgb(247,247,247,0.8); color: black; @@ -198,6 +202,14 @@ span:hover:before {
+
+
+
+

Novelty:

+
+ +
+
@@ -222,7 +234,7 @@ function fill(data){ let fill_list = ['users', 'recommendations', 'services', 'user_actions','user_actions_order', 'user_actions_registered', 'user_actions_anonymous', 'user_actions_order_registered', 'user_actions_order_anonymous', 'user_actions_registered_perc', 'user_actions_anonymous_perc', 'user_actions_order_registered_perc', 'user_actions_order_anonymous_perc', - 'catalog_coverage_perc', 'user_coverage_perc', 'timestamp', 'hit_rate', 'click_through_rate', 'diversity']; + 'catalog_coverage_perc', 'user_coverage_perc', 'timestamp', 'hit_rate', 'click_through_rate', 'diversity', 'novelty']; for (item of fill_list) { key = 'val_' + item From 638d01f46d43b476c2ccc738957bda782fd86f0f Mon Sep 17 00:00:00 2001 From: Nikolaos Triantafyllis Date: Mon, 20 Jun 2022 21:54:04 +0300 Subject: [PATCH 37/89] REC 58 Adding the GiniIndex Diversity --- metrics.py | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/metrics.py b/metrics.py index 65e52d6..51985e2 100644 --- a/metrics.py +++ b/metrics.py @@ -469,4 +469,58 @@ def nanmap(row): # average value (not in elliot) return round(sum(d_user.values())/len(users),4) +@doc('The diversity of the recommendations according to GiniIndex. The index is 0 when all items are chosen equally often, and 1 when a single item is always chosen.(see book https://link.springer.com/10.1007/978-1-4939-7131-2_110158)') +def diversity_gini(object, anonymous=False): + """ + Calculate GiniIndex based on https://elliot.readthedocs.io/en/latest/_modules/elliot/evaluation/metrics/diversity/gini_index/gini_index.html#GiniIndex. + """ + # keep recommendations with or without anonymous suggestions + # based on anonymous flag (default=False, i.e. ignore anonymous) + if anonymous: + recs=object.recommendations + else: + recs=object.recommendations[(object.recommendations['User'] != -1)] + + # this variable keeps the sum of user_norm (where user_norm is + # the count of how many times a User has been suggested) + # however since no cutoff at per user recommendations is applied and + # also since each recommendation entry is one-to-one + # then the total number of recommendations is equal to this sum + free_norm=len(recs.index) + + # (remember that recommendations have been previously + # filtered based on the existance of users in user.csv and + # services in services.csv) + + # user_norm + # group recommendations entries by user id and + # then count how many times each user has been suggested + #gr_user=recs.groupby(['User']).count() + + # create a dictionary of user_norm in order to + # map the user id to the respective user_norm + # key= and value= + #d_user=gr_user['Service'].to_dict() + + # item_count + # group recommendations entries by service id and + # then count how many times each service has been suggested + gr_service=recs.groupby(['Service']).count() + + # create a dictionary of item_count in order to + # map the service id to the respective item_count + # key= and value= + d_service=gr_service['User'].to_dict() + + + n_recommended_items = len(d_service) + num_items = services(object) + + gini = sum([(2 * (j + 1 + num_items-n_recommended_items) -num_items -1) * (cs / free_norm) for j, cs in enumerate(sorted(d_service.values()))]) + + gini /= (num_items - 1) + gini = 1 - gini + + return round(gini,4) + From 02de989217478ed4a54b463bcb8a9bc127f976d9 Mon Sep 17 00:00:00 2001 From: Konstantinos Kagkelidis Date: Mon, 27 Jun 2022 09:27:05 +0300 Subject: [PATCH 38/89] REC-55 Reorganize metrics output --- metrics.py | 109 ++++++++++++++++++++++-------------------- report.html.prototype | 32 ++++++++++--- rsmetrics.py | 53 ++++++++++++-------- 3 files changed, 115 insertions(+), 79 deletions(-) diff --git a/metrics.py b/metrics.py index 51985e2..2285e91 100644 --- a/metrics.py +++ b/metrics.py @@ -11,18 +11,28 @@ def __init__(self): self.user_actions_all=None self.recommendations=None -# decorator to add the text attribute to function -def doc(r): + + +# decorator to add the text attribute to function as major metric +def metric(txt): def wrapper(f): - f.text = r + f.kind = "metric" + f.doc = txt return f return wrapper +# decorator to add the text attribute to function +def statistic(txt): + def wrapper(f): + f.kind = "statistic" + f.doc = txt + return f + return wrapper # Metrics -@doc('The initial date where metrics are calculated on') +@statistic('The initial date where metrics are calculated on') def start(object): """ Calculate the start date where metrics are calculated on @@ -31,7 +41,8 @@ def start(object): """ return str(min(min(object.user_actions['Timestamp']),min(object.recommendations['Timestamp']))) -@doc('The final date where metrics are calculated on') + +@statistic('The final date where metrics are calculated on') def end(object): """ Calculate the end date where metrics are calculated on @@ -40,7 +51,8 @@ def end(object): """ return str(max(max(object.user_actions['Timestamp']),max(object.recommendations['Timestamp']))) -@doc('The total number of unique users found in users.csv (if provided), otherwise in user_actions.csv') + +@statistic('The total number of unique users found in users.csv (if provided), otherwise in user_actions.csv') def users(object): """ Calculate the total number of unique users @@ -53,7 +65,7 @@ def users(object): return int(object.user_actions.nunique()['User']) -@doc('The total number of unique services found in services.csv (if provided), otherwise in user_actions.csv') +@statistic('The total number of unique services found in services.csv (if provided), otherwise in user_actions.csv') def services(object): """ Calculate the total number of unique services @@ -66,7 +78,7 @@ def services(object): return len(np.unique(np.concatenate([object.user_actions['Source_Service'].unique(),object.user_actions['Target_Service'].unique()]))) -@doc('The total number of recommendations found in recommendations.csv') +@statistic('The total number of recommendations found in recommendations.csv') def recommendations(object): """ Calculate the total number of recommendations @@ -74,7 +86,8 @@ def recommendations(object): """ return len(object.recommendations.index) -@doc('The total number of recommendations for registered users found in recommendations.csv') + +@statistic('The total number of recommendations for registered users found in recommendations.csv') def recommendations_registered(object): """ Calculate the total number of recommendations for registered users @@ -83,7 +96,7 @@ def recommendations_registered(object): return len(object.recommendations[object.recommendations['User'] != -1].index) -@doc('The total number of recommendations for anonymous users found in recommendations.csv') +@statistic('The total number of recommendations for anonymous users found in recommendations.csv') def recommendations_anonymous(object): """ Calculate the total number of recommendations for anonymous users @@ -92,7 +105,8 @@ def recommendations_anonymous(object): return recommendations(object)-recommendations_registered(object) -@doc('The percentage (%) of recommendations for registered users to the total recommendations') + +@statistic('The percentage (%) of recommendations for registered users to the total recommendations') def recommendations_registered_perc(object): """ Calculate the percentage (%) of recommendations occurred @@ -102,7 +116,7 @@ def recommendations_registered_perc(object): return round(recommendations_registered(object)*100.0/recommendations(object),2) -@doc('The percentage (%) of recommendations for anonymous users to the total recommendations') +@statistic('The percentage (%) of recommendations for anonymous users to the total recommendations') def recommendations_anonymous_perc(object): """ Calculate the percentage (%) of recommendations occurred @@ -112,7 +126,7 @@ def recommendations_anonymous_perc(object): return round(100.0-recommendations_registered_perc(object),2) -@doc('The total number of user actions found in user_actions.csv') +@statistic('The total number of user actions found in user_actions.csv') def user_actions(object): """ Calculate the total number of user_actions @@ -121,7 +135,7 @@ def user_actions(object): return len(object.user_actions.index) -@doc('The total number of user actions occurred by registered users found in user_actions.csv') +@statistic('The total number of user actions occurred by registered users found in user_actions.csv') def user_actions_registered(object): """ Calculate the total number of user_actions occurred by registered users @@ -130,7 +144,7 @@ def user_actions_registered(object): return len(object.user_actions[object.user_actions['User'] != -1].index) -@doc('The total number of user actions occurred by anonymous users found in user_actions.csv') +@statistic('The total number of user actions occurred by anonymous users found in user_actions.csv') def user_actions_anonymous(object): """ Calculate the total number of user_actions occurred by anonymous users @@ -139,7 +153,7 @@ def user_actions_anonymous(object): return user_actions(object)-user_actions_registered(object) -@doc('The percentage (%) of user actions occurred by registered users to the total user actions') +@statistic('The percentage (%) of user actions occurred by registered users to the total user actions') def user_actions_registered_perc(object): """ Calculate the percentage (%) of user actions occurred @@ -149,7 +163,7 @@ def user_actions_registered_perc(object): return round(user_actions_registered(object)*100.0/user_actions(object),2) -@doc('The percentage (%) of user actions occurred by anonymous users to the total user actions') +@statistic('The percentage (%) of user actions occurred by anonymous users to the total user actions') def user_actions_anonymous_perc(object): """ Calculate the percentage (%) of user actions occurred @@ -159,7 +173,7 @@ def user_actions_anonymous_perc(object): return round(100.0-user_actions_registered_perc(object),2) -@doc('The total number of user actions led to order found in user_actions.csv') +@statistic('The total number of user actions led to order found in user_actions.csv') def user_actions_order(object): """ Calculate the total number of user_actions led to order @@ -168,7 +182,7 @@ def user_actions_order(object): return len(object.user_actions[object.user_actions['Reward'] == 1.0].index) -@doc('The total number of user actions led to order by registered users found in user_actions.csv') +@statistic('The total number of user actions led to order by registered users found in user_actions.csv') def user_actions_order_registered(object): """ Calculate the total number of user_actions led to order by registered users @@ -177,7 +191,7 @@ def user_actions_order_registered(object): return len(object.user_actions[(object.user_actions['Reward'] == 1.0) & (object.user_actions['User'] != -1)].index) -@doc('The total number of user actions led to order by anonymous users found in user_actions.csv') +@statistic('The total number of user actions led to order by anonymous users found in user_actions.csv') def user_actions_order_anonymous(object): """ Calculate the total number of user_actions led to order by anonymous users @@ -186,7 +200,7 @@ def user_actions_order_anonymous(object): return user_actions_order(object)-user_actions_order_registered(object) -@doc('The percentage (%) of user actions occurred by registered users and led to order to the total user actions that led to order') +@statistic('The percentage (%) of user actions occurred by registered users and led to order to the total user actions that led to order') def user_actions_order_registered_perc(object): """ Calculate the percentage (%) of user actions occurred @@ -196,7 +210,7 @@ def user_actions_order_registered_perc(object): return round(user_actions_order_registered(object)*100.0/user_actions_order(object),2) -@doc('The percentage (%) of user actions occurred by anonymous users and led to order to the total user actions that led to order') +@statistic('The percentage (%) of user actions occurred by anonymous users and led to order to the total user actions that led to order') def user_actions_order_anonymous_perc(object): """ Calculate the percentage (%) of user actions occurred @@ -206,7 +220,7 @@ def user_actions_order_anonymous_perc(object): return round(100.0-user_actions_order_registered_perc(object),2) -@doc('The total number of user actions assosicated with the recommendation panel found in user_actions.csv') +@statistic('The total number of user actions assosicated with the recommendation panel found in user_actions.csv') def user_actions_panel(object): """ Calculate the total number of user_actions assosicated with the recommendation panel @@ -215,7 +229,7 @@ def user_actions_panel(object): return len(object.user_actions[object.user_actions['Action'] == 'recommendation_panel'].index) -@doc('The percentage (%) of user actions assosicated with the recommendation panel to the total user actions') +@statistic('The percentage (%) of user actions assosicated with the recommendation panel to the total user actions') def user_actions_panel_perc(object): """ Calculate the percentage (%) of user actions assosicated with @@ -225,8 +239,8 @@ def user_actions_panel_perc(object): return round(user_actions_panel(object)*100.0/user_actions(object),2) -@doc('The total number of unique services found in recommendations.csv') -def catalog_coverage(object): +@statistic('The total number of unique services found in recommendations.csv') +def total_unique_services_recommended(object): """ Calculate the total number of unique services found in recommendations.csv @@ -234,18 +248,18 @@ def catalog_coverage(object): return int(object.recommendations.nunique()['Service']) -@doc('The percentage (%) of unique services found in recommedations.csv to the total number of services (provided or found otherwise in user_actions.csv)') -def catalog_coverage_perc(object): +@metric('The percentage (%) of unique services found in recommedations.csv to the total number of services (provided or found otherwise in user_actions.csv)') +def catalog_coverage(object): """ Calculate the percentage (%) of unique services found in recommedations.csv to the total number of services (provided or found otherwise in user_actions.csv) """ - return round(catalog_coverage(object)*100.0/services(object),2) + return round(total_unique_services_recommended(object)*100.0/services(object),2) -@doc('The total number of unique users found in recommendations.csv') -def user_coverage(object): +@statistic('The total number of unique users found in recommendations.csv') +def total_unique_users_recommended(object): """ Calculate the total number of unique users found in recommendations.csv @@ -253,16 +267,17 @@ def user_coverage(object): return int(object.recommendations.nunique()['User']) -@doc('The percentage (%) of unique users found in recommedations.csv to the total number of users (provided or found otherwise in user_actions.csv)') -def user_coverage_perc(object): +@metric('The percentage (%) of unique users found in recommedations.csv to the total number of users (provided or found otherwise in user_actions.csv)') +def user_coverage(object): """ Calculate the percentage (%) of unique users found in recommedations.csv to the total number of users (provided or found otherwise in user_actions.csv) """ - return round(user_coverage(object)*100.0/users(object),2) + return round(total_unique_users_recommended(object)*100.0/users(object),2) -@doc('The ratio of user hits divided by the total number of users (user hit: a user that has accessed at least one service that is also a personal recommendation)') + +@metric('The ratio of user hits divided by the total number of users (user hit: a user that has accessed at least one service that is also a personal recommendation)') def hit_rate(object): """ For each user get the recommended services and the services the user accessed @@ -305,7 +320,7 @@ def hit_rate(object): return round(hits/len(users),5) -@doc('The number of user clicks through recommendations panels divided by the total times recommendation panels were presented to users. Takes into account all historical data of user actions') +@metric('The number of user clicks through recommendations panels divided by the total times recommendation panels were presented to users. Takes into account all historical data of user actions') def click_through_rate(object): """ Get only the user actions that present a recommendation panel to the user in the source page @@ -332,7 +347,8 @@ def click_through_rate(object): return round(len(user_actions_recpanel_clicks)/len(user_actions_recpanel_views),2) -@doc('The diversity of the recommendations according to Shannon Entropy. The entropy is 0 when a single item is always chosen or recommended, and log n when n items are chosen or recommended equally often. (see book https://link.springer.com/10.1007/978-1-4939-7131-2_110158)') + +@metric('The diversity of the recommendations according to Shannon Entropy. The entropy is 0 when a single item is always chosen or recommended, and log n when n items are chosen or recommended equally often. (see book https://link.springer.com/10.1007/978-1-4939-7131-2_110158)') def diversity(object, anonymous=False): """ Calculate Shannon Entropy based on https://elliot.readthedocs.io/en/latest/guide/metrics/diversity.html?highlight=entropy#module-elliot.evaluation.metrics.diversity.shannon_entropy.shannon_entropy. The entropy is 0 when a single item is always chosen or recommended, and log n when n items are chosen or recommended equally often. See more in https://link.springer.com/content/pdf/10.1007/978-1-4899-7637-6.pdf, page 293. @@ -400,7 +416,8 @@ def diversity(object, anonymous=False): # of unique users return round(sum(d_service.values())/len(d_user),4) -@doc('Calculate novelty (Expected Free Discovery -EFD-) as the expected Inverse Collection Frequency -ICF- of (relevant and seen) recommended items') + +@metric('Calculate novelty (Expected Free Discovery -EFD-) as the expected Inverse Collection Frequency -ICF- of (relevant and seen) recommended items') def novelty(object, anonymous=False): """ Calculate novelty (Expected Free Discovery -EFD-) as @@ -469,7 +486,7 @@ def nanmap(row): # average value (not in elliot) return round(sum(d_user.values())/len(users),4) -@doc('The diversity of the recommendations according to GiniIndex. The index is 0 when all items are chosen equally often, and 1 when a single item is always chosen.(see book https://link.springer.com/10.1007/978-1-4939-7131-2_110158)') +@metric('The diversity of the recommendations according to GiniIndex. The index is 0 when all items are chosen equally often, and 1 when a single item is always chosen.(see book https://link.springer.com/10.1007/978-1-4939-7131-2_110158)') def diversity_gini(object, anonymous=False): """ Calculate GiniIndex based on https://elliot.readthedocs.io/en/latest/_modules/elliot/evaluation/metrics/diversity/gini_index/gini_index.html#GiniIndex. @@ -488,20 +505,6 @@ def diversity_gini(object, anonymous=False): # then the total number of recommendations is equal to this sum free_norm=len(recs.index) - # (remember that recommendations have been previously - # filtered based on the existance of users in user.csv and - # services in services.csv) - - # user_norm - # group recommendations entries by user id and - # then count how many times each user has been suggested - #gr_user=recs.groupby(['User']).count() - - # create a dictionary of user_norm in order to - # map the user id to the respective user_norm - # key= and value= - #d_user=gr_user['Service'].to_dict() - # item_count # group recommendations entries by service id and # then count how many times each service has been suggested diff --git a/report.html.prototype b/report.html.prototype index 6511667..304aa81 100644 --- a/report.html.prototype +++ b/report.html.prototype @@ -165,17 +165,17 @@ span:hover:before {
-

User Coverage: %

+

User Coverage: %

- +
-

Catalog Coverage: %

+

Catalog Coverage: %

- +
@@ -230,16 +230,34 @@ span:hover:before { + + + + + + +
+
+ +
+
+ +
+
+
+ + + +
+
+
+
+
+
+
+ + + +
+
+
+
+
+
+ + +
+
{{data.name}} +
{{data.summary}} +
+
+
+
+
+
metric
+
+
+
+
+
Description
+

{{data.description}} +

+
+
+
+
+
+ +
+ +
+
+
+
+

+

+
+ Type  {{data.output.type}} +
+
+
Range Values
+
Min={{data.output.min}} to Max={{data.output.max}} +
+
+
+
+
+
{{data.output.comment}}
+

+
+
+ + + + + +
+
+
+
+
+
+
+
+
Process
+

+

    + {%for item in data.process %} +
  • + {{item.step}} + +

    {{item.details}}

    +
  • + {%endfor%} +
+

+
+
+
+
+
+ +
+
+
+ + + \ No newline at end of file From c70d3e19d479b96bfcadd874e2a4668b2b3f7689 Mon Sep 17 00:00:00 2001 From: Nikolaos Triantafyllis Date: Fri, 22 Jul 2022 17:54:12 +0300 Subject: [PATCH 47/89] REC-75 Modifying services.csv file format to: service_id, rating, service_name, service_page_id and set service name in double quotes. RSMetrics also able to read new format. --- preprocessor.py | 17 ++++++++++++----- rsmetrics.py | 2 +- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/preprocessor.py b/preprocessor.py index 8bfdb30..e0c5b17 100755 --- a/preprocessor.py +++ b/preprocessor.py @@ -154,7 +154,7 @@ def __init__(self, source_page_id, target_page_id, order): values=list(map(lambda x: x.split(',')[0].strip(), lines)) dmap=dict(zip(keys, values)) #=> {'a': 1, 'b': 2} - +rdmap = {y: x for x, y in dmap.items()} # reverse dictionary # reward_mapping.py is modified so that the function # reads the Transition rewards csv file once @@ -258,15 +258,22 @@ def __init__(self, source_page_id, target_page_id, order): ss=[] for s in _ss: try: - ss.append(s.strip()+','+recdb["service"].find({'_id':int(s)})[0]['rating']+'\n') + ss.append(s.strip()+','+recdb["service"].find({'_id':int(s)})[0]['rating']+',"'+recdb["service"].find({'_id':int(s)})[0]['name']+'",'+rdmap[s.strip()]+'\n') except: continue else: # 'source' + _query="" if config['Service']['published']: - ss=natsorted(list(set(list(map(lambda x: str(x['_id'])+','+str(x['rating'])+'\n',recdb["service"].find({"status":"published"}))))),alg=ns.ns.SIGNED) - else: - ss=natsorted(list(set(list(map(lambda x: str(x['_id'])+','+str(x['rating'])+'\n',recdb["service"].find({}))))),alg=ns.ns.SIGNED) + _query={"status":"published"} + + _ss=natsorted(list(set(list(map(lambda x: str(x['_id'])+','+str(x['rating'])+',"'+str(x['name'])+'"\n',recdb["service"].find(_query))))),alg=ns.ns.SIGNED) + ss=[] + for s in _ss: + try: + ss.append(s.strip()+','+rdmap[s.split(',')[0]]+'\n') + except: + continue with open(os.path.join(args.output,'services.csv'), 'w') as o: o.writelines(ss) diff --git a/rsmetrics.py b/rsmetrics.py index ca37a64..4cd1a28 100755 --- a/rsmetrics.py +++ b/rsmetrics.py @@ -93,7 +93,7 @@ def inner(): run.users=pd.read_csv(os.path.join(args.input,'users.csv'),names=["User","Services"],converters={'Services': lambda x: map(int,x.split())}) # populate services -run.services=pd.read_csv(os.path.join(args.input,'services.csv'),names=["Service", "Rating"]) +run.services=pd.read_csv(os.path.join(args.input,'services.csv'),names=["Service", "Rating", "Name", "Page"]) # remove user actions when user or service does not exist in users' or services' catalogs # adding -1 in all catalogs indicating the anonynoums users or not-known services From da78d87882bd82569fc29cdbf58612778ffd9445 Mon Sep 17 00:00:00 2001 From: Nikolaos Triantafyllis Date: Mon, 25 Jul 2022 00:07:46 +0300 Subject: [PATCH 48/89] REC-76 Bugfix in dictionary creation of service ids and pages id --- preprocessor.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/preprocessor.py b/preprocessor.py index e0c5b17..800ad56 100755 --- a/preprocessor.py +++ b/preprocessor.py @@ -150,7 +150,7 @@ def __init__(self, source_page_id, target_page_id, order): with open(os.path.join(args.output,config['Service']['path']), 'r') as f: lines=f.readlines() -keys=list(map(lambda x: remove_service_prefix(x.split(',')[2]).strip(), lines)) +keys=list(map(lambda x: remove_service_prefix(x.split(',')[-1]).strip(), lines)) values=list(map(lambda x: x.split(',')[0].strip(), lines)) dmap=dict(zip(keys, values)) #=> {'a': 1, 'b': 2} From 48950deca84c0434c861b4c7ef6549e60994ffac Mon Sep 17 00:00:00 2001 From: Nikolaos Triantafyllis Date: Mon, 25 Jul 2022 16:47:27 +0300 Subject: [PATCH 49/89] REC-77 First version of Diversity Gini Index YAML file --- metric_descriptions/diversity-gini.yml | 38 ++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 metric_descriptions/diversity-gini.yml diff --git a/metric_descriptions/diversity-gini.yml b/metric_descriptions/diversity-gini.yml new file mode 100644 index 0000000..905b453 --- /dev/null +++ b/metric_descriptions/diversity-gini.yml @@ -0,0 +1,38 @@ +name: Diversity Gini Index + +summary: > + Measures Recommendations' diversity. The index is 0 when all items are chosen equally often, and 1 when a single item is always chosen. + +description: > + The diversity of the recommendations according to Gini Index. The index is 0 when all items are chosen equally often, + and 1 when a single item is always chosen (see book \url{https://link.springer.com/10.1007/978-1-4939-7131-2_110158}). Initially, the Gini Index (H) is defined as: + $$G=\frac{1}{n-1}\sum_{j=1}^{n}(2j-n-1)p(i_j)$$where $$i_1,\ldots,i_n$$ is the list of items ordered according to increasing $$p(i)$$ and each item $$i$$ accounts for a proportion $$p(i)$$ of user recommendations. In RS Metrics the computation is determined by the following forumla: + $$$$G=1-\frac{\sum_{i=0}^{rec\_services}[2(i+1+services-rec\_services)-services-1]\frac{count(i)}{recommendations}}{services-1}$$$$, where $$count(i)$$ indicates how many times service $$i$$ has been recommended. + +output: + type: float + min: 0 + max: 1 + comment: The index is 0 when all items are chosen equally often, and 1 when a single item is always chosen. + +prerequisites: + - recommendations without anonymous users + - all available services + +process: + - step: Clean up + details: > + Recommendations clean up; entries removal where users or services are not found in "users" or "services" files accordingly + - step: Services Impact + details: > + Calculation of the impact of the services, by counting how many times each service i was suggested to all possible users: count(i) + - step: Sort Services Impact from low to high + details: > + Sort the number of how many time each service i was suggested from the lower to the higher value, in order to apply the respective weight (i) + - step: Calculate the opossite of the Gini index computation + details: > + Calculation of the opposite of the Gini Index (1-G) by applying the suggested formula + - step: Calculate Gini Index and normalize it + details: > + Computation of the Gini Index and divide it by the number of services + From 459195042d528d014a9fa0fb48f56d932e277ffd Mon Sep 17 00:00:00 2001 From: Nikolaos Triantafyllis Date: Mon, 25 Jul 2022 17:08:53 +0300 Subject: [PATCH 50/89] REC-78 First version of Catalog Coverage YAML file --- metric_descriptions/catalog-coverage.yml | 31 ++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 metric_descriptions/catalog-coverage.yml diff --git a/metric_descriptions/catalog-coverage.yml b/metric_descriptions/catalog-coverage.yml new file mode 100644 index 0000000..8a27c8d --- /dev/null +++ b/metric_descriptions/catalog-coverage.yml @@ -0,0 +1,31 @@ +name: Catalog Coverage + +summary: > + The percentage (%) of the division of the unique services found in recommendations to the total number of published services + +description: > + The Catalog Coverage is described by the formula $$\frac{unique rec_services}{services}$$ + +output: + type: float + min: 0 + max: 100 + comment: Catalog Coverage is 0 when none of the services is being recommended, and 100 when all of them are being recommended. + +prerequisites: + - all available recommendations + - all available services + +process: + - step: Retrieve recommendations + details: > + Retrieve all available recommendations found in source + - step: Gather all unique services + details: > + Gather all unique services found in all available recommendations + - step: Retrieve services + details: > + Retrieve all available published services found in source + - step: Calculate ratio + details: > + Calculate the percentage (%) of the division of the unique services found in recommendations to the total number of published services From e5f12a1cbfba1851dfc2e4a7f05a70d0c3564e9f Mon Sep 17 00:00:00 2001 From: Nikolaos Triantafyllis Date: Mon, 25 Jul 2022 01:18:41 +0300 Subject: [PATCH 51/89] REC-71 Top 5 services recommended metric is being added --- metrics.py | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/metrics.py b/metrics.py index d80773f..253cc25 100644 --- a/metrics.py +++ b/metrics.py @@ -520,4 +520,63 @@ def diversity_gini(object, anonymous=False): return round(gini,4) +@metric('The Top 5 recommended services according to recommendations entries') +def top5_services_recommended(object, k=5, base='https://marketplace.eosc-portal.eu', anonymous=False): + """ + Calculate the Top 5 recommended service according to the recommendations entries. + Return a list of list with the elements: + # (i) service id + # (ii) service name + # (iii) service page appended with base (to create the URL) + # (iv) total number of recommendations of the service + # (v) percentage of the (iv) to the total number of recommendations + # expressed in %, with or without anonymous, based on the function's flag + Service's info is being retrieved from the servives.csv file + (i.e. each line forms: service_id, rating, service_name, page_id) + """ + # keep recommendations with or without anonymous suggestions + # based on anonymous flag (default=False, i.e. ignore anonymous) + if anonymous: + recs=object.recommendations + else: + recs=object.recommendations[(object.recommendations['User'] != -1)] + + # item_count + # group recommendations entries by service id and + # then count how many times each service has been suggested + gr_service=recs.groupby(['Service']).count() + + # create a dictionary of item_count in order to + # map the service id to the respective item_count + # key= and value= + d_service=gr_service['User'].to_dict() + + # convert dictionary to double list (list of lists) + # where the sublist is + # and sort them from max to min + l_service=list(map(lambda x: [x,d_service[x]],d_service)) + l_service.sort(key = lambda x: x[1], reverse=True) + + # get only the first k elements + l_service=l_service[:k] + + topk_services=[] + + for service in l_service: + # get service's info from dataframe + _df_service=object.services[object.services['Service'].isin([service[0]])] + # append a list with the elements: + # (i) service id + # (ii) service name + # (iii) service page appended with base (to create the URL) + # (iv) total number of recommendations of the service + # (v) percentage of the (iv) to the total number of recommendations + # expressed in %, with or without anonymous, based on the function's flag + topk_services.append([service[0], + str(_df_service['Name'].item()), + base+str(_df_service['Page'].item()), + service[1], + round(100*service[1]/len(recs.index),2)]) + + return topk_services From 61c88e81fceb5936599d5890c16a881a906def54 Mon Sep 17 00:00:00 2001 From: Nikolaos Triantafyllis Date: Mon, 25 Jul 2022 18:45:50 +0300 Subject: [PATCH 52/89] REC-72 Top 5 services ordered metric is being added --- metrics.py | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/metrics.py b/metrics.py index 253cc25..28c08f7 100644 --- a/metrics.py +++ b/metrics.py @@ -580,3 +580,64 @@ def top5_services_recommended(object, k=5, base='https://marketplace.eosc-portal return topk_services +@metric('The Top 5 ordered services according to user actions entries') +def top5_services_ordered(object, k=5, base='https://marketplace.eosc-portal.eu', anonymous=False): + """ + Calculate the Top 5 ordered services according to user actions entries. + User actions with Target Pages that lead to unknown services (=-1) are being ignored. + Return a list of list with the elements: + # (i) service id + # (ii) service name + # (iii) service page appended with base (to create the URL) + # (iv) total number of orders of the service + # (v) percentage of the (iv) to the total number of orders + # expressed in %, with or without anonymous, based on the function's flag + Service's info is being retrieved from the services.csv file + (i.e. each line forms: service_id, rating, service_name, page_id) + """ + # keep user actions with or without anonymous suggestions + # based on anonymous flag (default=False, i.e. ignore anonymous) + # user_actions with Target Pages that lead to unknown services (=-1) are being ignored + if anonymous: + uas=object.user_actions[(object.user_actions['Reward'] == 1.0) & (object.user_actions['Target_Service'] != -1) & (object.user_actions['User'] != -1)] + else: + uas=object.user_actions[(object.user_actions['Reward'] == 1.0) & (object.user_actions['Target_Service'] != -1)] + + # item_count + # group user_actions entries by service id and + # then count how many times each service has been suggested + gr_service=uas.groupby(['Target_Service']).count() + + # create a dictionary of item_count in order to + # map the service id to the respective item_count + # key= and value= + d_service=gr_service['User'].to_dict() + + # convert dictionary to double list (list of lists) + # where the sublist is + # and sort them from max to min + l_service=list(map(lambda x: [x,d_service[x]],d_service)) + l_service.sort(key = lambda x: x[1], reverse=True) + + # get only the first k elements + l_service=l_service[:k] + + topk_services=[] + + for service in l_service: + # get service's info from dataframe + _df_service=object.services[object.services['Service'].isin([service[0]])] + # append a list with the elements: + # (i) service id + # (ii) service name + # (iii) service page appended with base (to create the URL) + # (iv) total number of orders of the service + # (v) percentage of the (iv) to the total number of orders + # expressed in %, with or without anonymous, based on the function's flag + topk_services.append([service[0], + str(_df_service['Name'].item()), + base+str(_df_service['Page'].item()), + service[1], + round(100*service[1]/len(uas.index),2)]) + + return topk_services From 4a0f3a951c6f450de7e38024ff4ea16f82da547f Mon Sep 17 00:00:00 2001 From: Nikolaos Triantafyllis Date: Tue, 26 Jul 2022 11:23:56 +0300 Subject: [PATCH 53/89] typos fix --- metric_descriptions/diversity-gini.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/metric_descriptions/diversity-gini.yml b/metric_descriptions/diversity-gini.yml index 905b453..b42c983 100644 --- a/metric_descriptions/diversity-gini.yml +++ b/metric_descriptions/diversity-gini.yml @@ -28,8 +28,8 @@ process: Calculation of the impact of the services, by counting how many times each service i was suggested to all possible users: count(i) - step: Sort Services Impact from low to high details: > - Sort the number of how many time each service i was suggested from the lower to the higher value, in order to apply the respective weight (i) - - step: Calculate the opossite of the Gini index computation + Sort the number of how many times each service (i.e. i) was suggested from the lower to the higher value, in order to apply the respective weight (i) + - step: Calculate the opposite of the Gini index computation details: > Calculation of the opposite of the Gini Index (1-G) by applying the suggested formula - step: Calculate Gini Index and normalize it From be11b4e5f0d633a707e107e78bed7b83cd53a2e7 Mon Sep 17 00:00:00 2001 From: Nikolaos Triantafyllis Date: Tue, 26 Jul 2022 14:24:39 +0300 Subject: [PATCH 54/89] REC-80 First version of Hit Rate --- metric_descriptions/hit-rate.yml | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 metric_descriptions/hit-rate.yml diff --git a/metric_descriptions/hit-rate.yml b/metric_descriptions/hit-rate.yml new file mode 100644 index 0000000..51b469f --- /dev/null +++ b/metric_descriptions/hit-rate.yml @@ -0,0 +1,28 @@ +name: Hit Rate + +summary: > + The ratio of user hits divided by the total number of users + +description: > + The ratio of user hits divided by the total number of users (user hit: a user that has accessed at least one service that is also a personal recommendation). The metric is expressed by the formula: $$Hit Rate=\frac{hits}{users}$$ + +output: + type: float + min: 0 + max: +inf + comment: A value of 0 indicates that no user hits occurred + +prerequisites: + - all available recommendations by registered users + - all available users + +process: + - step: Retrieve user-service association + details: > + For each user get the recommended services and the services the user accessed + - step: Calculate hits + details: > + Check if the user has at least one accessed service in recommendations. If yes increase number of hits by one + - step: Calculate ratio + details: > + Divide user hits by the total number of users From 5ae1ad321970e3a70e4ce3273b5c2c73f711b96b Mon Sep 17 00:00:00 2001 From: Nikolaos Triantafyllis Date: Tue, 26 Jul 2022 13:45:59 +0300 Subject: [PATCH 55/89] REC-79 First version of Click-Through-Rate --- metric_descriptions/click-through-rate.yml | 34 ++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 metric_descriptions/click-through-rate.yml diff --git a/metric_descriptions/click-through-rate.yml b/metric_descriptions/click-through-rate.yml new file mode 100644 index 0000000..170840c --- /dev/null +++ b/metric_descriptions/click-through-rate.yml @@ -0,0 +1,34 @@ +name: Click-Through Rate + +summary: > + The number of user clicks through recommendations panels divided by the total times recommendation panels were presented to users. + +description: > + The number of user clicks through recommendations panels divided by the total times recommendation panels were presented to users. Takes into account all historical data of user actions. The metric is expressed by the formula: $$Click-Through Rate=\frac{clicks}{views}$$ +output: + type: float + min: 0 + max: +inf + comment: A value of 0 indicates that no clicks through recommendations panels occurred + +prerequisites: + - all available user actions + +process: + - step: Retrieve user actions with recommendation panel + details: > + Get only the user actions that present a recommendation panel to the user in the source page. Those are actions with the following source paths: (i) /services, (ii) /services/, (iii) /services/c/{any category name} + - step: Count user actions with recommendation panel + details: > + Count the items in the above list as they represent the times recommendations panels were presented to the users of the portal + - step: Filter list + details: > + Narrow the above list into a new subset by selecting only user actions that originate from a recommendation panel. Those are actions that have the 'recommendation' string in the Action column + - step: Count user actions with clicks through recommendation panel + details: > + Count the items in the subset as they represent the times users clicked through recommendations + - step: Calculate ratio + details: > + Divide the items of the subset with the items of the first list to get the click-through rate + + From 35d68f8a17e228a3a7f194df499d43d68274baed Mon Sep 17 00:00:00 2001 From: Nikolaos Triantafyllis Date: Tue, 26 Jul 2022 14:32:28 +0300 Subject: [PATCH 56/89] REC-77 c: Fixing typos in math --- metric_descriptions/diversity-gini.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/metric_descriptions/diversity-gini.yml b/metric_descriptions/diversity-gini.yml index b42c983..40206c7 100644 --- a/metric_descriptions/diversity-gini.yml +++ b/metric_descriptions/diversity-gini.yml @@ -7,7 +7,7 @@ description: > The diversity of the recommendations according to Gini Index. The index is 0 when all items are chosen equally often, and 1 when a single item is always chosen (see book \url{https://link.springer.com/10.1007/978-1-4939-7131-2_110158}). Initially, the Gini Index (H) is defined as: $$G=\frac{1}{n-1}\sum_{j=1}^{n}(2j-n-1)p(i_j)$$where $$i_1,\ldots,i_n$$ is the list of items ordered according to increasing $$p(i)$$ and each item $$i$$ accounts for a proportion $$p(i)$$ of user recommendations. In RS Metrics the computation is determined by the following forumla: - $$$$G=1-\frac{\sum_{i=0}^{rec\_services}[2(i+1+services-rec\_services)-services-1]\frac{count(i)}{recommendations}}{services-1}$$$$, where $$count(i)$$ indicates how many times service $$i$$ has been recommended. + $$G=1-\frac{\sum_{i=0}^{rec\_services}[2(i+1+services-rec\_services)-services-1]\frac{count(i)}{recommendations}}{services-1}$$, where $$count(i)$$ indicates how many times service $$i$$ has been recommended. output: type: float From 1321a25a306d0eaa1686970384ef301d26a315c8 Mon Sep 17 00:00:00 2001 From: Konstantinos Kagkelidis Date: Tue, 26 Jul 2022 16:14:16 +0300 Subject: [PATCH 57/89] REC-81 Update metric descriptions page with css and dynamic sidebar --- webservice/.env | 4 +- webservice/app.py | 44 +- webservice/static/assets/scripts/main.js | 2231 +- webservice/static/main.css | 28212 +++++++++++++++++++++ webservice/templates/metric_desc.html | 151 +- 5 files changed, 28536 insertions(+), 2106 deletions(-) create mode 100644 webservice/static/main.css diff --git a/webservice/.env b/webservice/.env index 32d640c..71665ca 100644 --- a/webservice/.env +++ b/webservice/.env @@ -1,2 +1,2 @@ -RS_EVALUATION_METRICS=../data/ -RS_EVALUATION_METRIC_DESC=../metric_descriptions \ No newline at end of file +RS_EVALUATION_METRICS_FILE=../data/metrics.json +RS_EVALUATION_METRIC_DESC_DIR=../metric_descriptions \ No newline at end of file diff --git a/webservice/app.py b/webservice/app.py index 5c69104..fe177c1 100644 --- a/webservice/app.py +++ b/webservice/app.py @@ -1,5 +1,5 @@ from flask import Flask, render_template, jsonify, abort -import json, os +import json, os, re from dotenv import load_dotenv import yaml @@ -9,8 +9,31 @@ dotenv_path = os.path.join(app.instance_path, '.env') load_dotenv(dotenv_path) -app.config['RS_EVALUATION_METRICS'] = os.environ.get('RS_EVALUATION_METRICS') -app.config['RS_EVALUATION_METRIC_DESC'] = os.environ.get('RS_EVALUATION_METRIC_DESC') +app.config['RS_EVALUATION_METRICS_FILE'] = os.environ.get('RS_EVALUATION_METRICS_FILE') +app.config['RS_EVALUATION_METRIC_DESC_DIR'] = os.environ.get('RS_EVALUATION_METRIC_DESC_DIR') + +def load_sidebar_info(): + '''Reads the available metric description yaml files in metric description folder path + and creates dynamically a list of full names -> short names of metric descriptions + in order to create automatically the appropriate links in sidebar + ''' + folder = app.config['RS_EVALUATION_METRIC_DESC_DIR'] + desc = [] + app.logger.info('Opening metric description folder %s to gather sidebar info...',folder) + try: + for filename in os.listdir(folder): + if filename.endswith(".yml"): + with open(os.path.join(folder,filename), 'r') as f: + app.logger.info('Opening metric description file %s',filename) + result = yaml.safe_load(f) + # Remove .yml suffix from filename + desc.append({'name':re.sub('\.yml$', '', filename), 'fullname': result['name']}) + f.close() + except: + app.logger.error('Could not load sidebar info from metric description folder:%s',app.config['RS_EVALUATION_METRIC_DESC']) + return {'metric_descriptions':desc} + +app.sidebar_info = load_sidebar_info() @app.route("/") def html_main(): @@ -24,16 +47,17 @@ def html_metric_description(metric_name): result = {} # compose path to open correct yaml file - dir = app.config['RS_EVALUATION_METRIC_DESC'] + dir = app.config['RS_EVALUATION_METRIC_DESC_DIR'] filename = metric_name + ".yml" try: with open(os.path.join(dir,filename), 'r') as f: result = yaml.safe_load(f) + result['sidebar_info'] = app.sidebar_info + result['metric_active'] = metric_name f.close() except: abort(404) - return render_template('./metric_desc.html', data=result) @@ -43,7 +67,7 @@ def get_api_index(): '''Serve metrics and statistics as default api response''' result = {} - with open(app.config['RS_EVALUATION_METRICS'], 'r') as f: + with open(app.config['RS_EVALUATION_METRICS_FILE'], 'r') as f: result = json.load(f) f.close() return jsonify(result) @@ -54,7 +78,7 @@ def get_metrics(): '''Serve the metrics data in json format''' result = {} - with open(app.config['RS_EVALUATION_METRICS'], 'r') as f: + with open(app.config['RS_EVALUATION_METRICS_FILE'], 'r') as f: result = json.load(f) f.close() return jsonify(result['metrics']) @@ -64,7 +88,7 @@ def get_metric(metric_name): '''Serve specific metric data in json format''' result = {} - with open(app.config['RS_EVALUATION_METRICS'], 'r') as f: + with open(app.config['RS_EVALUATION_METRICS_FILE'], 'r') as f: result = json.load(f) f.close() @@ -79,7 +103,7 @@ def get_statistics(): '''Serve the statistics data in json format''' result = {} - with open(app.config['RS_EVALUATION_METRICS'], 'r') as f: + with open(app.config['RS_EVALUATION_METRICS_FILE'], 'r') as f: result = json.load(f) f.close() return jsonify(result['statistics']) @@ -89,7 +113,7 @@ def get_statistic(stat_name): '''Serve specific statistic data in json format''' result = {} - with open(app.config['RS_EVALUATION_METRICS'], 'r') as f: + with open(app.config['RS_EVALUATION_METRICS_FILE'], 'r') as f: result = json.load(f) f.close() diff --git a/webservice/static/assets/scripts/main.js b/webservice/static/assets/scripts/main.js index 76d5c4e..4b0c903 100644 --- a/webservice/static/assets/scripts/main.js +++ b/webservice/static/assets/scripts/main.js @@ -1,88 +1,6 @@ /******/ (() => { // webpackBootstrap /******/ var __webpack_modules__ = ([ -/* 0 */ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); -/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var bootstrap__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2); -/* harmony import */ var metismenu__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(61); -/* harmony import */ var metismenu__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(metismenu__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _assets_base_scss__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(62); -// Imports - - - // Stylesheets - - -jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).ready(function () { - // Sidebar Menu - setTimeout(function () { - jquery__WEBPACK_IMPORTED_MODULE_0___default()(".vertical-nav-menu").metisMenu(); - }, 100); // Search wrapper trigger - - jquery__WEBPACK_IMPORTED_MODULE_0___default()('.search-icon').click(function () { - jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).parent().parent().addClass('active'); - }); - jquery__WEBPACK_IMPORTED_MODULE_0___default()('.search-wrapper .btn-close').click(function () { - jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).parent().removeClass('active'); - }); // Stop Bootstrap 5 Dropdown for closing on click inside - - jquery__WEBPACK_IMPORTED_MODULE_0___default()('.dropdown-menu').on('click', function (event) { - var events = jquery__WEBPACK_IMPORTED_MODULE_0___default()._data(document, 'events') || {}; - events = events.click || []; - - for (var i = 0; i < events.length; i++) { - if (events[i].selector) { - if (jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target).is(events[i].selector)) { - events[i].handler.call(event.target, event); - } - - jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target).parents(events[i].selector).each(function () { - events[i].handler.call(this, event); - }); - } - } - - event.stopPropagation(); //Always stop propagation - }); - var popoverTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="popover"]')); - var popoverList = popoverTriggerList.map(function (popoverTriggerEl) { - return new bootstrap__WEBPACK_IMPORTED_MODULE_1__.Popover(popoverTriggerEl); - }); // BS5 Tooltips - - var tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]')); - var tooltipList = tooltipTriggerList.map(function (tooltipTriggerEl) { - return new bootstrap__WEBPACK_IMPORTED_MODULE_1__.Tooltip(tooltipTriggerEl); - }); - jquery__WEBPACK_IMPORTED_MODULE_0___default()('.mobile-toggle-nav').click(function () { - jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).toggleClass('is-active'); - jquery__WEBPACK_IMPORTED_MODULE_0___default()('.app-container').toggleClass('sidebar-mobile-open'); - }); - jquery__WEBPACK_IMPORTED_MODULE_0___default()('.mobile-toggle-header-nav').click(function () { - jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).toggleClass('active'); - jquery__WEBPACK_IMPORTED_MODULE_0___default()('.app-header__content').toggleClass('header-mobile-open'); - }); // Responsive - - var resizeClass = function resizeClass() { - var win = document.body.clientWidth; - - if (win < 1250) { - jquery__WEBPACK_IMPORTED_MODULE_0___default()('.app-container').addClass('closed-sidebar-mobile closed-sidebar'); - } else { - jquery__WEBPACK_IMPORTED_MODULE_0___default()('.app-container').removeClass('closed-sidebar-mobile closed-sidebar'); - } - }; - - jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on('resize', function () { - resizeClass(); - }); - resizeClass(); -}); - -/***/ }), +/* 0 */, /* 1 */ /***/ (function(module, exports) { @@ -18978,1981 +18896,228 @@ var createPopper = /*#__PURE__*/(0,_createPopper_js__WEBPACK_IMPORTED_MODULE_4__ /***/ }), /* 62 */ -/***/ ((module, __webpack_exports__, __webpack_require__) => { +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(63); -/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(64); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(65); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(66); -/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(67); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(68); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__); -/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_sass_loader_dist_cjs_js_base_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(69); - - - - - - - - - - - -var options = {}; - -options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default()); -options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default()); - - options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head"); - -options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default()); -options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default()); - -var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_sass_loader_dist_cjs_js_base_scss__WEBPACK_IMPORTED_MODULE_6__["default"], options); - - -if (true) { - if (!_node_modules_css_loader_dist_cjs_js_node_modules_sass_loader_dist_cjs_js_base_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals || module.hot.invalidate) { - var isEqualLocals = function isEqualLocals(a, b, isNamedExport) { - if (!a && b || a && !b) { - return false; - } - - var p; - - for (p in a) { - if (isNamedExport && p === "default") { - // eslint-disable-next-line no-continue - continue; - } - - if (a[p] !== b[p]) { - return false; - } - } - - for (p in b) { - if (isNamedExport && p === "default") { - // eslint-disable-next-line no-continue - continue; - } +// extracted by mini-css-extract-plugin - if (!a[p]) { - return false; - } - } - return true; -}; - var isNamedExport = !_node_modules_css_loader_dist_cjs_js_node_modules_sass_loader_dist_cjs_js_base_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals; - var oldLocals = isNamedExport ? _node_modules_css_loader_dist_cjs_js_node_modules_sass_loader_dist_cjs_js_base_scss__WEBPACK_IMPORTED_MODULE_6__ : _node_modules_css_loader_dist_cjs_js_node_modules_sass_loader_dist_cjs_js_base_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals; +/***/ }) +/******/ ]); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (exports, definition) => { +/******/ for(var key in definition) { +/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { +/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); +/******/ } +/******/ } +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/hasOwnProperty shorthand */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be in strict mode. +(() => { +"use strict"; +var __webpack_exports__ = {}; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); +/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var bootstrap__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2); +/* harmony import */ var metismenu__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(61); +/* harmony import */ var metismenu__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(metismenu__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _assets_base_scss__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(62); +// Imports - module.hot.accept( - 69, - __WEBPACK_OUTDATED_DEPENDENCIES__ => { /* harmony import */ _node_modules_css_loader_dist_cjs_js_node_modules_sass_loader_dist_cjs_js_base_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(69); -(function () { - if (!isEqualLocals(oldLocals, isNamedExport ? _node_modules_css_loader_dist_cjs_js_node_modules_sass_loader_dist_cjs_js_base_scss__WEBPACK_IMPORTED_MODULE_6__ : _node_modules_css_loader_dist_cjs_js_node_modules_sass_loader_dist_cjs_js_base_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals, isNamedExport)) { - module.hot.invalidate(); - return; - } + // Stylesheets - oldLocals = isNamedExport ? _node_modules_css_loader_dist_cjs_js_node_modules_sass_loader_dist_cjs_js_base_scss__WEBPACK_IMPORTED_MODULE_6__ : _node_modules_css_loader_dist_cjs_js_node_modules_sass_loader_dist_cjs_js_base_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals; - update(_node_modules_css_loader_dist_cjs_js_node_modules_sass_loader_dist_cjs_js_base_scss__WEBPACK_IMPORTED_MODULE_6__["default"]); - })(__WEBPACK_OUTDATED_DEPENDENCIES__); } - ) - } +jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).ready(function () { + // Sidebar Menu + setTimeout(function () { + jquery__WEBPACK_IMPORTED_MODULE_0___default()(".vertical-nav-menu").metisMenu(); + }, 100); // Search wrapper trigger - module.hot.dispose(function() { - update(); + jquery__WEBPACK_IMPORTED_MODULE_0___default()('.search-icon').click(function () { + jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).parent().parent().addClass('active'); }); -} - - - - /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_node_modules_sass_loader_dist_cjs_js_base_scss__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_node_modules_sass_loader_dist_cjs_js_base_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_node_modules_sass_loader_dist_cjs_js_base_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined); + jquery__WEBPACK_IMPORTED_MODULE_0___default()('.search-wrapper .btn-close').click(function () { + jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).parent().removeClass('active'); + }); // Stop Bootstrap 5 Dropdown for closing on click inside + jquery__WEBPACK_IMPORTED_MODULE_0___default()('.dropdown-menu').on('click', function (event) { + var events = jquery__WEBPACK_IMPORTED_MODULE_0___default()._data(document, 'events') || {}; + events = events.click || []; -/***/ }), -/* 63 */ -/***/ ((module) => { + for (var i = 0; i < events.length; i++) { + if (events[i].selector) { + if (jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target).is(events[i].selector)) { + events[i].handler.call(event.target, event); + } -"use strict"; + jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target).parents(events[i].selector).each(function () { + events[i].handler.call(this, event); + }); + } + } + event.stopPropagation(); //Always stop propagation + }); + var popoverTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="popover"]')); + var popoverList = popoverTriggerList.map(function (popoverTriggerEl) { + return new bootstrap__WEBPACK_IMPORTED_MODULE_1__.Popover(popoverTriggerEl); + }); // BS5 Tooltips -var stylesInDOM = []; + var tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]')); + var tooltipList = tooltipTriggerList.map(function (tooltipTriggerEl) { + return new bootstrap__WEBPACK_IMPORTED_MODULE_1__.Tooltip(tooltipTriggerEl); + }); + jquery__WEBPACK_IMPORTED_MODULE_0___default()('.mobile-toggle-nav').click(function () { + jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).toggleClass('is-active'); + jquery__WEBPACK_IMPORTED_MODULE_0___default()('.app-container').toggleClass('sidebar-mobile-open'); + }); + jquery__WEBPACK_IMPORTED_MODULE_0___default()('.mobile-toggle-header-nav').click(function () { + jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).toggleClass('active'); + jquery__WEBPACK_IMPORTED_MODULE_0___default()('.app-header__content').toggleClass('header-mobile-open'); + }); // Responsive -function getIndexByIdentifier(identifier) { - var result = -1; + var resizeClass = function resizeClass() { + var win = document.body.clientWidth; - for (var i = 0; i < stylesInDOM.length; i++) { - if (stylesInDOM[i].identifier === identifier) { - result = i; - break; + if (win < 1250) { + jquery__WEBPACK_IMPORTED_MODULE_0___default()('.app-container').addClass('closed-sidebar-mobile closed-sidebar'); + } else { + jquery__WEBPACK_IMPORTED_MODULE_0___default()('.app-container').removeClass('closed-sidebar-mobile closed-sidebar'); } - } - - return result; -} - -function modulesToDom(list, options) { - var idCountMap = {}; - var identifiers = []; - - for (var i = 0; i < list.length; i++) { - var item = list[i]; - var id = options.base ? item[0] + options.base : item[0]; - var count = idCountMap[id] || 0; - var identifier = "".concat(id, " ").concat(count); - idCountMap[id] = count + 1; - var indexByIdentifier = getIndexByIdentifier(identifier); - var obj = { - css: item[1], - media: item[2], - sourceMap: item[3], - supports: item[4], - layer: item[5] - }; + }; - if (indexByIdentifier !== -1) { - stylesInDOM[indexByIdentifier].references++; - stylesInDOM[indexByIdentifier].updater(obj); + jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on('resize', function () { + resizeClass(); + }); + resizeClass(); +}); +})(); + +// This entry need to be wrapped in an IIFE because it need to be isolated against other entry modules. +(() => { +/* provided dependency */ var $ = __webpack_require__(1); +// Demo Theme Options +$(document).ready(function () { + $('.btn-open-options').click(function () { + $('.ui-theme-settings').toggleClass('settings-open'); + }); + $('.close-sidebar-btn').click(function () { + var classToSwitch = $(this).attr('data-class'); + var containerElement = '.app-container'; + $(containerElement).toggleClass(classToSwitch); + var closeBtn = $(this); + + if (closeBtn.hasClass('is-active')) { + closeBtn.removeClass('is-active'); } else { - var updater = addElementStyle(obj, options); - options.byIndex = i; - stylesInDOM.splice(i, 0, { - identifier: identifier, - updater: updater, - references: 1 - }); + closeBtn.addClass('is-active'); } + }); + $('.switch-container-class').on('click', function () { + var classToSwitch = $(this).attr('data-class'); + var containerElement = '.app-container'; + $(containerElement).toggleClass(classToSwitch); + $(this).parent().find('.switch-container-class').removeClass('active'); + $(this).addClass('active'); + }); + $('.switch-theme-class').on('click', function () { + var classToSwitch = $(this).attr('data-class'); + var containerElement = '.app-container'; - identifiers.push(identifier); - } - - return identifiers; -} + if (classToSwitch == 'body-tabs-line') { + $(containerElement).removeClass('body-tabs-shadow'); + $(containerElement).addClass(classToSwitch); + } -function addElementStyle(obj, options) { - var api = options.domAPI(options); - api.update(obj); + if (classToSwitch == 'body-tabs-shadow') { + $(containerElement).removeClass('body-tabs-line'); + $(containerElement).addClass(classToSwitch); + } - var updater = function updater(newObj) { - if (newObj) { - if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) { - return; - } - - api.update(obj = newObj); - } else { - api.remove(); - } - }; - - return updater; -} - -module.exports = function (list, options) { - options = options || {}; - list = list || []; - var lastIdentifiers = modulesToDom(list, options); - return function update(newList) { - newList = newList || []; - - for (var i = 0; i < lastIdentifiers.length; i++) { - var identifier = lastIdentifiers[i]; - var index = getIndexByIdentifier(identifier); - stylesInDOM[index].references--; - } - - var newLastIdentifiers = modulesToDom(newList, options); - - for (var _i = 0; _i < lastIdentifiers.length; _i++) { - var _identifier = lastIdentifiers[_i]; - - var _index = getIndexByIdentifier(_identifier); - - if (stylesInDOM[_index].references === 0) { - stylesInDOM[_index].updater(); - - stylesInDOM.splice(_index, 1); - } - } - - lastIdentifiers = newLastIdentifiers; - }; -}; - -/***/ }), -/* 64 */ -/***/ ((module) => { - -"use strict"; - - -/* istanbul ignore next */ -function apply(styleElement, options, obj) { - var css = ""; - - if (obj.supports) { - css += "@supports (".concat(obj.supports, ") {"); - } - - if (obj.media) { - css += "@media ".concat(obj.media, " {"); - } - - var needLayer = typeof obj.layer !== "undefined"; - - if (needLayer) { - css += "@layer".concat(obj.layer.length > 0 ? " ".concat(obj.layer) : "", " {"); - } - - css += obj.css; - - if (needLayer) { - css += "}"; - } - - if (obj.media) { - css += "}"; - } - - if (obj.supports) { - css += "}"; - } - - var sourceMap = obj.sourceMap; - - if (sourceMap && typeof btoa !== "undefined") { - css += "\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), " */"); - } // For old IE - - /* istanbul ignore if */ - - - options.styleTagTransform(css, styleElement, options.options); -} - -function removeStyleElement(styleElement) { - // istanbul ignore if - if (styleElement.parentNode === null) { - return false; - } - - styleElement.parentNode.removeChild(styleElement); -} -/* istanbul ignore next */ - - -function domAPI(options) { - var styleElement = options.insertStyleElement(options); - return { - update: function update(obj) { - apply(styleElement, options, obj); - }, - remove: function remove() { - removeStyleElement(styleElement); - } - }; -} - -module.exports = domAPI; - -/***/ }), -/* 65 */ -/***/ ((module) => { - -"use strict"; - - -var memo = {}; -/* istanbul ignore next */ - -function getTarget(target) { - if (typeof memo[target] === "undefined") { - var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself - - if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) { - try { - // This will throw an exception if access to iframe is blocked - // due to cross-origin restrictions - styleTarget = styleTarget.contentDocument.head; - } catch (e) { - // istanbul ignore next - styleTarget = null; - } - } - - memo[target] = styleTarget; - } - - return memo[target]; -} -/* istanbul ignore next */ - - -function insertBySelector(insert, style) { - var target = getTarget(insert); - - if (!target) { - throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid."); - } - - target.appendChild(style); -} - -module.exports = insertBySelector; - -/***/ }), -/* 66 */ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; - - -/* istanbul ignore next */ -function setAttributesWithoutAttributes(styleElement) { - var nonce = true ? __webpack_require__.nc : 0; - - if (nonce) { - styleElement.setAttribute("nonce", nonce); - } -} - -module.exports = setAttributesWithoutAttributes; - -/***/ }), -/* 67 */ -/***/ ((module) => { - -"use strict"; - - -/* istanbul ignore next */ -function insertStyleElement(options) { - var element = document.createElement("style"); - options.setAttributes(element, options.attributes); - options.insert(element, options.options); - return element; -} - -module.exports = insertStyleElement; - -/***/ }), -/* 68 */ -/***/ ((module) => { - -"use strict"; - - -/* istanbul ignore next */ -function styleTagTransform(css, styleElement) { - if (styleElement.styleSheet) { - styleElement.styleSheet.cssText = css; - } else { - while (styleElement.firstChild) { - styleElement.removeChild(styleElement.firstChild); - } - - styleElement.appendChild(document.createTextNode(css)); - } -} - -module.exports = styleTagTransform; - -/***/ }), -/* 69 */ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(70); -/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(71); -/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(72); -/* harmony import */ var _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2__); -// Imports - - - -var ___CSS_LOADER_URL_IMPORT_0___ = new URL(/* asset import */ __webpack_require__(73), __webpack_require__.b); -var ___CSS_LOADER_URL_IMPORT_1___ = new URL(/* asset import */ __webpack_require__(74), __webpack_require__.b); -var ___CSS_LOADER_URL_IMPORT_2___ = new URL(/* asset import */ __webpack_require__(75), __webpack_require__.b); -var ___CSS_LOADER_URL_IMPORT_3___ = new URL(/* asset import */ __webpack_require__(76), __webpack_require__.b); -var ___CSS_LOADER_URL_IMPORT_4___ = new URL(/* asset import */ __webpack_require__(77), __webpack_require__.b); -var ___CSS_LOADER_URL_IMPORT_5___ = new URL(/* asset import */ __webpack_require__(78), __webpack_require__.b); -var ___CSS_LOADER_URL_IMPORT_6___ = new URL(/* asset import */ __webpack_require__(79), __webpack_require__.b); -var ___CSS_LOADER_URL_IMPORT_7___ = new URL(/* asset import */ __webpack_require__(80), __webpack_require__.b); -var ___CSS_LOADER_URL_IMPORT_8___ = new URL(/* asset import */ __webpack_require__(81), __webpack_require__.b); -var ___CSS_LOADER_URL_IMPORT_9___ = new URL(/* asset import */ __webpack_require__(82), __webpack_require__.b); -var ___CSS_LOADER_URL_IMPORT_10___ = new URL(/* asset import */ __webpack_require__(83), __webpack_require__.b); -var ___CSS_LOADER_URL_IMPORT_11___ = new URL(/* asset import */ __webpack_require__(84), __webpack_require__.b); -var ___CSS_LOADER_URL_IMPORT_12___ = new URL(/* asset import */ __webpack_require__(85), __webpack_require__.b); -var ___CSS_LOADER_URL_IMPORT_13___ = new URL(/* asset import */ __webpack_require__(86), __webpack_require__.b); -var ___CSS_LOADER_URL_IMPORT_14___ = new URL(/* asset import */ __webpack_require__(87), __webpack_require__.b); -var ___CSS_LOADER_URL_IMPORT_15___ = new URL(/* asset import */ __webpack_require__(88), __webpack_require__.b); -var ___CSS_LOADER_URL_IMPORT_16___ = new URL(/* asset import */ __webpack_require__(89), __webpack_require__.b); -var ___CSS_LOADER_URL_IMPORT_17___ = new URL(/* asset import */ __webpack_require__(90), __webpack_require__.b); -var ___CSS_LOADER_URL_IMPORT_18___ = new URL(/* asset import */ __webpack_require__(91), __webpack_require__.b); -var ___CSS_LOADER_URL_IMPORT_19___ = new URL(/* asset import */ __webpack_require__(92), __webpack_require__.b); -var ___CSS_LOADER_URL_IMPORT_20___ = new URL(/* asset import */ __webpack_require__(93), __webpack_require__.b); -var ___CSS_LOADER_URL_IMPORT_21___ = new URL(/* asset import */ __webpack_require__(94), __webpack_require__.b); -var ___CSS_LOADER_URL_IMPORT_22___ = new URL(/* asset import */ __webpack_require__(95), __webpack_require__.b); -var ___CSS_LOADER_URL_IMPORT_23___ = new URL(/* asset import */ __webpack_require__(96), __webpack_require__.b); -var ___CSS_LOADER_URL_IMPORT_24___ = new URL(/* asset import */ __webpack_require__(97), __webpack_require__.b); -var ___CSS_LOADER_URL_IMPORT_25___ = new URL(/* asset import */ __webpack_require__(98), __webpack_require__.b); -var ___CSS_LOADER_URL_IMPORT_26___ = new URL(/* asset import */ __webpack_require__(99), __webpack_require__.b); -var ___CSS_LOADER_URL_IMPORT_27___ = new URL(/* asset import */ __webpack_require__(100), __webpack_require__.b); -var ___CSS_LOADER_URL_IMPORT_28___ = new URL(/* asset import */ __webpack_require__(101), __webpack_require__.b); -var ___CSS_LOADER_URL_IMPORT_29___ = new URL(/* asset import */ __webpack_require__(102), __webpack_require__.b); -var ___CSS_LOADER_URL_IMPORT_30___ = new URL(/* asset import */ __webpack_require__(103), __webpack_require__.b); -var ___CSS_LOADER_URL_IMPORT_31___ = new URL(/* asset import */ __webpack_require__(104), __webpack_require__.b); -var ___CSS_LOADER_URL_IMPORT_32___ = new URL(/* asset import */ __webpack_require__(105), __webpack_require__.b); -var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); -var ___CSS_LOADER_URL_REPLACEMENT_0___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_0___); -var ___CSS_LOADER_URL_REPLACEMENT_1___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_1___); -var ___CSS_LOADER_URL_REPLACEMENT_2___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_2___); -var ___CSS_LOADER_URL_REPLACEMENT_3___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_3___); -var ___CSS_LOADER_URL_REPLACEMENT_4___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_4___); -var ___CSS_LOADER_URL_REPLACEMENT_5___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_5___); -var ___CSS_LOADER_URL_REPLACEMENT_6___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_6___); -var ___CSS_LOADER_URL_REPLACEMENT_7___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_7___); -var ___CSS_LOADER_URL_REPLACEMENT_8___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_8___); -var ___CSS_LOADER_URL_REPLACEMENT_9___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_9___); -var ___CSS_LOADER_URL_REPLACEMENT_10___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_10___); -var ___CSS_LOADER_URL_REPLACEMENT_11___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_11___); -var ___CSS_LOADER_URL_REPLACEMENT_12___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_12___); -var ___CSS_LOADER_URL_REPLACEMENT_13___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_13___); -var ___CSS_LOADER_URL_REPLACEMENT_14___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_14___); -var ___CSS_LOADER_URL_REPLACEMENT_15___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_15___); -var ___CSS_LOADER_URL_REPLACEMENT_16___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_16___); -var ___CSS_LOADER_URL_REPLACEMENT_17___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_17___); -var ___CSS_LOADER_URL_REPLACEMENT_18___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_18___); -var ___CSS_LOADER_URL_REPLACEMENT_19___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_19___); -var ___CSS_LOADER_URL_REPLACEMENT_20___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_20___); -var ___CSS_LOADER_URL_REPLACEMENT_21___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_21___); -var ___CSS_LOADER_URL_REPLACEMENT_22___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_22___); -var ___CSS_LOADER_URL_REPLACEMENT_23___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_23___, { hash: "?#iefixd7yf1v" }); -var ___CSS_LOADER_URL_REPLACEMENT_24___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_24___); -var ___CSS_LOADER_URL_REPLACEMENT_25___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_25___); -var ___CSS_LOADER_URL_REPLACEMENT_26___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_26___, { hash: "#Pe-icon-7-stroke" }); -var ___CSS_LOADER_URL_REPLACEMENT_27___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_27___); -var ___CSS_LOADER_URL_REPLACEMENT_28___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_28___); -var ___CSS_LOADER_URL_REPLACEMENT_29___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_29___); -var ___CSS_LOADER_URL_REPLACEMENT_30___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_30___); -var ___CSS_LOADER_URL_REPLACEMENT_31___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_31___); -var ___CSS_LOADER_URL_REPLACEMENT_32___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_32___); -// Module -___CSS_LOADER_EXPORT___.push([module.id, "@charset \"UTF-8\";\n/*!\n =========================================================\n * ArchitectUI HTML Theme Dashboard - v2.0.0\n =========================================================\n * Product Page: https://dashboardpack.com\n * Copyright 2021 DashboardPack (https://dashboardpack.com)\n * Licensed under MIT (https://github.com/DashboardPack/architectui-html-theme-free/blob/master/LICENSE)\n =========================================================\n * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n */\n.border-primary {\n border-color: #3f6ad8;\n}\n\n.border-secondary {\n border-color: #6c757d;\n}\n\n.border-success {\n border-color: #3ac47d;\n}\n\n.border-info {\n border-color: #16aaff;\n}\n\n.border-warning {\n border-color: #f7b924;\n}\n\n.border-danger {\n border-color: #d92550;\n}\n\n.border-light {\n border-color: #eeeeee;\n}\n\n.border-dark {\n border-color: #343a40;\n}\n\n.border-focus {\n border-color: #444054;\n}\n\n.border-alternate {\n border-color: #794c8a;\n}\n\n:root {\n --bs-blue: #78C3FB;\n --bs-indigo: #444054;\n --bs-purple: #794c8a;\n --bs-pink: #f65ca2;\n --bs-red: #d92550;\n --bs-orange: #fd7e14;\n --bs-yellow: #f7b924;\n --bs-green: #3ac47d;\n --bs-teal: #16E0BD;\n --bs-cyan: #16aaff;\n --bs-white: #fff;\n --bs-gray: #6c757d;\n --bs-gray-dark: #343a40;\n --bs-primary: #3f6ad8;\n --bs-secondary: #6c757d;\n --bs-success: #3ac47d;\n --bs-info: #16aaff;\n --bs-warning: #f7b924;\n --bs-danger: #d92550;\n --bs-light: #eeeeee;\n --bs-dark: #343a40;\n --bs-focus: #444054;\n --bs-alternate: #794c8a;\n --bs-font-sans-serif: system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", \"Liberation Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n --bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));\n}\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\n@media (prefers-reduced-motion: no-preference) {\n :root {\n scroll-behavior: smooth;\n }\n}\n\nbody {\n margin: 0;\n font-family: var(--bs-font-sans-serif);\n font-size: 0.88rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\nhr {\n margin: 1rem 0;\n color: inherit;\n background-color: currentColor;\n border: 0;\n opacity: 0.25;\n}\n\nhr:not([size]) {\n height: 1px;\n}\n\nh6, .h6, h5, .h5, h4, .h4, h3, .h3, h2, .h2, h1, .h1 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n font-weight: 400;\n line-height: 1.2;\n}\n\nh1, .h1 {\n font-size: calc(1.345rem + 1.14vw);\n}\n@media (min-width: 1200px) {\n h1, .h1 {\n font-size: 2.2rem;\n }\n}\n\nh2, .h2 {\n font-size: calc(1.301rem + 0.612vw);\n}\n@media (min-width: 1200px) {\n h2, .h2 {\n font-size: 1.76rem;\n }\n}\n\nh3, .h3 {\n font-size: calc(1.279rem + 0.348vw);\n}\n@media (min-width: 1200px) {\n h3, .h3 {\n font-size: 1.54rem;\n }\n}\n\nh4, .h4 {\n font-size: calc(1.257rem + 0.084vw);\n}\n@media (min-width: 1200px) {\n h4, .h4 {\n font-size: 1.32rem;\n }\n}\n\nh5, .h5 {\n font-size: 1.1rem;\n}\n\nh6, .h6 {\n font-size: 0.88rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-bs-original-title] {\n text-decoration: underline dotted;\n cursor: help;\n text-decoration-skip-ink: none;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul {\n padding-left: 2rem;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: 0.5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall, .small {\n font-size: 0.875em;\n}\n\nmark, .mark {\n padding: 0.2em;\n background-color: #fcf8e3;\n}\n\nsub,\nsup {\n position: relative;\n font-size: 0.75em;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\na {\n color: #3f6ad8;\n text-decoration: underline;\n}\na:hover {\n color: #3255ad;\n}\n\na:not([href]):not([class]), a:not([href]):not([class]):hover {\n color: inherit;\n text-decoration: none;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: var(--bs-font-monospace);\n font-size: 1em;\n direction: ltr /* rtl:ignore */;\n unicode-bidi: bidi-override;\n}\n\npre {\n display: block;\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n font-size: 0.875em;\n}\npre code {\n font-size: inherit;\n color: inherit;\n word-break: normal;\n}\n\ncode {\n font-size: 0.875em;\n color: #f65ca2;\n word-wrap: break-word;\n}\na > code {\n color: inherit;\n}\n\nkbd {\n padding: 0.2rem 0.4rem;\n font-size: 0.875em;\n color: #fff;\n background-color: #212529;\n border-radius: 0.2rem;\n}\nkbd kbd {\n padding: 0;\n font-size: 1em;\n font-weight: 700;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg,\nsvg {\n vertical-align: middle;\n}\n\ntable {\n caption-side: bottom;\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n color: #6c757d;\n text-align: left;\n}\n\nth {\n text-align: inherit;\n text-align: -webkit-match-parent;\n}\n\nthead,\ntbody,\ntfoot,\ntr,\ntd,\nth {\n border-color: inherit;\n border-style: solid;\n border-width: 0;\n}\n\nlabel {\n display: inline-block;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus:not(:focus-visible) {\n outline: 0;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\n[role=button] {\n cursor: pointer;\n}\n\nselect {\n word-wrap: normal;\n}\nselect:disabled {\n opacity: 1;\n}\n\n[list]::-webkit-calendar-picker-indicator {\n display: none;\n}\n\nbutton,\n[type=button],\n[type=reset],\n[type=submit] {\n -webkit-appearance: button;\n}\nbutton:not(:disabled),\n[type=button]:not(:disabled),\n[type=reset]:not(:disabled),\n[type=submit]:not(:disabled) {\n cursor: pointer;\n}\n\n::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ntextarea {\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n float: left;\n width: 100%;\n padding: 0;\n margin-bottom: 0.5rem;\n font-size: calc(1.275rem + 0.3vw);\n line-height: inherit;\n}\n@media (min-width: 1200px) {\n legend {\n font-size: 1.5rem;\n }\n}\nlegend + * {\n clear: left;\n}\n\n::-webkit-datetime-edit-fields-wrapper,\n::-webkit-datetime-edit-text,\n::-webkit-datetime-edit-minute,\n::-webkit-datetime-edit-hour-field,\n::-webkit-datetime-edit-day-field,\n::-webkit-datetime-edit-month-field,\n::-webkit-datetime-edit-year-field {\n padding: 0;\n}\n\n::-webkit-inner-spin-button {\n height: auto;\n}\n\n[type=search] {\n outline-offset: -2px;\n -webkit-appearance: textfield;\n}\n\n/* rtl:raw:\n[type=\"tel\"],\n[type=\"url\"],\n[type=\"email\"],\n[type=\"number\"] {\n direction: ltr;\n}\n*/\n::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-color-swatch-wrapper {\n padding: 0;\n}\n\n::file-selector-button {\n font: inherit;\n}\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\niframe {\n border: 0;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[hidden] {\n display: none !important;\n}\n\n.lead {\n font-size: 1.1rem;\n font-weight: 300;\n}\n\n.display-1 {\n font-size: calc(1.625rem + 4.5vw);\n font-weight: 300;\n line-height: 1.2;\n}\n@media (min-width: 1200px) {\n .display-1 {\n font-size: 5rem;\n }\n}\n\n.display-2 {\n font-size: calc(1.575rem + 3.9vw);\n font-weight: 300;\n line-height: 1.2;\n}\n@media (min-width: 1200px) {\n .display-2 {\n font-size: 4.5rem;\n }\n}\n\n.display-3 {\n font-size: calc(1.525rem + 3.3vw);\n font-weight: 300;\n line-height: 1.2;\n}\n@media (min-width: 1200px) {\n .display-3 {\n font-size: 4rem;\n }\n}\n\n.display-4 {\n font-size: calc(1.475rem + 2.7vw);\n font-weight: 300;\n line-height: 1.2;\n}\n@media (min-width: 1200px) {\n .display-4 {\n font-size: 3.5rem;\n }\n}\n\n.display-5 {\n font-size: calc(1.425rem + 2.1vw);\n font-weight: 300;\n line-height: 1.2;\n}\n@media (min-width: 1200px) {\n .display-5 {\n font-size: 3rem;\n }\n}\n\n.display-6 {\n font-size: calc(1.375rem + 1.5vw);\n font-weight: 300;\n line-height: 1.2;\n}\n@media (min-width: 1200px) {\n .display-6 {\n font-size: 2.5rem;\n }\n}\n\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline-item {\n display: inline-block;\n}\n.list-inline-item:not(:last-child) {\n margin-right: 0.5rem;\n}\n\n.initialism {\n font-size: 0.875em;\n text-transform: uppercase;\n}\n\n.blockquote {\n margin-bottom: 1rem;\n font-size: 1.1rem;\n}\n.blockquote > :last-child {\n margin-bottom: 0;\n}\n\n.blockquote-footer {\n margin-top: -1rem;\n margin-bottom: 1rem;\n font-size: 0.875em;\n color: #6c757d;\n}\n.blockquote-footer::before {\n content: \"— \";\n}\n\n.img-fluid {\n max-width: 100%;\n height: auto;\n}\n\n.img-thumbnail {\n padding: 0.25rem;\n background-color: #fff;\n border: 1px solid #dee2e6;\n border-radius: 0.25rem;\n max-width: 100%;\n height: auto;\n}\n\n.figure {\n display: inline-block;\n}\n\n.figure-img {\n margin-bottom: 0.5rem;\n line-height: 1;\n}\n\n.figure-caption {\n font-size: 0.875em;\n color: #6c757d;\n}\n\n.container,\n.container-fluid,\n.container-xxl,\n.container-xl,\n.container-lg,\n.container-md,\n.container-sm {\n width: 100%;\n padding-right: var(--bs-gutter-x, 0.75rem);\n padding-left: var(--bs-gutter-x, 0.75rem);\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container-sm, .container {\n max-width: 540px;\n }\n}\n@media (min-width: 768px) {\n .container-md, .container-sm, .container {\n max-width: 720px;\n }\n}\n@media (min-width: 992px) {\n .container-lg, .container-md, .container-sm, .container {\n max-width: 960px;\n }\n}\n@media (min-width: 1200px) {\n .container-xl, .container-lg, .container-md, .container-sm, .container {\n max-width: 1140px;\n }\n}\n@media (min-width: 1400px) {\n .container-xxl, .container-xl, .container-lg, .container-md, .container-sm, .container {\n max-width: 1320px;\n }\n}\n.row {\n --bs-gutter-x: 1.5rem;\n --bs-gutter-y: 0;\n display: flex;\n flex-wrap: wrap;\n margin-top: calc(var(--bs-gutter-y) * -1);\n margin-right: calc(var(--bs-gutter-x) * -0.5);\n margin-left: calc(var(--bs-gutter-x) * -0.5);\n}\n.row > * {\n flex-shrink: 0;\n width: 100%;\n max-width: 100%;\n padding-right: calc(var(--bs-gutter-x) * 0.5);\n padding-left: calc(var(--bs-gutter-x) * 0.5);\n margin-top: var(--bs-gutter-y);\n}\n\n.col {\n flex: 1 0 0%;\n}\n\n.row-cols-auto > * {\n flex: 0 0 auto;\n width: auto;\n}\n\n.row-cols-1 > * {\n flex: 0 0 auto;\n width: 100%;\n}\n\n.row-cols-2 > * {\n flex: 0 0 auto;\n width: 50%;\n}\n\n.row-cols-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n}\n\n.row-cols-4 > * {\n flex: 0 0 auto;\n width: 25%;\n}\n\n.row-cols-5 > * {\n flex: 0 0 auto;\n width: 20%;\n}\n\n.row-cols-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n flex: 1 0 0%;\n }\n .row-cols-sm-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-sm-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-sm-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-sm-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .row-cols-sm-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-sm-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-sm-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n}\n@media (min-width: 768px) {\n .col-md {\n flex: 1 0 0%;\n }\n .row-cols-md-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-md-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-md-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-md-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .row-cols-md-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-md-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-md-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n}\n@media (min-width: 992px) {\n .col-lg {\n flex: 1 0 0%;\n }\n .row-cols-lg-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-lg-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-lg-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-lg-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .row-cols-lg-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-lg-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-lg-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n}\n@media (min-width: 1200px) {\n .col-xl {\n flex: 1 0 0%;\n }\n .row-cols-xl-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-xl-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-xl-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-xl-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .row-cols-xl-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-xl-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-xl-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n}\n@media (min-width: 1400px) {\n .col-xxl {\n flex: 1 0 0%;\n }\n .row-cols-xxl-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-xxl-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-xxl-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-xxl-3 > * {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n .row-cols-xxl-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-xxl-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-xxl-6 > * {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n}\n.col-auto {\n flex: 0 0 auto;\n width: auto;\n}\n\n.col-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n}\n\n.col-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n}\n\n.col-3 {\n flex: 0 0 auto;\n width: 25%;\n}\n\n.col-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n}\n\n.col-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n}\n\n.col-6 {\n flex: 0 0 auto;\n width: 50%;\n}\n\n.col-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n}\n\n.col-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n}\n\n.col-9 {\n flex: 0 0 auto;\n width: 75%;\n}\n\n.col-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n}\n\n.col-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n}\n\n.col-12 {\n flex: 0 0 auto;\n width: 100%;\n}\n\n.offset-1 {\n margin-left: 8.33333333%;\n}\n\n.offset-2 {\n margin-left: 16.66666667%;\n}\n\n.offset-3 {\n margin-left: 25%;\n}\n\n.offset-4 {\n margin-left: 33.33333333%;\n}\n\n.offset-5 {\n margin-left: 41.66666667%;\n}\n\n.offset-6 {\n margin-left: 50%;\n}\n\n.offset-7 {\n margin-left: 58.33333333%;\n}\n\n.offset-8 {\n margin-left: 66.66666667%;\n}\n\n.offset-9 {\n margin-left: 75%;\n}\n\n.offset-10 {\n margin-left: 83.33333333%;\n}\n\n.offset-11 {\n margin-left: 91.66666667%;\n}\n\n.g-0,\n.gx-0 {\n --bs-gutter-x: 0;\n}\n\n.g-0,\n.gy-0 {\n --bs-gutter-y: 0;\n}\n\n.g-1,\n.gx-1 {\n --bs-gutter-x: 0.25rem;\n}\n\n.g-1,\n.gy-1 {\n --bs-gutter-y: 0.25rem;\n}\n\n.g-2,\n.gx-2 {\n --bs-gutter-x: 0.5rem;\n}\n\n.g-2,\n.gy-2 {\n --bs-gutter-y: 0.5rem;\n}\n\n.g-3,\n.gx-3 {\n --bs-gutter-x: 1rem;\n}\n\n.g-3,\n.gy-3 {\n --bs-gutter-y: 1rem;\n}\n\n.g-4,\n.gx-4 {\n --bs-gutter-x: 1.5rem;\n}\n\n.g-4,\n.gy-4 {\n --bs-gutter-y: 1.5rem;\n}\n\n.g-5,\n.gx-5 {\n --bs-gutter-x: 3rem;\n}\n\n.g-5,\n.gy-5 {\n --bs-gutter-y: 3rem;\n}\n\n@media (min-width: 576px) {\n .col-sm-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-sm-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n .col-sm-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-sm-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-sm-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .col-sm-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n .col-sm-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-sm-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n .col-sm-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n .col-sm-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-sm-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n .col-sm-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n .col-sm-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-sm-0 {\n margin-left: 0;\n }\n .offset-sm-1 {\n margin-left: 8.33333333%;\n }\n .offset-sm-2 {\n margin-left: 16.66666667%;\n }\n .offset-sm-3 {\n margin-left: 25%;\n }\n .offset-sm-4 {\n margin-left: 33.33333333%;\n }\n .offset-sm-5 {\n margin-left: 41.66666667%;\n }\n .offset-sm-6 {\n margin-left: 50%;\n }\n .offset-sm-7 {\n margin-left: 58.33333333%;\n }\n .offset-sm-8 {\n margin-left: 66.66666667%;\n }\n .offset-sm-9 {\n margin-left: 75%;\n }\n .offset-sm-10 {\n margin-left: 83.33333333%;\n }\n .offset-sm-11 {\n margin-left: 91.66666667%;\n }\n .g-sm-0,\n.gx-sm-0 {\n --bs-gutter-x: 0;\n }\n .g-sm-0,\n.gy-sm-0 {\n --bs-gutter-y: 0;\n }\n .g-sm-1,\n.gx-sm-1 {\n --bs-gutter-x: 0.25rem;\n }\n .g-sm-1,\n.gy-sm-1 {\n --bs-gutter-y: 0.25rem;\n }\n .g-sm-2,\n.gx-sm-2 {\n --bs-gutter-x: 0.5rem;\n }\n .g-sm-2,\n.gy-sm-2 {\n --bs-gutter-y: 0.5rem;\n }\n .g-sm-3,\n.gx-sm-3 {\n --bs-gutter-x: 1rem;\n }\n .g-sm-3,\n.gy-sm-3 {\n --bs-gutter-y: 1rem;\n }\n .g-sm-4,\n.gx-sm-4 {\n --bs-gutter-x: 1.5rem;\n }\n .g-sm-4,\n.gy-sm-4 {\n --bs-gutter-y: 1.5rem;\n }\n .g-sm-5,\n.gx-sm-5 {\n --bs-gutter-x: 3rem;\n }\n .g-sm-5,\n.gy-sm-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 768px) {\n .col-md-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-md-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n .col-md-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-md-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-md-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .col-md-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n .col-md-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-md-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n .col-md-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n .col-md-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-md-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n .col-md-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n .col-md-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-md-0 {\n margin-left: 0;\n }\n .offset-md-1 {\n margin-left: 8.33333333%;\n }\n .offset-md-2 {\n margin-left: 16.66666667%;\n }\n .offset-md-3 {\n margin-left: 25%;\n }\n .offset-md-4 {\n margin-left: 33.33333333%;\n }\n .offset-md-5 {\n margin-left: 41.66666667%;\n }\n .offset-md-6 {\n margin-left: 50%;\n }\n .offset-md-7 {\n margin-left: 58.33333333%;\n }\n .offset-md-8 {\n margin-left: 66.66666667%;\n }\n .offset-md-9 {\n margin-left: 75%;\n }\n .offset-md-10 {\n margin-left: 83.33333333%;\n }\n .offset-md-11 {\n margin-left: 91.66666667%;\n }\n .g-md-0,\n.gx-md-0 {\n --bs-gutter-x: 0;\n }\n .g-md-0,\n.gy-md-0 {\n --bs-gutter-y: 0;\n }\n .g-md-1,\n.gx-md-1 {\n --bs-gutter-x: 0.25rem;\n }\n .g-md-1,\n.gy-md-1 {\n --bs-gutter-y: 0.25rem;\n }\n .g-md-2,\n.gx-md-2 {\n --bs-gutter-x: 0.5rem;\n }\n .g-md-2,\n.gy-md-2 {\n --bs-gutter-y: 0.5rem;\n }\n .g-md-3,\n.gx-md-3 {\n --bs-gutter-x: 1rem;\n }\n .g-md-3,\n.gy-md-3 {\n --bs-gutter-y: 1rem;\n }\n .g-md-4,\n.gx-md-4 {\n --bs-gutter-x: 1.5rem;\n }\n .g-md-4,\n.gy-md-4 {\n --bs-gutter-y: 1.5rem;\n }\n .g-md-5,\n.gx-md-5 {\n --bs-gutter-x: 3rem;\n }\n .g-md-5,\n.gy-md-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 992px) {\n .col-lg-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-lg-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n .col-lg-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-lg-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-lg-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .col-lg-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n .col-lg-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-lg-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n .col-lg-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n .col-lg-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-lg-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n .col-lg-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n .col-lg-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-lg-0 {\n margin-left: 0;\n }\n .offset-lg-1 {\n margin-left: 8.33333333%;\n }\n .offset-lg-2 {\n margin-left: 16.66666667%;\n }\n .offset-lg-3 {\n margin-left: 25%;\n }\n .offset-lg-4 {\n margin-left: 33.33333333%;\n }\n .offset-lg-5 {\n margin-left: 41.66666667%;\n }\n .offset-lg-6 {\n margin-left: 50%;\n }\n .offset-lg-7 {\n margin-left: 58.33333333%;\n }\n .offset-lg-8 {\n margin-left: 66.66666667%;\n }\n .offset-lg-9 {\n margin-left: 75%;\n }\n .offset-lg-10 {\n margin-left: 83.33333333%;\n }\n .offset-lg-11 {\n margin-left: 91.66666667%;\n }\n .g-lg-0,\n.gx-lg-0 {\n --bs-gutter-x: 0;\n }\n .g-lg-0,\n.gy-lg-0 {\n --bs-gutter-y: 0;\n }\n .g-lg-1,\n.gx-lg-1 {\n --bs-gutter-x: 0.25rem;\n }\n .g-lg-1,\n.gy-lg-1 {\n --bs-gutter-y: 0.25rem;\n }\n .g-lg-2,\n.gx-lg-2 {\n --bs-gutter-x: 0.5rem;\n }\n .g-lg-2,\n.gy-lg-2 {\n --bs-gutter-y: 0.5rem;\n }\n .g-lg-3,\n.gx-lg-3 {\n --bs-gutter-x: 1rem;\n }\n .g-lg-3,\n.gy-lg-3 {\n --bs-gutter-y: 1rem;\n }\n .g-lg-4,\n.gx-lg-4 {\n --bs-gutter-x: 1.5rem;\n }\n .g-lg-4,\n.gy-lg-4 {\n --bs-gutter-y: 1.5rem;\n }\n .g-lg-5,\n.gx-lg-5 {\n --bs-gutter-x: 3rem;\n }\n .g-lg-5,\n.gy-lg-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 1200px) {\n .col-xl-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-xl-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n .col-xl-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-xl-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-xl-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .col-xl-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n .col-xl-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-xl-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n .col-xl-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n .col-xl-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-xl-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n .col-xl-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n .col-xl-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-xl-0 {\n margin-left: 0;\n }\n .offset-xl-1 {\n margin-left: 8.33333333%;\n }\n .offset-xl-2 {\n margin-left: 16.66666667%;\n }\n .offset-xl-3 {\n margin-left: 25%;\n }\n .offset-xl-4 {\n margin-left: 33.33333333%;\n }\n .offset-xl-5 {\n margin-left: 41.66666667%;\n }\n .offset-xl-6 {\n margin-left: 50%;\n }\n .offset-xl-7 {\n margin-left: 58.33333333%;\n }\n .offset-xl-8 {\n margin-left: 66.66666667%;\n }\n .offset-xl-9 {\n margin-left: 75%;\n }\n .offset-xl-10 {\n margin-left: 83.33333333%;\n }\n .offset-xl-11 {\n margin-left: 91.66666667%;\n }\n .g-xl-0,\n.gx-xl-0 {\n --bs-gutter-x: 0;\n }\n .g-xl-0,\n.gy-xl-0 {\n --bs-gutter-y: 0;\n }\n .g-xl-1,\n.gx-xl-1 {\n --bs-gutter-x: 0.25rem;\n }\n .g-xl-1,\n.gy-xl-1 {\n --bs-gutter-y: 0.25rem;\n }\n .g-xl-2,\n.gx-xl-2 {\n --bs-gutter-x: 0.5rem;\n }\n .g-xl-2,\n.gy-xl-2 {\n --bs-gutter-y: 0.5rem;\n }\n .g-xl-3,\n.gx-xl-3 {\n --bs-gutter-x: 1rem;\n }\n .g-xl-3,\n.gy-xl-3 {\n --bs-gutter-y: 1rem;\n }\n .g-xl-4,\n.gx-xl-4 {\n --bs-gutter-x: 1.5rem;\n }\n .g-xl-4,\n.gy-xl-4 {\n --bs-gutter-y: 1.5rem;\n }\n .g-xl-5,\n.gx-xl-5 {\n --bs-gutter-x: 3rem;\n }\n .g-xl-5,\n.gy-xl-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 1400px) {\n .col-xxl-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-xxl-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n .col-xxl-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-xxl-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-xxl-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .col-xxl-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n .col-xxl-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-xxl-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n .col-xxl-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n .col-xxl-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-xxl-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n .col-xxl-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n .col-xxl-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-xxl-0 {\n margin-left: 0;\n }\n .offset-xxl-1 {\n margin-left: 8.33333333%;\n }\n .offset-xxl-2 {\n margin-left: 16.66666667%;\n }\n .offset-xxl-3 {\n margin-left: 25%;\n }\n .offset-xxl-4 {\n margin-left: 33.33333333%;\n }\n .offset-xxl-5 {\n margin-left: 41.66666667%;\n }\n .offset-xxl-6 {\n margin-left: 50%;\n }\n .offset-xxl-7 {\n margin-left: 58.33333333%;\n }\n .offset-xxl-8 {\n margin-left: 66.66666667%;\n }\n .offset-xxl-9 {\n margin-left: 75%;\n }\n .offset-xxl-10 {\n margin-left: 83.33333333%;\n }\n .offset-xxl-11 {\n margin-left: 91.66666667%;\n }\n .g-xxl-0,\n.gx-xxl-0 {\n --bs-gutter-x: 0;\n }\n .g-xxl-0,\n.gy-xxl-0 {\n --bs-gutter-y: 0;\n }\n .g-xxl-1,\n.gx-xxl-1 {\n --bs-gutter-x: 0.25rem;\n }\n .g-xxl-1,\n.gy-xxl-1 {\n --bs-gutter-y: 0.25rem;\n }\n .g-xxl-2,\n.gx-xxl-2 {\n --bs-gutter-x: 0.5rem;\n }\n .g-xxl-2,\n.gy-xxl-2 {\n --bs-gutter-y: 0.5rem;\n }\n .g-xxl-3,\n.gx-xxl-3 {\n --bs-gutter-x: 1rem;\n }\n .g-xxl-3,\n.gy-xxl-3 {\n --bs-gutter-y: 1rem;\n }\n .g-xxl-4,\n.gx-xxl-4 {\n --bs-gutter-x: 1.5rem;\n }\n .g-xxl-4,\n.gy-xxl-4 {\n --bs-gutter-y: 1.5rem;\n }\n .g-xxl-5,\n.gx-xxl-5 {\n --bs-gutter-x: 3rem;\n }\n .g-xxl-5,\n.gy-xxl-5 {\n --bs-gutter-y: 3rem;\n }\n}\n.table {\n --bs-table-bg: transparent;\n --bs-table-accent-bg: rgba(0, 0, 0, 0.03);\n --bs-table-striped-color: #495057;\n --bs-table-striped-bg: rgba(0, 0, 0, 0.05);\n --bs-table-active-color: #495057;\n --bs-table-active-bg: #e0f3ff;\n --bs-table-hover-color: #495057;\n --bs-table-hover-bg: #e0f3ff;\n width: 100%;\n margin-bottom: 1rem;\n color: #495057;\n vertical-align: top;\n border-color: #e9ecef;\n}\n.table > :not(caption) > * > * {\n padding: 0.5rem 0.5rem;\n background-color: var(--bs-table-bg);\n border-bottom-width: 1px;\n box-shadow: inset 0 0 0 9999px var(--bs-table-accent-bg);\n}\n.table > tbody {\n vertical-align: inherit;\n}\n.table > thead {\n vertical-align: bottom;\n}\n.table > :not(:last-child) > :last-child > * {\n border-bottom-color: currentColor;\n}\n\n.caption-top {\n caption-side: top;\n}\n\n.table-sm > :not(caption) > * > * {\n padding: 0.25rem 0.25rem;\n}\n\n.table-bordered > :not(caption) > * {\n border-width: 1px 0;\n}\n.table-bordered > :not(caption) > * > * {\n border-width: 0 1px;\n}\n\n.table-borderless > :not(caption) > * > * {\n border-bottom-width: 0;\n}\n\n.table-striped > tbody > tr:nth-of-type(odd) {\n --bs-table-accent-bg: var(--bs-table-striped-bg);\n color: var(--bs-table-striped-color);\n}\n\n.table-active {\n --bs-table-accent-bg: var(--bs-table-active-bg);\n color: var(--bs-table-active-color);\n}\n\n.table-hover > tbody > tr:hover {\n --bs-table-accent-bg: var(--bs-table-hover-bg);\n color: var(--bs-table-hover-color);\n}\n\n.table-primary {\n --bs-table-bg: #d9e1f7;\n --bs-table-striped-bg: #ced6eb;\n --bs-table-striped-color: #000;\n --bs-table-active-bg: #c3cbde;\n --bs-table-active-color: #000;\n --bs-table-hover-bg: #c9d0e4;\n --bs-table-hover-color: #000;\n color: #000;\n border-color: #c3cbde;\n}\n\n.table-secondary {\n --bs-table-bg: #e2e3e5;\n --bs-table-striped-bg: #d7d8da;\n --bs-table-striped-color: #000;\n --bs-table-active-bg: #cbccce;\n --bs-table-active-color: #000;\n --bs-table-hover-bg: #d1d2d4;\n --bs-table-hover-color: #000;\n color: #000;\n border-color: #cbccce;\n}\n\n.table-success {\n --bs-table-bg: #d8f3e5;\n --bs-table-striped-bg: #cde7da;\n --bs-table-striped-color: #000;\n --bs-table-active-bg: #c2dbce;\n --bs-table-active-color: #000;\n --bs-table-hover-bg: #c8e1d4;\n --bs-table-hover-color: #000;\n color: #000;\n border-color: #c2dbce;\n}\n\n.table-info {\n --bs-table-bg: #d0eeff;\n --bs-table-striped-bg: #c6e2f2;\n --bs-table-striped-color: #000;\n --bs-table-active-bg: #bbd6e6;\n --bs-table-active-color: #000;\n --bs-table-hover-bg: #c0dcec;\n --bs-table-hover-color: #000;\n color: #000;\n border-color: #bbd6e6;\n}\n\n.table-warning {\n --bs-table-bg: #fdf1d3;\n --bs-table-striped-bg: #f0e5c8;\n --bs-table-striped-color: #000;\n --bs-table-active-bg: #e4d9be;\n --bs-table-active-color: #000;\n --bs-table-hover-bg: #eadfc3;\n --bs-table-hover-color: #000;\n color: #000;\n border-color: #e4d9be;\n}\n\n.table-danger {\n --bs-table-bg: #f7d3dc;\n --bs-table-striped-bg: #ebc8d1;\n --bs-table-striped-color: #000;\n --bs-table-active-bg: #debec6;\n --bs-table-active-color: #000;\n --bs-table-hover-bg: #e4c3cc;\n --bs-table-hover-color: #000;\n color: #000;\n border-color: #debec6;\n}\n\n.table-light {\n --bs-table-bg: #eeeeee;\n --bs-table-striped-bg: #e2e2e2;\n --bs-table-striped-color: #000;\n --bs-table-active-bg: #d6d6d6;\n --bs-table-active-color: #000;\n --bs-table-hover-bg: gainsboro;\n --bs-table-hover-color: #000;\n color: #000;\n border-color: #d6d6d6;\n}\n\n.table-dark {\n --bs-table-bg: #343a40;\n --bs-table-striped-bg: #3e444a;\n --bs-table-striped-color: #fff;\n --bs-table-active-bg: #484e53;\n --bs-table-active-color: #fff;\n --bs-table-hover-bg: #43494e;\n --bs-table-hover-color: #fff;\n color: #fff;\n border-color: #484e53;\n}\n\n.table-responsive {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n}\n\n@media (max-width: 575.98px) {\n .table-responsive-sm {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n}\n@media (max-width: 767.98px) {\n .table-responsive-md {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n}\n@media (max-width: 991.98px) {\n .table-responsive-lg {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n}\n@media (max-width: 1199.98px) {\n .table-responsive-xl {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n}\n@media (max-width: 1399.98px) {\n .table-responsive-xxl {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n}\n.form-label {\n margin-bottom: 0.5rem;\n}\n\n.col-form-label {\n padding-top: calc(0.375rem + 1px);\n padding-bottom: calc(0.375rem + 1px);\n margin-bottom: 0;\n font-size: inherit;\n line-height: 1.5;\n}\n\n.col-form-label-lg {\n padding-top: calc(0.5rem + 1px);\n padding-bottom: calc(0.5rem + 1px);\n font-size: 1.1rem;\n}\n\n.col-form-label-sm {\n padding-top: calc(0.25rem + 1px);\n padding-bottom: calc(0.25rem + 1px);\n font-size: 0.968rem;\n}\n\n.form-text {\n margin-top: 0.25rem;\n font-size: 0.875em;\n color: #6c757d;\n}\n\n.form-control {\n display: block;\n width: 100%;\n padding: 0.375rem 0.75rem;\n font-size: 0.88rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #ced4da;\n appearance: none;\n border-radius: 0.25rem;\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .form-control {\n transition: none;\n }\n}\n.form-control[type=file] {\n overflow: hidden;\n}\n.form-control[type=file]:not(:disabled):not([readonly]) {\n cursor: pointer;\n}\n.form-control:focus {\n color: #495057;\n background-color: #fff;\n border-color: #a9bcee;\n outline: 0;\n box-shadow: 0 0 0 0.25rem rgba(63, 106, 216, 0.25);\n}\n.form-control::-webkit-date-and-time-value {\n height: 1.5em;\n}\n.form-control::placeholder {\n color: #6c757d;\n opacity: 1;\n}\n.form-control:disabled, .form-control[readonly] {\n background-color: #e9ecef;\n opacity: 1;\n}\n.form-control::file-selector-button {\n padding: 0.375rem 0.75rem;\n margin: -0.375rem -0.75rem;\n margin-inline-end: 0.75rem;\n color: #495057;\n background-color: #eff9ff;\n pointer-events: none;\n border-color: inherit;\n border-style: solid;\n border-width: 0;\n border-inline-end-width: 1px;\n border-radius: 0;\n transition: color 0.15s, background-color 0.15s, border-color 0.15s, box-shadow 0.15s;\n}\n@media (prefers-reduced-motion: reduce) {\n .form-control::file-selector-button {\n transition: none;\n }\n}\n.form-control:hover:not(:disabled):not([readonly])::file-selector-button {\n background-color: #e3edf2;\n}\n.form-control::-webkit-file-upload-button {\n padding: 0.375rem 0.75rem;\n margin: -0.375rem -0.75rem;\n margin-inline-end: 0.75rem;\n color: #495057;\n background-color: #eff9ff;\n pointer-events: none;\n border-color: inherit;\n border-style: solid;\n border-width: 0;\n border-inline-end-width: 1px;\n border-radius: 0;\n transition: color 0.15s, background-color 0.15s, border-color 0.15s, box-shadow 0.15s;\n}\n@media (prefers-reduced-motion: reduce) {\n .form-control::-webkit-file-upload-button {\n transition: none;\n }\n}\n.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button {\n background-color: #e3edf2;\n}\n\n.form-control-plaintext {\n display: block;\n width: 100%;\n padding: 0.375rem 0;\n margin-bottom: 0;\n line-height: 1.5;\n color: #495057;\n background-color: transparent;\n border: solid transparent;\n border-width: 1px 0;\n}\n.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {\n padding-right: 0;\n padding-left: 0;\n}\n\n.form-control-sm {\n min-height: calc(1.5em + (0.5rem + 2px));\n padding: 0.25rem 0.5rem;\n font-size: 0.968rem;\n border-radius: 0.2rem;\n}\n.form-control-sm::file-selector-button {\n padding: 0.25rem 0.5rem;\n margin: -0.25rem -0.5rem;\n margin-inline-end: 0.5rem;\n}\n.form-control-sm::-webkit-file-upload-button {\n padding: 0.25rem 0.5rem;\n margin: -0.25rem -0.5rem;\n margin-inline-end: 0.5rem;\n}\n\n.form-control-lg {\n min-height: calc(1.5em + (1rem + 2px));\n padding: 0.5rem 1rem;\n font-size: 1.1rem;\n border-radius: 0.3rem;\n}\n.form-control-lg::file-selector-button {\n padding: 0.5rem 1rem;\n margin: -0.5rem -1rem;\n margin-inline-end: 1rem;\n}\n.form-control-lg::-webkit-file-upload-button {\n padding: 0.5rem 1rem;\n margin: -0.5rem -1rem;\n margin-inline-end: 1rem;\n}\n\ntextarea.form-control {\n min-height: calc(1.5em + (0.75rem + 2px));\n}\ntextarea.form-control-sm {\n min-height: calc(1.5em + (0.5rem + 2px));\n}\ntextarea.form-control-lg {\n min-height: calc(1.5em + (1rem + 2px));\n}\n\n.form-control-color {\n max-width: 3rem;\n height: auto;\n padding: 0.375rem;\n}\n.form-control-color:not(:disabled):not([readonly]) {\n cursor: pointer;\n}\n.form-control-color::-moz-color-swatch {\n height: 1.5em;\n border-radius: 0.25rem;\n}\n.form-control-color::-webkit-color-swatch {\n height: 1.5em;\n border-radius: 0.25rem;\n}\n\n.form-select {\n display: block;\n width: 100%;\n padding: 0.375rem 2.25rem 0.375rem 0.75rem;\n -moz-padding-start: calc(0.75rem - 3px);\n font-size: 0.88rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n background-image: url(" + ___CSS_LOADER_URL_REPLACEMENT_0___ + ");\n background-repeat: no-repeat;\n background-position: right 0.75rem center;\n background-size: 16px 12px;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n@media (prefers-reduced-motion: reduce) {\n .form-select {\n transition: none;\n }\n}\n.form-select:focus {\n border-color: #a9bcee;\n outline: 0;\n box-shadow: 0 0 0 0.25rem rgba(63, 106, 216, 0.25);\n}\n.form-select[multiple], .form-select[size]:not([size=\"1\"]) {\n padding-right: 0.75rem;\n background-image: none;\n}\n.form-select:disabled {\n background-color: #e9ecef;\n}\n.form-select:-moz-focusring {\n color: transparent;\n text-shadow: 0 0 0 #495057;\n}\n\n.form-select-sm {\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n padding-left: 0.5rem;\n font-size: 0.968rem;\n}\n\n.form-select-lg {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n padding-left: 1rem;\n font-size: 1.1rem;\n}\n\n.form-check {\n display: block;\n min-height: 1.32rem;\n padding-left: 1.5em;\n margin-bottom: 0.125rem;\n}\n.form-check .form-check-input {\n float: left;\n margin-left: -1.5em;\n}\n\n.form-check-input {\n width: 1em;\n height: 1em;\n margin-top: 0.25em;\n vertical-align: top;\n background-color: #fff;\n background-repeat: no-repeat;\n background-position: center;\n background-size: contain;\n border: 1px solid rgba(0, 0, 0, 0.25);\n appearance: none;\n color-adjust: exact;\n}\n.form-check-input[type=checkbox] {\n border-radius: 0.25em;\n}\n.form-check-input[type=radio] {\n border-radius: 50%;\n}\n.form-check-input:active {\n filter: brightness(90%);\n}\n.form-check-input:focus {\n border-color: #a9bcee;\n outline: 0;\n box-shadow: 0 0 0 0.25rem rgba(63, 106, 216, 0.25);\n}\n.form-check-input:checked {\n background-color: #3f6ad8;\n border-color: #3f6ad8;\n}\n.form-check-input:checked[type=checkbox] {\n background-image: url(" + ___CSS_LOADER_URL_REPLACEMENT_1___ + ");\n}\n.form-check-input:checked[type=radio] {\n background-image: url(" + ___CSS_LOADER_URL_REPLACEMENT_2___ + ");\n}\n.form-check-input[type=checkbox]:indeterminate {\n background-color: #3f6ad8;\n border-color: #3f6ad8;\n background-image: url(" + ___CSS_LOADER_URL_REPLACEMENT_3___ + ");\n}\n.form-check-input:disabled {\n pointer-events: none;\n filter: none;\n opacity: 0.5;\n}\n.form-check-input[disabled] ~ .form-check-label, .form-check-input:disabled ~ .form-check-label {\n opacity: 0.5;\n}\n\n.form-switch {\n padding-left: 2.5em;\n}\n.form-switch .form-check-input {\n width: 2em;\n margin-left: -2.5em;\n background-image: url(" + ___CSS_LOADER_URL_REPLACEMENT_4___ + ");\n background-position: left center;\n border-radius: 2em;\n transition: background-position 0.15s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .form-switch .form-check-input {\n transition: none;\n }\n}\n.form-switch .form-check-input:focus {\n background-image: url(" + ___CSS_LOADER_URL_REPLACEMENT_5___ + ");\n}\n.form-switch .form-check-input:checked {\n background-position: right center;\n background-image: url(" + ___CSS_LOADER_URL_REPLACEMENT_6___ + ");\n}\n\n.form-check-inline {\n display: inline-block;\n margin-right: 1rem;\n}\n\n.btn-check {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n}\n.btn-check[disabled] + .btn, .btn-check:disabled + .btn {\n pointer-events: none;\n filter: none;\n opacity: 0.65;\n}\n\n.form-range {\n width: 100%;\n height: 1.5rem;\n padding: 0;\n background-color: transparent;\n appearance: none;\n}\n.form-range:focus {\n outline: 0;\n}\n.form-range:focus::-webkit-slider-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.25rem rgba(63, 106, 216, 0.25);\n}\n.form-range:focus::-moz-range-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.25rem rgba(63, 106, 216, 0.25);\n}\n.form-range::-moz-focus-outer {\n border: 0;\n}\n.form-range::-webkit-slider-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: -0.25rem;\n background-color: #3f6ad8;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n@media (prefers-reduced-motion: reduce) {\n .form-range::-webkit-slider-thumb {\n transition: none;\n }\n}\n.form-range::-webkit-slider-thumb:active {\n background-color: #c5d2f3;\n}\n.form-range::-webkit-slider-runnable-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem;\n}\n.form-range::-moz-range-thumb {\n width: 1rem;\n height: 1rem;\n background-color: #3f6ad8;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n@media (prefers-reduced-motion: reduce) {\n .form-range::-moz-range-thumb {\n transition: none;\n }\n}\n.form-range::-moz-range-thumb:active {\n background-color: #c5d2f3;\n}\n.form-range::-moz-range-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem;\n}\n.form-range:disabled {\n pointer-events: none;\n}\n.form-range:disabled::-webkit-slider-thumb {\n background-color: #adb5bd;\n}\n.form-range:disabled::-moz-range-thumb {\n background-color: #adb5bd;\n}\n\n.form-floating {\n position: relative;\n}\n.form-floating > .form-control,\n.form-floating > .form-select {\n height: calc(3.5rem + 2px);\n line-height: 1.25;\n}\n.form-floating > label {\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n padding: 1rem 0.75rem;\n pointer-events: none;\n border: 1px solid transparent;\n transform-origin: 0 0;\n transition: opacity 0.1s ease-in-out, transform 0.1s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .form-floating > label {\n transition: none;\n }\n}\n.form-floating > .form-control {\n padding: 1rem 0.75rem;\n}\n.form-floating > .form-control::placeholder {\n color: transparent;\n}\n.form-floating > .form-control:focus, .form-floating > .form-control:not(:placeholder-shown) {\n padding-top: 1.625rem;\n padding-bottom: 0.625rem;\n}\n.form-floating > .form-control:-webkit-autofill {\n padding-top: 1.625rem;\n padding-bottom: 0.625rem;\n}\n.form-floating > .form-select {\n padding-top: 1.625rem;\n padding-bottom: 0.625rem;\n}\n.form-floating > .form-control:focus ~ label,\n.form-floating > .form-control:not(:placeholder-shown) ~ label,\n.form-floating > .form-select ~ label {\n opacity: 0.65;\n transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem);\n}\n.form-floating > .form-control:-webkit-autofill ~ label {\n opacity: 0.65;\n transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem);\n}\n\n.input-group {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: stretch;\n width: 100%;\n}\n.input-group > .form-control,\n.input-group > .form-select {\n position: relative;\n flex: 1 1 auto;\n width: 1%;\n min-width: 0;\n}\n.input-group > .form-control:focus,\n.input-group > .form-select:focus {\n z-index: 3;\n}\n.input-group .btn {\n position: relative;\n z-index: 2;\n}\n.input-group .btn:focus {\n z-index: 3;\n}\n\n.input-group-text {\n display: flex;\n align-items: center;\n padding: 0.375rem 0.75rem;\n font-size: 0.88rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n text-align: center;\n white-space: nowrap;\n background-color: #eff9ff;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n\n.input-group-lg > .form-control,\n.input-group-lg > .form-select,\n.input-group-lg > .input-group-text,\n.input-group-lg > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.1rem;\n border-radius: 0.3rem;\n}\n\n.input-group-sm > .form-control,\n.input-group-sm > .form-select,\n.input-group-sm > .input-group-text,\n.input-group-sm > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.968rem;\n border-radius: 0.2rem;\n}\n\n.input-group-lg > .form-select,\n.input-group-sm > .form-select {\n padding-right: 3rem;\n}\n\n.input-group:not(.has-validation) > :not(:last-child):not(.dropdown-toggle):not(.dropdown-menu),\n.input-group:not(.has-validation) > .dropdown-toggle:nth-last-child(n+3) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.input-group.has-validation > :nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu),\n.input-group.has-validation > .dropdown-toggle:nth-last-child(n+4) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.input-group > :not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback) {\n margin-left: -1px;\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.valid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 0.875em;\n color: #3ac47d;\n}\n\n.valid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: 0.1rem;\n font-size: 0.968rem;\n color: #000;\n background-color: rgba(58, 196, 125, 0.9);\n border-radius: 0.25rem;\n}\n\n.was-validated :valid ~ .valid-feedback,\n.was-validated :valid ~ .valid-tooltip,\n.is-valid ~ .valid-feedback,\n.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .form-control:valid, .form-control.is-valid {\n border-color: #3ac47d;\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(" + ___CSS_LOADER_URL_REPLACEMENT_7___ + ");\n background-repeat: no-repeat;\n background-position: right calc(0.375em + 0.1875rem) center;\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n.was-validated .form-control:valid:focus, .form-control.is-valid:focus {\n border-color: #3ac47d;\n box-shadow: 0 0 0 0.25rem rgba(58, 196, 125, 0.25);\n}\n\n.was-validated textarea.form-control:valid, textarea.form-control.is-valid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .form-select:valid, .form-select.is-valid {\n border-color: #3ac47d;\n}\n.was-validated .form-select:valid:not([multiple]):not([size]), .was-validated .form-select:valid:not([multiple])[size=\"1\"], .form-select.is-valid:not([multiple]):not([size]), .form-select.is-valid:not([multiple])[size=\"1\"] {\n padding-right: 4.125rem;\n background-image: url(" + ___CSS_LOADER_URL_REPLACEMENT_0___ + "), url(" + ___CSS_LOADER_URL_REPLACEMENT_7___ + ");\n background-position: right 0.75rem center, center right 2.25rem;\n background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n.was-validated .form-select:valid:focus, .form-select.is-valid:focus {\n border-color: #3ac47d;\n box-shadow: 0 0 0 0.25rem rgba(58, 196, 125, 0.25);\n}\n\n.was-validated .form-check-input:valid, .form-check-input.is-valid {\n border-color: #3ac47d;\n}\n.was-validated .form-check-input:valid:checked, .form-check-input.is-valid:checked {\n background-color: #3ac47d;\n}\n.was-validated .form-check-input:valid:focus, .form-check-input.is-valid:focus {\n box-shadow: 0 0 0 0.25rem rgba(58, 196, 125, 0.25);\n}\n.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {\n color: #3ac47d;\n}\n\n.form-check-inline .form-check-input ~ .valid-feedback {\n margin-left: 0.5em;\n}\n\n.was-validated .input-group .form-control:valid, .input-group .form-control.is-valid,\n.was-validated .input-group .form-select:valid,\n.input-group .form-select.is-valid {\n z-index: 1;\n}\n.was-validated .input-group .form-control:valid:focus, .input-group .form-control.is-valid:focus,\n.was-validated .input-group .form-select:valid:focus,\n.input-group .form-select.is-valid:focus {\n z-index: 3;\n}\n\n.invalid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 0.875em;\n color: #d92550;\n}\n\n.invalid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: 0.1rem;\n font-size: 0.968rem;\n color: #fff;\n background-color: rgba(217, 37, 80, 0.9);\n border-radius: 0.25rem;\n}\n\n.was-validated :invalid ~ .invalid-feedback,\n.was-validated :invalid ~ .invalid-tooltip,\n.is-invalid ~ .invalid-feedback,\n.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .form-control:invalid, .form-control.is-invalid {\n border-color: #d92550;\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(" + ___CSS_LOADER_URL_REPLACEMENT_8___ + ");\n background-repeat: no-repeat;\n background-position: right calc(0.375em + 0.1875rem) center;\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus {\n border-color: #d92550;\n box-shadow: 0 0 0 0.25rem rgba(217, 37, 80, 0.25);\n}\n\n.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .form-select:invalid, .form-select.is-invalid {\n border-color: #d92550;\n}\n.was-validated .form-select:invalid:not([multiple]):not([size]), .was-validated .form-select:invalid:not([multiple])[size=\"1\"], .form-select.is-invalid:not([multiple]):not([size]), .form-select.is-invalid:not([multiple])[size=\"1\"] {\n padding-right: 4.125rem;\n background-image: url(" + ___CSS_LOADER_URL_REPLACEMENT_0___ + "), url(" + ___CSS_LOADER_URL_REPLACEMENT_8___ + ");\n background-position: right 0.75rem center, center right 2.25rem;\n background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n.was-validated .form-select:invalid:focus, .form-select.is-invalid:focus {\n border-color: #d92550;\n box-shadow: 0 0 0 0.25rem rgba(217, 37, 80, 0.25);\n}\n\n.was-validated .form-check-input:invalid, .form-check-input.is-invalid {\n border-color: #d92550;\n}\n.was-validated .form-check-input:invalid:checked, .form-check-input.is-invalid:checked {\n background-color: #d92550;\n}\n.was-validated .form-check-input:invalid:focus, .form-check-input.is-invalid:focus {\n box-shadow: 0 0 0 0.25rem rgba(217, 37, 80, 0.25);\n}\n.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {\n color: #d92550;\n}\n\n.form-check-inline .form-check-input ~ .invalid-feedback {\n margin-left: 0.5em;\n}\n\n.was-validated .input-group .form-control:invalid, .input-group .form-control.is-invalid,\n.was-validated .input-group .form-select:invalid,\n.input-group .form-select.is-invalid {\n z-index: 2;\n}\n.was-validated .input-group .form-control:invalid:focus, .input-group .form-control.is-invalid:focus,\n.was-validated .input-group .form-select:invalid:focus,\n.input-group .form-select.is-invalid:focus {\n z-index: 3;\n}\n\n.btn {\n display: inline-block;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n text-align: center;\n text-decoration: none;\n vertical-align: middle;\n cursor: pointer;\n user-select: none;\n background-color: transparent;\n border: 1px solid transparent;\n padding: 0.375rem 0.75rem;\n font-size: 0.88rem;\n border-radius: 0.25rem;\n transition: color 0.15s, background-color 0.15s, border-color 0.15s, box-shadow 0.15s;\n}\n@media (prefers-reduced-motion: reduce) {\n .btn {\n transition: none;\n }\n}\n.btn:hover {\n color: #495057;\n}\n.btn-check:focus + .btn, .btn:focus {\n outline: 0;\n box-shadow: none;\n}\n.btn:disabled, .btn.disabled, fieldset:disabled .btn {\n pointer-events: none;\n opacity: 0.65;\n}\n\n.btn-primary {\n color: #fff;\n background-color: #3f6ad8;\n border-color: #3f6ad8;\n}\n.btn-primary:hover {\n color: #fff;\n background-color: #365ab8;\n border-color: #3255ad;\n}\n.btn-check:focus + .btn-primary, .btn-primary:focus {\n color: #fff;\n background-color: #365ab8;\n border-color: #3255ad;\n box-shadow: 0 0 0 0 rgba(92, 128, 222, 0.5);\n}\n.btn-check:checked + .btn-primary, .btn-check:active + .btn-primary, .btn-primary:active, .btn-primary.active, .show > .btn-primary.dropdown-toggle {\n color: #fff;\n background-color: #3255ad;\n border-color: #2f50a2;\n}\n.btn-check:checked + .btn-primary:focus, .btn-check:active + .btn-primary:focus, .btn-primary:active:focus, .btn-primary.active:focus, .show > .btn-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0 rgba(92, 128, 222, 0.5);\n}\n.btn-primary:disabled, .btn-primary.disabled {\n color: #fff;\n background-color: #3f6ad8;\n border-color: #3f6ad8;\n}\n\n.btn-secondary {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n.btn-secondary:hover {\n color: #fff;\n background-color: #5c636a;\n border-color: #565e64;\n}\n.btn-check:focus + .btn-secondary, .btn-secondary:focus {\n color: #fff;\n background-color: #5c636a;\n border-color: #565e64;\n box-shadow: 0 0 0 0 rgba(130, 138, 145, 0.5);\n}\n.btn-check:checked + .btn-secondary, .btn-check:active + .btn-secondary, .btn-secondary:active, .btn-secondary.active, .show > .btn-secondary.dropdown-toggle {\n color: #fff;\n background-color: #565e64;\n border-color: #51585e;\n}\n.btn-check:checked + .btn-secondary:focus, .btn-check:active + .btn-secondary:focus, .btn-secondary:active:focus, .btn-secondary.active:focus, .show > .btn-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0 rgba(130, 138, 145, 0.5);\n}\n.btn-secondary:disabled, .btn-secondary.disabled {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-success {\n color: #000;\n background-color: #3ac47d;\n border-color: #3ac47d;\n}\n.btn-success:hover {\n color: #000;\n background-color: #58cd91;\n border-color: #4eca8a;\n}\n.btn-check:focus + .btn-success, .btn-success:focus {\n color: #000;\n background-color: #58cd91;\n border-color: #4eca8a;\n box-shadow: 0 0 0 0 rgba(49, 167, 106, 0.5);\n}\n.btn-check:checked + .btn-success, .btn-check:active + .btn-success, .btn-success:active, .btn-success.active, .show > .btn-success.dropdown-toggle {\n color: #000;\n background-color: #61d097;\n border-color: #4eca8a;\n}\n.btn-check:checked + .btn-success:focus, .btn-check:active + .btn-success:focus, .btn-success:active:focus, .btn-success.active:focus, .show > .btn-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0 rgba(49, 167, 106, 0.5);\n}\n.btn-success:disabled, .btn-success.disabled {\n color: #000;\n background-color: #3ac47d;\n border-color: #3ac47d;\n}\n\n.btn-info {\n color: #000;\n background-color: #16aaff;\n border-color: #16aaff;\n}\n.btn-info:hover {\n color: #000;\n background-color: #39b7ff;\n border-color: #2db3ff;\n}\n.btn-check:focus + .btn-info, .btn-info:focus {\n color: #000;\n background-color: #39b7ff;\n border-color: #2db3ff;\n box-shadow: 0 0 0 0 rgba(19, 145, 217, 0.5);\n}\n.btn-check:checked + .btn-info, .btn-check:active + .btn-info, .btn-info:active, .btn-info.active, .show > .btn-info.dropdown-toggle {\n color: #000;\n background-color: #45bbff;\n border-color: #2db3ff;\n}\n.btn-check:checked + .btn-info:focus, .btn-check:active + .btn-info:focus, .btn-info:active:focus, .btn-info.active:focus, .show > .btn-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0 rgba(19, 145, 217, 0.5);\n}\n.btn-info:disabled, .btn-info.disabled {\n color: #000;\n background-color: #16aaff;\n border-color: #16aaff;\n}\n\n.btn-warning {\n color: #000;\n background-color: #f7b924;\n border-color: #f7b924;\n}\n.btn-warning:hover {\n color: #000;\n background-color: #f8c445;\n border-color: #f8c03a;\n}\n.btn-check:focus + .btn-warning, .btn-warning:focus {\n color: #000;\n background-color: #f8c445;\n border-color: #f8c03a;\n box-shadow: 0 0 0 0 rgba(210, 157, 31, 0.5);\n}\n.btn-check:checked + .btn-warning, .btn-check:active + .btn-warning, .btn-warning:active, .btn-warning.active, .show > .btn-warning.dropdown-toggle {\n color: #000;\n background-color: #f9c750;\n border-color: #f8c03a;\n}\n.btn-check:checked + .btn-warning:focus, .btn-check:active + .btn-warning:focus, .btn-warning:active:focus, .btn-warning.active:focus, .show > .btn-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0 rgba(210, 157, 31, 0.5);\n}\n.btn-warning:disabled, .btn-warning.disabled {\n color: #000;\n background-color: #f7b924;\n border-color: #f7b924;\n}\n\n.btn-danger {\n color: #fff;\n background-color: #d92550;\n border-color: #d92550;\n}\n.btn-danger:hover {\n color: #fff;\n background-color: #b81f44;\n border-color: #ae1e40;\n}\n.btn-check:focus + .btn-danger, .btn-danger:focus {\n color: #fff;\n background-color: #b81f44;\n border-color: #ae1e40;\n box-shadow: 0 0 0 0 rgba(223, 70, 106, 0.5);\n}\n.btn-check:checked + .btn-danger, .btn-check:active + .btn-danger, .btn-danger:active, .btn-danger.active, .show > .btn-danger.dropdown-toggle {\n color: #fff;\n background-color: #ae1e40;\n border-color: #a31c3c;\n}\n.btn-check:checked + .btn-danger:focus, .btn-check:active + .btn-danger:focus, .btn-danger:active:focus, .btn-danger.active:focus, .show > .btn-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0 rgba(223, 70, 106, 0.5);\n}\n.btn-danger:disabled, .btn-danger.disabled {\n color: #fff;\n background-color: #d92550;\n border-color: #d92550;\n}\n\n.btn-light {\n color: #000;\n background-color: #eeeeee;\n border-color: #eeeeee;\n}\n.btn-light:hover {\n color: #000;\n background-color: #f1f1f1;\n border-color: #f0f0f0;\n}\n.btn-check:focus + .btn-light, .btn-light:focus {\n color: #000;\n background-color: #f1f1f1;\n border-color: #f0f0f0;\n box-shadow: 0 0 0 0 rgba(202, 202, 202, 0.5);\n}\n.btn-check:checked + .btn-light, .btn-check:active + .btn-light, .btn-light:active, .btn-light.active, .show > .btn-light.dropdown-toggle {\n color: #000;\n background-color: #f1f1f1;\n border-color: #f0f0f0;\n}\n.btn-check:checked + .btn-light:focus, .btn-check:active + .btn-light:focus, .btn-light:active:focus, .btn-light.active:focus, .show > .btn-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0 rgba(202, 202, 202, 0.5);\n}\n.btn-light:disabled, .btn-light.disabled {\n color: #000;\n background-color: #eeeeee;\n border-color: #eeeeee;\n}\n\n.btn-dark {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n.btn-dark:hover {\n color: #fff;\n background-color: #2c3136;\n border-color: #2a2e33;\n}\n.btn-check:focus + .btn-dark, .btn-dark:focus {\n color: #fff;\n background-color: #2c3136;\n border-color: #2a2e33;\n box-shadow: 0 0 0 0 rgba(82, 88, 93, 0.5);\n}\n.btn-check:checked + .btn-dark, .btn-check:active + .btn-dark, .btn-dark:active, .btn-dark.active, .show > .btn-dark.dropdown-toggle {\n color: #fff;\n background-color: #2a2e33;\n border-color: #272c30;\n}\n.btn-check:checked + .btn-dark:focus, .btn-check:active + .btn-dark:focus, .btn-dark:active:focus, .btn-dark.active:focus, .show > .btn-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0 rgba(82, 88, 93, 0.5);\n}\n.btn-dark:disabled, .btn-dark.disabled {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-focus {\n color: #fff;\n background-color: #444054;\n border-color: #444054;\n}\n.btn-focus:hover {\n color: #fff;\n background-color: #3a3647;\n border-color: #363343;\n}\n.btn-check:focus + .btn-focus, .btn-focus:focus {\n color: #fff;\n background-color: #3a3647;\n border-color: #363343;\n box-shadow: 0 0 0 0 rgba(96, 93, 110, 0.5);\n}\n.btn-check:checked + .btn-focus, .btn-check:active + .btn-focus, .btn-focus:active, .btn-focus.active, .show > .btn-focus.dropdown-toggle {\n color: #fff;\n background-color: #363343;\n border-color: #33303f;\n}\n.btn-check:checked + .btn-focus:focus, .btn-check:active + .btn-focus:focus, .btn-focus:active:focus, .btn-focus.active:focus, .show > .btn-focus.dropdown-toggle:focus {\n box-shadow: 0 0 0 0 rgba(96, 93, 110, 0.5);\n}\n.btn-focus:disabled, .btn-focus.disabled {\n color: #fff;\n background-color: #444054;\n border-color: #444054;\n}\n\n.btn-alternate {\n color: #fff;\n background-color: #794c8a;\n border-color: #794c8a;\n}\n.btn-alternate:hover {\n color: #fff;\n background-color: #674175;\n border-color: #613d6e;\n}\n.btn-check:focus + .btn-alternate, .btn-alternate:focus {\n color: #fff;\n background-color: #674175;\n border-color: #613d6e;\n box-shadow: 0 0 0 0 rgba(141, 103, 156, 0.5);\n}\n.btn-check:checked + .btn-alternate, .btn-check:active + .btn-alternate, .btn-alternate:active, .btn-alternate.active, .show > .btn-alternate.dropdown-toggle {\n color: #fff;\n background-color: #613d6e;\n border-color: #5b3968;\n}\n.btn-check:checked + .btn-alternate:focus, .btn-check:active + .btn-alternate:focus, .btn-alternate:active:focus, .btn-alternate.active:focus, .show > .btn-alternate.dropdown-toggle:focus {\n box-shadow: 0 0 0 0 rgba(141, 103, 156, 0.5);\n}\n.btn-alternate:disabled, .btn-alternate.disabled {\n color: #fff;\n background-color: #794c8a;\n border-color: #794c8a;\n}\n\n.btn-outline-primary {\n color: #3f6ad8;\n border-color: #3f6ad8;\n}\n.btn-outline-primary:hover {\n color: #fff;\n background-color: #3f6ad8;\n border-color: #3f6ad8;\n}\n.btn-check:focus + .btn-outline-primary, .btn-outline-primary:focus {\n box-shadow: 0 0 0 0 rgba(63, 106, 216, 0.5);\n}\n.btn-check:checked + .btn-outline-primary, .btn-check:active + .btn-outline-primary, .btn-outline-primary:active, .btn-outline-primary.active, .btn-outline-primary.dropdown-toggle.show {\n color: #fff;\n background-color: #3f6ad8;\n border-color: #3f6ad8;\n}\n.btn-check:checked + .btn-outline-primary:focus, .btn-check:active + .btn-outline-primary:focus, .btn-outline-primary:active:focus, .btn-outline-primary.active:focus, .btn-outline-primary.dropdown-toggle.show:focus {\n box-shadow: 0 0 0 0 rgba(63, 106, 216, 0.5);\n}\n.btn-outline-primary:disabled, .btn-outline-primary.disabled {\n color: #3f6ad8;\n background-color: transparent;\n}\n\n.btn-outline-secondary {\n color: #6c757d;\n border-color: #6c757d;\n}\n.btn-outline-secondary:hover {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n.btn-check:focus + .btn-outline-secondary, .btn-outline-secondary:focus {\n box-shadow: 0 0 0 0 rgba(108, 117, 125, 0.5);\n}\n.btn-check:checked + .btn-outline-secondary, .btn-check:active + .btn-outline-secondary, .btn-outline-secondary:active, .btn-outline-secondary.active, .btn-outline-secondary.dropdown-toggle.show {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n.btn-check:checked + .btn-outline-secondary:focus, .btn-check:active + .btn-outline-secondary:focus, .btn-outline-secondary:active:focus, .btn-outline-secondary.active:focus, .btn-outline-secondary.dropdown-toggle.show:focus {\n box-shadow: 0 0 0 0 rgba(108, 117, 125, 0.5);\n}\n.btn-outline-secondary:disabled, .btn-outline-secondary.disabled {\n color: #6c757d;\n background-color: transparent;\n}\n\n.btn-outline-success {\n color: #3ac47d;\n border-color: #3ac47d;\n}\n.btn-outline-success:hover {\n color: #000;\n background-color: #3ac47d;\n border-color: #3ac47d;\n}\n.btn-check:focus + .btn-outline-success, .btn-outline-success:focus {\n box-shadow: 0 0 0 0 rgba(58, 196, 125, 0.5);\n}\n.btn-check:checked + .btn-outline-success, .btn-check:active + .btn-outline-success, .btn-outline-success:active, .btn-outline-success.active, .btn-outline-success.dropdown-toggle.show {\n color: #000;\n background-color: #3ac47d;\n border-color: #3ac47d;\n}\n.btn-check:checked + .btn-outline-success:focus, .btn-check:active + .btn-outline-success:focus, .btn-outline-success:active:focus, .btn-outline-success.active:focus, .btn-outline-success.dropdown-toggle.show:focus {\n box-shadow: 0 0 0 0 rgba(58, 196, 125, 0.5);\n}\n.btn-outline-success:disabled, .btn-outline-success.disabled {\n color: #3ac47d;\n background-color: transparent;\n}\n\n.btn-outline-info {\n color: #16aaff;\n border-color: #16aaff;\n}\n.btn-outline-info:hover {\n color: #000;\n background-color: #16aaff;\n border-color: #16aaff;\n}\n.btn-check:focus + .btn-outline-info, .btn-outline-info:focus {\n box-shadow: 0 0 0 0 rgba(22, 170, 255, 0.5);\n}\n.btn-check:checked + .btn-outline-info, .btn-check:active + .btn-outline-info, .btn-outline-info:active, .btn-outline-info.active, .btn-outline-info.dropdown-toggle.show {\n color: #000;\n background-color: #16aaff;\n border-color: #16aaff;\n}\n.btn-check:checked + .btn-outline-info:focus, .btn-check:active + .btn-outline-info:focus, .btn-outline-info:active:focus, .btn-outline-info.active:focus, .btn-outline-info.dropdown-toggle.show:focus {\n box-shadow: 0 0 0 0 rgba(22, 170, 255, 0.5);\n}\n.btn-outline-info:disabled, .btn-outline-info.disabled {\n color: #16aaff;\n background-color: transparent;\n}\n\n.btn-outline-warning {\n color: #f7b924;\n border-color: #f7b924;\n}\n.btn-outline-warning:hover {\n color: #000;\n background-color: #f7b924;\n border-color: #f7b924;\n}\n.btn-check:focus + .btn-outline-warning, .btn-outline-warning:focus {\n box-shadow: 0 0 0 0 rgba(247, 185, 36, 0.5);\n}\n.btn-check:checked + .btn-outline-warning, .btn-check:active + .btn-outline-warning, .btn-outline-warning:active, .btn-outline-warning.active, .btn-outline-warning.dropdown-toggle.show {\n color: #000;\n background-color: #f7b924;\n border-color: #f7b924;\n}\n.btn-check:checked + .btn-outline-warning:focus, .btn-check:active + .btn-outline-warning:focus, .btn-outline-warning:active:focus, .btn-outline-warning.active:focus, .btn-outline-warning.dropdown-toggle.show:focus {\n box-shadow: 0 0 0 0 rgba(247, 185, 36, 0.5);\n}\n.btn-outline-warning:disabled, .btn-outline-warning.disabled {\n color: #f7b924;\n background-color: transparent;\n}\n\n.btn-outline-danger {\n color: #d92550;\n border-color: #d92550;\n}\n.btn-outline-danger:hover {\n color: #fff;\n background-color: #d92550;\n border-color: #d92550;\n}\n.btn-check:focus + .btn-outline-danger, .btn-outline-danger:focus {\n box-shadow: 0 0 0 0 rgba(217, 37, 80, 0.5);\n}\n.btn-check:checked + .btn-outline-danger, .btn-check:active + .btn-outline-danger, .btn-outline-danger:active, .btn-outline-danger.active, .btn-outline-danger.dropdown-toggle.show {\n color: #fff;\n background-color: #d92550;\n border-color: #d92550;\n}\n.btn-check:checked + .btn-outline-danger:focus, .btn-check:active + .btn-outline-danger:focus, .btn-outline-danger:active:focus, .btn-outline-danger.active:focus, .btn-outline-danger.dropdown-toggle.show:focus {\n box-shadow: 0 0 0 0 rgba(217, 37, 80, 0.5);\n}\n.btn-outline-danger:disabled, .btn-outline-danger.disabled {\n color: #d92550;\n background-color: transparent;\n}\n\n.btn-outline-light {\n color: #eeeeee;\n border-color: #eeeeee;\n}\n.btn-outline-light:hover {\n color: #000;\n background-color: #eeeeee;\n border-color: #eeeeee;\n}\n.btn-check:focus + .btn-outline-light, .btn-outline-light:focus {\n box-shadow: 0 0 0 0 rgba(238, 238, 238, 0.5);\n}\n.btn-check:checked + .btn-outline-light, .btn-check:active + .btn-outline-light, .btn-outline-light:active, .btn-outline-light.active, .btn-outline-light.dropdown-toggle.show {\n color: #000;\n background-color: #eeeeee;\n border-color: #eeeeee;\n}\n.btn-check:checked + .btn-outline-light:focus, .btn-check:active + .btn-outline-light:focus, .btn-outline-light:active:focus, .btn-outline-light.active:focus, .btn-outline-light.dropdown-toggle.show:focus {\n box-shadow: 0 0 0 0 rgba(238, 238, 238, 0.5);\n}\n.btn-outline-light:disabled, .btn-outline-light.disabled {\n color: #eeeeee;\n background-color: transparent;\n}\n\n.btn-outline-dark {\n color: #343a40;\n border-color: #343a40;\n}\n.btn-outline-dark:hover {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n.btn-check:focus + .btn-outline-dark, .btn-outline-dark:focus {\n box-shadow: 0 0 0 0 rgba(52, 58, 64, 0.5);\n}\n.btn-check:checked + .btn-outline-dark, .btn-check:active + .btn-outline-dark, .btn-outline-dark:active, .btn-outline-dark.active, .btn-outline-dark.dropdown-toggle.show {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n.btn-check:checked + .btn-outline-dark:focus, .btn-check:active + .btn-outline-dark:focus, .btn-outline-dark:active:focus, .btn-outline-dark.active:focus, .btn-outline-dark.dropdown-toggle.show:focus {\n box-shadow: 0 0 0 0 rgba(52, 58, 64, 0.5);\n}\n.btn-outline-dark:disabled, .btn-outline-dark.disabled {\n color: #343a40;\n background-color: transparent;\n}\n\n.btn-outline-focus {\n color: #444054;\n border-color: #444054;\n}\n.btn-outline-focus:hover {\n color: #fff;\n background-color: #444054;\n border-color: #444054;\n}\n.btn-check:focus + .btn-outline-focus, .btn-outline-focus:focus {\n box-shadow: 0 0 0 0 rgba(68, 64, 84, 0.5);\n}\n.btn-check:checked + .btn-outline-focus, .btn-check:active + .btn-outline-focus, .btn-outline-focus:active, .btn-outline-focus.active, .btn-outline-focus.dropdown-toggle.show {\n color: #fff;\n background-color: #444054;\n border-color: #444054;\n}\n.btn-check:checked + .btn-outline-focus:focus, .btn-check:active + .btn-outline-focus:focus, .btn-outline-focus:active:focus, .btn-outline-focus.active:focus, .btn-outline-focus.dropdown-toggle.show:focus {\n box-shadow: 0 0 0 0 rgba(68, 64, 84, 0.5);\n}\n.btn-outline-focus:disabled, .btn-outline-focus.disabled {\n color: #444054;\n background-color: transparent;\n}\n\n.btn-outline-alternate {\n color: #794c8a;\n border-color: #794c8a;\n}\n.btn-outline-alternate:hover {\n color: #fff;\n background-color: #794c8a;\n border-color: #794c8a;\n}\n.btn-check:focus + .btn-outline-alternate, .btn-outline-alternate:focus {\n box-shadow: 0 0 0 0 rgba(121, 76, 138, 0.5);\n}\n.btn-check:checked + .btn-outline-alternate, .btn-check:active + .btn-outline-alternate, .btn-outline-alternate:active, .btn-outline-alternate.active, .btn-outline-alternate.dropdown-toggle.show {\n color: #fff;\n background-color: #794c8a;\n border-color: #794c8a;\n}\n.btn-check:checked + .btn-outline-alternate:focus, .btn-check:active + .btn-outline-alternate:focus, .btn-outline-alternate:active:focus, .btn-outline-alternate.active:focus, .btn-outline-alternate.dropdown-toggle.show:focus {\n box-shadow: 0 0 0 0 rgba(121, 76, 138, 0.5);\n}\n.btn-outline-alternate:disabled, .btn-outline-alternate.disabled {\n color: #794c8a;\n background-color: transparent;\n}\n\n.btn-link {\n font-weight: 400;\n color: #3f6ad8;\n text-decoration: underline;\n}\n.btn-link:hover {\n color: #3255ad;\n}\n.btn-link:disabled, .btn-link.disabled {\n color: #6c757d;\n}\n\n.btn-lg, .btn-group-lg > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.1rem;\n border-radius: 0.3rem;\n}\n\n.btn-sm, .btn-group-sm > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.968rem;\n border-radius: 0.2rem;\n}\n\n.fade {\n transition: opacity 0.15s linear;\n}\n@media (prefers-reduced-motion: reduce) {\n .fade {\n transition: none;\n }\n}\n.fade:not(.show) {\n opacity: 0;\n}\n\n.collapse:not(.show) {\n display: none;\n}\n\n.collapsing {\n height: 0;\n overflow: hidden;\n transition: height 0.35s ease;\n}\n@media (prefers-reduced-motion: reduce) {\n .collapsing {\n transition: none;\n }\n}\n\n.dropup,\n.dropend,\n.dropdown,\n.dropstart {\n position: relative;\n}\n\n.dropdown-toggle {\n white-space: nowrap;\n}\n.dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid;\n border-right: 0.3em solid transparent;\n border-bottom: 0;\n border-left: 0.3em solid transparent;\n}\n.dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropdown-menu {\n position: absolute;\n z-index: 1000;\n display: none;\n min-width: 15rem;\n padding: 0.65rem 0;\n margin: 0;\n font-size: 0.88rem;\n color: #495057;\n text-align: left;\n list-style: none;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 0.25rem;\n}\n.dropdown-menu[data-bs-popper] {\n top: 100%;\n left: 0;\n margin-top: 0.125rem;\n}\n\n.dropdown-menu-start {\n --bs-position: start;\n}\n.dropdown-menu-start[data-bs-popper] {\n right: auto;\n left: 0;\n}\n\n.dropdown-menu-end {\n --bs-position: end;\n}\n.dropdown-menu-end[data-bs-popper] {\n right: 0;\n left: auto;\n}\n\n@media (min-width: 576px) {\n .dropdown-menu-sm-start {\n --bs-position: start;\n }\n .dropdown-menu-sm-start[data-bs-popper] {\n right: auto;\n left: 0;\n }\n .dropdown-menu-sm-end {\n --bs-position: end;\n }\n .dropdown-menu-sm-end[data-bs-popper] {\n right: 0;\n left: auto;\n }\n}\n@media (min-width: 768px) {\n .dropdown-menu-md-start {\n --bs-position: start;\n }\n .dropdown-menu-md-start[data-bs-popper] {\n right: auto;\n left: 0;\n }\n .dropdown-menu-md-end {\n --bs-position: end;\n }\n .dropdown-menu-md-end[data-bs-popper] {\n right: 0;\n left: auto;\n }\n}\n@media (min-width: 992px) {\n .dropdown-menu-lg-start {\n --bs-position: start;\n }\n .dropdown-menu-lg-start[data-bs-popper] {\n right: auto;\n left: 0;\n }\n .dropdown-menu-lg-end {\n --bs-position: end;\n }\n .dropdown-menu-lg-end[data-bs-popper] {\n right: 0;\n left: auto;\n }\n}\n@media (min-width: 1200px) {\n .dropdown-menu-xl-start {\n --bs-position: start;\n }\n .dropdown-menu-xl-start[data-bs-popper] {\n right: auto;\n left: 0;\n }\n .dropdown-menu-xl-end {\n --bs-position: end;\n }\n .dropdown-menu-xl-end[data-bs-popper] {\n right: 0;\n left: auto;\n }\n}\n@media (min-width: 1400px) {\n .dropdown-menu-xxl-start {\n --bs-position: start;\n }\n .dropdown-menu-xxl-start[data-bs-popper] {\n right: auto;\n left: 0;\n }\n .dropdown-menu-xxl-end {\n --bs-position: end;\n }\n .dropdown-menu-xxl-end[data-bs-popper] {\n right: 0;\n left: auto;\n }\n}\n.dropup .dropdown-menu[data-bs-popper] {\n top: auto;\n bottom: 100%;\n margin-top: 0;\n margin-bottom: 0.125rem;\n}\n.dropup .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0;\n border-right: 0.3em solid transparent;\n border-bottom: 0.3em solid;\n border-left: 0.3em solid transparent;\n}\n.dropup .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropend .dropdown-menu[data-bs-popper] {\n top: 0;\n right: auto;\n left: 100%;\n margin-top: 0;\n margin-left: 0.125rem;\n}\n.dropend .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0;\n border-bottom: 0.3em solid transparent;\n border-left: 0.3em solid;\n}\n.dropend .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n.dropend .dropdown-toggle::after {\n vertical-align: 0;\n}\n\n.dropstart .dropdown-menu[data-bs-popper] {\n top: 0;\n right: 100%;\n left: auto;\n margin-top: 0;\n margin-right: 0.125rem;\n}\n.dropstart .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n}\n.dropstart .dropdown-toggle::after {\n display: none;\n}\n.dropstart .dropdown-toggle::before {\n display: inline-block;\n margin-right: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0.3em solid;\n border-bottom: 0.3em solid transparent;\n}\n.dropstart .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n.dropstart .dropdown-toggle::before {\n vertical-align: 0;\n}\n\n.dropdown-divider {\n height: 0;\n margin: 0.5rem 0;\n overflow: hidden;\n border-top: 1px solid rgba(0, 0, 0, 0.15);\n}\n\n.dropdown-item {\n display: block;\n width: 100%;\n padding: 0.4rem 1rem;\n clear: both;\n font-weight: 400;\n color: #212529;\n text-align: inherit;\n text-decoration: none;\n white-space: nowrap;\n background-color: transparent;\n border: 0;\n}\n.dropdown-item:hover, .dropdown-item:focus {\n color: #1e2125;\n background-color: #e0f3ff;\n}\n.dropdown-item.active, .dropdown-item:active {\n color: #fff;\n text-decoration: none;\n background-color: #3f6ad8;\n}\n.dropdown-item.disabled, .dropdown-item:disabled {\n color: #adb5bd;\n pointer-events: none;\n background-color: transparent;\n}\n\n.dropdown-menu.show {\n display: block;\n}\n\n.dropdown-header {\n display: block;\n padding: 0.65rem 1rem;\n margin-bottom: 0;\n font-size: 0.968rem;\n color: #6c757d;\n white-space: nowrap;\n}\n\n.dropdown-item-text {\n display: block;\n padding: 0.4rem 1rem;\n color: #212529;\n}\n\n.dropdown-menu-dark {\n color: #dee2e6;\n background-color: #343a40;\n border-color: rgba(0, 0, 0, 0.15);\n}\n.dropdown-menu-dark .dropdown-item {\n color: #dee2e6;\n}\n.dropdown-menu-dark .dropdown-item:hover, .dropdown-menu-dark .dropdown-item:focus {\n color: #fff;\n background-color: rgba(255, 255, 255, 0.15);\n}\n.dropdown-menu-dark .dropdown-item.active, .dropdown-menu-dark .dropdown-item:active {\n color: #fff;\n background-color: #3f6ad8;\n}\n.dropdown-menu-dark .dropdown-item.disabled, .dropdown-menu-dark .dropdown-item:disabled {\n color: #adb5bd;\n}\n.dropdown-menu-dark .dropdown-divider {\n border-color: rgba(0, 0, 0, 0.15);\n}\n.dropdown-menu-dark .dropdown-item-text {\n color: #dee2e6;\n}\n.dropdown-menu-dark .dropdown-header {\n color: #adb5bd;\n}\n\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-flex;\n vertical-align: middle;\n}\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n position: relative;\n flex: 1 1 auto;\n}\n.btn-group > .btn-check:checked + .btn,\n.btn-group > .btn-check:focus + .btn,\n.btn-group > .btn:hover,\n.btn-group > .btn:focus,\n.btn-group > .btn:active,\n.btn-group > .btn.active,\n.btn-group-vertical > .btn-check:checked + .btn,\n.btn-group-vertical > .btn-check:focus + .btn,\n.btn-group-vertical > .btn:hover,\n.btn-group-vertical > .btn:focus,\n.btn-group-vertical > .btn:active,\n.btn-group-vertical > .btn.active {\n z-index: 1;\n}\n\n.btn-toolbar {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-start;\n}\n.btn-toolbar .input-group {\n width: auto;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) {\n margin-left: -1px;\n}\n.btn-group > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group > .btn-group:not(:last-child) > .btn {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.btn-group > .btn:nth-child(n+3),\n.btn-group > :not(.btn-check) + .btn,\n.btn-group > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.dropdown-toggle-split {\n padding-right: 0.5625rem;\n padding-left: 0.5625rem;\n}\n.dropdown-toggle-split::after, .dropup .dropdown-toggle-split::after, .dropend .dropdown-toggle-split::after {\n margin-left: 0;\n}\n.dropstart .dropdown-toggle-split::before {\n margin-right: 0;\n}\n\n.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {\n padding-right: 0.375rem;\n padding-left: 0.375rem;\n}\n\n.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {\n padding-right: 0.75rem;\n padding-left: 0.75rem;\n}\n\n.btn-group-vertical {\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n}\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group {\n width: 100%;\n}\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) {\n margin-top: -1px;\n}\n.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group-vertical > .btn-group:not(:last-child) > .btn {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.btn-group-vertical > .btn ~ .btn,\n.btn-group-vertical > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.nav {\n display: flex;\n flex-wrap: wrap;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.nav-link {\n display: block;\n padding: 0.5rem 1rem;\n color: #3f6ad8;\n text-decoration: none;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .nav-link {\n transition: none;\n }\n}\n.nav-link:hover, .nav-link:focus {\n color: #3255ad;\n}\n.nav-link.disabled {\n color: #6c757d;\n pointer-events: none;\n cursor: default;\n}\n\n.nav-tabs {\n border-bottom: 1px solid #dee2e6;\n}\n.nav-tabs .nav-link {\n margin-bottom: -1px;\n background: none;\n border: 1px solid transparent;\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {\n border-color: #e9ecef #e9ecef #dee2e6;\n isolation: isolate;\n}\n.nav-tabs .nav-link.disabled {\n color: #6c757d;\n background-color: transparent;\n border-color: transparent;\n}\n.nav-tabs .nav-link.active,\n.nav-tabs .nav-item.show .nav-link {\n color: #495057;\n background-color: #fff;\n border-color: #dee2e6 #dee2e6 #fff;\n}\n.nav-tabs .dropdown-menu {\n margin-top: -1px;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.nav-pills .nav-link {\n background: none;\n border: 0;\n border-radius: 0.25rem;\n}\n.nav-pills .nav-link.active,\n.nav-pills .show > .nav-link {\n color: #fff;\n background-color: #3f6ad8;\n}\n\n.nav-fill > .nav-link,\n.nav-fill .nav-item {\n flex: 1 1 auto;\n text-align: center;\n}\n\n.nav-justified > .nav-link,\n.nav-justified .nav-item {\n flex-basis: 0;\n flex-grow: 1;\n text-align: center;\n}\n\n.nav-fill .nav-item .nav-link,\n.nav-justified .nav-item .nav-link {\n width: 100%;\n}\n\n.tab-content > .tab-pane {\n display: none;\n}\n.tab-content > .active {\n display: block;\n}\n\n.navbar {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n.navbar > .container,\n.navbar > .container-fluid,\n.navbar > .container-sm,\n.navbar > .container-md,\n.navbar > .container-lg,\n.navbar > .container-xl,\n.navbar > .container-xxl {\n display: flex;\n flex-wrap: inherit;\n align-items: center;\n justify-content: space-between;\n}\n.navbar-brand {\n padding-top: 0.335rem;\n padding-bottom: 0.335rem;\n margin-right: 1rem;\n font-size: 1.1rem;\n text-decoration: none;\n white-space: nowrap;\n}\n.navbar-nav {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n.navbar-nav .nav-link {\n padding-right: 0;\n padding-left: 0;\n}\n.navbar-nav .dropdown-menu {\n position: static;\n}\n\n.navbar-text {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n\n.navbar-collapse {\n flex-basis: 100%;\n flex-grow: 1;\n align-items: center;\n}\n\n.navbar-toggler {\n padding: 0.25rem 0.75rem;\n font-size: 1.1rem;\n line-height: 1;\n background-color: transparent;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n transition: box-shadow 0.15s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .navbar-toggler {\n transition: none;\n }\n}\n.navbar-toggler:hover {\n text-decoration: none;\n}\n.navbar-toggler:focus {\n text-decoration: none;\n outline: 0;\n box-shadow: 0 0 0 0;\n}\n\n.navbar-toggler-icon {\n display: inline-block;\n width: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n background-repeat: no-repeat;\n background-position: center;\n background-size: 100%;\n}\n\n.navbar-nav-scroll {\n max-height: var(--bs-scroll-height, 75vh);\n overflow-y: auto;\n}\n\n@media (min-width: 576px) {\n .navbar-expand-sm {\n flex-wrap: nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-sm .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-sm .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-sm .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-sm .navbar-nav-scroll {\n overflow: visible;\n }\n .navbar-expand-sm .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-sm .navbar-toggler {\n display: none;\n }\n}\n@media (min-width: 768px) {\n .navbar-expand-md {\n flex-wrap: nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-md .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-md .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-md .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-md .navbar-nav-scroll {\n overflow: visible;\n }\n .navbar-expand-md .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-md .navbar-toggler {\n display: none;\n }\n}\n@media (min-width: 992px) {\n .navbar-expand-lg {\n flex-wrap: nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-lg .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-lg .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-lg .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-lg .navbar-nav-scroll {\n overflow: visible;\n }\n .navbar-expand-lg .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-lg .navbar-toggler {\n display: none;\n }\n}\n@media (min-width: 1200px) {\n .navbar-expand-xl {\n flex-wrap: nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-xl .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-xl .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-xl .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-xl .navbar-nav-scroll {\n overflow: visible;\n }\n .navbar-expand-xl .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-xl .navbar-toggler {\n display: none;\n }\n}\n@media (min-width: 1400px) {\n .navbar-expand-xxl {\n flex-wrap: nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-xxl .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-xxl .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-xxl .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-xxl .navbar-nav-scroll {\n overflow: visible;\n }\n .navbar-expand-xxl .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-xxl .navbar-toggler {\n display: none;\n }\n}\n.navbar-expand {\n flex-wrap: nowrap;\n justify-content: flex-start;\n}\n.navbar-expand .navbar-nav {\n flex-direction: row;\n}\n.navbar-expand .navbar-nav .dropdown-menu {\n position: absolute;\n}\n.navbar-expand .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n}\n.navbar-expand .navbar-nav-scroll {\n overflow: visible;\n}\n.navbar-expand .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n}\n.navbar-expand .navbar-toggler {\n display: none;\n}\n\n.navbar-light .navbar-brand {\n color: rgba(0, 0, 0, 0.9);\n}\n.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n.navbar-light .navbar-nav .nav-link {\n color: rgba(0, 0, 0, 0.55);\n}\n.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {\n color: rgba(0, 0, 0, 0.7);\n}\n.navbar-light .navbar-nav .nav-link.disabled {\n color: rgba(0, 0, 0, 0.3);\n}\n.navbar-light .navbar-nav .show > .nav-link,\n.navbar-light .navbar-nav .nav-link.active {\n color: rgba(0, 0, 0, 0.9);\n}\n.navbar-light .navbar-toggler {\n color: rgba(0, 0, 0, 0.55);\n border-color: rgba(0, 0, 0, 0.1);\n}\n.navbar-light .navbar-toggler-icon {\n background-image: url(" + ___CSS_LOADER_URL_REPLACEMENT_9___ + ");\n}\n.navbar-light .navbar-text {\n color: rgba(0, 0, 0, 0.55);\n}\n.navbar-light .navbar-text a,\n.navbar-light .navbar-text a:hover,\n.navbar-light .navbar-text a:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-dark .navbar-brand {\n color: #fff;\n}\n.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {\n color: #fff;\n}\n.navbar-dark .navbar-nav .nav-link {\n color: rgba(255, 255, 255, 0.55);\n}\n.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {\n color: rgba(255, 255, 255, 0.75);\n}\n.navbar-dark .navbar-nav .nav-link.disabled {\n color: rgba(255, 255, 255, 0.25);\n}\n.navbar-dark .navbar-nav .show > .nav-link,\n.navbar-dark .navbar-nav .nav-link.active {\n color: #fff;\n}\n.navbar-dark .navbar-toggler {\n color: rgba(255, 255, 255, 0.55);\n border-color: rgba(255, 255, 255, 0.1);\n}\n.navbar-dark .navbar-toggler-icon {\n background-image: url(" + ___CSS_LOADER_URL_REPLACEMENT_10___ + ");\n}\n.navbar-dark .navbar-text {\n color: rgba(255, 255, 255, 0.55);\n}\n.navbar-dark .navbar-text a,\n.navbar-dark .navbar-text a:hover,\n.navbar-dark .navbar-text a:focus {\n color: #fff;\n}\n\n.card {\n position: relative;\n display: flex;\n flex-direction: column;\n min-width: 0;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: border-box;\n border: 1px solid rgba(26, 54, 126, 0.125);\n border-radius: 0.25rem;\n}\n.card > hr {\n margin-right: 0;\n margin-left: 0;\n}\n.card > .list-group {\n border-top: inherit;\n border-bottom: inherit;\n}\n.card > .list-group:first-child {\n border-top-width: 0;\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px);\n}\n.card > .list-group:last-child {\n border-bottom-width: 0;\n border-bottom-right-radius: calc(0.25rem - 1px);\n border-bottom-left-radius: calc(0.25rem - 1px);\n}\n.card > .card-header + .list-group,\n.card > .list-group + .card-footer {\n border-top: 0;\n}\n\n.card-body {\n flex: 1 1 auto;\n padding: 1rem 1rem;\n}\n\n.card-title {\n margin-bottom: 0.5rem;\n}\n\n.card-subtitle {\n margin-top: -0.25rem;\n margin-bottom: 0;\n}\n\n.card-text:last-child {\n margin-bottom: 0;\n}\n\n.card-link:hover {\n text-decoration: none;\n}\n.card-link + .card-link {\n margin-left: 1rem;\n}\n\n.card-header {\n padding: 0.5rem 1rem;\n margin-bottom: 0;\n background-color: #fff;\n border-bottom: 1px solid rgba(26, 54, 126, 0.125);\n}\n.card-header:first-child {\n border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0;\n}\n\n.card-footer {\n padding: 0.5rem 1rem;\n background-color: #fff;\n border-top: 1px solid rgba(26, 54, 126, 0.125);\n}\n.card-footer:last-child {\n border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px);\n}\n\n.card-header-tabs {\n margin-right: -0.5rem;\n margin-bottom: -0.5rem;\n margin-left: -0.5rem;\n border-bottom: 0;\n}\n\n.card-header-pills {\n margin-right: -0.5rem;\n margin-left: -0.5rem;\n}\n\n.card-img-overlay {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n padding: 1rem;\n border-radius: calc(0.25rem - 1px);\n}\n\n.card-img,\n.card-img-top,\n.card-img-bottom {\n width: 100%;\n}\n\n.card-img,\n.card-img-top {\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.card-img,\n.card-img-bottom {\n border-bottom-right-radius: calc(0.25rem - 1px);\n border-bottom-left-radius: calc(0.25rem - 1px);\n}\n\n.card-group > .card {\n margin-bottom: 0.75rem;\n}\n@media (min-width: 576px) {\n .card-group {\n display: flex;\n flex-flow: row wrap;\n }\n .card-group > .card {\n flex: 1 0 0%;\n margin-bottom: 0;\n }\n .card-group > .card + .card {\n margin-left: 0;\n border-left: 0;\n }\n .card-group > .card:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-top,\n.card-group > .card:not(:last-child) .card-header {\n border-top-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-bottom,\n.card-group > .card:not(:last-child) .card-footer {\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-top,\n.card-group > .card:not(:first-child) .card-header {\n border-top-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-bottom,\n.card-group > .card:not(:first-child) .card-footer {\n border-bottom-left-radius: 0;\n }\n}\n\n.accordion-button {\n position: relative;\n display: flex;\n align-items: center;\n width: 100%;\n padding: 1rem 1.25rem;\n font-size: 0.88rem;\n color: #495057;\n text-align: left;\n background-color: #fff;\n border: 0;\n border-radius: 0;\n overflow-anchor: none;\n transition: color 0.15s, background-color 0.15s, border-color 0.15s, box-shadow 0.15s, border-radius 0.15s ease;\n}\n@media (prefers-reduced-motion: reduce) {\n .accordion-button {\n transition: none;\n }\n}\n.accordion-button:not(.collapsed) {\n color: #395fc2;\n background-color: #ecf0fb;\n box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.125);\n}\n.accordion-button:not(.collapsed)::after {\n background-image: url(" + ___CSS_LOADER_URL_REPLACEMENT_11___ + ");\n transform: rotate(-180deg);\n}\n.accordion-button::after {\n flex-shrink: 0;\n width: 1.25rem;\n height: 1.25rem;\n margin-left: auto;\n content: \"\";\n background-image: url(" + ___CSS_LOADER_URL_REPLACEMENT_12___ + ");\n background-repeat: no-repeat;\n background-size: 1.25rem;\n transition: transform 0.2s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .accordion-button::after {\n transition: none;\n }\n}\n.accordion-button:hover {\n z-index: 2;\n}\n.accordion-button:focus {\n z-index: 3;\n border-color: #a9bcee;\n outline: 0;\n box-shadow: none;\n}\n\n.accordion-header {\n margin-bottom: 0;\n}\n\n.accordion-item {\n background-color: #fff;\n border: 1px solid rgba(0, 0, 0, 0.125);\n}\n.accordion-item:first-of-type {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n.accordion-item:first-of-type .accordion-button {\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px);\n}\n.accordion-item:not(:first-of-type) {\n border-top: 0;\n}\n.accordion-item:last-of-type {\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n.accordion-item:last-of-type .accordion-button.collapsed {\n border-bottom-right-radius: calc(0.25rem - 1px);\n border-bottom-left-radius: calc(0.25rem - 1px);\n}\n.accordion-item:last-of-type .accordion-collapse {\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.accordion-body {\n padding: 1rem 1.25rem;\n}\n\n.accordion-flush .accordion-collapse {\n border-width: 0;\n}\n.accordion-flush .accordion-item {\n border-right: 0;\n border-left: 0;\n border-radius: 0;\n}\n.accordion-flush .accordion-item:first-child {\n border-top: 0;\n}\n.accordion-flush .accordion-item:last-child {\n border-bottom: 0;\n}\n.accordion-flush .accordion-item .accordion-button {\n border-radius: 0;\n}\n\n.breadcrumb {\n display: flex;\n flex-wrap: wrap;\n padding: 0 0;\n margin-bottom: 1rem;\n list-style: none;\n}\n\n.breadcrumb-item + .breadcrumb-item {\n padding-left: 0.5rem;\n}\n.breadcrumb-item + .breadcrumb-item::before {\n float: left;\n padding-right: 0.5rem;\n color: #6c757d;\n content: var(--bs-breadcrumb-divider, \"/\") /* rtl: var(--bs-breadcrumb-divider, \"/\") */;\n}\n.breadcrumb-item.active {\n color: #6c757d;\n}\n\n.pagination {\n display: flex;\n padding-left: 0;\n list-style: none;\n}\n\n.page-link {\n position: relative;\n display: block;\n color: #3f6ad8;\n text-decoration: none;\n background-color: #fff;\n border: 1px solid #dee2e6;\n 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;\n}\n@media (prefers-reduced-motion: reduce) {\n .page-link {\n transition: none;\n }\n}\n.page-link:hover {\n z-index: 2;\n color: #3255ad;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n.page-link:focus {\n z-index: 3;\n color: #3255ad;\n background-color: #e9ecef;\n outline: 0;\n box-shadow: none;\n}\n\n.page-item:not(:first-child) .page-link, .pagination .page-number:not(:first-child) .page-link {\n margin-left: -1px;\n}\n.page-item.active .page-link, .pagination .active.page-number .page-link {\n z-index: 3;\n color: #fff;\n background-color: #3f6ad8;\n border-color: #3f6ad8;\n}\n.page-item.disabled .page-link, .pagination .disabled.page-number .page-link {\n color: #6c757d;\n pointer-events: none;\n background-color: #fff;\n border-color: #dee2e6;\n}\n\n.page-link {\n padding: 0.375rem 0.75rem;\n}\n\n.page-item:first-child .page-link, .pagination .page-number:first-child .page-link {\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n.page-item:last-child .page-link, .pagination .page-number:last-child .page-link {\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n}\n\n.pagination-lg .page-link {\n padding: 0.75rem 1.5rem;\n font-size: 1.1rem;\n}\n.pagination-lg .page-item:first-child .page-link, .pagination-lg .pagination .page-number:first-child .page-link, .pagination .pagination-lg .page-number:first-child .page-link {\n border-top-left-radius: 0.3rem;\n border-bottom-left-radius: 0.3rem;\n}\n.pagination-lg .page-item:last-child .page-link, .pagination-lg .pagination .page-number:last-child .page-link, .pagination .pagination-lg .page-number:last-child .page-link {\n border-top-right-radius: 0.3rem;\n border-bottom-right-radius: 0.3rem;\n}\n\n.pagination-sm .page-link {\n padding: 0.25rem 0.5rem;\n font-size: 0.968rem;\n}\n.pagination-sm .page-item:first-child .page-link, .pagination-sm .pagination .page-number:first-child .page-link, .pagination .pagination-sm .page-number:first-child .page-link {\n border-top-left-radius: 0.2rem;\n border-bottom-left-radius: 0.2rem;\n}\n.pagination-sm .page-item:last-child .page-link, .pagination-sm .pagination .page-number:last-child .page-link, .pagination .pagination-sm .page-number:last-child .page-link {\n border-top-right-radius: 0.2rem;\n border-bottom-right-radius: 0.2rem;\n}\n\n.badge {\n display: inline-block;\n padding: 0.35em 0.65em;\n font-size: 0.75em;\n font-weight: 700;\n line-height: 1;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: 0.25rem;\n}\n.badge:empty {\n display: none;\n}\n\n.btn .badge {\n position: relative;\n top: -1px;\n}\n\n.alert {\n position: relative;\n padding: 1rem 1rem;\n margin-bottom: 1rem;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n\n.alert-heading {\n color: inherit;\n}\n\n.alert-link {\n font-weight: 700;\n}\n\n.alert-dismissible {\n padding-right: 3rem;\n}\n.alert-dismissible .btn-close {\n position: absolute;\n top: 0;\n right: 0;\n z-index: 2;\n padding: 1.25rem 1rem;\n}\n\n.alert-primary {\n color: #264082;\n background-color: #d9e1f7;\n border-color: #c5d2f3;\n}\n.alert-primary .alert-link {\n color: #1e3368;\n}\n\n.alert-secondary {\n color: #41464b;\n background-color: #e2e3e5;\n border-color: #d3d6d8;\n}\n.alert-secondary .alert-link {\n color: #34383c;\n}\n\n.alert-success {\n color: #23764b;\n background-color: #d8f3e5;\n border-color: #c4edd8;\n}\n.alert-success .alert-link {\n color: #1c5e3c;\n}\n\n.alert-info {\n color: #0d6699;\n background-color: #d0eeff;\n border-color: #b9e6ff;\n}\n.alert-info .alert-link {\n color: #0a527a;\n}\n\n.alert-warning {\n color: #634a0e;\n background-color: #fdf1d3;\n border-color: #fdeabd;\n}\n.alert-warning .alert-link {\n color: #4f3b0b;\n}\n\n.alert-danger {\n color: #821630;\n background-color: #f7d3dc;\n border-color: #f4becb;\n}\n.alert-danger .alert-link {\n color: #681226;\n}\n\n.alert-light {\n color: #5f5f5f;\n background-color: #fcfcfc;\n border-color: #fafafa;\n}\n.alert-light .alert-link {\n color: #4c4c4c;\n}\n\n.alert-dark {\n color: #1f2326;\n background-color: #d6d8d9;\n border-color: #c2c4c6;\n}\n.alert-dark .alert-link {\n color: #191c1e;\n}\n\n.alert-focus {\n color: #292632;\n background-color: #dad9dd;\n border-color: #c7c6cc;\n}\n.alert-focus .alert-link {\n color: #211e28;\n}\n\n.alert-alternate {\n color: #492e53;\n background-color: #e4dbe8;\n border-color: #d7c9dc;\n}\n.alert-alternate .alert-link {\n color: #3a2542;\n}\n\n@keyframes progress-bar-stripes {\n 0% {\n background-position-x: 1rem;\n }\n}\n.progress {\n display: flex;\n height: 1rem;\n overflow: hidden;\n font-size: 0.66rem;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n\n.progress-bar {\n display: flex;\n flex-direction: column;\n justify-content: center;\n overflow: hidden;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n background-color: #3f6ad8;\n transition: width 0.6s ease;\n}\n@media (prefers-reduced-motion: reduce) {\n .progress-bar {\n transition: none;\n }\n}\n\n.progress-bar-striped {\n 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);\n background-size: 1rem 1rem;\n}\n\n.progress-bar-animated {\n animation: 1s linear infinite progress-bar-stripes;\n}\n@media (prefers-reduced-motion: reduce) {\n .progress-bar-animated {\n animation: none;\n }\n}\n\n.list-group {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n border-radius: 0.25rem;\n}\n\n.list-group-numbered {\n list-style-type: none;\n counter-reset: section;\n}\n.list-group-numbered > li::before {\n content: counters(section, \".\") \". \";\n counter-increment: section;\n}\n\n.list-group-item-action {\n width: 100%;\n color: #495057;\n text-align: inherit;\n}\n.list-group-item-action:hover, .list-group-item-action:focus {\n z-index: 1;\n color: #495057;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n.list-group-item-action:active {\n color: #495057;\n background-color: #e9ecef;\n}\n\n.list-group-item {\n position: relative;\n display: block;\n padding: 0.5rem 1rem;\n color: #212529;\n text-decoration: none;\n background-color: #fff;\n border: 1px solid rgba(63, 106, 216, 0.08);\n}\n.list-group-item:first-child {\n border-top-left-radius: inherit;\n border-top-right-radius: inherit;\n}\n.list-group-item:last-child {\n border-bottom-right-radius: inherit;\n border-bottom-left-radius: inherit;\n}\n.list-group-item.disabled, .list-group-item:disabled {\n color: #6c757d;\n pointer-events: none;\n background-color: #fff;\n}\n.list-group-item.active {\n z-index: 2;\n color: #fff;\n background-color: #3f6ad8;\n border-color: #3f6ad8;\n}\n.list-group-item + .list-group-item {\n border-top-width: 0;\n}\n.list-group-item + .list-group-item.active {\n margin-top: -1px;\n border-top-width: 1px;\n}\n\n.list-group-horizontal {\n flex-direction: row;\n}\n.list-group-horizontal > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n}\n.list-group-horizontal > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n}\n.list-group-horizontal > .list-group-item.active {\n margin-top: 0;\n}\n.list-group-horizontal > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n}\n.list-group-horizontal > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n}\n\n@media (min-width: 576px) {\n .list-group-horizontal-sm {\n flex-direction: row;\n }\n .list-group-horizontal-sm > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-sm > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-sm > .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-sm > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-sm > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n@media (min-width: 768px) {\n .list-group-horizontal-md {\n flex-direction: row;\n }\n .list-group-horizontal-md > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-md > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-md > .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-md > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-md > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n@media (min-width: 992px) {\n .list-group-horizontal-lg {\n flex-direction: row;\n }\n .list-group-horizontal-lg > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-lg > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-lg > .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-lg > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-lg > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n@media (min-width: 1200px) {\n .list-group-horizontal-xl {\n flex-direction: row;\n }\n .list-group-horizontal-xl > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-xl > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-xl > .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-xl > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-xl > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n@media (min-width: 1400px) {\n .list-group-horizontal-xxl {\n flex-direction: row;\n }\n .list-group-horizontal-xxl > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-xxl > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-xxl > .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-xxl > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-xxl > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n.list-group-flush {\n border-radius: 0;\n}\n.list-group-flush > .list-group-item {\n border-width: 0 0 1px;\n}\n.list-group-flush > .list-group-item:last-child {\n border-bottom-width: 0;\n}\n\n.list-group-item-primary {\n color: #264082;\n background-color: #d9e1f7;\n}\n.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {\n color: #264082;\n background-color: #c3cbde;\n}\n.list-group-item-primary.list-group-item-action.active {\n color: #fff;\n background-color: #264082;\n border-color: #264082;\n}\n\n.list-group-item-secondary {\n color: #41464b;\n background-color: #e2e3e5;\n}\n.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {\n color: #41464b;\n background-color: #cbccce;\n}\n.list-group-item-secondary.list-group-item-action.active {\n color: #fff;\n background-color: #41464b;\n border-color: #41464b;\n}\n\n.list-group-item-success {\n color: #23764b;\n background-color: #d8f3e5;\n}\n.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {\n color: #23764b;\n background-color: #c2dbce;\n}\n.list-group-item-success.list-group-item-action.active {\n color: #fff;\n background-color: #23764b;\n border-color: #23764b;\n}\n\n.list-group-item-info {\n color: #0d6699;\n background-color: #d0eeff;\n}\n.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {\n color: #0d6699;\n background-color: #bbd6e6;\n}\n.list-group-item-info.list-group-item-action.active {\n color: #fff;\n background-color: #0d6699;\n border-color: #0d6699;\n}\n\n.list-group-item-warning {\n color: #634a0e;\n background-color: #fdf1d3;\n}\n.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {\n color: #634a0e;\n background-color: #e4d9be;\n}\n.list-group-item-warning.list-group-item-action.active {\n color: #fff;\n background-color: #634a0e;\n border-color: #634a0e;\n}\n\n.list-group-item-danger {\n color: #821630;\n background-color: #f7d3dc;\n}\n.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {\n color: #821630;\n background-color: #debec6;\n}\n.list-group-item-danger.list-group-item-action.active {\n color: #fff;\n background-color: #821630;\n border-color: #821630;\n}\n\n.list-group-item-light {\n color: #5f5f5f;\n background-color: #fcfcfc;\n}\n.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {\n color: #5f5f5f;\n background-color: #e3e3e3;\n}\n.list-group-item-light.list-group-item-action.active {\n color: #fff;\n background-color: #5f5f5f;\n border-color: #5f5f5f;\n}\n\n.list-group-item-dark {\n color: #1f2326;\n background-color: #d6d8d9;\n}\n.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {\n color: #1f2326;\n background-color: #c1c2c3;\n}\n.list-group-item-dark.list-group-item-action.active {\n color: #fff;\n background-color: #1f2326;\n border-color: #1f2326;\n}\n\n.list-group-item-focus {\n color: #292632;\n background-color: #dad9dd;\n}\n.list-group-item-focus.list-group-item-action:hover, .list-group-item-focus.list-group-item-action:focus {\n color: #292632;\n background-color: #c4c3c7;\n}\n.list-group-item-focus.list-group-item-action.active {\n color: #fff;\n background-color: #292632;\n border-color: #292632;\n}\n\n.list-group-item-alternate {\n color: #492e53;\n background-color: #e4dbe8;\n}\n.list-group-item-alternate.list-group-item-action:hover, .list-group-item-alternate.list-group-item-action:focus {\n color: #492e53;\n background-color: #cdc5d1;\n}\n.list-group-item-alternate.list-group-item-action.active {\n color: #fff;\n background-color: #492e53;\n border-color: #492e53;\n}\n\n.btn-close {\n box-sizing: content-box;\n width: 1em;\n height: 1em;\n padding: 0.25em 0.25em;\n color: #000;\n background: transparent url(" + ___CSS_LOADER_URL_REPLACEMENT_13___ + ") center/1em auto no-repeat;\n border: 0;\n border-radius: 0.25rem;\n opacity: 0.5;\n}\n.btn-close:hover {\n color: #000;\n text-decoration: none;\n opacity: 0.75;\n}\n.btn-close:focus {\n outline: 0;\n box-shadow: 0 0 0 0.25rem rgba(63, 106, 216, 0.25);\n opacity: 1;\n}\n.btn-close:disabled, .btn-close.disabled {\n pointer-events: none;\n user-select: none;\n opacity: 0.25;\n}\n\n.btn-close-white {\n filter: invert(1) grayscale(100%) brightness(200%);\n}\n\n.toast {\n width: 350px;\n max-width: 100%;\n font-size: 0.875rem;\n pointer-events: auto;\n background-color: rgba(255, 255, 255, 0.85);\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.1);\n box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);\n border-radius: 0.25rem;\n}\n.toast:not(.showing):not(.show) {\n opacity: 0;\n}\n.toast.hide {\n display: none;\n}\n\n.toast-container {\n width: max-content;\n max-width: 100%;\n pointer-events: none;\n}\n.toast-container > :not(:last-child) {\n margin-bottom: 0.75rem;\n}\n\n.toast-header {\n display: flex;\n align-items: center;\n padding: 0.5rem 0.75rem;\n color: #6c757d;\n background-color: rgba(255, 255, 255, 0.85);\n background-clip: padding-box;\n border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px);\n}\n.toast-header .btn-close {\n margin-right: -0.375rem;\n margin-left: 0.75rem;\n}\n\n.toast-body {\n padding: 0.75rem;\n word-wrap: break-word;\n}\n\n.modal {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1060;\n display: none;\n width: 100%;\n height: 100%;\n overflow-x: hidden;\n overflow-y: auto;\n outline: 0;\n}\n\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 0.5rem;\n pointer-events: none;\n}\n.modal.fade .modal-dialog {\n transition: transform 0.3s ease-out;\n transform: translate(0, -50px);\n}\n@media (prefers-reduced-motion: reduce) {\n .modal.fade .modal-dialog {\n transition: none;\n }\n}\n.modal.show .modal-dialog {\n transform: none;\n}\n.modal.modal-static .modal-dialog {\n transform: scale(1.02);\n}\n\n.modal-dialog-scrollable {\n height: calc(100% - 1rem);\n}\n.modal-dialog-scrollable .modal-content {\n max-height: 100%;\n overflow: hidden;\n}\n.modal-dialog-scrollable .modal-body {\n overflow-y: auto;\n}\n\n.modal-dialog-centered {\n display: flex;\n align-items: center;\n min-height: calc(100% - 1rem);\n}\n\n.modal-content {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%;\n pointer-events: auto;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n outline: 0;\n}\n\n.modal-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1040;\n width: 100vw;\n height: 100vh;\n background-color: #000;\n}\n.modal-backdrop.fade {\n opacity: 0;\n}\n.modal-backdrop.show {\n opacity: 0.5;\n}\n\n.modal-header {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: space-between;\n padding: 1rem 1rem;\n border-bottom: 1px solid #dee2e6;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px);\n}\n.modal-header .btn-close {\n padding: 0.5rem 0.5rem;\n margin: -0.5rem -0.5rem -0.5rem auto;\n}\n\n.modal-title {\n margin-bottom: 0;\n line-height: 1.5;\n}\n\n.modal-body {\n position: relative;\n flex: 1 1 auto;\n padding: 1rem;\n}\n\n.modal-footer {\n display: flex;\n flex-wrap: wrap;\n flex-shrink: 0;\n align-items: center;\n justify-content: flex-end;\n padding: 0.75rem;\n border-top: 1px solid #dee2e6;\n border-bottom-right-radius: calc(0.3rem - 1px);\n border-bottom-left-radius: calc(0.3rem - 1px);\n}\n.modal-footer > * {\n margin: 0.25rem;\n}\n\n@media (min-width: 576px) {\n .modal-dialog {\n max-width: 500px;\n margin: 1.75rem auto;\n }\n .modal-dialog-scrollable {\n height: calc(100% - 3.5rem);\n }\n .modal-dialog-centered {\n min-height: calc(100% - 3.5rem);\n }\n .modal-sm {\n max-width: 300px;\n }\n}\n@media (min-width: 992px) {\n .modal-lg,\n.modal-xl {\n max-width: 800px;\n }\n}\n@media (min-width: 1200px) {\n .modal-xl {\n max-width: 1140px;\n }\n}\n.modal-fullscreen {\n width: 100vw;\n max-width: none;\n height: 100%;\n margin: 0;\n}\n.modal-fullscreen .modal-content {\n height: 100%;\n border: 0;\n border-radius: 0;\n}\n.modal-fullscreen .modal-header {\n border-radius: 0;\n}\n.modal-fullscreen .modal-body {\n overflow-y: auto;\n}\n.modal-fullscreen .modal-footer {\n border-radius: 0;\n}\n\n@media (max-width: 575.98px) {\n .modal-fullscreen-sm-down {\n width: 100vw;\n max-width: none;\n height: 100%;\n margin: 0;\n }\n .modal-fullscreen-sm-down .modal-content {\n height: 100%;\n border: 0;\n border-radius: 0;\n }\n .modal-fullscreen-sm-down .modal-header {\n border-radius: 0;\n }\n .modal-fullscreen-sm-down .modal-body {\n overflow-y: auto;\n }\n .modal-fullscreen-sm-down .modal-footer {\n border-radius: 0;\n }\n}\n@media (max-width: 767.98px) {\n .modal-fullscreen-md-down {\n width: 100vw;\n max-width: none;\n height: 100%;\n margin: 0;\n }\n .modal-fullscreen-md-down .modal-content {\n height: 100%;\n border: 0;\n border-radius: 0;\n }\n .modal-fullscreen-md-down .modal-header {\n border-radius: 0;\n }\n .modal-fullscreen-md-down .modal-body {\n overflow-y: auto;\n }\n .modal-fullscreen-md-down .modal-footer {\n border-radius: 0;\n }\n}\n@media (max-width: 991.98px) {\n .modal-fullscreen-lg-down {\n width: 100vw;\n max-width: none;\n height: 100%;\n margin: 0;\n }\n .modal-fullscreen-lg-down .modal-content {\n height: 100%;\n border: 0;\n border-radius: 0;\n }\n .modal-fullscreen-lg-down .modal-header {\n border-radius: 0;\n }\n .modal-fullscreen-lg-down .modal-body {\n overflow-y: auto;\n }\n .modal-fullscreen-lg-down .modal-footer {\n border-radius: 0;\n }\n}\n@media (max-width: 1199.98px) {\n .modal-fullscreen-xl-down {\n width: 100vw;\n max-width: none;\n height: 100%;\n margin: 0;\n }\n .modal-fullscreen-xl-down .modal-content {\n height: 100%;\n border: 0;\n border-radius: 0;\n }\n .modal-fullscreen-xl-down .modal-header {\n border-radius: 0;\n }\n .modal-fullscreen-xl-down .modal-body {\n overflow-y: auto;\n }\n .modal-fullscreen-xl-down .modal-footer {\n border-radius: 0;\n }\n}\n@media (max-width: 1399.98px) {\n .modal-fullscreen-xxl-down {\n width: 100vw;\n max-width: none;\n height: 100%;\n margin: 0;\n }\n .modal-fullscreen-xxl-down .modal-content {\n height: 100%;\n border: 0;\n border-radius: 0;\n }\n .modal-fullscreen-xxl-down .modal-header {\n border-radius: 0;\n }\n .modal-fullscreen-xxl-down .modal-body {\n overflow-y: auto;\n }\n .modal-fullscreen-xxl-down .modal-footer {\n border-radius: 0;\n }\n}\n.tooltip {\n position: absolute;\n z-index: 1080;\n display: block;\n margin: 0;\n font-family: var(--bs-font-sans-serif);\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.968rem;\n word-wrap: break-word;\n opacity: 0;\n}\n.tooltip.show {\n opacity: 0.9;\n}\n.tooltip .tooltip-arrow {\n position: absolute;\n display: block;\n width: 0.8rem;\n height: 0.4rem;\n}\n.tooltip .tooltip-arrow::before {\n position: absolute;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-tooltip-top, .bs-tooltip-auto[data-popper-placement^=top] {\n padding: 0.4rem 0;\n}\n.bs-tooltip-top .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow {\n bottom: 0;\n}\n.bs-tooltip-top .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before {\n top: -1px;\n border-width: 0.4rem 0.4rem 0;\n border-top-color: #000;\n}\n\n.bs-tooltip-end, .bs-tooltip-auto[data-popper-placement^=right] {\n padding: 0 0.4rem;\n}\n.bs-tooltip-end .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow {\n left: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n.bs-tooltip-end .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before {\n right: -1px;\n border-width: 0.4rem 0.4rem 0.4rem 0;\n border-right-color: #000;\n}\n\n.bs-tooltip-bottom, .bs-tooltip-auto[data-popper-placement^=bottom] {\n padding: 0.4rem 0;\n}\n.bs-tooltip-bottom .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow {\n top: 0;\n}\n.bs-tooltip-bottom .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before {\n bottom: -1px;\n border-width: 0 0.4rem 0.4rem;\n border-bottom-color: #000;\n}\n\n.bs-tooltip-start, .bs-tooltip-auto[data-popper-placement^=left] {\n padding: 0 0.4rem;\n}\n.bs-tooltip-start .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow {\n right: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n.bs-tooltip-start .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before {\n left: -1px;\n border-width: 0.4rem 0 0.4rem 0.4rem;\n border-left-color: #000;\n}\n\n.tooltip-inner {\n max-width: 200px;\n padding: 0.25rem 0.5rem;\n color: #fff;\n text-align: center;\n background-color: #000;\n border-radius: 0.25rem;\n}\n\n.popover {\n position: absolute;\n top: 0;\n left: 0 /* rtl:ignore */;\n z-index: 1070;\n display: block;\n max-width: 320px;\n font-family: var(--bs-font-sans-serif);\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.968rem;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(26, 54, 126, 0.125);\n border-radius: 0.3rem;\n}\n.popover .popover-arrow {\n position: absolute;\n display: block;\n width: 1rem;\n height: 0.5rem;\n}\n.popover .popover-arrow::before, .popover .popover-arrow::after {\n position: absolute;\n display: block;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-popover-top > .popover-arrow, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow {\n bottom: calc(-0.5rem - 1px);\n}\n.bs-popover-top > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::before {\n bottom: 0;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: rgba(26, 54, 126, 0.175);\n}\n.bs-popover-top > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::after {\n bottom: 1px;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: #fff;\n}\n\n.bs-popover-end > .popover-arrow, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow {\n left: calc(-0.5rem - 1px);\n width: 0.5rem;\n height: 1rem;\n}\n.bs-popover-end > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::before {\n left: 0;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: rgba(26, 54, 126, 0.175);\n}\n.bs-popover-end > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::after {\n left: 1px;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: #fff;\n}\n\n.bs-popover-bottom > .popover-arrow, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow {\n top: calc(-0.5rem - 1px);\n}\n.bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::before {\n top: 0;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: rgba(26, 54, 126, 0.175);\n}\n.bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::after {\n top: 1px;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: #fff;\n}\n.bs-popover-bottom .popover-header::before, .bs-popover-auto[data-popper-placement^=bottom] .popover-header::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: 1rem;\n margin-left: -0.5rem;\n content: \"\";\n border-bottom: 1px solid #fff;\n}\n\n.bs-popover-start > .popover-arrow, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow {\n right: calc(-0.5rem - 1px);\n width: 0.5rem;\n height: 1rem;\n}\n.bs-popover-start > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::before {\n right: 0;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: rgba(26, 54, 126, 0.175);\n}\n.bs-popover-start > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::after {\n right: 1px;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: #fff;\n}\n\n.popover-header {\n padding: 0.5rem 1rem;\n margin-bottom: 0;\n font-size: 0.88rem;\n background-color: #fff;\n border-bottom: 1px solid rgba(26, 54, 126, 0.125);\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px);\n}\n.popover-header:empty {\n display: none;\n}\n\n.popover-body {\n padding: 1rem 1rem;\n color: #495057;\n}\n\n.carousel {\n position: relative;\n}\n\n.carousel.pointer-event {\n touch-action: pan-y;\n}\n\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden;\n}\n.carousel-inner::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.carousel-item {\n position: relative;\n display: none;\n float: left;\n width: 100%;\n margin-right: -100%;\n backface-visibility: hidden;\n transition: transform 0.6s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .carousel-item {\n transition: none;\n }\n}\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n display: block;\n}\n\n/* rtl:begin:ignore */\n.carousel-item-next:not(.carousel-item-start),\n.active.carousel-item-end {\n transform: translateX(100%);\n}\n\n.carousel-item-prev:not(.carousel-item-end),\n.active.carousel-item-start {\n transform: translateX(-100%);\n}\n\n/* rtl:end:ignore */\n.carousel-fade .carousel-item {\n opacity: 0;\n transition-property: opacity;\n transform: none;\n}\n.carousel-fade .carousel-item.active,\n.carousel-fade .carousel-item-next.carousel-item-start,\n.carousel-fade .carousel-item-prev.carousel-item-end {\n z-index: 1;\n opacity: 1;\n}\n.carousel-fade .active.carousel-item-start,\n.carousel-fade .active.carousel-item-end {\n z-index: 0;\n opacity: 0;\n transition: opacity 0s 0.6s;\n}\n@media (prefers-reduced-motion: reduce) {\n .carousel-fade .active.carousel-item-start,\n.carousel-fade .active.carousel-item-end {\n transition: none;\n }\n}\n\n.carousel-control-prev,\n.carousel-control-next {\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 15%;\n padding: 0;\n color: #fff;\n text-align: center;\n background: none;\n border: 0;\n opacity: 0.5;\n transition: opacity 0.15s ease;\n}\n@media (prefers-reduced-motion: reduce) {\n .carousel-control-prev,\n.carousel-control-next {\n transition: none;\n }\n}\n.carousel-control-prev:hover, .carousel-control-prev:focus,\n.carousel-control-next:hover,\n.carousel-control-next:focus {\n color: #fff;\n text-decoration: none;\n outline: 0;\n opacity: 0.9;\n}\n\n.carousel-control-prev {\n left: 0;\n}\n\n.carousel-control-next {\n right: 0;\n}\n\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n background-repeat: no-repeat;\n background-position: 50%;\n background-size: 100% 100%;\n}\n\n/* rtl:options: {\n \"autoRename\": true,\n \"stringMap\":[ {\n \"name\" : \"prev-next\",\n \"search\" : \"prev\",\n \"replace\" : \"next\"\n } ]\n} */\n.carousel-control-prev-icon {\n background-image: url(" + ___CSS_LOADER_URL_REPLACEMENT_14___ + ");\n}\n\n.carousel-control-next-icon {\n background-image: url(" + ___CSS_LOADER_URL_REPLACEMENT_15___ + ");\n}\n\n.carousel-indicators {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 2;\n display: flex;\n justify-content: center;\n padding: 0;\n margin-right: 15%;\n margin-bottom: 1rem;\n margin-left: 15%;\n list-style: none;\n}\n.carousel-indicators [data-bs-target] {\n box-sizing: content-box;\n flex: 0 1 auto;\n width: 30px;\n height: 3px;\n padding: 0;\n margin-right: 3px;\n margin-left: 3px;\n text-indent: -999px;\n cursor: pointer;\n background-color: #fff;\n background-clip: padding-box;\n border: 0;\n border-top: 10px solid transparent;\n border-bottom: 10px solid transparent;\n opacity: 0.5;\n transition: opacity 0.6s ease;\n}\n@media (prefers-reduced-motion: reduce) {\n .carousel-indicators [data-bs-target] {\n transition: none;\n }\n}\n.carousel-indicators .active {\n opacity: 1;\n}\n\n.carousel-caption {\n position: absolute;\n right: 15%;\n bottom: 1.25rem;\n left: 15%;\n padding-top: 1.25rem;\n padding-bottom: 1.25rem;\n color: #fff;\n text-align: center;\n}\n\n.carousel-dark .carousel-control-prev-icon,\n.carousel-dark .carousel-control-next-icon {\n filter: invert(1) grayscale(100);\n}\n.carousel-dark .carousel-indicators [data-bs-target] {\n background-color: #000;\n}\n.carousel-dark .carousel-caption {\n color: #000;\n}\n\n@keyframes spinner-border {\n to {\n transform: rotate(360deg) /* rtl:ignore */;\n }\n}\n.spinner-border {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: -0.125em;\n border: 0.25em solid currentColor;\n border-right-color: transparent;\n border-radius: 50%;\n animation: 0.75s linear infinite spinner-border;\n}\n\n.spinner-border-sm {\n width: 1rem;\n height: 1rem;\n border-width: 0.2em;\n}\n\n@keyframes spinner-grow {\n 0% {\n transform: scale(0);\n }\n 50% {\n opacity: 1;\n transform: none;\n }\n}\n.spinner-grow {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: -0.125em;\n background-color: currentColor;\n border-radius: 50%;\n opacity: 0;\n animation: 0.75s linear infinite spinner-grow;\n}\n\n.spinner-grow-sm {\n width: 1rem;\n height: 1rem;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .spinner-border,\n.spinner-grow {\n animation-duration: 1.5s;\n }\n}\n.offcanvas {\n position: fixed;\n bottom: 0;\n z-index: 1050;\n display: flex;\n flex-direction: column;\n max-width: 100%;\n visibility: hidden;\n background-color: #fff;\n background-clip: padding-box;\n outline: 0;\n transition: transform 0.3s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .offcanvas {\n transition: none;\n }\n}\n\n.offcanvas-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 1rem 1rem;\n}\n.offcanvas-header .btn-close {\n padding: 0.5rem 0.5rem;\n margin-top: -0.5rem;\n margin-right: -0.5rem;\n margin-bottom: -0.5rem;\n}\n\n.offcanvas-title {\n margin-bottom: 0;\n line-height: 1.5;\n}\n\n.offcanvas-body {\n flex-grow: 1;\n padding: 1rem 1rem;\n overflow-y: auto;\n}\n\n.offcanvas-start {\n top: 0;\n left: 0;\n width: 400px;\n border-right: 1px solid rgba(0, 0, 0, 0.2);\n transform: translateX(-100%);\n}\n\n.offcanvas-end {\n top: 0;\n right: 0;\n width: 400px;\n border-left: 1px solid rgba(0, 0, 0, 0.2);\n transform: translateX(100%);\n}\n\n.offcanvas-top {\n top: 0;\n right: 0;\n left: 0;\n height: 30vh;\n max-height: 100%;\n border-bottom: 1px solid rgba(0, 0, 0, 0.2);\n transform: translateY(-100%);\n}\n\n.offcanvas-bottom {\n right: 0;\n left: 0;\n height: 30vh;\n max-height: 100%;\n border-top: 1px solid rgba(0, 0, 0, 0.2);\n transform: translateY(100%);\n}\n\n.offcanvas.show {\n transform: none;\n}\n\n.jumbotron {\n padding: 2rem 1rem;\n margin-bottom: 2rem;\n background-color: #e9ecef;\n border-radius: 0.3rem;\n}\n@media (min-width: 576px) {\n .jumbotron {\n padding: 4rem 2rem;\n }\n}\n\n.jumbotron-fluid {\n padding-right: 0;\n padding-left: 0;\n border-radius: 0;\n}\n\n.clearfix::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.link-primary {\n color: #3f6ad8;\n}\n.link-primary:hover, .link-primary:focus {\n color: #3255ad;\n}\n\n.link-secondary {\n color: #6c757d;\n}\n.link-secondary:hover, .link-secondary:focus {\n color: #565e64;\n}\n\n.link-success {\n color: #3ac47d;\n}\n.link-success:hover, .link-success:focus {\n color: #61d097;\n}\n\n.link-info {\n color: #16aaff;\n}\n.link-info:hover, .link-info:focus {\n color: #45bbff;\n}\n\n.link-warning {\n color: #f7b924;\n}\n.link-warning:hover, .link-warning:focus {\n color: #f9c750;\n}\n\n.link-danger {\n color: #d92550;\n}\n.link-danger:hover, .link-danger:focus {\n color: #ae1e40;\n}\n\n.link-light {\n color: #eeeeee;\n}\n.link-light:hover, .link-light:focus {\n color: #f1f1f1;\n}\n\n.link-dark {\n color: #343a40;\n}\n.link-dark:hover, .link-dark:focus {\n color: #2a2e33;\n}\n\n.link-focus {\n color: #444054;\n}\n.link-focus:hover, .link-focus:focus {\n color: #363343;\n}\n\n.link-alternate {\n color: #794c8a;\n}\n.link-alternate:hover, .link-alternate:focus {\n color: #613d6e;\n}\n\n.ratio {\n position: relative;\n width: 100%;\n}\n.ratio::before {\n display: block;\n padding-top: var(--bs-aspect-ratio);\n content: \"\";\n}\n.ratio > * {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n}\n\n.ratio-1x1 {\n --bs-aspect-ratio: 100%;\n}\n\n.ratio-4x3 {\n --bs-aspect-ratio: 75%;\n}\n\n.ratio-16x9 {\n --bs-aspect-ratio: 56.25%;\n}\n\n.ratio-21x9 {\n --bs-aspect-ratio: 42.8571428571%;\n}\n\n.fixed-top {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1030;\n}\n\n.fixed-bottom {\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1030;\n}\n\n.sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n}\n\n@media (min-width: 576px) {\n .sticky-sm-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n}\n@media (min-width: 768px) {\n .sticky-md-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n}\n@media (min-width: 992px) {\n .sticky-lg-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n}\n@media (min-width: 1200px) {\n .sticky-xl-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n}\n@media (min-width: 1400px) {\n .sticky-xxl-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n}\n.visually-hidden,\n.visually-hidden-focusable:not(:focus):not(:focus-within) {\n position: absolute !important;\n width: 1px !important;\n height: 1px !important;\n padding: 0 !important;\n margin: -1px !important;\n overflow: hidden !important;\n clip: rect(0, 0, 0, 0) !important;\n white-space: nowrap !important;\n border: 0 !important;\n}\n\n.stretched-link::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n content: \"\";\n}\n\n.text-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.align-baseline {\n vertical-align: baseline !important;\n}\n\n.align-top {\n vertical-align: top !important;\n}\n\n.align-middle {\n vertical-align: middle !important;\n}\n\n.align-bottom {\n vertical-align: bottom !important;\n}\n\n.align-text-bottom {\n vertical-align: text-bottom !important;\n}\n\n.align-text-top {\n vertical-align: text-top !important;\n}\n\n.float-start {\n float: left !important;\n}\n\n.float-end {\n float: right !important;\n}\n\n.float-none {\n float: none !important;\n}\n\n.overflow-auto {\n overflow: auto !important;\n}\n\n.overflow-hidden {\n overflow: hidden !important;\n}\n\n.overflow-visible {\n overflow: visible !important;\n}\n\n.overflow-scroll {\n overflow: scroll !important;\n}\n\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-block {\n display: block !important;\n}\n\n.d-grid {\n display: grid !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-row {\n display: table-row !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: flex !important;\n}\n\n.d-inline-flex {\n display: inline-flex !important;\n}\n\n.d-none {\n display: none !important;\n}\n\n.shadow {\n box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;\n}\n\n.shadow-sm {\n box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;\n}\n\n.shadow-lg {\n box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important;\n}\n\n.shadow-none {\n box-shadow: none !important;\n}\n\n.position-static {\n position: static !important;\n}\n\n.position-relative {\n position: relative !important;\n}\n\n.position-absolute {\n position: absolute !important;\n}\n\n.position-fixed {\n position: fixed !important;\n}\n\n.position-sticky {\n position: sticky !important;\n}\n\n.top-0 {\n top: 0 !important;\n}\n\n.top-50 {\n top: 50% !important;\n}\n\n.top-100 {\n top: 100% !important;\n}\n\n.bottom-0 {\n bottom: 0 !important;\n}\n\n.bottom-50 {\n bottom: 50% !important;\n}\n\n.bottom-100 {\n bottom: 100% !important;\n}\n\n.start-0 {\n left: 0 !important;\n}\n\n.start-50 {\n left: 50% !important;\n}\n\n.start-100 {\n left: 100% !important;\n}\n\n.end-0 {\n right: 0 !important;\n}\n\n.end-50 {\n right: 50% !important;\n}\n\n.end-100 {\n right: 100% !important;\n}\n\n.translate-middle {\n transform: translate(-50%, -50%) !important;\n}\n\n.translate-middle-x {\n transform: translateX(-50%) !important;\n}\n\n.translate-middle-y {\n transform: translateY(-50%) !important;\n}\n\n.border {\n border: 1px solid #dee2e6 !important;\n}\n\n.border-0 {\n border: 0 !important;\n}\n\n.border-top {\n border-top: 1px solid #dee2e6 !important;\n}\n\n.border-top-0 {\n border-top: 0 !important;\n}\n\n.border-end {\n border-right: 1px solid #dee2e6 !important;\n}\n\n.border-end-0 {\n border-right: 0 !important;\n}\n\n.border-bottom {\n border-bottom: 1px solid #dee2e6 !important;\n}\n\n.border-bottom-0 {\n border-bottom: 0 !important;\n}\n\n.border-start {\n border-left: 1px solid #dee2e6 !important;\n}\n\n.border-start-0 {\n border-left: 0 !important;\n}\n\n.border-primary {\n border-color: #3f6ad8 !important;\n}\n\n.border-secondary {\n border-color: #6c757d !important;\n}\n\n.border-success {\n border-color: #3ac47d !important;\n}\n\n.border-info {\n border-color: #16aaff !important;\n}\n\n.border-warning {\n border-color: #f7b924 !important;\n}\n\n.border-danger {\n border-color: #d92550 !important;\n}\n\n.border-light {\n border-color: #eeeeee !important;\n}\n\n.border-dark {\n border-color: #343a40 !important;\n}\n\n.border-focus {\n border-color: #444054 !important;\n}\n\n.border-alternate {\n border-color: #794c8a !important;\n}\n\n.border-white {\n border-color: #fff !important;\n}\n\n.border-1 {\n border-width: 1px !important;\n}\n\n.border-2 {\n border-width: 2px !important;\n}\n\n.border-3 {\n border-width: 3px !important;\n}\n\n.border-4 {\n border-width: 4px !important;\n}\n\n.border-5 {\n border-width: 5px !important;\n}\n\n.w-25 {\n width: 25% !important;\n}\n\n.w-50 {\n width: 50% !important;\n}\n\n.w-75 {\n width: 75% !important;\n}\n\n.w-100 {\n width: 100% !important;\n}\n\n.w-auto {\n width: auto !important;\n}\n\n.mw-100 {\n max-width: 100% !important;\n}\n\n.vw-100 {\n width: 100vw !important;\n}\n\n.min-vw-100 {\n min-width: 100vw !important;\n}\n\n.h-25 {\n height: 25% !important;\n}\n\n.h-50 {\n height: 50% !important;\n}\n\n.h-75 {\n height: 75% !important;\n}\n\n.h-100 {\n height: 100% !important;\n}\n\n.h-auto {\n height: auto !important;\n}\n\n.mh-100 {\n max-height: 100% !important;\n}\n\n.vh-100 {\n height: 100vh !important;\n}\n\n.min-vh-100 {\n min-height: 100vh !important;\n}\n\n.flex-fill {\n flex: 1 1 auto !important;\n}\n\n.flex-row {\n flex-direction: row !important;\n}\n\n.flex-column {\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n flex-direction: column-reverse !important;\n}\n\n.flex-grow-0 {\n flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n flex-shrink: 1 !important;\n}\n\n.flex-wrap {\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n}\n\n.gap-0 {\n gap: 0 !important;\n}\n\n.gap-1 {\n gap: 0.25rem !important;\n}\n\n.gap-2 {\n gap: 0.5rem !important;\n}\n\n.gap-3 {\n gap: 1rem !important;\n}\n\n.gap-4 {\n gap: 1.5rem !important;\n}\n\n.gap-5 {\n gap: 3rem !important;\n}\n\n.justify-content-start {\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n justify-content: center !important;\n}\n\n.justify-content-between {\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n justify-content: space-around !important;\n}\n\n.justify-content-evenly {\n justify-content: space-evenly !important;\n}\n\n.align-items-start {\n align-items: flex-start !important;\n}\n\n.align-items-end {\n align-items: flex-end !important;\n}\n\n.align-items-center {\n align-items: center !important;\n}\n\n.align-items-baseline {\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n align-items: stretch !important;\n}\n\n.align-content-start {\n align-content: flex-start !important;\n}\n\n.align-content-end {\n align-content: flex-end !important;\n}\n\n.align-content-center {\n align-content: center !important;\n}\n\n.align-content-between {\n align-content: space-between !important;\n}\n\n.align-content-around {\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n align-content: stretch !important;\n}\n\n.align-self-auto {\n align-self: auto !important;\n}\n\n.align-self-start {\n align-self: flex-start !important;\n}\n\n.align-self-end {\n align-self: flex-end !important;\n}\n\n.align-self-center {\n align-self: center !important;\n}\n\n.align-self-baseline {\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n align-self: stretch !important;\n}\n\n.order-first {\n order: -1 !important;\n}\n\n.order-0 {\n order: 0 !important;\n}\n\n.order-1 {\n order: 1 !important;\n}\n\n.order-2 {\n order: 2 !important;\n}\n\n.order-3 {\n order: 3 !important;\n}\n\n.order-4 {\n order: 4 !important;\n}\n\n.order-5 {\n order: 5 !important;\n}\n\n.order-last {\n order: 6 !important;\n}\n\n.m-0 {\n margin: 0 !important;\n}\n\n.m-1 {\n margin: 0.25rem !important;\n}\n\n.m-2 {\n margin: 0.5rem !important;\n}\n\n.m-3 {\n margin: 1rem !important;\n}\n\n.m-4 {\n margin: 1.5rem !important;\n}\n\n.m-5 {\n margin: 3rem !important;\n}\n\n.m-auto {\n margin: auto !important;\n}\n\n.mx-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n}\n\n.mx-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n}\n\n.mx-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n}\n\n.mx-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n}\n\n.mx-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n}\n\n.mx-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n}\n\n.mx-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n}\n\n.my-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n}\n\n.my-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n}\n\n.my-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n}\n\n.my-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n}\n\n.my-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n}\n\n.my-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n}\n\n.my-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n}\n\n.mt-0 {\n margin-top: 0 !important;\n}\n\n.mt-1 {\n margin-top: 0.25rem !important;\n}\n\n.mt-2 {\n margin-top: 0.5rem !important;\n}\n\n.mt-3 {\n margin-top: 1rem !important;\n}\n\n.mt-4 {\n margin-top: 1.5rem !important;\n}\n\n.mt-5 {\n margin-top: 3rem !important;\n}\n\n.mt-auto {\n margin-top: auto !important;\n}\n\n.me-0 {\n margin-right: 0 !important;\n}\n\n.me-1 {\n margin-right: 0.25rem !important;\n}\n\n.me-2 {\n margin-right: 0.5rem !important;\n}\n\n.me-3 {\n margin-right: 1rem !important;\n}\n\n.me-4 {\n margin-right: 1.5rem !important;\n}\n\n.me-5 {\n margin-right: 3rem !important;\n}\n\n.me-auto {\n margin-right: auto !important;\n}\n\n.mb-0 {\n margin-bottom: 0 !important;\n}\n\n.mb-1 {\n margin-bottom: 0.25rem !important;\n}\n\n.mb-2 {\n margin-bottom: 0.5rem !important;\n}\n\n.mb-3 {\n margin-bottom: 1rem !important;\n}\n\n.mb-4 {\n margin-bottom: 1.5rem !important;\n}\n\n.mb-5 {\n margin-bottom: 3rem !important;\n}\n\n.mb-auto {\n margin-bottom: auto !important;\n}\n\n.ms-0 {\n margin-left: 0 !important;\n}\n\n.ms-1 {\n margin-left: 0.25rem !important;\n}\n\n.ms-2 {\n margin-left: 0.5rem !important;\n}\n\n.ms-3 {\n margin-left: 1rem !important;\n}\n\n.ms-4 {\n margin-left: 1.5rem !important;\n}\n\n.ms-5 {\n margin-left: 3rem !important;\n}\n\n.ms-auto {\n margin-left: auto !important;\n}\n\n.p-0 {\n padding: 0 !important;\n}\n\n.p-1 {\n padding: 0.25rem !important;\n}\n\n.p-2 {\n padding: 0.5rem !important;\n}\n\n.p-3 {\n padding: 1rem !important;\n}\n\n.p-4 {\n padding: 1.5rem !important;\n}\n\n.p-5 {\n padding: 3rem !important;\n}\n\n.px-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n}\n\n.px-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n}\n\n.px-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n}\n\n.px-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n}\n\n.px-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n}\n\n.px-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n}\n\n.py-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n}\n\n.py-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n}\n\n.py-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n}\n\n.py-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n}\n\n.py-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n}\n\n.py-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n}\n\n.pt-0 {\n padding-top: 0 !important;\n}\n\n.pt-1 {\n padding-top: 0.25rem !important;\n}\n\n.pt-2 {\n padding-top: 0.5rem !important;\n}\n\n.pt-3 {\n padding-top: 1rem !important;\n}\n\n.pt-4 {\n padding-top: 1.5rem !important;\n}\n\n.pt-5 {\n padding-top: 3rem !important;\n}\n\n.pe-0 {\n padding-right: 0 !important;\n}\n\n.pe-1 {\n padding-right: 0.25rem !important;\n}\n\n.pe-2 {\n padding-right: 0.5rem !important;\n}\n\n.pe-3 {\n padding-right: 1rem !important;\n}\n\n.pe-4 {\n padding-right: 1.5rem !important;\n}\n\n.pe-5 {\n padding-right: 3rem !important;\n}\n\n.pb-0 {\n padding-bottom: 0 !important;\n}\n\n.pb-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.pb-2 {\n padding-bottom: 0.5rem !important;\n}\n\n.pb-3 {\n padding-bottom: 1rem !important;\n}\n\n.pb-4 {\n padding-bottom: 1.5rem !important;\n}\n\n.pb-5 {\n padding-bottom: 3rem !important;\n}\n\n.ps-0 {\n padding-left: 0 !important;\n}\n\n.ps-1 {\n padding-left: 0.25rem !important;\n}\n\n.ps-2 {\n padding-left: 0.5rem !important;\n}\n\n.ps-3 {\n padding-left: 1rem !important;\n}\n\n.ps-4 {\n padding-left: 1.5rem !important;\n}\n\n.ps-5 {\n padding-left: 3rem !important;\n}\n\n.font-monospace {\n font-family: var(--bs-font-monospace) !important;\n}\n\n.fs-1 {\n font-size: calc(1.345rem + 1.14vw) !important;\n}\n\n.fs-2 {\n font-size: calc(1.301rem + 0.612vw) !important;\n}\n\n.fs-3 {\n font-size: calc(1.279rem + 0.348vw) !important;\n}\n\n.fs-4 {\n font-size: calc(1.257rem + 0.084vw) !important;\n}\n\n.fs-5 {\n font-size: 1.1rem !important;\n}\n\n.fs-6 {\n font-size: 0.88rem !important;\n}\n\n.fst-italic {\n font-style: italic !important;\n}\n\n.fst-normal {\n font-style: normal !important;\n}\n\n.fw-light {\n font-weight: 300 !important;\n}\n\n.fw-lighter {\n font-weight: lighter !important;\n}\n\n.fw-normal {\n font-weight: 400 !important;\n}\n\n.fw-bold {\n font-weight: 700 !important;\n}\n\n.fw-bolder {\n font-weight: bolder !important;\n}\n\n.lh-1 {\n line-height: 1 !important;\n}\n\n.lh-sm {\n line-height: 1.25 !important;\n}\n\n.lh-base {\n line-height: 1.5 !important;\n}\n\n.lh-lg {\n line-height: 2 !important;\n}\n\n.text-start {\n text-align: left !important;\n}\n\n.text-end {\n text-align: right !important;\n}\n\n.text-center {\n text-align: center !important;\n}\n\n.text-decoration-none {\n text-decoration: none !important;\n}\n\n.text-decoration-underline {\n text-decoration: underline !important;\n}\n\n.text-decoration-line-through {\n text-decoration: line-through !important;\n}\n\n.text-lowercase {\n text-transform: lowercase !important;\n}\n\n.text-uppercase {\n text-transform: uppercase !important;\n}\n\n.text-capitalize {\n text-transform: capitalize !important;\n}\n\n.text-wrap {\n white-space: normal !important;\n}\n\n.text-nowrap {\n white-space: nowrap !important;\n}\n\n/* rtl:begin:remove */\n.text-break {\n word-wrap: break-word !important;\n word-break: break-word !important;\n}\n\n/* rtl:end:remove */\n.text-primary {\n color: #3f6ad8 !important;\n}\n\n.text-secondary {\n color: #6c757d !important;\n}\n\n.text-success {\n color: #3ac47d !important;\n}\n\n.text-info {\n color: #16aaff !important;\n}\n\n.text-warning {\n color: #f7b924 !important;\n}\n\n.text-danger {\n color: #d92550 !important;\n}\n\n.text-light {\n color: #eeeeee !important;\n}\n\n.text-dark {\n color: #343a40 !important;\n}\n\n.text-focus {\n color: #444054 !important;\n}\n\n.text-alternate {\n color: #794c8a !important;\n}\n\n.text-white {\n color: #fff !important;\n}\n\n.text-body {\n color: #495057 !important;\n}\n\n.text-muted {\n color: #6c757d !important;\n}\n\n.text-black-50 {\n color: rgba(0, 0, 0, 0.5) !important;\n}\n\n.text-white-50 {\n color: rgba(255, 255, 255, 0.5) !important;\n}\n\n.text-reset {\n color: inherit !important;\n}\n\n.bg-primary {\n background-color: #3f6ad8 !important;\n}\n\n.bg-secondary {\n background-color: #6c757d !important;\n}\n\n.bg-success {\n background-color: #3ac47d !important;\n}\n\n.bg-info {\n background-color: #16aaff !important;\n}\n\n.bg-warning {\n background-color: #f7b924 !important;\n}\n\n.bg-danger {\n background-color: #d92550 !important;\n}\n\n.bg-light {\n background-color: #eeeeee !important;\n}\n\n.bg-dark {\n background-color: #343a40 !important;\n}\n\n.bg-focus {\n background-color: #444054 !important;\n}\n\n.bg-alternate {\n background-color: #794c8a !important;\n}\n\n.bg-body {\n background-color: #fff !important;\n}\n\n.bg-white {\n background-color: #fff !important;\n}\n\n.bg-transparent {\n background-color: transparent !important;\n}\n\n.bg-gradient {\n background-image: var(--bs-gradient) !important;\n}\n\n.user-select-all {\n user-select: all !important;\n}\n\n.user-select-auto {\n user-select: auto !important;\n}\n\n.user-select-none {\n user-select: none !important;\n}\n\n.pe-none {\n pointer-events: none !important;\n}\n\n.pe-auto {\n pointer-events: auto !important;\n}\n\n.rounded {\n border-radius: 0.25rem !important;\n}\n\n.rounded-0 {\n border-radius: 0 !important;\n}\n\n.rounded-1 {\n border-radius: 0.2rem !important;\n}\n\n.rounded-2 {\n border-radius: 0.25rem !important;\n}\n\n.rounded-3 {\n border-radius: 0.3rem !important;\n}\n\n.rounded-circle {\n border-radius: 50% !important;\n}\n\n.rounded-pill {\n border-radius: 50rem !important;\n}\n\n.rounded-top {\n border-top-left-radius: 0.25rem !important;\n border-top-right-radius: 0.25rem !important;\n}\n\n.rounded-end {\n border-top-right-radius: 0.25rem !important;\n border-bottom-right-radius: 0.25rem !important;\n}\n\n.rounded-bottom {\n border-bottom-right-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-start {\n border-bottom-left-radius: 0.25rem !important;\n border-top-left-radius: 0.25rem !important;\n}\n\n.visible {\n visibility: visible !important;\n}\n\n.invisible {\n visibility: hidden !important;\n}\n\n@media (min-width: 576px) {\n .float-sm-start {\n float: left !important;\n }\n .float-sm-end {\n float: right !important;\n }\n .float-sm-none {\n float: none !important;\n }\n .d-sm-inline {\n display: inline !important;\n }\n .d-sm-inline-block {\n display: inline-block !important;\n }\n .d-sm-block {\n display: block !important;\n }\n .d-sm-grid {\n display: grid !important;\n }\n .d-sm-table {\n display: table !important;\n }\n .d-sm-table-row {\n display: table-row !important;\n }\n .d-sm-table-cell {\n display: table-cell !important;\n }\n .d-sm-flex {\n display: flex !important;\n }\n .d-sm-inline-flex {\n display: inline-flex !important;\n }\n .d-sm-none {\n display: none !important;\n }\n .flex-sm-fill {\n flex: 1 1 auto !important;\n }\n .flex-sm-row {\n flex-direction: row !important;\n }\n .flex-sm-column {\n flex-direction: column !important;\n }\n .flex-sm-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-sm-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-sm-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-sm-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-sm-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-sm-shrink-1 {\n flex-shrink: 1 !important;\n }\n .flex-sm-wrap {\n flex-wrap: wrap !important;\n }\n .flex-sm-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-sm-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .gap-sm-0 {\n gap: 0 !important;\n }\n .gap-sm-1 {\n gap: 0.25rem !important;\n }\n .gap-sm-2 {\n gap: 0.5rem !important;\n }\n .gap-sm-3 {\n gap: 1rem !important;\n }\n .gap-sm-4 {\n gap: 1.5rem !important;\n }\n .gap-sm-5 {\n gap: 3rem !important;\n }\n .justify-content-sm-start {\n justify-content: flex-start !important;\n }\n .justify-content-sm-end {\n justify-content: flex-end !important;\n }\n .justify-content-sm-center {\n justify-content: center !important;\n }\n .justify-content-sm-between {\n justify-content: space-between !important;\n }\n .justify-content-sm-around {\n justify-content: space-around !important;\n }\n .justify-content-sm-evenly {\n justify-content: space-evenly !important;\n }\n .align-items-sm-start {\n align-items: flex-start !important;\n }\n .align-items-sm-end {\n align-items: flex-end !important;\n }\n .align-items-sm-center {\n align-items: center !important;\n }\n .align-items-sm-baseline {\n align-items: baseline !important;\n }\n .align-items-sm-stretch {\n align-items: stretch !important;\n }\n .align-content-sm-start {\n align-content: flex-start !important;\n }\n .align-content-sm-end {\n align-content: flex-end !important;\n }\n .align-content-sm-center {\n align-content: center !important;\n }\n .align-content-sm-between {\n align-content: space-between !important;\n }\n .align-content-sm-around {\n align-content: space-around !important;\n }\n .align-content-sm-stretch {\n align-content: stretch !important;\n }\n .align-self-sm-auto {\n align-self: auto !important;\n }\n .align-self-sm-start {\n align-self: flex-start !important;\n }\n .align-self-sm-end {\n align-self: flex-end !important;\n }\n .align-self-sm-center {\n align-self: center !important;\n }\n .align-self-sm-baseline {\n align-self: baseline !important;\n }\n .align-self-sm-stretch {\n align-self: stretch !important;\n }\n .order-sm-first {\n order: -1 !important;\n }\n .order-sm-0 {\n order: 0 !important;\n }\n .order-sm-1 {\n order: 1 !important;\n }\n .order-sm-2 {\n order: 2 !important;\n }\n .order-sm-3 {\n order: 3 !important;\n }\n .order-sm-4 {\n order: 4 !important;\n }\n .order-sm-5 {\n order: 5 !important;\n }\n .order-sm-last {\n order: 6 !important;\n }\n .m-sm-0 {\n margin: 0 !important;\n }\n .m-sm-1 {\n margin: 0.25rem !important;\n }\n .m-sm-2 {\n margin: 0.5rem !important;\n }\n .m-sm-3 {\n margin: 1rem !important;\n }\n .m-sm-4 {\n margin: 1.5rem !important;\n }\n .m-sm-5 {\n margin: 3rem !important;\n }\n .m-sm-auto {\n margin: auto !important;\n }\n .mx-sm-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n .mx-sm-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n .mx-sm-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n .mx-sm-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n .mx-sm-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n .mx-sm-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n .mx-sm-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n .my-sm-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n .my-sm-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n .my-sm-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n .my-sm-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n .my-sm-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n .my-sm-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n .my-sm-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n .mt-sm-0 {\n margin-top: 0 !important;\n }\n .mt-sm-1 {\n margin-top: 0.25rem !important;\n }\n .mt-sm-2 {\n margin-top: 0.5rem !important;\n }\n .mt-sm-3 {\n margin-top: 1rem !important;\n }\n .mt-sm-4 {\n margin-top: 1.5rem !important;\n }\n .mt-sm-5 {\n margin-top: 3rem !important;\n }\n .mt-sm-auto {\n margin-top: auto !important;\n }\n .me-sm-0 {\n margin-right: 0 !important;\n }\n .me-sm-1 {\n margin-right: 0.25rem !important;\n }\n .me-sm-2 {\n margin-right: 0.5rem !important;\n }\n .me-sm-3 {\n margin-right: 1rem !important;\n }\n .me-sm-4 {\n margin-right: 1.5rem !important;\n }\n .me-sm-5 {\n margin-right: 3rem !important;\n }\n .me-sm-auto {\n margin-right: auto !important;\n }\n .mb-sm-0 {\n margin-bottom: 0 !important;\n }\n .mb-sm-1 {\n margin-bottom: 0.25rem !important;\n }\n .mb-sm-2 {\n margin-bottom: 0.5rem !important;\n }\n .mb-sm-3 {\n margin-bottom: 1rem !important;\n }\n .mb-sm-4 {\n margin-bottom: 1.5rem !important;\n }\n .mb-sm-5 {\n margin-bottom: 3rem !important;\n }\n .mb-sm-auto {\n margin-bottom: auto !important;\n }\n .ms-sm-0 {\n margin-left: 0 !important;\n }\n .ms-sm-1 {\n margin-left: 0.25rem !important;\n }\n .ms-sm-2 {\n margin-left: 0.5rem !important;\n }\n .ms-sm-3 {\n margin-left: 1rem !important;\n }\n .ms-sm-4 {\n margin-left: 1.5rem !important;\n }\n .ms-sm-5 {\n margin-left: 3rem !important;\n }\n .ms-sm-auto {\n margin-left: auto !important;\n }\n .p-sm-0 {\n padding: 0 !important;\n }\n .p-sm-1 {\n padding: 0.25rem !important;\n }\n .p-sm-2 {\n padding: 0.5rem !important;\n }\n .p-sm-3 {\n padding: 1rem !important;\n }\n .p-sm-4 {\n padding: 1.5rem !important;\n }\n .p-sm-5 {\n padding: 3rem !important;\n }\n .px-sm-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n .px-sm-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n .px-sm-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n .px-sm-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n .px-sm-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n .px-sm-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n .py-sm-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n .py-sm-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n .py-sm-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n .py-sm-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n .py-sm-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n .py-sm-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n .pt-sm-0 {\n padding-top: 0 !important;\n }\n .pt-sm-1 {\n padding-top: 0.25rem !important;\n }\n .pt-sm-2 {\n padding-top: 0.5rem !important;\n }\n .pt-sm-3 {\n padding-top: 1rem !important;\n }\n .pt-sm-4 {\n padding-top: 1.5rem !important;\n }\n .pt-sm-5 {\n padding-top: 3rem !important;\n }\n .pe-sm-0 {\n padding-right: 0 !important;\n }\n .pe-sm-1 {\n padding-right: 0.25rem !important;\n }\n .pe-sm-2 {\n padding-right: 0.5rem !important;\n }\n .pe-sm-3 {\n padding-right: 1rem !important;\n }\n .pe-sm-4 {\n padding-right: 1.5rem !important;\n }\n .pe-sm-5 {\n padding-right: 3rem !important;\n }\n .pb-sm-0 {\n padding-bottom: 0 !important;\n }\n .pb-sm-1 {\n padding-bottom: 0.25rem !important;\n }\n .pb-sm-2 {\n padding-bottom: 0.5rem !important;\n }\n .pb-sm-3 {\n padding-bottom: 1rem !important;\n }\n .pb-sm-4 {\n padding-bottom: 1.5rem !important;\n }\n .pb-sm-5 {\n padding-bottom: 3rem !important;\n }\n .ps-sm-0 {\n padding-left: 0 !important;\n }\n .ps-sm-1 {\n padding-left: 0.25rem !important;\n }\n .ps-sm-2 {\n padding-left: 0.5rem !important;\n }\n .ps-sm-3 {\n padding-left: 1rem !important;\n }\n .ps-sm-4 {\n padding-left: 1.5rem !important;\n }\n .ps-sm-5 {\n padding-left: 3rem !important;\n }\n .text-sm-start {\n text-align: left !important;\n }\n .text-sm-end {\n text-align: right !important;\n }\n .text-sm-center {\n text-align: center !important;\n }\n}\n@media (min-width: 768px) {\n .float-md-start {\n float: left !important;\n }\n .float-md-end {\n float: right !important;\n }\n .float-md-none {\n float: none !important;\n }\n .d-md-inline {\n display: inline !important;\n }\n .d-md-inline-block {\n display: inline-block !important;\n }\n .d-md-block {\n display: block !important;\n }\n .d-md-grid {\n display: grid !important;\n }\n .d-md-table {\n display: table !important;\n }\n .d-md-table-row {\n display: table-row !important;\n }\n .d-md-table-cell {\n display: table-cell !important;\n }\n .d-md-flex {\n display: flex !important;\n }\n .d-md-inline-flex {\n display: inline-flex !important;\n }\n .d-md-none {\n display: none !important;\n }\n .flex-md-fill {\n flex: 1 1 auto !important;\n }\n .flex-md-row {\n flex-direction: row !important;\n }\n .flex-md-column {\n flex-direction: column !important;\n }\n .flex-md-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-md-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-md-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-md-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-md-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-md-shrink-1 {\n flex-shrink: 1 !important;\n }\n .flex-md-wrap {\n flex-wrap: wrap !important;\n }\n .flex-md-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-md-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .gap-md-0 {\n gap: 0 !important;\n }\n .gap-md-1 {\n gap: 0.25rem !important;\n }\n .gap-md-2 {\n gap: 0.5rem !important;\n }\n .gap-md-3 {\n gap: 1rem !important;\n }\n .gap-md-4 {\n gap: 1.5rem !important;\n }\n .gap-md-5 {\n gap: 3rem !important;\n }\n .justify-content-md-start {\n justify-content: flex-start !important;\n }\n .justify-content-md-end {\n justify-content: flex-end !important;\n }\n .justify-content-md-center {\n justify-content: center !important;\n }\n .justify-content-md-between {\n justify-content: space-between !important;\n }\n .justify-content-md-around {\n justify-content: space-around !important;\n }\n .justify-content-md-evenly {\n justify-content: space-evenly !important;\n }\n .align-items-md-start {\n align-items: flex-start !important;\n }\n .align-items-md-end {\n align-items: flex-end !important;\n }\n .align-items-md-center {\n align-items: center !important;\n }\n .align-items-md-baseline {\n align-items: baseline !important;\n }\n .align-items-md-stretch {\n align-items: stretch !important;\n }\n .align-content-md-start {\n align-content: flex-start !important;\n }\n .align-content-md-end {\n align-content: flex-end !important;\n }\n .align-content-md-center {\n align-content: center !important;\n }\n .align-content-md-between {\n align-content: space-between !important;\n }\n .align-content-md-around {\n align-content: space-around !important;\n }\n .align-content-md-stretch {\n align-content: stretch !important;\n }\n .align-self-md-auto {\n align-self: auto !important;\n }\n .align-self-md-start {\n align-self: flex-start !important;\n }\n .align-self-md-end {\n align-self: flex-end !important;\n }\n .align-self-md-center {\n align-self: center !important;\n }\n .align-self-md-baseline {\n align-self: baseline !important;\n }\n .align-self-md-stretch {\n align-self: stretch !important;\n }\n .order-md-first {\n order: -1 !important;\n }\n .order-md-0 {\n order: 0 !important;\n }\n .order-md-1 {\n order: 1 !important;\n }\n .order-md-2 {\n order: 2 !important;\n }\n .order-md-3 {\n order: 3 !important;\n }\n .order-md-4 {\n order: 4 !important;\n }\n .order-md-5 {\n order: 5 !important;\n }\n .order-md-last {\n order: 6 !important;\n }\n .m-md-0 {\n margin: 0 !important;\n }\n .m-md-1 {\n margin: 0.25rem !important;\n }\n .m-md-2 {\n margin: 0.5rem !important;\n }\n .m-md-3 {\n margin: 1rem !important;\n }\n .m-md-4 {\n margin: 1.5rem !important;\n }\n .m-md-5 {\n margin: 3rem !important;\n }\n .m-md-auto {\n margin: auto !important;\n }\n .mx-md-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n .mx-md-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n .mx-md-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n .mx-md-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n .mx-md-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n .mx-md-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n .mx-md-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n .my-md-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n .my-md-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n .my-md-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n .my-md-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n .my-md-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n .my-md-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n .my-md-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n .mt-md-0 {\n margin-top: 0 !important;\n }\n .mt-md-1 {\n margin-top: 0.25rem !important;\n }\n .mt-md-2 {\n margin-top: 0.5rem !important;\n }\n .mt-md-3 {\n margin-top: 1rem !important;\n }\n .mt-md-4 {\n margin-top: 1.5rem !important;\n }\n .mt-md-5 {\n margin-top: 3rem !important;\n }\n .mt-md-auto {\n margin-top: auto !important;\n }\n .me-md-0 {\n margin-right: 0 !important;\n }\n .me-md-1 {\n margin-right: 0.25rem !important;\n }\n .me-md-2 {\n margin-right: 0.5rem !important;\n }\n .me-md-3 {\n margin-right: 1rem !important;\n }\n .me-md-4 {\n margin-right: 1.5rem !important;\n }\n .me-md-5 {\n margin-right: 3rem !important;\n }\n .me-md-auto {\n margin-right: auto !important;\n }\n .mb-md-0 {\n margin-bottom: 0 !important;\n }\n .mb-md-1 {\n margin-bottom: 0.25rem !important;\n }\n .mb-md-2 {\n margin-bottom: 0.5rem !important;\n }\n .mb-md-3 {\n margin-bottom: 1rem !important;\n }\n .mb-md-4 {\n margin-bottom: 1.5rem !important;\n }\n .mb-md-5 {\n margin-bottom: 3rem !important;\n }\n .mb-md-auto {\n margin-bottom: auto !important;\n }\n .ms-md-0 {\n margin-left: 0 !important;\n }\n .ms-md-1 {\n margin-left: 0.25rem !important;\n }\n .ms-md-2 {\n margin-left: 0.5rem !important;\n }\n .ms-md-3 {\n margin-left: 1rem !important;\n }\n .ms-md-4 {\n margin-left: 1.5rem !important;\n }\n .ms-md-5 {\n margin-left: 3rem !important;\n }\n .ms-md-auto {\n margin-left: auto !important;\n }\n .p-md-0 {\n padding: 0 !important;\n }\n .p-md-1 {\n padding: 0.25rem !important;\n }\n .p-md-2 {\n padding: 0.5rem !important;\n }\n .p-md-3 {\n padding: 1rem !important;\n }\n .p-md-4 {\n padding: 1.5rem !important;\n }\n .p-md-5 {\n padding: 3rem !important;\n }\n .px-md-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n .px-md-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n .px-md-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n .px-md-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n .px-md-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n .px-md-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n .py-md-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n .py-md-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n .py-md-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n .py-md-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n .py-md-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n .py-md-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n .pt-md-0 {\n padding-top: 0 !important;\n }\n .pt-md-1 {\n padding-top: 0.25rem !important;\n }\n .pt-md-2 {\n padding-top: 0.5rem !important;\n }\n .pt-md-3 {\n padding-top: 1rem !important;\n }\n .pt-md-4 {\n padding-top: 1.5rem !important;\n }\n .pt-md-5 {\n padding-top: 3rem !important;\n }\n .pe-md-0 {\n padding-right: 0 !important;\n }\n .pe-md-1 {\n padding-right: 0.25rem !important;\n }\n .pe-md-2 {\n padding-right: 0.5rem !important;\n }\n .pe-md-3 {\n padding-right: 1rem !important;\n }\n .pe-md-4 {\n padding-right: 1.5rem !important;\n }\n .pe-md-5 {\n padding-right: 3rem !important;\n }\n .pb-md-0 {\n padding-bottom: 0 !important;\n }\n .pb-md-1 {\n padding-bottom: 0.25rem !important;\n }\n .pb-md-2 {\n padding-bottom: 0.5rem !important;\n }\n .pb-md-3 {\n padding-bottom: 1rem !important;\n }\n .pb-md-4 {\n padding-bottom: 1.5rem !important;\n }\n .pb-md-5 {\n padding-bottom: 3rem !important;\n }\n .ps-md-0 {\n padding-left: 0 !important;\n }\n .ps-md-1 {\n padding-left: 0.25rem !important;\n }\n .ps-md-2 {\n padding-left: 0.5rem !important;\n }\n .ps-md-3 {\n padding-left: 1rem !important;\n }\n .ps-md-4 {\n padding-left: 1.5rem !important;\n }\n .ps-md-5 {\n padding-left: 3rem !important;\n }\n .text-md-start {\n text-align: left !important;\n }\n .text-md-end {\n text-align: right !important;\n }\n .text-md-center {\n text-align: center !important;\n }\n}\n@media (min-width: 992px) {\n .float-lg-start {\n float: left !important;\n }\n .float-lg-end {\n float: right !important;\n }\n .float-lg-none {\n float: none !important;\n }\n .d-lg-inline {\n display: inline !important;\n }\n .d-lg-inline-block {\n display: inline-block !important;\n }\n .d-lg-block {\n display: block !important;\n }\n .d-lg-grid {\n display: grid !important;\n }\n .d-lg-table {\n display: table !important;\n }\n .d-lg-table-row {\n display: table-row !important;\n }\n .d-lg-table-cell {\n display: table-cell !important;\n }\n .d-lg-flex {\n display: flex !important;\n }\n .d-lg-inline-flex {\n display: inline-flex !important;\n }\n .d-lg-none {\n display: none !important;\n }\n .flex-lg-fill {\n flex: 1 1 auto !important;\n }\n .flex-lg-row {\n flex-direction: row !important;\n }\n .flex-lg-column {\n flex-direction: column !important;\n }\n .flex-lg-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-lg-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-lg-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-lg-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-lg-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-lg-shrink-1 {\n flex-shrink: 1 !important;\n }\n .flex-lg-wrap {\n flex-wrap: wrap !important;\n }\n .flex-lg-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-lg-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .gap-lg-0 {\n gap: 0 !important;\n }\n .gap-lg-1 {\n gap: 0.25rem !important;\n }\n .gap-lg-2 {\n gap: 0.5rem !important;\n }\n .gap-lg-3 {\n gap: 1rem !important;\n }\n .gap-lg-4 {\n gap: 1.5rem !important;\n }\n .gap-lg-5 {\n gap: 3rem !important;\n }\n .justify-content-lg-start {\n justify-content: flex-start !important;\n }\n .justify-content-lg-end {\n justify-content: flex-end !important;\n }\n .justify-content-lg-center {\n justify-content: center !important;\n }\n .justify-content-lg-between {\n justify-content: space-between !important;\n }\n .justify-content-lg-around {\n justify-content: space-around !important;\n }\n .justify-content-lg-evenly {\n justify-content: space-evenly !important;\n }\n .align-items-lg-start {\n align-items: flex-start !important;\n }\n .align-items-lg-end {\n align-items: flex-end !important;\n }\n .align-items-lg-center {\n align-items: center !important;\n }\n .align-items-lg-baseline {\n align-items: baseline !important;\n }\n .align-items-lg-stretch {\n align-items: stretch !important;\n }\n .align-content-lg-start {\n align-content: flex-start !important;\n }\n .align-content-lg-end {\n align-content: flex-end !important;\n }\n .align-content-lg-center {\n align-content: center !important;\n }\n .align-content-lg-between {\n align-content: space-between !important;\n }\n .align-content-lg-around {\n align-content: space-around !important;\n }\n .align-content-lg-stretch {\n align-content: stretch !important;\n }\n .align-self-lg-auto {\n align-self: auto !important;\n }\n .align-self-lg-start {\n align-self: flex-start !important;\n }\n .align-self-lg-end {\n align-self: flex-end !important;\n }\n .align-self-lg-center {\n align-self: center !important;\n }\n .align-self-lg-baseline {\n align-self: baseline !important;\n }\n .align-self-lg-stretch {\n align-self: stretch !important;\n }\n .order-lg-first {\n order: -1 !important;\n }\n .order-lg-0 {\n order: 0 !important;\n }\n .order-lg-1 {\n order: 1 !important;\n }\n .order-lg-2 {\n order: 2 !important;\n }\n .order-lg-3 {\n order: 3 !important;\n }\n .order-lg-4 {\n order: 4 !important;\n }\n .order-lg-5 {\n order: 5 !important;\n }\n .order-lg-last {\n order: 6 !important;\n }\n .m-lg-0 {\n margin: 0 !important;\n }\n .m-lg-1 {\n margin: 0.25rem !important;\n }\n .m-lg-2 {\n margin: 0.5rem !important;\n }\n .m-lg-3 {\n margin: 1rem !important;\n }\n .m-lg-4 {\n margin: 1.5rem !important;\n }\n .m-lg-5 {\n margin: 3rem !important;\n }\n .m-lg-auto {\n margin: auto !important;\n }\n .mx-lg-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n .mx-lg-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n .mx-lg-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n .mx-lg-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n .mx-lg-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n .mx-lg-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n .mx-lg-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n .my-lg-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n .my-lg-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n .my-lg-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n .my-lg-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n .my-lg-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n .my-lg-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n .my-lg-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n .mt-lg-0 {\n margin-top: 0 !important;\n }\n .mt-lg-1 {\n margin-top: 0.25rem !important;\n }\n .mt-lg-2 {\n margin-top: 0.5rem !important;\n }\n .mt-lg-3 {\n margin-top: 1rem !important;\n }\n .mt-lg-4 {\n margin-top: 1.5rem !important;\n }\n .mt-lg-5 {\n margin-top: 3rem !important;\n }\n .mt-lg-auto {\n margin-top: auto !important;\n }\n .me-lg-0 {\n margin-right: 0 !important;\n }\n .me-lg-1 {\n margin-right: 0.25rem !important;\n }\n .me-lg-2 {\n margin-right: 0.5rem !important;\n }\n .me-lg-3 {\n margin-right: 1rem !important;\n }\n .me-lg-4 {\n margin-right: 1.5rem !important;\n }\n .me-lg-5 {\n margin-right: 3rem !important;\n }\n .me-lg-auto {\n margin-right: auto !important;\n }\n .mb-lg-0 {\n margin-bottom: 0 !important;\n }\n .mb-lg-1 {\n margin-bottom: 0.25rem !important;\n }\n .mb-lg-2 {\n margin-bottom: 0.5rem !important;\n }\n .mb-lg-3 {\n margin-bottom: 1rem !important;\n }\n .mb-lg-4 {\n margin-bottom: 1.5rem !important;\n }\n .mb-lg-5 {\n margin-bottom: 3rem !important;\n }\n .mb-lg-auto {\n margin-bottom: auto !important;\n }\n .ms-lg-0 {\n margin-left: 0 !important;\n }\n .ms-lg-1 {\n margin-left: 0.25rem !important;\n }\n .ms-lg-2 {\n margin-left: 0.5rem !important;\n }\n .ms-lg-3 {\n margin-left: 1rem !important;\n }\n .ms-lg-4 {\n margin-left: 1.5rem !important;\n }\n .ms-lg-5 {\n margin-left: 3rem !important;\n }\n .ms-lg-auto {\n margin-left: auto !important;\n }\n .p-lg-0 {\n padding: 0 !important;\n }\n .p-lg-1 {\n padding: 0.25rem !important;\n }\n .p-lg-2 {\n padding: 0.5rem !important;\n }\n .p-lg-3 {\n padding: 1rem !important;\n }\n .p-lg-4 {\n padding: 1.5rem !important;\n }\n .p-lg-5 {\n padding: 3rem !important;\n }\n .px-lg-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n .px-lg-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n .px-lg-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n .px-lg-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n .px-lg-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n .px-lg-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n .py-lg-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n .py-lg-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n .py-lg-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n .py-lg-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n .py-lg-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n .py-lg-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n .pt-lg-0 {\n padding-top: 0 !important;\n }\n .pt-lg-1 {\n padding-top: 0.25rem !important;\n }\n .pt-lg-2 {\n padding-top: 0.5rem !important;\n }\n .pt-lg-3 {\n padding-top: 1rem !important;\n }\n .pt-lg-4 {\n padding-top: 1.5rem !important;\n }\n .pt-lg-5 {\n padding-top: 3rem !important;\n }\n .pe-lg-0 {\n padding-right: 0 !important;\n }\n .pe-lg-1 {\n padding-right: 0.25rem !important;\n }\n .pe-lg-2 {\n padding-right: 0.5rem !important;\n }\n .pe-lg-3 {\n padding-right: 1rem !important;\n }\n .pe-lg-4 {\n padding-right: 1.5rem !important;\n }\n .pe-lg-5 {\n padding-right: 3rem !important;\n }\n .pb-lg-0 {\n padding-bottom: 0 !important;\n }\n .pb-lg-1 {\n padding-bottom: 0.25rem !important;\n }\n .pb-lg-2 {\n padding-bottom: 0.5rem !important;\n }\n .pb-lg-3 {\n padding-bottom: 1rem !important;\n }\n .pb-lg-4 {\n padding-bottom: 1.5rem !important;\n }\n .pb-lg-5 {\n padding-bottom: 3rem !important;\n }\n .ps-lg-0 {\n padding-left: 0 !important;\n }\n .ps-lg-1 {\n padding-left: 0.25rem !important;\n }\n .ps-lg-2 {\n padding-left: 0.5rem !important;\n }\n .ps-lg-3 {\n padding-left: 1rem !important;\n }\n .ps-lg-4 {\n padding-left: 1.5rem !important;\n }\n .ps-lg-5 {\n padding-left: 3rem !important;\n }\n .text-lg-start {\n text-align: left !important;\n }\n .text-lg-end {\n text-align: right !important;\n }\n .text-lg-center {\n text-align: center !important;\n }\n}\n@media (min-width: 1200px) {\n .float-xl-start {\n float: left !important;\n }\n .float-xl-end {\n float: right !important;\n }\n .float-xl-none {\n float: none !important;\n }\n .d-xl-inline {\n display: inline !important;\n }\n .d-xl-inline-block {\n display: inline-block !important;\n }\n .d-xl-block {\n display: block !important;\n }\n .d-xl-grid {\n display: grid !important;\n }\n .d-xl-table {\n display: table !important;\n }\n .d-xl-table-row {\n display: table-row !important;\n }\n .d-xl-table-cell {\n display: table-cell !important;\n }\n .d-xl-flex {\n display: flex !important;\n }\n .d-xl-inline-flex {\n display: inline-flex !important;\n }\n .d-xl-none {\n display: none !important;\n }\n .flex-xl-fill {\n flex: 1 1 auto !important;\n }\n .flex-xl-row {\n flex-direction: row !important;\n }\n .flex-xl-column {\n flex-direction: column !important;\n }\n .flex-xl-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-xl-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-xl-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-xl-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-xl-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-xl-shrink-1 {\n flex-shrink: 1 !important;\n }\n .flex-xl-wrap {\n flex-wrap: wrap !important;\n }\n .flex-xl-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-xl-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .gap-xl-0 {\n gap: 0 !important;\n }\n .gap-xl-1 {\n gap: 0.25rem !important;\n }\n .gap-xl-2 {\n gap: 0.5rem !important;\n }\n .gap-xl-3 {\n gap: 1rem !important;\n }\n .gap-xl-4 {\n gap: 1.5rem !important;\n }\n .gap-xl-5 {\n gap: 3rem !important;\n }\n .justify-content-xl-start {\n justify-content: flex-start !important;\n }\n .justify-content-xl-end {\n justify-content: flex-end !important;\n }\n .justify-content-xl-center {\n justify-content: center !important;\n }\n .justify-content-xl-between {\n justify-content: space-between !important;\n }\n .justify-content-xl-around {\n justify-content: space-around !important;\n }\n .justify-content-xl-evenly {\n justify-content: space-evenly !important;\n }\n .align-items-xl-start {\n align-items: flex-start !important;\n }\n .align-items-xl-end {\n align-items: flex-end !important;\n }\n .align-items-xl-center {\n align-items: center !important;\n }\n .align-items-xl-baseline {\n align-items: baseline !important;\n }\n .align-items-xl-stretch {\n align-items: stretch !important;\n }\n .align-content-xl-start {\n align-content: flex-start !important;\n }\n .align-content-xl-end {\n align-content: flex-end !important;\n }\n .align-content-xl-center {\n align-content: center !important;\n }\n .align-content-xl-between {\n align-content: space-between !important;\n }\n .align-content-xl-around {\n align-content: space-around !important;\n }\n .align-content-xl-stretch {\n align-content: stretch !important;\n }\n .align-self-xl-auto {\n align-self: auto !important;\n }\n .align-self-xl-start {\n align-self: flex-start !important;\n }\n .align-self-xl-end {\n align-self: flex-end !important;\n }\n .align-self-xl-center {\n align-self: center !important;\n }\n .align-self-xl-baseline {\n align-self: baseline !important;\n }\n .align-self-xl-stretch {\n align-self: stretch !important;\n }\n .order-xl-first {\n order: -1 !important;\n }\n .order-xl-0 {\n order: 0 !important;\n }\n .order-xl-1 {\n order: 1 !important;\n }\n .order-xl-2 {\n order: 2 !important;\n }\n .order-xl-3 {\n order: 3 !important;\n }\n .order-xl-4 {\n order: 4 !important;\n }\n .order-xl-5 {\n order: 5 !important;\n }\n .order-xl-last {\n order: 6 !important;\n }\n .m-xl-0 {\n margin: 0 !important;\n }\n .m-xl-1 {\n margin: 0.25rem !important;\n }\n .m-xl-2 {\n margin: 0.5rem !important;\n }\n .m-xl-3 {\n margin: 1rem !important;\n }\n .m-xl-4 {\n margin: 1.5rem !important;\n }\n .m-xl-5 {\n margin: 3rem !important;\n }\n .m-xl-auto {\n margin: auto !important;\n }\n .mx-xl-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n .mx-xl-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n .mx-xl-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n .mx-xl-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n .mx-xl-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n .mx-xl-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n .mx-xl-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n .my-xl-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n .my-xl-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n .my-xl-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n .my-xl-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n .my-xl-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n .my-xl-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n .my-xl-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n .mt-xl-0 {\n margin-top: 0 !important;\n }\n .mt-xl-1 {\n margin-top: 0.25rem !important;\n }\n .mt-xl-2 {\n margin-top: 0.5rem !important;\n }\n .mt-xl-3 {\n margin-top: 1rem !important;\n }\n .mt-xl-4 {\n margin-top: 1.5rem !important;\n }\n .mt-xl-5 {\n margin-top: 3rem !important;\n }\n .mt-xl-auto {\n margin-top: auto !important;\n }\n .me-xl-0 {\n margin-right: 0 !important;\n }\n .me-xl-1 {\n margin-right: 0.25rem !important;\n }\n .me-xl-2 {\n margin-right: 0.5rem !important;\n }\n .me-xl-3 {\n margin-right: 1rem !important;\n }\n .me-xl-4 {\n margin-right: 1.5rem !important;\n }\n .me-xl-5 {\n margin-right: 3rem !important;\n }\n .me-xl-auto {\n margin-right: auto !important;\n }\n .mb-xl-0 {\n margin-bottom: 0 !important;\n }\n .mb-xl-1 {\n margin-bottom: 0.25rem !important;\n }\n .mb-xl-2 {\n margin-bottom: 0.5rem !important;\n }\n .mb-xl-3 {\n margin-bottom: 1rem !important;\n }\n .mb-xl-4 {\n margin-bottom: 1.5rem !important;\n }\n .mb-xl-5 {\n margin-bottom: 3rem !important;\n }\n .mb-xl-auto {\n margin-bottom: auto !important;\n }\n .ms-xl-0 {\n margin-left: 0 !important;\n }\n .ms-xl-1 {\n margin-left: 0.25rem !important;\n }\n .ms-xl-2 {\n margin-left: 0.5rem !important;\n }\n .ms-xl-3 {\n margin-left: 1rem !important;\n }\n .ms-xl-4 {\n margin-left: 1.5rem !important;\n }\n .ms-xl-5 {\n margin-left: 3rem !important;\n }\n .ms-xl-auto {\n margin-left: auto !important;\n }\n .p-xl-0 {\n padding: 0 !important;\n }\n .p-xl-1 {\n padding: 0.25rem !important;\n }\n .p-xl-2 {\n padding: 0.5rem !important;\n }\n .p-xl-3 {\n padding: 1rem !important;\n }\n .p-xl-4 {\n padding: 1.5rem !important;\n }\n .p-xl-5 {\n padding: 3rem !important;\n }\n .px-xl-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n .px-xl-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n .px-xl-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n .px-xl-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n .px-xl-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n .px-xl-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n .py-xl-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n .py-xl-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n .py-xl-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n .py-xl-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n .py-xl-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n .py-xl-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n .pt-xl-0 {\n padding-top: 0 !important;\n }\n .pt-xl-1 {\n padding-top: 0.25rem !important;\n }\n .pt-xl-2 {\n padding-top: 0.5rem !important;\n }\n .pt-xl-3 {\n padding-top: 1rem !important;\n }\n .pt-xl-4 {\n padding-top: 1.5rem !important;\n }\n .pt-xl-5 {\n padding-top: 3rem !important;\n }\n .pe-xl-0 {\n padding-right: 0 !important;\n }\n .pe-xl-1 {\n padding-right: 0.25rem !important;\n }\n .pe-xl-2 {\n padding-right: 0.5rem !important;\n }\n .pe-xl-3 {\n padding-right: 1rem !important;\n }\n .pe-xl-4 {\n padding-right: 1.5rem !important;\n }\n .pe-xl-5 {\n padding-right: 3rem !important;\n }\n .pb-xl-0 {\n padding-bottom: 0 !important;\n }\n .pb-xl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pb-xl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pb-xl-3 {\n padding-bottom: 1rem !important;\n }\n .pb-xl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pb-xl-5 {\n padding-bottom: 3rem !important;\n }\n .ps-xl-0 {\n padding-left: 0 !important;\n }\n .ps-xl-1 {\n padding-left: 0.25rem !important;\n }\n .ps-xl-2 {\n padding-left: 0.5rem !important;\n }\n .ps-xl-3 {\n padding-left: 1rem !important;\n }\n .ps-xl-4 {\n padding-left: 1.5rem !important;\n }\n .ps-xl-5 {\n padding-left: 3rem !important;\n }\n .text-xl-start {\n text-align: left !important;\n }\n .text-xl-end {\n text-align: right !important;\n }\n .text-xl-center {\n text-align: center !important;\n }\n}\n@media (min-width: 1400px) {\n .float-xxl-start {\n float: left !important;\n }\n .float-xxl-end {\n float: right !important;\n }\n .float-xxl-none {\n float: none !important;\n }\n .d-xxl-inline {\n display: inline !important;\n }\n .d-xxl-inline-block {\n display: inline-block !important;\n }\n .d-xxl-block {\n display: block !important;\n }\n .d-xxl-grid {\n display: grid !important;\n }\n .d-xxl-table {\n display: table !important;\n }\n .d-xxl-table-row {\n display: table-row !important;\n }\n .d-xxl-table-cell {\n display: table-cell !important;\n }\n .d-xxl-flex {\n display: flex !important;\n }\n .d-xxl-inline-flex {\n display: inline-flex !important;\n }\n .d-xxl-none {\n display: none !important;\n }\n .flex-xxl-fill {\n flex: 1 1 auto !important;\n }\n .flex-xxl-row {\n flex-direction: row !important;\n }\n .flex-xxl-column {\n flex-direction: column !important;\n }\n .flex-xxl-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-xxl-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-xxl-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-xxl-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-xxl-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-xxl-shrink-1 {\n flex-shrink: 1 !important;\n }\n .flex-xxl-wrap {\n flex-wrap: wrap !important;\n }\n .flex-xxl-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-xxl-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .gap-xxl-0 {\n gap: 0 !important;\n }\n .gap-xxl-1 {\n gap: 0.25rem !important;\n }\n .gap-xxl-2 {\n gap: 0.5rem !important;\n }\n .gap-xxl-3 {\n gap: 1rem !important;\n }\n .gap-xxl-4 {\n gap: 1.5rem !important;\n }\n .gap-xxl-5 {\n gap: 3rem !important;\n }\n .justify-content-xxl-start {\n justify-content: flex-start !important;\n }\n .justify-content-xxl-end {\n justify-content: flex-end !important;\n }\n .justify-content-xxl-center {\n justify-content: center !important;\n }\n .justify-content-xxl-between {\n justify-content: space-between !important;\n }\n .justify-content-xxl-around {\n justify-content: space-around !important;\n }\n .justify-content-xxl-evenly {\n justify-content: space-evenly !important;\n }\n .align-items-xxl-start {\n align-items: flex-start !important;\n }\n .align-items-xxl-end {\n align-items: flex-end !important;\n }\n .align-items-xxl-center {\n align-items: center !important;\n }\n .align-items-xxl-baseline {\n align-items: baseline !important;\n }\n .align-items-xxl-stretch {\n align-items: stretch !important;\n }\n .align-content-xxl-start {\n align-content: flex-start !important;\n }\n .align-content-xxl-end {\n align-content: flex-end !important;\n }\n .align-content-xxl-center {\n align-content: center !important;\n }\n .align-content-xxl-between {\n align-content: space-between !important;\n }\n .align-content-xxl-around {\n align-content: space-around !important;\n }\n .align-content-xxl-stretch {\n align-content: stretch !important;\n }\n .align-self-xxl-auto {\n align-self: auto !important;\n }\n .align-self-xxl-start {\n align-self: flex-start !important;\n }\n .align-self-xxl-end {\n align-self: flex-end !important;\n }\n .align-self-xxl-center {\n align-self: center !important;\n }\n .align-self-xxl-baseline {\n align-self: baseline !important;\n }\n .align-self-xxl-stretch {\n align-self: stretch !important;\n }\n .order-xxl-first {\n order: -1 !important;\n }\n .order-xxl-0 {\n order: 0 !important;\n }\n .order-xxl-1 {\n order: 1 !important;\n }\n .order-xxl-2 {\n order: 2 !important;\n }\n .order-xxl-3 {\n order: 3 !important;\n }\n .order-xxl-4 {\n order: 4 !important;\n }\n .order-xxl-5 {\n order: 5 !important;\n }\n .order-xxl-last {\n order: 6 !important;\n }\n .m-xxl-0 {\n margin: 0 !important;\n }\n .m-xxl-1 {\n margin: 0.25rem !important;\n }\n .m-xxl-2 {\n margin: 0.5rem !important;\n }\n .m-xxl-3 {\n margin: 1rem !important;\n }\n .m-xxl-4 {\n margin: 1.5rem !important;\n }\n .m-xxl-5 {\n margin: 3rem !important;\n }\n .m-xxl-auto {\n margin: auto !important;\n }\n .mx-xxl-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n .mx-xxl-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n .mx-xxl-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n .mx-xxl-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n .mx-xxl-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n .mx-xxl-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n .mx-xxl-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n .my-xxl-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n .my-xxl-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n .my-xxl-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n .my-xxl-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n .my-xxl-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n .my-xxl-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n .my-xxl-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n .mt-xxl-0 {\n margin-top: 0 !important;\n }\n .mt-xxl-1 {\n margin-top: 0.25rem !important;\n }\n .mt-xxl-2 {\n margin-top: 0.5rem !important;\n }\n .mt-xxl-3 {\n margin-top: 1rem !important;\n }\n .mt-xxl-4 {\n margin-top: 1.5rem !important;\n }\n .mt-xxl-5 {\n margin-top: 3rem !important;\n }\n .mt-xxl-auto {\n margin-top: auto !important;\n }\n .me-xxl-0 {\n margin-right: 0 !important;\n }\n .me-xxl-1 {\n margin-right: 0.25rem !important;\n }\n .me-xxl-2 {\n margin-right: 0.5rem !important;\n }\n .me-xxl-3 {\n margin-right: 1rem !important;\n }\n .me-xxl-4 {\n margin-right: 1.5rem !important;\n }\n .me-xxl-5 {\n margin-right: 3rem !important;\n }\n .me-xxl-auto {\n margin-right: auto !important;\n }\n .mb-xxl-0 {\n margin-bottom: 0 !important;\n }\n .mb-xxl-1 {\n margin-bottom: 0.25rem !important;\n }\n .mb-xxl-2 {\n margin-bottom: 0.5rem !important;\n }\n .mb-xxl-3 {\n margin-bottom: 1rem !important;\n }\n .mb-xxl-4 {\n margin-bottom: 1.5rem !important;\n }\n .mb-xxl-5 {\n margin-bottom: 3rem !important;\n }\n .mb-xxl-auto {\n margin-bottom: auto !important;\n }\n .ms-xxl-0 {\n margin-left: 0 !important;\n }\n .ms-xxl-1 {\n margin-left: 0.25rem !important;\n }\n .ms-xxl-2 {\n margin-left: 0.5rem !important;\n }\n .ms-xxl-3 {\n margin-left: 1rem !important;\n }\n .ms-xxl-4 {\n margin-left: 1.5rem !important;\n }\n .ms-xxl-5 {\n margin-left: 3rem !important;\n }\n .ms-xxl-auto {\n margin-left: auto !important;\n }\n .p-xxl-0 {\n padding: 0 !important;\n }\n .p-xxl-1 {\n padding: 0.25rem !important;\n }\n .p-xxl-2 {\n padding: 0.5rem !important;\n }\n .p-xxl-3 {\n padding: 1rem !important;\n }\n .p-xxl-4 {\n padding: 1.5rem !important;\n }\n .p-xxl-5 {\n padding: 3rem !important;\n }\n .px-xxl-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n .px-xxl-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n .px-xxl-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n .px-xxl-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n .px-xxl-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n .px-xxl-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n .py-xxl-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n .py-xxl-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n .py-xxl-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n .py-xxl-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n .py-xxl-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n .py-xxl-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n .pt-xxl-0 {\n padding-top: 0 !important;\n }\n .pt-xxl-1 {\n padding-top: 0.25rem !important;\n }\n .pt-xxl-2 {\n padding-top: 0.5rem !important;\n }\n .pt-xxl-3 {\n padding-top: 1rem !important;\n }\n .pt-xxl-4 {\n padding-top: 1.5rem !important;\n }\n .pt-xxl-5 {\n padding-top: 3rem !important;\n }\n .pe-xxl-0 {\n padding-right: 0 !important;\n }\n .pe-xxl-1 {\n padding-right: 0.25rem !important;\n }\n .pe-xxl-2 {\n padding-right: 0.5rem !important;\n }\n .pe-xxl-3 {\n padding-right: 1rem !important;\n }\n .pe-xxl-4 {\n padding-right: 1.5rem !important;\n }\n .pe-xxl-5 {\n padding-right: 3rem !important;\n }\n .pb-xxl-0 {\n padding-bottom: 0 !important;\n }\n .pb-xxl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pb-xxl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pb-xxl-3 {\n padding-bottom: 1rem !important;\n }\n .pb-xxl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pb-xxl-5 {\n padding-bottom: 3rem !important;\n }\n .ps-xxl-0 {\n padding-left: 0 !important;\n }\n .ps-xxl-1 {\n padding-left: 0.25rem !important;\n }\n .ps-xxl-2 {\n padding-left: 0.5rem !important;\n }\n .ps-xxl-3 {\n padding-left: 1rem !important;\n }\n .ps-xxl-4 {\n padding-left: 1.5rem !important;\n }\n .ps-xxl-5 {\n padding-left: 3rem !important;\n }\n .text-xxl-start {\n text-align: left !important;\n }\n .text-xxl-end {\n text-align: right !important;\n }\n .text-xxl-center {\n text-align: center !important;\n }\n}\n@media (min-width: 1200px) {\n .fs-1 {\n font-size: 2.2rem !important;\n }\n .fs-2 {\n font-size: 1.76rem !important;\n }\n .fs-3 {\n font-size: 1.54rem !important;\n }\n .fs-4 {\n font-size: 1.32rem !important;\n }\n}\n@media print {\n .d-print-inline {\n display: inline !important;\n }\n .d-print-inline-block {\n display: inline-block !important;\n }\n .d-print-block {\n display: block !important;\n }\n .d-print-grid {\n display: grid !important;\n }\n .d-print-table {\n display: table !important;\n }\n .d-print-table-row {\n display: table-row !important;\n }\n .d-print-table-cell {\n display: table-cell !important;\n }\n .d-print-flex {\n display: flex !important;\n }\n .d-print-inline-flex {\n display: inline-flex !important;\n }\n .d-print-none {\n display: none !important;\n }\n}\na,\nbutton,\n.btn {\n outline: none !important;\n}\n\n.app-container {\n display: flex;\n min-height: 100vh;\n flex-direction: column;\n margin: 0;\n}\n\n.table th,\n.table td {\n vertical-align: middle;\n}\n\n.app-header {\n height: 60px;\n display: flex;\n align-items: center;\n align-content: center;\n position: relative;\n z-index: 10;\n transition: all 0.2s;\n}\n.app-header.header-shadow {\n box-shadow: 0 0.46875rem 2.1875rem rgba(4, 9, 20, 0.03), 0 0.9375rem 1.40625rem rgba(4, 9, 20, 0.03), 0 0.25rem 0.53125rem rgba(4, 9, 20, 0.05), 0 0.125rem 0.1875rem rgba(4, 9, 20, 0.03);\n}\n.app-header .app-header__content {\n display: flex;\n align-items: center;\n align-content: center;\n flex: 1;\n padding: 0 1.5rem;\n height: 60px;\n}\n.app-header .app-header__content .app-header-left {\n display: flex;\n align-items: center;\n}\n.app-header .app-header__content .header-menu .nav-link {\n color: #6c757d;\n}\n.app-header .app-header__content .header-menu .nav-link i {\n color: #adb5bd;\n}\n.app-header .app-header__content .header-menu .nav-link:hover {\n color: #212529;\n}\n.app-header .app-header__content .app-header-right {\n align-items: center;\n display: flex;\n margin-left: auto;\n}\n.app-header .header-user-info > .widget-heading, .app-header .header-user-info > .widget-subheading {\n white-space: nowrap;\n}\n.app-header .header-user-info > .widget-subheading {\n font-size: 0.8rem;\n}\n\n.app-header__logo {\n padding: 0 1.5rem;\n height: 60px;\n width: 280px;\n display: flex;\n align-items: center;\n transition: width 0.2s;\n}\n.app-header__logo .logo-src {\n height: 41.4px;\n width: 97px;\n background: url(" + ___CSS_LOADER_URL_REPLACEMENT_16___ + ");\n}\n\n.app-header__menu,\n.app-header__mobile-menu {\n display: none;\n padding: 0 1.5rem;\n height: 60px;\n align-items: center;\n}\n\n.fixed-header .app-header {\n position: fixed;\n width: 100%;\n top: 0;\n}\n.fixed-header .app-header .app-header__logo {\n visibility: visible;\n}\n.fixed-header .app-main {\n padding-top: 60px;\n}\n.fixed-header:not(.fixed-sidebar):not(.closed-sidebar) .app-sidebar .app-header__logo {\n visibility: hidden;\n}\n\n.app-header.header-text-light .app-header-left > .nav > li > .nav-link {\n color: rgba(255, 255, 255, 0.7);\n}\n.app-header.header-text-light .app-header-left > .nav > li > .nav-link .nav-link-icon {\n color: rgba(255, 255, 255, 0.8);\n}\n.app-header.header-text-light .app-header-left > .nav > li > .nav-link:hover {\n color: rgb(255, 255, 255);\n}\n.app-header.header-text-light .app-header-right .icon-wrapper-alt .fa,\n.app-header.header-text-light .app-header-right .icon-wrapper-alt .icon {\n color: rgba(255, 255, 255, 0.7) !important;\n transition: all 0.2s;\n}\n.app-header.header-text-light .app-header-right .icon-wrapper-alt .icon-wrapper-bg {\n background: rgba(255, 255, 255, 0.1) !important;\n transition: all 0.2s;\n opacity: 1;\n}\n.app-header.header-text-light .app-header-right .icon-wrapper-alt:hover .fa,\n.app-header.header-text-light .app-header-right .icon-wrapper-alt:hover .icon {\n color: rgba(255, 255, 255, 0.9) !important;\n}\n.app-header.header-text-light .app-header-right .icon-wrapper-alt:hover .icon-wrapper-bg {\n background: rgba(255, 255, 255, 0.15) !important;\n}\n.app-header.header-text-light .app-header-right .icon-wrapper-alt .badge-dot {\n border-color: transparent;\n}\n.app-header.header-text-light .app-header-right > .header-btn-lg .widget-content-left .btn-group > .btn,\n.app-header.header-text-light .app-header-right > .header-btn-lg .widget-heading,\n.app-header.header-text-light .app-header-right > .header-btn-lg .widget-subheading {\n color: rgba(255, 255, 255, 0.8);\n}\n.app-header.header-text-light .app-header-right > .header-btn-lg .header-user-info > .btn-shadow {\n box-shadow: 0 0.125rem 0.625rem rgba(0, 0, 0, 0.1), 0 0.0625rem 0.125rem rgba(0, 0, 0, 0.2);\n}\n.app-header.header-text-light .search-wrapper .input-holder .search-icon {\n background: rgba(0, 0, 0, 0.1);\n}\n.app-header.header-text-light .search-wrapper .input-holder .search-input::placeholder, .app-header.header-text-light .search-wrapper .input-holder .search-input::-webkit-input-placeholder, .app-header.header-text-light .search-wrapper .input-holder .search-input:-ms-input-placeholder, .app-header.header-text-light .search-wrapper .input-holder .search-input:-moz-placeholder, .app-header.header-text-light .search-wrapper .input-holder .search-input::-moz-placeholder {\n color: rgba(255, 255, 255, 0.5) !important;\n}\n.app-header.header-text-light .search-wrapper.active .input-holder {\n background: rgba(255, 255, 255, 0.1);\n}\n.app-header.header-text-light .search-wrapper.active .input-holder .search-input {\n color: rgba(255, 255, 255, 0.8);\n}\n.app-header.header-text-light .search-wrapper.active .input-holder .search-icon {\n background: rgba(255, 255, 255, 0.1);\n}\n.app-header.header-text-light .header-btn-lg::before {\n background: rgba(255, 255, 255, 0.2);\n}\n.app-header.header-text-light .header-btn-lg .hamburger-inner,\n.app-header.header-text-light .header-btn-lg .hamburger.is-active .hamburger-inner,\n.app-header.header-text-light .header-btn-lg .hamburger-inner::before,\n.app-header.header-text-light .header-btn-lg .hamburger-inner::after,\n.app-header.header-text-light .header__pane .hamburger-inner,\n.app-header.header-text-light .header__pane .hamburger.is-active .hamburger-inner,\n.app-header.header-text-light .header__pane .hamburger-inner::before,\n.app-header.header-text-light .header__pane .hamburger-inner::after {\n background-color: rgba(255, 255, 255, 0.8) !important;\n}\n.app-header.header-text-light .search-wrapper .input-holder .search-icon span::after {\n border-color: rgba(255, 255, 255, 0.8);\n}\n.app-header.header-text-light .search-wrapper .btn-close::before,\n.app-header.header-text-light .search-wrapper .btn-close::after,\n.app-header.header-text-light .search-wrapper .input-holder .search-icon span::before {\n background: rgba(255, 255, 255, 0.8);\n}\n.app-header.header-text-light .app-header__logo .logo-src {\n background: url(" + ___CSS_LOADER_URL_REPLACEMENT_17___ + ");\n}\n.app-header.header-text-light .app-header__mobile-menu .hamburger-inner,\n.app-header.header-text-light .app-header__mobile-menu .hamburger-inner::before,\n.app-header.header-text-light .app-header__mobile-menu .hamburger-inner::after {\n background: rgba(255, 255, 255, 0.9);\n}\n\n.app-header.header-text-dark .app-header-left > .nav > li > .nav-link {\n color: rgba(0, 0, 0, 0.7);\n}\n.app-header.header-text-dark .app-header-left > .nav > li > .nav-link .nav-link-icon {\n color: rgba(0, 0, 0, 0.8);\n}\n.app-header.header-text-dark .app-header-left > .nav > li > .nav-link:hover {\n color: rgb(0, 0, 0);\n}\n.app-header.header-text-dark .app-header-right .icon-wrapper-alt .fa,\n.app-header.header-text-dark .app-header-right .icon-wrapper-alt .icon {\n color: rgba(0, 0, 0, 0.7) !important;\n transition: all 0.2s;\n}\n.app-header.header-text-dark .app-header-right .icon-wrapper-alt .icon-wrapper-bg {\n background: rgba(0, 0, 0, 0.1) !important;\n transition: all 0.2s;\n opacity: 1;\n}\n.app-header.header-text-dark .app-header-right .icon-wrapper-alt:hover .fa,\n.app-header.header-text-dark .app-header-right .icon-wrapper-alt:hover .icon {\n color: rgba(0, 0, 0, 0.95) !important;\n}\n.app-header.header-text-dark .app-header-right .icon-wrapper-alt:hover .icon-wrapper-bg {\n background: rgba(0, 0, 0, 0.15) !important;\n}\n.app-header.header-text-dark .app-header-right .icon-wrapper-alt .badge-dot {\n border-color: transparent;\n}\n.app-header.header-text-dark .app-header-right > .header-btn-lg .widget-content-left .btn-group > .btn,\n.app-header.header-text-dark .app-header-right > .header-btn-lg .widget-heading,\n.app-header.header-text-dark .app-header-right > .header-btn-lg .widget-subheading {\n color: rgba(0, 0, 0, 0.8);\n}\n.app-header.header-text-dark .app-header-right > .header-btn-lg .header-user-info > .btn-shadow {\n box-shadow: 0 0.125rem 0.625rem rgba(0, 0, 0, 0.1), 0 0.0625rem 0.125rem rgba(0, 0, 0, 0.2);\n}\n.app-header.header-text-dark .search-wrapper .input-holder .search-icon {\n background: rgba(0, 0, 0, 0.1);\n}\n.app-header.header-text-dark .search-wrapper.active .input-holder {\n background: rgba(0, 0, 0, 0.1);\n}\n.app-header.header-text-dark .search-wrapper.active .input-holder .search-input {\n color: rgba(0, 0, 0, 0.8);\n}\n.app-header.header-text-dark .search-wrapper.active .input-holder .search-icon {\n background: rgba(0, 0, 0, 0.1);\n}\n.app-header.header-text-dark .header-btn-lg::before {\n background: rgba(0, 0, 0, 0.2);\n}\n.app-header.header-text-dark .header-btn-lg .hamburger-inner,\n.app-header.header-text-dark .header-btn-lg .hamburger.is-active .hamburger-inner,\n.app-header.header-text-dark .header-btn-lg .hamburger-inner::before,\n.app-header.header-text-dark .header-btn-lg .hamburger-inner::after,\n.app-header.header-text-dark .header__pane .hamburger-inner,\n.app-header.header-text-dark .header__pane .hamburger.is-active .hamburger-inner,\n.app-header.header-text-dark .header__pane .hamburger-inner::before,\n.app-header.header-text-dark .header__pane .hamburger-inner::after {\n background-color: rgba(0, 0, 0, 0.8) !important;\n}\n.app-header.header-text-dark .search-wrapper .input-holder .search-icon span::after {\n border-color: rgba(0, 0, 0, 0.8);\n}\n.app-header.header-text-dark .search-wrapper .btn-close::before,\n.app-header.header-text-dark .search-wrapper .btn-close::after,\n.app-header.header-text-dark .search-wrapper .input-holder .search-icon span::before {\n background: rgba(0, 0, 0, 0.8);\n}\n.app-header.header-text-dark .app-header__logo .logo-src {\n background: url(" + ___CSS_LOADER_URL_REPLACEMENT_16___ + ");\n}\n\n.app-sidebar {\n width: 280px;\n display: flex;\n z-index: 11;\n overflow: hidden;\n min-width: 280px;\n position: relative;\n flex: 0 0 280px;\n margin-top: -60px;\n padding-top: 60px;\n transition: all 0.2s;\n}\n.app-sidebar .app-sidebar__inner {\n padding: 2px 1.5rem 1.5rem;\n}\n.app-sidebar .scrollbar-sidebar {\n z-index: 15;\n width: 100%;\n}\n.app-sidebar .app-sidebar-bg {\n position: absolute;\n left: 0;\n top: 0;\n height: 100%;\n width: 100%;\n opacity: 0.05;\n background-size: cover;\n z-index: 10;\n}\n.app-sidebar .app-header__logo {\n position: absolute;\n left: 0;\n top: 0;\n display: none;\n z-index: 11;\n}\n.app-sidebar.sidebar-shadow {\n box-shadow: 7px 0 60px rgba(0, 0, 0, 0.05);\n}\n\n.app-sidebar__heading {\n text-transform: uppercase;\n font-size: 0.8rem;\n margin: 0.75rem 0;\n font-weight: bold;\n color: #3f6ad8;\n white-space: nowrap;\n position: relative;\n}\n\n.sidebar-mobile-overlay {\n display: none;\n position: fixed;\n width: 100%;\n height: 100%;\n background: #333;\n opacity: 0.6;\n left: 0;\n top: 0;\n z-index: 12;\n}\n\n.vertical-nav-menu {\n margin: 0;\n padding: 0;\n position: relative;\n list-style: none;\n}\n.vertical-nav-menu::after {\n content: \" \";\n pointer-events: none;\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n top: 0;\n}\n.vertical-nav-menu .mm-collapse:not(.mm-show) {\n display: none;\n}\n.vertical-nav-menu .mm-collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n transition-timing-function: ease;\n transition-duration: 0.25s;\n transition-property: height, visibility;\n}\n.vertical-nav-menu ul {\n margin: 0;\n padding: 0;\n position: relative;\n list-style: none;\n}\n.vertical-nav-menu:before {\n opacity: 0;\n transition: opacity 300ms;\n}\n.vertical-nav-menu li a {\n display: block;\n line-height: 2.4rem;\n height: 2.4rem;\n padding: 0 1.5rem 0 45px;\n position: relative;\n border-radius: 0.25rem;\n color: #343a40;\n white-space: nowrap;\n transition: all 0.2s;\n margin: 0.1rem 0;\n}\n.vertical-nav-menu li a:hover {\n background: #e0f3ff;\n text-decoration: none;\n}\n.vertical-nav-menu li a:hover i.metismenu-icon {\n opacity: 0.6;\n}\n.vertical-nav-menu li a:hover i.metismenu-state-icon {\n opacity: 1;\n}\n.vertical-nav-menu li.mm-active > a {\n font-weight: bold;\n}\n.vertical-nav-menu li.mm-active > a i.metismenu-state-icon {\n transform: rotate(-180deg);\n}\n.vertical-nav-menu li a.mm-active {\n color: #343a40;\n background: #e0f3ff;\n font-weight: bold;\n}\n.vertical-nav-menu i.metismenu-state-icon,\n.vertical-nav-menu i.metismenu-icon {\n text-align: center;\n width: 34px;\n height: 34px;\n line-height: 34px;\n position: absolute;\n left: 5px;\n top: 50%;\n margin-top: -17px;\n font-size: 1.5rem;\n opacity: 0.3;\n transition: color 300ms;\n}\n.vertical-nav-menu i.metismenu-state-icon {\n transition: transform 300ms;\n left: auto;\n right: 0;\n}\n.vertical-nav-menu ul {\n transition: padding 300ms;\n padding: 0.5em 0 0 2rem;\n}\n.vertical-nav-menu ul:before {\n content: \"\";\n height: 100%;\n opacity: 1;\n width: 3px;\n background: #e0f3ff;\n position: absolute;\n left: 20px;\n top: 0;\n border-radius: 15px;\n}\n.vertical-nav-menu ul > li > a {\n color: #6c757d;\n height: 2rem;\n line-height: 2rem;\n padding: 0 1.5rem 0;\n}\n.vertical-nav-menu ul > li > a:hover {\n color: #3f6ad8;\n}\n.vertical-nav-menu ul > li > a .metismenu-icon {\n display: none;\n}\n.vertical-nav-menu ul > li > a.mm-active {\n color: #3f6ad8;\n background: #e0f3ff;\n font-weight: bold;\n}\n\n.app-sidebar.sidebar-text-light {\n border-right: 0 !important;\n}\n.app-sidebar.sidebar-text-light .app-sidebar__heading {\n color: rgba(255, 255, 255, 0.6);\n}\n.app-sidebar.sidebar-text-light .app-sidebar__heading::before {\n background: rgba(255, 255, 255, 0.5) !important;\n}\n.app-sidebar.sidebar-text-light .vertical-nav-menu li a {\n color: rgba(255, 255, 255, 0.7);\n}\n.app-sidebar.sidebar-text-light .vertical-nav-menu li a i.metismenu-icon {\n opacity: 0.5;\n}\n.app-sidebar.sidebar-text-light .vertical-nav-menu li a i.metismenu-state-icon {\n opacity: 0.5;\n}\n.app-sidebar.sidebar-text-light .vertical-nav-menu li a:hover {\n background: rgba(255, 255, 255, 0.15);\n color: rgb(255, 255, 255);\n}\n.app-sidebar.sidebar-text-light .vertical-nav-menu li a:hover i.metismenu-icon {\n opacity: 0.8;\n}\n.app-sidebar.sidebar-text-light .vertical-nav-menu li a:hover i.metismenu-state-icon {\n opacity: 1;\n}\n.app-sidebar.sidebar-text-light .vertical-nav-menu li a.mm-active {\n color: rgba(255, 255, 255, 0.7);\n background: rgba(255, 255, 255, 0.15);\n}\n.app-sidebar.sidebar-text-light .vertical-nav-menu ul:before {\n background: rgba(255, 255, 255, 0.1);\n}\n.app-sidebar.sidebar-text-light .vertical-nav-menu ul > li > a {\n color: rgba(255, 255, 255, 0.6);\n}\n.app-sidebar.sidebar-text-light .vertical-nav-menu ul > li > a:hover {\n color: rgb(255, 255, 255);\n}\n.app-sidebar.sidebar-text-light .vertical-nav-menu ul > li > a.mm-active {\n color: rgb(255, 255, 255);\n background: rgba(255, 255, 255, 0.15);\n}\n.app-sidebar.sidebar-text-light .ps__thumb-y {\n background: rgba(255, 255, 255, 0.3);\n}\n.app-sidebar.sidebar-text-light .ps__rail-y:hover .ps__thumb-y {\n background: rgba(255, 255, 255, 0.2);\n}\n.app-sidebar.sidebar-text-light .app-header__logo .logo-src {\n background: url(" + ___CSS_LOADER_URL_REPLACEMENT_17___ + ");\n}\n.app-sidebar.sidebar-text-light .app-header__logo .hamburger-inner,\n.app-sidebar.sidebar-text-light .app-header__logo .hamburger-inner::before,\n.app-sidebar.sidebar-text-light .app-header__logo .hamburger-inner::after {\n background-color: rgba(255, 255, 255, 0.8);\n}\n\n.app-sidebar.sidebar-text-dark {\n border-right: 0 !important;\n}\n.app-sidebar.sidebar-text-dark .app-sidebar__heading {\n color: rgba(0, 0, 0, 0.6);\n}\n.app-sidebar.sidebar-text-dark .app-sidebar__heading::before {\n background: rgba(0, 0, 0, 0.5) !important;\n}\n.app-sidebar.sidebar-text-dark .vertical-nav-menu li a {\n color: rgba(0, 0, 0, 0.6);\n}\n.app-sidebar.sidebar-text-dark .vertical-nav-menu li a i.metismenu-icon {\n opacity: 0.5;\n}\n.app-sidebar.sidebar-text-dark .vertical-nav-menu li a i.metismenu-state-icon {\n opacity: 0.5;\n}\n.app-sidebar.sidebar-text-dark .vertical-nav-menu li a:hover {\n background: rgba(0, 0, 0, 0.15);\n color: rgba(0, 0, 0, 0.7);\n}\n.app-sidebar.sidebar-text-dark .vertical-nav-menu li a:hover i.metismenu-icon {\n opacity: 0.7;\n}\n.app-sidebar.sidebar-text-dark .vertical-nav-menu li a:hover i.metismenu-state-icon {\n opacity: 1;\n}\n.app-sidebar.sidebar-text-dark .vertical-nav-menu li a.mm-active {\n color: rgba(0, 0, 0, 0.7);\n background: rgba(0, 0, 0, 0.15);\n}\n.app-sidebar.sidebar-text-dark .vertical-nav-menu ul:before {\n background: rgba(0, 0, 0, 0.1);\n}\n.app-sidebar.sidebar-text-dark .vertical-nav-menu ul > li > a {\n color: rgba(0, 0, 0, 0.4);\n}\n.app-sidebar.sidebar-text-dark .vertical-nav-menu ul > li > a:hover {\n color: rgba(0, 0, 0, 0.7);\n}\n.app-sidebar.sidebar-text-dark .vertical-nav-menu ul > li > a.mm-active {\n color: rgba(0, 0, 0, 0.7);\n background: rgba(0, 0, 0, 0.15);\n}\n.app-sidebar.sidebar-text-dark .ps__thumb-y {\n background: rgba(0, 0, 0, 0.3);\n}\n.app-sidebar.sidebar-text-dark .ps__rail-y:hover .ps__thumb-y {\n background: rgba(0, 0, 0, 0.2);\n}\n.app-sidebar.sidebar-text-dark .app-header__logo .hamburger-inner,\n.app-sidebar.sidebar-text-dark .app-header__logo .hamburger-inner::before,\n.app-sidebar.sidebar-text-dark .app-header__logo .hamburger-inner::after {\n background-color: rgba(0, 0, 0, 0.8);\n}\n\n.fixed-sidebar .app-sidebar {\n position: fixed;\n height: 100vh;\n}\n.fixed-sidebar .app-main .app-main__outer {\n z-index: 9;\n padding-left: 280px;\n}\n.fixed-sidebar.fixed-header .app-sidebar .app-header__logo {\n display: none;\n}\n.fixed-sidebar:not(.fixed-header) .app-sidebar .app-header__logo {\n display: flex;\n}\n.fixed-sidebar:not(.fixed-header) .app-header {\n margin-left: 280px;\n}\n.fixed-sidebar:not(.fixed-header) .app-header .app-header__logo {\n display: none;\n}\n.fixed-sidebar.closed-sidebar:not(.fixed-header) .app-header {\n margin-left: 80px;\n}\n.fixed-sidebar.closed-sidebar:not(.fixed-header) .app-sidebar .app-header__logo {\n width: 80px;\n padding: 0;\n}\n.fixed-sidebar.closed-sidebar:not(.fixed-header) .app-sidebar .app-header__logo .logo-src {\n display: none;\n}\n.fixed-sidebar.closed-sidebar:not(.fixed-header) .app-sidebar .app-header__logo .header__pane {\n margin-right: auto;\n}\n\n.closed-sidebar .app-sidebar {\n transition: all 0.3s ease;\n width: 80px;\n min-width: 80px;\n flex: 0 0 80px;\n z-index: 13;\n}\n.closed-sidebar .app-sidebar .app-sidebar__inner .app-sidebar__heading {\n text-indent: -999em;\n}\n.closed-sidebar .app-sidebar .app-sidebar__inner .app-sidebar__heading::before {\n content: \"\";\n position: absolute;\n top: 50%;\n left: 0;\n width: 100%;\n height: 1px;\n background: #e0f3ff;\n text-indent: 1px;\n}\n.closed-sidebar .app-sidebar .app-sidebar__inner ul li a {\n text-indent: -99rem;\n padding: 0;\n}\n.closed-sidebar .app-sidebar .app-sidebar__inner .metismenu-icon {\n text-indent: 0;\n left: 50%;\n margin-left: -17px;\n}\n.closed-sidebar .app-sidebar .app-sidebar__inner .metismenu-state-icon {\n visibility: hidden;\n}\n.closed-sidebar .app-sidebar .app-sidebar__inner ul::before {\n display: none;\n}\n.closed-sidebar .app-sidebar .app-sidebar__inner ul.mm-show {\n padding: 0;\n}\n.closed-sidebar .app-sidebar .app-sidebar__inner ul.mm-show > li > a {\n height: 0;\n}\n.closed-sidebar .app-sidebar:hover {\n flex: 0 0 280px !important;\n width: 280px !important;\n}\n.closed-sidebar .app-sidebar:hover .app-sidebar__inner .app-sidebar__heading {\n text-indent: initial;\n}\n.closed-sidebar .app-sidebar:hover .app-sidebar__inner .app-sidebar__heading::before {\n display: none;\n}\n.closed-sidebar .app-sidebar:hover .app-sidebar__inner ul::before {\n display: block;\n}\n.closed-sidebar .app-sidebar:hover .app-sidebar__inner ul li a {\n text-indent: initial;\n padding: 0 1.5rem 0 45px;\n}\n.closed-sidebar .app-sidebar:hover .app-sidebar__inner .metismenu-icon {\n text-indent: initial;\n left: 5px;\n margin-left: 0;\n}\n.closed-sidebar .app-sidebar:hover .app-sidebar__inner .metismenu-state-icon {\n visibility: visible;\n}\n.closed-sidebar .app-sidebar:hover .app-sidebar__inner ul.mm-show {\n padding: 0.5em 0 0 2rem;\n}\n.closed-sidebar .app-sidebar:hover .app-sidebar__inner ul.mm-show > li > a {\n height: 2.3em;\n}\n.closed-sidebar .app-sidebar:hover .app-sidebar__inner ul ul li a {\n padding-left: 1em;\n}\n.closed-sidebar:not(.sidebar-mobile-open) .app-sidebar .scrollbar-sidebar {\n position: static;\n height: auto;\n overflow: initial !important;\n}\n.closed-sidebar:not(.sidebar-mobile-open) .app-sidebar:hover .scrollbar-sidebar {\n position: absolute;\n height: 100%;\n overflow: hidden !important;\n}\n.closed-sidebar:not(.closed-sidebar-mobile) .app-header .app-header__logo {\n width: 80px;\n}\n.closed-sidebar:not(.closed-sidebar-mobile) .app-header .app-header__logo .logo-src {\n display: none;\n}\n.closed-sidebar:not(.closed-sidebar-mobile) .app-header .app-header__logo .header__pane {\n margin-right: auto;\n}\n.closed-sidebar.fixed-sidebar .app-main__outer {\n padding-left: 80px;\n}\n.closed-sidebar.fixed-header:not(.fixed-sidebar) .app-sidebar .app-header__logo {\n visibility: hidden;\n}\n.closed-sidebar.closed-sidebar-mobile .app-sidebar .app-header__logo,\n.closed-sidebar.closed-sidebar-mobile .app-header .app-header__logo {\n width: auto;\n display: flex;\n}\n.closed-sidebar.closed-sidebar-mobile .app-sidebar .app-header__logo .header__pane,\n.closed-sidebar.closed-sidebar-mobile .app-header .app-header__logo .header__pane {\n display: none;\n}\n.closed-sidebar.closed-sidebar-mobile .app-sidebar .app-header__logo {\n display: flex;\n width: 80px;\n padding: 0 1.5rem !important;\n}\n.closed-sidebar.closed-sidebar-mobile .app-sidebar .app-header__logo .logo-src {\n display: block !important;\n margin: 0 auto;\n width: 21px;\n}\n.closed-sidebar.closed-sidebar-mobile .app-sidebar .app-header__logo .header__pane {\n display: none;\n}\n.closed-sidebar.closed-sidebar-mobile .app-sidebar:hover .app-header__logo {\n width: 280px;\n}\n.closed-sidebar.closed-sidebar-mobile .app-sidebar:hover .app-header__logo .logo-src {\n width: 97px;\n margin: 0;\n}\n.closed-sidebar.closed-sidebar-mobile .app-header {\n margin-left: 0 !important;\n}\n.closed-sidebar.fixed-footer .app-footer__inner {\n margin-left: 0 !important;\n}\n\n.app-main {\n flex: 1;\n display: flex;\n z-index: 8;\n position: relative;\n}\n.app-main .app-main__outer {\n flex: 1;\n flex-direction: column;\n display: flex;\n z-index: 12;\n}\n.app-main .app-main__inner {\n padding: 1.5rem 1.5rem 0;\n flex: 1;\n}\n\n.app-theme-white.app-container {\n background: #f1f4f6;\n}\n.app-theme-white .app-sidebar {\n background: #ffffff;\n}\n.app-theme-white .app-page-title {\n background: rgba(255, 255, 255, 0.45);\n}\n.app-theme-white .app-footer .app-footer__inner,\n.app-theme-white .app-header {\n background: #fafbfc;\n}\n.app-theme-white.fixed-header .app-header__logo {\n background: rgba(250, 251, 252, 0.1);\n}\n\n.app-footer {\n height: 60px;\n}\n.app-footer .app-footer__inner {\n padding: 0 1.5rem 0 0.75rem;\n height: 60px;\n display: flex;\n align-content: center;\n align-items: center;\n}\n.app-footer .app-footer__inner .app-footer-left {\n display: flex;\n align-items: center;\n}\n.app-footer .app-footer__inner .app-footer-right {\n margin-left: auto;\n display: flex;\n}\n\n.fixed-footer .app-footer {\n position: fixed;\n width: 100%;\n bottom: 0;\n left: 0;\n z-index: 7;\n}\n.fixed-footer .app-footer .app-footer__inner {\n margin-left: 280px;\n box-shadow: 0.3rem -0.46875rem 2.1875rem rgba(4, 9, 20, 0.02), 0.3rem -0.9375rem 1.40625rem rgba(4, 9, 20, 0.02), 0.3rem -0.25rem 0.53125rem rgba(4, 9, 20, 0.04), 0.3rem -0.125rem 0.1875rem rgba(4, 9, 20, 0.02);\n}\n.fixed-footer .app-main .app-main__outer {\n padding-bottom: 60px;\n}\n\n.app-page-title {\n padding: 1.5rem;\n margin: -1.5rem -1.5rem 1.5rem;\n position: relative;\n}\n.app-page-title + .body-tabs-layout {\n margin-top: -1.5rem !important;\n}\n.app-page-title .page-title-wrapper {\n position: relative;\n display: flex;\n align-items: center;\n}\n.app-page-title .page-title-heading,\n.app-page-title .page-title-subheading {\n margin: 0;\n padding: 0;\n}\n.app-page-title .page-title-heading {\n font-size: 1.1rem;\n font-weight: 400;\n display: flex;\n align-content: center;\n align-items: center;\n}\n.app-page-title .page-title-subheading {\n padding: 3px 0 0;\n font-size: 0.88rem;\n opacity: 0.6;\n}\n.app-page-title .page-title-subheading .breadcrumb {\n padding: 0;\n margin: 3px 0 0;\n background: transparent;\n}\n.app-page-title .page-title-actions {\n margin-left: auto;\n}\n.app-page-title .page-title-actions .breadcrumb {\n margin: 0;\n padding: 0;\n background: transparent;\n}\n.app-page-title .page-title-icon {\n font-size: 2rem;\n display: flex;\n align-items: center;\n align-content: center;\n text-align: center;\n padding: 0.8333333333rem;\n margin: 0 1.5rem 0 0;\n background: #fff;\n box-shadow: 0 0.46875rem 2.1875rem rgba(4, 9, 20, 0.03), 0 0.9375rem 1.40625rem rgba(4, 9, 20, 0.03), 0 0.25rem 0.53125rem rgba(4, 9, 20, 0.05), 0 0.125rem 0.1875rem rgba(4, 9, 20, 0.03);\n border-radius: 0.25rem;\n width: 60px;\n height: 60px;\n}\n.app-page-title .page-title-icon i {\n margin: auto;\n}\n.app-page-title .page-title-icon.rounded-circle {\n margin: 0 1rem 0 0;\n}\n.app-page-title + .RRT__container {\n margin-top: -1.1538461538rem;\n}\n.app-page-title.app-page-title-simple {\n margin: 0;\n background: none !important;\n padding-left: 0;\n padding-right: 0;\n padding-top: 0;\n}\n\n.page-title-icon-rounded .page-title-icon {\n border-radius: 50px;\n}\n\n.search-wrapper {\n position: relative;\n margin-right: 0.6666666667rem;\n}\n.search-wrapper .input-holder {\n height: 42px;\n width: 42px;\n overflow: hidden;\n position: relative;\n transition: all 0.3s ease-in-out;\n}\n.search-wrapper .input-holder .search-input {\n width: 100%;\n padding: 0 70px 0 20px;\n opacity: 0;\n position: absolute;\n top: 0;\n left: 0;\n background: transparent;\n box-sizing: border-box;\n border: none;\n outline: none;\n transform: translate(0, 60px);\n transition: all 0.3s cubic-bezier(0, 0.105, 0.035, 1.57);\n transition-delay: 0.3s;\n font-size: 0.88rem;\n}\n.search-wrapper .input-holder .search-icon {\n width: 42px;\n height: 42px;\n border: none;\n padding: 0;\n outline: none;\n position: relative;\n z-index: 2;\n float: right;\n cursor: pointer;\n transition: all 0.3s ease-in-out;\n background: rgba(0, 0, 0, 0.06);\n border-radius: 30px;\n}\n.search-wrapper .input-holder .search-icon span {\n width: 22px;\n height: 22px;\n display: inline-block;\n vertical-align: middle;\n position: relative;\n transform: rotate(45deg);\n transition: all 0.4s cubic-bezier(0.65, -0.6, 0.24, 1.65);\n}\n.search-wrapper .input-holder .search-icon span::before, .search-wrapper .input-holder .search-icon span::after {\n position: absolute;\n content: \"\";\n}\n.search-wrapper .input-holder .search-icon span::before {\n width: 4px;\n height: 11px;\n left: 9px;\n top: 13px;\n border-radius: 2px;\n background: #3f6ad8;\n}\n.search-wrapper .input-holder .search-icon span::after {\n width: 14px;\n height: 14px;\n left: 4px;\n top: 0;\n border-radius: 16px;\n border: 2px solid #3f6ad8;\n}\n.search-wrapper .btn-close {\n position: absolute;\n z-index: 1;\n top: 50%;\n left: 0;\n width: 20px;\n height: 20px;\n margin-top: -10px;\n cursor: pointer;\n opacity: 0 !important;\n transition: all 0.2s cubic-bezier(0.285, -0.45, 0.935, 0.11);\n transition-delay: 0.1s;\n}\n.search-wrapper .btn-close::before, .search-wrapper .btn-close::after {\n position: absolute;\n background: #3f6ad8;\n border-radius: 2px;\n}\n.search-wrapper .btn-close::before {\n width: 2px;\n height: 20px;\n left: 9px;\n top: 0;\n}\n.search-wrapper .btn-close::after {\n width: 20px;\n height: 2px;\n left: 0;\n top: 9px;\n}\n.search-wrapper.active {\n width: 330px;\n}\n.search-wrapper.active .input-holder {\n width: 290px;\n border-radius: 50px;\n background: rgba(0, 0, 0, 0.05);\n transition: all 0.5s cubic-bezier(0, 0.105, 0.035, 1.57);\n}\n.search-wrapper.active .input-holder .search-input {\n opacity: 1;\n transform: translate(0, 11px);\n}\n.search-wrapper.active .input-holder .search-icon {\n width: 42px;\n height: 42px;\n margin: 0;\n border-radius: 30px;\n}\n.search-wrapper.active .input-holder .search-icon span {\n transform: rotate(-45deg);\n}\n.search-wrapper.active .btn-close {\n left: 300px;\n opacity: 0.6 !important;\n transition: all 0.6s cubic-bezier(0, 0.105, 0.035, 1.57);\n transition-delay: 0.5s;\n}\n.search-wrapper.active .btn-close:hover {\n opacity: 1 !important;\n}\n.search-wrapper.active + .header-menu {\n opacity: 0;\n}\n\n.opacity-01 {\n opacity: 0.01 !important;\n}\n\n.opacity-02 {\n opacity: 0.02 !important;\n}\n\n.opacity-03 {\n opacity: 0.03 !important;\n}\n\n.opacity-04 {\n opacity: 0.04 !important;\n}\n\n.opacity-05 {\n opacity: 0.05 !important;\n}\n\n.opacity-06 {\n opacity: 0.06 !important;\n}\n\n.opacity-07 {\n opacity: 0.07 !important;\n}\n\n.opacity-08 {\n opacity: 0.08 !important;\n}\n\n.opacity-09 {\n opacity: 0.09 !important;\n}\n\n.opacity-1 {\n opacity: 0.1 !important;\n}\n\n.opacity-15 {\n opacity: 0.15 !important;\n}\n\n.opacity-2 {\n opacity: 0.2 !important;\n}\n\n.opacity-3 {\n opacity: 0.3 !important;\n}\n\n.opacity-4 {\n opacity: 0.4 !important;\n}\n\n.opacity-5 {\n opacity: 0.5 !important;\n}\n\n.opacity-6 {\n opacity: 0.6 !important;\n}\n\n.opacity-7 {\n opacity: 0.7 !important;\n}\n\n.opacity-8 {\n opacity: 0.8 !important;\n}\n\n.opacity-9 {\n opacity: 0.9 !important;\n}\n\n.opacity-10 {\n opacity: 1 !important;\n}\n\n.filter-grayscale-5 {\n filter: grayscale(5%) !important;\n}\n\n.filter-grayscale-10 {\n filter: grayscale(10%) !important;\n}\n\n.filter-grayscale-20 {\n filter: grayscale(20%) !important;\n}\n\n.filter-grayscale-30 {\n filter: grayscale(30%) !important;\n}\n\n.filter-grayscale-40 {\n filter: grayscale(40%) !important;\n}\n\n.filter-grayscale-50 {\n filter: grayscale(50%) !important;\n}\n\n.filter-grayscale-80 {\n filter: grayscale(80%) !important;\n}\n\n.filter-grayscale-100 {\n filter: grayscale(100%) !important;\n}\n\n.br-tl {\n border-top-left-radius: 0.25rem !important;\n}\n\n.br-tr {\n border-top-right-radius: 0.25rem !important;\n}\n\n.br-bl {\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.br-br {\n border-bottom-right-radius: 0.25rem !important;\n}\n\n.b-radius-0 {\n border-radius: 0 !important;\n}\n\n.rm-border {\n border-width: 0 !important;\n}\n\n.br-a {\n border-radius: 0.25rem;\n}\n\n.margin-h-center {\n margin-left: auto !important;\n margin-right: auto !important;\n}\n\n.center-svg {\n margin: 0 auto;\n}\n.center-svg svg {\n margin: 0 auto;\n}\n\n.apexcharts-canvas {\n margin: 0 auto;\n}\n\n.apexcharts-donut {\n display: flex;\n align-items: center;\n align-content: center;\n}\n\n.icon-gradient {\n -webkit-background-clip: text;\n -webkit-text-fill-color: transparent;\n background-clip: text;\n text-fill-color: transparent;\n}\n\n.font-size-xlg {\n font-size: 1.3rem !important;\n}\n\n.font-size-md {\n font-size: 0.9rem !important;\n}\n\n.font-size-lg {\n font-size: 1.1rem !important;\n}\n\n.no-shadow {\n box-shadow: 0 0 0 transparent !important;\n}\n\n.h-100 {\n height: 100vh !important;\n}\n\n.he-auto {\n height: auto !important;\n}\n\n.he-100 {\n height: 100%;\n}\n\n.h-sm {\n height: 150px;\n}\n\n.text-nowrap {\n white-space: nowrap;\n}\n\n.fsize-1 {\n font-size: 0.95rem !important;\n}\n\n.fsize-2 {\n font-size: 1.3rem !important;\n}\n\n.fsize-3 {\n font-size: 1.6rem !important;\n}\n\n.fsize-4 {\n font-size: 2rem !important;\n}\n\n.z-index-6 {\n z-index: 6;\n}\n\n.line-height-1 {\n line-height: 1;\n}\n\n.center-elem {\n display: flex;\n align-items: center;\n align-content: center;\n}\n\n.flex2 {\n flex: 2;\n}\n\n.divider {\n margin-top: 1rem;\n margin-bottom: 1rem;\n height: 1px;\n overflow: hidden;\n background: #e9ecef;\n}\n\n.list-group-item:hover {\n z-index: initial;\n}\n\n.no-results {\n padding: 1.5rem;\n text-align: center;\n}\n.no-results .results-title {\n color: #495057;\n font-size: 1.1rem;\n}\n.no-results .results-subtitle {\n color: #adb5bd;\n font-size: 1.1rem;\n}\n\n.bg-animation {\n animation: bg-pan-left 8s both;\n}\n\n@-webkit-keyframes bg-pan-left {\n 0% {\n background-position: 100% 50%;\n }\n 100% {\n background-position: 0% 50%;\n }\n}\n@keyframes bg-pan-left {\n 0% {\n background-position: 100% 50%;\n }\n 100% {\n background-position: 0% 50%;\n }\n}\n.w-100 {\n width: 100%;\n}\n\n.mb--2 {\n margin-bottom: -1.5rem;\n}\n\n.mbg-3 {\n margin-bottom: 1.5rem;\n}\n\n.circle-progress {\n position: relative;\n}\n.circle-progress small, .circle-progress .small {\n position: absolute;\n height: 100%;\n width: 100%;\n font-weight: bold;\n left: 0;\n top: 0;\n vertical-align: middle;\n text-align: center;\n display: flex;\n align-items: center;\n align-content: center;\n}\n.circle-progress small span, .circle-progress .small span {\n margin: 0 auto;\n}\n.circle-progress canvas {\n display: block;\n}\n\n.btn-info, .btn-success {\n color: #fff !important;\n}\n\n.bg-warning {\n color: #212529;\n}\n\n.list-group-item {\n border: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.btn-link, a {\n text-decoration: none !important;\n}\n\n.bg-light {\n color: #212529;\n}\n\n.table {\n --bs-table-accent-bg: none;\n}\n\n.bg-warm-flame {\n background-image: linear-gradient(45deg, #ff9a9e 0%, #fad0c4 99%, #fad0c4 100%) !important;\n}\n\n.bg-night-fade {\n background-image: linear-gradient(to top, #a18cd1 0%, #fbc2eb 100%) !important;\n}\n\n.bg-sunny-morning {\n background-image: linear-gradient(120deg, #f6d365 0%, #fda085 100%) !important;\n}\n\n.bg-tempting-azure {\n background-image: linear-gradient(120deg, #84fab0 0%, #8fd3f4 100%) !important;\n}\n\n.bg-amy-crisp {\n background-image: linear-gradient(120deg, #a6c0fe 0%, #f68084 100%) !important;\n}\n\n.bg-heavy-rain {\n background-image: linear-gradient(to top, #cfd9df 0%, #e2ebf0 100%) !important;\n}\n\n.bg-mean-fruit {\n background-image: linear-gradient(120deg, #fccb90 0%, #d57eeb 100%) !important;\n}\n\n.bg-malibu-beach {\n background-image: linear-gradient(to right, #4facfe 0%, #00f2fe 100%) !important;\n}\n\n.bg-deep-blue {\n background-image: linear-gradient(120deg, #e0c3fc 0%, #8ec5fc 100%) !important;\n}\n\n.bg-ripe-malin {\n background-image: linear-gradient(120deg, #f093fb 0%, #f5576c 100%) !important;\n}\n\n.bg-arielle-smile {\n background-image: radial-gradient(circle 248px at center, #16d9e3 0%, #30c7ec 47%, #46aef7 100%) !important;\n}\n\n.bg-plum-plate {\n background-image: linear-gradient(135deg, #667eea 0%, #764ba2 100%) !important;\n}\n\n.bg-happy-fisher {\n background-image: linear-gradient(120deg, #89f7fe 0%, #66a6ff 100%) !important;\n}\n\n.bg-happy-itmeo {\n background-image: linear-gradient(180deg, #2af598 0%, #009efd 100%) !important;\n}\n\n.bg-mixed-hopes {\n background-image: linear-gradient(to top, #c471f5 0%, #fa71cd 100%) !important;\n}\n\n.bg-strong-bliss {\n background-image: linear-gradient(to right, #f78ca0 0%, #f9748f 19%, #fd868c 60%, #fe9a8b 100%) !important;\n}\n\n.bg-grow-early {\n background-image: linear-gradient(to top, #0ba360 0%, #3cba92 100%) !important;\n}\n\n.bg-love-kiss {\n background-image: linear-gradient(to top, #ff0844 0%, #ffb199 100%) !important;\n}\n\n.bg-premium-dark {\n background-image: linear-gradient(to right, #434343 0%, black 100%) !important;\n}\n\n.bg-happy-green {\n background-image: linear-gradient(to bottom, #00b09b, #96c93d) !important;\n}\n\n.bg-vicious-stance {\n background-image: linear-gradient(60deg, #29323c 0%, #485563 100%) !important;\n}\n\n.bg-midnight-bloom {\n background-image: linear-gradient(-20deg, #2b5876 0%, #4e4376 100%) !important;\n}\n\n.bg-night-sky {\n background-image: linear-gradient(to top, #1e3c72 0%, #1e3c72 1%, #2a5298 100%) !important;\n}\n\n.bg-slick-carbon {\n background-image: linear-gradient(to bottom, #323232 0%, #3F3F3F 40%, #1C1C1C 150%), linear-gradient(to top, rgba(255, 255, 255, 0.4) 0%, rgba(0, 0, 0, 0.25) 200%) !important;\n background-blend-mode: multiply;\n}\n\n.bg-royal {\n background-image: linear-gradient(to right, #141e30, #243b55) !important;\n}\n\n.bg-asteroid {\n background-image: linear-gradient(to right, #0f2027, #203a43, #2c5364) !important;\n}\n\n.bg-transparent {\n background: transparent !important;\n}\n\n/*!\nAnimate.css - http://daneden.me/animate\nLicensed under the MIT license - http://opensource.org/licenses/MIT\nCopyright (c) 2015 Daniel Eden\n*/\nbody {\n -webkit-backface-visibility: hidden;\n}\n\n.animated {\n -webkit-animation-duration: calc( 1s );\n animation-duration: calc( 1s );\n -webkit-animation-fill-mode: both;\n animation-fill-mode: both;\n}\n.animated.infinite {\n animation-iteration-count: infinite;\n}\n.animated.hinge {\n -webkit-animation-duration: calc( 1s * 2 );\n animation-duration: calc( 1s * 2 );\n}\n.animated.bounceIn, .animated.bounceOut {\n -webkit-animation-duration: calc( 1s * 0.75 );\n animation-duration: calc( 1s * 0.75 );\n}\n.animated.flipOutX, .animated.flipOutY {\n -webkit-animation-duration: calc( 1s * 0.75 );\n animation-duration: calc( 1s * 0.75 );\n}\n\n@-webkit-keyframes bounce {\n 0%, 20%, 50%, 80%, 100% {\n -webkit-transform: translateY(0);\n }\n 40% {\n -webkit-transform: translateY(-30px);\n }\n 60% {\n -webkit-transform: translateY(-15px);\n }\n}\n@keyframes bounce {\n 0%, 20%, 50%, 80%, 100% {\n transform: translateY(0);\n }\n 40% {\n transform: translateY(-30px);\n }\n 60% {\n transform: translateY(-15px);\n }\n}\n.bounce {\n -webkit-animation-name: bounce;\n animation-name: bounce;\n}\n\n@-webkit-keyframes flash {\n 0%, 50%, 100% {\n opacity: 1;\n }\n 25%, 75% {\n opacity: 0;\n }\n}\n@keyframes flash {\n 0%, 50%, 100% {\n opacity: 1;\n }\n 25%, 75% {\n opacity: 0;\n }\n}\n.flash {\n -webkit-animation-name: flash;\n animation-name: flash;\n}\n\n@-webkit-keyframes pulse {\n 0% {\n -webkit-transform: scale(1);\n }\n 50% {\n -webkit-transform: scale(1.1);\n }\n 100% {\n -webkit-transform: scale(1);\n }\n}\n@keyframes pulse {\n 0% {\n transform: scale(1);\n }\n 50% {\n transform: scale(1.1);\n }\n 100% {\n transform: scale(1);\n }\n}\n.pulse {\n -webkit-animation-name: pulse;\n animation-name: pulse;\n}\n\n@-webkit-keyframes shake {\n 0%, 100% {\n -webkit-transform: translateX(0);\n }\n 10%, 30%, 50%, 70%, 90% {\n -webkit-transform: translateX(-10px);\n }\n 20%, 40%, 60%, 80% {\n -webkit-transform: translateX(10px);\n }\n}\n@keyframes shake {\n 0%, 100% {\n transform: translateX(0);\n }\n 10%, 30%, 50%, 70%, 90% {\n transform: translateX(-10px);\n }\n 20%, 40%, 60%, 80% {\n transform: translateX(10px);\n }\n}\n.shake {\n -webkit-animation-name: shake;\n animation-name: shake;\n}\n\n@-webkit-keyframes swing {\n 20%, 40%, 60%, 80%, 100% {\n -webkit-transform-origin: top center;\n }\n 20% {\n -webkit-transform: rotate(15deg);\n }\n 40% {\n -webkit-transform: rotate(-10deg);\n }\n 60% {\n -webkit-transform: rotate(5deg);\n }\n 80% {\n -webkit-transform: rotate(-5deg);\n }\n 100% {\n -webkit-transform: rotate(0deg);\n }\n}\n@keyframes swing {\n 20% {\n transform: rotate(15deg);\n }\n 40% {\n transform: rotate(-10deg);\n }\n 60% {\n transform: rotate(5deg);\n }\n 80% {\n transform: rotate(-5deg);\n }\n 100% {\n transform: rotate(0deg);\n }\n}\n.swing {\n -webkit-transform-origin: top center;\n transform-origin: top center;\n -webkit-animation-name: swing;\n animation-name: swing;\n}\n\n@-webkit-keyframes wiggle {\n 0% {\n -webkit-transform: skewX(9deg);\n }\n 10% {\n -webkit-transform: skewX(-8deg);\n }\n 20% {\n -webkit-transform: skewX(7deg);\n }\n 30% {\n -webkit-transform: skewX(-6deg);\n }\n 40% {\n -webkit-transform: skewX(5deg);\n }\n 50% {\n -webkit-transform: skewX(-4deg);\n }\n 60% {\n -webkit-transform: skewX(3deg);\n }\n 70% {\n -webkit-transform: skewX(-2deg);\n }\n 80% {\n -webkit-transform: skewX(1deg);\n }\n 90% {\n -webkit-transform: skewX(0deg);\n }\n 100% {\n -webkit-transform: skewX(0deg);\n }\n}\n@keyframes wiggle {\n 0% {\n transform: skewX(9deg);\n }\n 10% {\n transform: skewX(-8deg);\n }\n 20% {\n transform: skewX(7deg);\n }\n 30% {\n transform: skewX(-6deg);\n }\n 40% {\n transform: skewX(5deg);\n }\n 50% {\n transform: skewX(-4deg);\n }\n 60% {\n transform: skewX(3deg);\n }\n 70% {\n transform: skewX(-2deg);\n }\n 80% {\n transform: skewX(1deg);\n }\n 90% {\n transform: skewX(0deg);\n }\n 100% {\n transform: skewX(0deg);\n }\n}\n.wiggle {\n -webkit-animation-name: wiggle;\n animation-name: wiggle;\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n}\n\n@-webkit-keyframes wobble {\n 0% {\n -webkit-transform: translateX(0%);\n }\n 15% {\n -webkit-transform: translateX(-25%) rotate(-5deg);\n }\n 30% {\n -webkit-transform: translateX(20%) rotate(3deg);\n }\n 45% {\n -webkit-transform: translateX(-15%) rotate(-3deg);\n }\n 60% {\n -webkit-transform: translateX(10%) rotate(2deg);\n }\n 75% {\n -webkit-transform: translateX(-5%) rotate(-1deg);\n }\n 100% {\n -webkit-transform: translateX(0%);\n }\n}\n@keyframes wobble {\n 0% {\n transform: translateX(0%);\n }\n 15% {\n transform: translateX(-25%) rotate(-5deg);\n }\n 30% {\n transform: translateX(20%) rotate(3deg);\n }\n 45% {\n transform: translateX(-15%) rotate(-3deg);\n }\n 60% {\n transform: translateX(10%) rotate(2deg);\n }\n 75% {\n transform: translateX(-5%) rotate(-1deg);\n }\n 100% {\n transform: translateX(0%);\n }\n}\n.wobble {\n -webkit-animation-name: wobble;\n animation-name: wobble;\n}\n\n@-webkit-keyframes tada {\n 0% {\n -webkit-transform: scale(1);\n }\n 10%, 20% {\n -webkit-transform: scale(0.9) rotate(-3deg);\n }\n 30%, 50%, 70%, 90% {\n -webkit-transform: scale(1.1) rotate(3deg);\n }\n 40%, 60%, 80% {\n -webkit-transform: scale(1.1) rotate(-3deg);\n }\n 100% {\n -webkit-transform: scale(1) rotate(0);\n }\n}\n@keyframes tada {\n 0% {\n transform: scale(1);\n }\n 10%, 20% {\n transform: scale(0.9) rotate(-3deg);\n }\n 30%, 50%, 70%, 90% {\n transform: scale(1.1) rotate(3deg);\n }\n 40%, 60%, 80% {\n transform: scale(1.1) rotate(-3deg);\n }\n 100% {\n transform: scale(1) rotate(0);\n }\n}\n.tada {\n -webkit-animation-name: tada;\n animation-name: tada;\n}\n\n@-webkit-keyframes bounceIn {\n 0% {\n opacity: 0;\n -webkit-transform: scale(0.3);\n }\n 50% {\n opacity: 1;\n -webkit-transform: scale(1.05);\n }\n 70% {\n -webkit-transform: scale(0.9);\n }\n 100% {\n -webkit-transform: scale(1);\n }\n}\n@keyframes bounceIn {\n 0% {\n opacity: 0;\n transform: scale(0.3);\n }\n 50% {\n opacity: 1;\n transform: scale(1.05);\n }\n 70% {\n transform: scale(0.9);\n }\n 100% {\n transform: scale(1);\n }\n}\n.bounceIn {\n -webkit-animation-name: bounceIn;\n animation-name: bounceIn;\n}\n\n@-webkit-keyframes bounceInDown {\n 0% {\n opacity: 0;\n -webkit-transform: translateY(-2000px);\n }\n 60% {\n opacity: 1;\n -webkit-transform: translateY(30px);\n }\n 80% {\n -webkit-transform: translateY(-10px);\n }\n 100% {\n -webkit-transform: translateY(0);\n }\n}\n@keyframes bounceInDown {\n 0% {\n opacity: 0;\n transform: translateY(-2000px);\n }\n 60% {\n opacity: 1;\n transform: translateY(30px);\n }\n 80% {\n transform: translateY(-10px);\n }\n 100% {\n transform: translateY(0);\n }\n}\n.bounceInDown {\n -webkit-animation-name: bounceInDown;\n animation-name: bounceInDown;\n}\n\n@-webkit-keyframes bounceInLeft {\n 0% {\n opacity: 0;\n -webkit-transform: translateX(-2000px);\n }\n 60% {\n opacity: 1;\n -webkit-transform: translateX(30px);\n }\n 80% {\n -webkit-transform: translateX(-10px);\n }\n 100% {\n -webkit-transform: translateX(0);\n }\n}\n@keyframes bounceInLeft {\n 0% {\n opacity: 0;\n transform: translateX(-2000px);\n }\n 60% {\n opacity: 1;\n transform: translateX(30px);\n }\n 80% {\n transform: translateX(-10px);\n }\n 100% {\n transform: translateX(0);\n }\n}\n.bounceInLeft {\n -webkit-animation-name: bounceInLeft;\n animation-name: bounceInLeft;\n}\n\n@-webkit-keyframes bounceInRight {\n 0% {\n opacity: 0;\n -webkit-transform: translateX(2000px);\n }\n 60% {\n opacity: 1;\n -webkit-transform: translateX(-30px);\n }\n 80% {\n -webkit-transform: translateX(10px);\n }\n 100% {\n -webkit-transform: translateX(0);\n }\n}\n@keyframes bounceInRight {\n 0% {\n opacity: 0;\n transform: translateX(2000px);\n }\n 60% {\n opacity: 1;\n transform: translateX(-30px);\n }\n 80% {\n transform: translateX(10px);\n }\n 100% {\n transform: translateX(0);\n }\n}\n.bounceInRight {\n -webkit-animation-name: bounceInRight;\n animation-name: bounceInRight;\n}\n\n@-webkit-keyframes bounceInUp {\n 0% {\n opacity: 0;\n -webkit-transform: translateY(2000px);\n }\n 60% {\n opacity: 1;\n -webkit-transform: translateY(-30px);\n }\n 80% {\n -webkit-transform: translateY(10px);\n }\n 100% {\n -webkit-transform: translateY(0);\n }\n}\n@keyframes bounceInUp {\n 0% {\n opacity: 0;\n transform: translateY(2000px);\n }\n 60% {\n opacity: 1;\n transform: translateY(-30px);\n }\n 80% {\n transform: translateY(10px);\n }\n 100% {\n transform: translateY(0);\n }\n}\n.bounceInUp {\n -webkit-animation-name: bounceInUp;\n animation-name: bounceInUp;\n}\n\n@-webkit-keyframes bounceOut {\n 0% {\n -webkit-transform: scale(1);\n }\n 25% {\n -webkit-transform: scale(0.95);\n }\n 50% {\n opacity: 1;\n -webkit-transform: scale(1.1);\n }\n 100% {\n opacity: 0;\n -webkit-transform: scale(0.3);\n }\n}\n@keyframes bounceOut {\n 0% {\n transform: scale(1);\n }\n 25% {\n transform: scale(0.95);\n }\n 50% {\n opacity: 1;\n transform: scale(1.1);\n }\n 100% {\n opacity: 0;\n transform: scale(0.3);\n }\n}\n.bounceOut {\n -webkit-animation-name: bounceOut;\n animation-name: bounceOut;\n}\n\n@-webkit-keyframes bounceOutDown {\n 0% {\n -webkit-transform: translateY(0);\n }\n 20% {\n opacity: 1;\n -webkit-transform: translateY(-20px);\n }\n 100% {\n opacity: 0;\n -webkit-transform: translateY(2000px);\n }\n}\n@keyframes bounceOutDown {\n 0% {\n transform: translateY(0);\n }\n 20% {\n opacity: 1;\n transform: translateY(-20px);\n }\n 100% {\n opacity: 0;\n transform: translateY(2000px);\n }\n}\n.bounceOutDown {\n -webkit-animation-name: bounceOutDown;\n animation-name: bounceOutDown;\n}\n\n@-webkit-keyframes bounceOutLeft {\n 0% {\n -webkit-transform: translateX(0);\n }\n 20% {\n opacity: 1;\n -webkit-transform: translateX(20px);\n }\n 100% {\n opacity: 0;\n -webkit-transform: translateX(-2000px);\n }\n}\n@keyframes bounceOutLeft {\n 0% {\n transform: translateX(0);\n }\n 20% {\n opacity: 1;\n transform: translateX(20px);\n }\n 100% {\n opacity: 0;\n transform: translateX(-2000px);\n }\n}\n.bounceOutLeft {\n -webkit-animation-name: bounceOutLeft;\n animation-name: bounceOutLeft;\n}\n\n@-webkit-keyframes bounceOutRight {\n 0% {\n -webkit-transform: translateX(0);\n }\n 20% {\n opacity: 1;\n -webkit-transform: translateX(-20px);\n }\n 100% {\n opacity: 0;\n -webkit-transform: translateX(2000px);\n }\n}\n@keyframes bounceOutRight {\n 0% {\n transform: translateX(0);\n }\n 20% {\n opacity: 1;\n transform: translateX(-20px);\n }\n 100% {\n opacity: 0;\n transform: translateX(2000px);\n }\n}\n.bounceOutRight {\n -webkit-animation-name: bounceOutRight;\n animation-name: bounceOutRight;\n}\n\n@-webkit-keyframes bounceOutUp {\n 0% {\n -webkit-transform: translateY(0);\n }\n 20% {\n opacity: 1;\n -webkit-transform: translateY(20px);\n }\n 100% {\n opacity: 0;\n -webkit-transform: translateY(-2000px);\n }\n}\n@keyframes bounceOutUp {\n 0% {\n transform: translateY(0);\n }\n 20% {\n opacity: 1;\n transform: translateY(20px);\n }\n 100% {\n opacity: 0;\n transform: translateY(-2000px);\n }\n}\n.bounceOutUp {\n -webkit-animation-name: bounceOutUp;\n animation-name: bounceOutUp;\n}\n\n@-webkit-keyframes fadeIn {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n}\n@keyframes fadeIn {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n}\n.fadeIn {\n -webkit-animation-name: fadeIn;\n animation-name: fadeIn;\n}\n\n@-webkit-keyframes fadeInDown {\n 0% {\n opacity: 0;\n -webkit-transform: translateY(-20px);\n }\n 100% {\n opacity: 1;\n -webkit-transform: translateY(0);\n }\n}\n@keyframes fadeInDown {\n 0% {\n opacity: 0;\n transform: translateY(-20px);\n }\n 100% {\n opacity: 1;\n transform: translateY(0);\n }\n}\n.fadeInDown {\n -webkit-animation-name: fadeInDown;\n animation-name: fadeInDown;\n}\n\n@-webkit-keyframes fadeInDownBig {\n 0% {\n opacity: 0;\n -webkit-transform: translateY(-2000px);\n }\n 100% {\n opacity: 1;\n -webkit-transform: translateY(0);\n }\n}\n@keyframes fadeInDownBig {\n 0% {\n opacity: 0;\n transform: translateY(-2000px);\n }\n 100% {\n opacity: 1;\n transform: translateY(0);\n }\n}\n.fadeInDownBig {\n -webkit-animation-name: fadeInDownBig;\n animation-name: fadeInDownBig;\n}\n\n@-webkit-keyframes fadeInLeft {\n 0% {\n opacity: 0;\n -webkit-transform: translateX(-20px);\n }\n 100% {\n opacity: 1;\n -webkit-transform: translateX(0);\n }\n}\n@keyframes fadeInLeft {\n 0% {\n opacity: 0;\n transform: translateX(-20px);\n }\n 100% {\n opacity: 1;\n transform: translateX(0);\n }\n}\n.fadeInLeft {\n -webkit-animation-name: fadeInLeft;\n animation-name: fadeInLeft;\n}\n\n@-webkit-keyframes fadeInLeftBig {\n 0% {\n opacity: 0;\n -webkit-transform: translateX(-2000px);\n }\n 100% {\n opacity: 1;\n -webkit-transform: translateX(0);\n }\n}\n@keyframes fadeInLeftBig {\n 0% {\n opacity: 0;\n transform: translateX(-2000px);\n }\n 100% {\n opacity: 1;\n transform: translateX(0);\n }\n}\n.fadeInLeftBig {\n -webkit-animation-name: fadeInLeftBig;\n animation-name: fadeInLeftBig;\n}\n\n@-webkit-keyframes fadeInRight {\n 0% {\n opacity: 0;\n -webkit-transform: translateX(20px);\n }\n 100% {\n opacity: 1;\n -webkit-transform: translateX(0);\n }\n}\n@keyframes fadeInRight {\n 0% {\n opacity: 0;\n transform: translateX(20px);\n }\n 100% {\n opacity: 1;\n transform: translateX(0);\n }\n}\n.fadeInRight {\n -webkit-animation-name: fadeInRight;\n animation-name: fadeInRight;\n}\n\n@-webkit-keyframes fadeInRightBig {\n 0% {\n opacity: 0;\n -webkit-transform: translateX(2000px);\n }\n 100% {\n opacity: 1;\n -webkit-transform: translateX(0);\n }\n}\n@keyframes fadeInRightBig {\n 0% {\n opacity: 0;\n transform: translateX(2000px);\n }\n 100% {\n opacity: 1;\n transform: translateX(0);\n }\n}\n.fadeInRightBig {\n -webkit-animation-name: fadeInRightBig;\n animation-name: fadeInRightBig;\n}\n\n@-webkit-keyframes fadeInUp {\n 0% {\n opacity: 0;\n -webkit-transform: translateY(20px);\n }\n 100% {\n opacity: 1;\n -webkit-transform: translateY(0);\n }\n}\n@keyframes fadeInUp {\n 0% {\n opacity: 0;\n transform: translateY(20px);\n }\n 100% {\n opacity: 1;\n transform: translateY(0);\n }\n}\n.fadeInUp {\n -webkit-animation-name: fadeInUp;\n animation-name: fadeInUp;\n}\n\n@-webkit-keyframes fadeInUpBig {\n 0% {\n opacity: 0;\n -webkit-transform: translateY(2000px);\n }\n 100% {\n opacity: 1;\n -webkit-transform: translateY(0);\n }\n}\n@keyframes fadeInUpBig {\n 0% {\n opacity: 0;\n transform: translateY(2000px);\n }\n 100% {\n opacity: 1;\n transform: translateY(0);\n }\n}\n.fadeInUpBig {\n -webkit-animation-name: fadeInUpBig;\n animation-name: fadeInUpBig;\n}\n\n@-webkit-keyframes fadeOut {\n 0% {\n opacity: 1;\n }\n 100% {\n opacity: 0;\n }\n}\n@keyframes fadeOut {\n 0% {\n opacity: 1;\n }\n 100% {\n opacity: 0;\n }\n}\n.fadeOut {\n -webkit-animation-name: fadeOut;\n animation-name: fadeOut;\n}\n\n@-webkit-keyframes fadeOutDown {\n 0% {\n opacity: 1;\n -webkit-transform: translateY(0);\n }\n 100% {\n opacity: 0;\n -webkit-transform: translateY(20px);\n }\n}\n@keyframes fadeOutDown {\n 0% {\n opacity: 1;\n transform: translateY(0);\n }\n 100% {\n opacity: 0;\n transform: translateY(20px);\n }\n}\n.fadeOutDown {\n -webkit-animation-name: fadeOutDown;\n animation-name: fadeOutDown;\n}\n\n@-webkit-keyframes fadeOutDownBig {\n 0% {\n opacity: 1;\n -webkit-transform: translateY(0);\n }\n 100% {\n opacity: 0;\n -webkit-transform: translateY(2000px);\n }\n}\n@keyframes fadeOutDownBig {\n 0% {\n opacity: 1;\n transform: translateY(0);\n }\n 100% {\n opacity: 0;\n transform: translateY(2000px);\n }\n}\n.fadeOutDownBig {\n -webkit-animation-name: fadeOutDownBig;\n animation-name: fadeOutDownBig;\n}\n\n@-webkit-keyframes fadeOutLeft {\n 0% {\n opacity: 1;\n -webkit-transform: translateX(0);\n }\n 100% {\n opacity: 0;\n -webkit-transform: translateX(-20px);\n }\n}\n@keyframes fadeOutLeft {\n 0% {\n opacity: 1;\n transform: translateX(0);\n }\n 100% {\n opacity: 0;\n transform: translateX(-20px);\n }\n}\n.fadeOutLeft {\n -webkit-animation-name: fadeOutLeft;\n animation-name: fadeOutLeft;\n}\n\n@-webkit-keyframes fadeOutLeftBig {\n 0% {\n opacity: 1;\n -webkit-transform: translateX(0);\n }\n 100% {\n opacity: 0;\n -webkit-transform: translateX(-2000px);\n }\n}\n@keyframes fadeOutLeftBig {\n 0% {\n opacity: 1;\n transform: translateX(0);\n }\n 100% {\n opacity: 0;\n transform: translateX(-2000px);\n }\n}\n.fadeOutLeftBig {\n -webkit-animation-name: fadeOutLeftBig;\n animation-name: fadeOutLeftBig;\n}\n\n@-webkit-keyframes fadeOutRight {\n 0% {\n opacity: 1;\n -webkit-transform: translateX(0);\n }\n 100% {\n opacity: 0;\n -webkit-transform: translateX(20px);\n }\n}\n@keyframes fadeOutRight {\n 0% {\n opacity: 1;\n transform: translateX(0);\n }\n 100% {\n opacity: 0;\n transform: translateX(20px);\n }\n}\n.fadeOutRight {\n -webkit-animation-name: fadeOutRight;\n animation-name: fadeOutRight;\n}\n\n@-webkit-keyframes fadeOutRightBig {\n 0% {\n opacity: 1;\n -webkit-transform: translateX(0);\n }\n 100% {\n opacity: 0;\n -webkit-transform: translateX(2000px);\n }\n}\n@keyframes fadeOutRightBig {\n 0% {\n opacity: 1;\n transform: translateX(0);\n }\n 100% {\n opacity: 0;\n transform: translateX(2000px);\n }\n}\n.fadeOutRightBig {\n -webkit-animation-name: fadeOutRightBig;\n animation-name: fadeOutRightBig;\n}\n\n@-webkit-keyframes fadeOutUp {\n 0% {\n opacity: 1;\n -webkit-transform: translateY(0);\n }\n 100% {\n opacity: 0;\n -webkit-transform: translateY(-20px);\n }\n}\n@keyframes fadeOutUp {\n 0% {\n opacity: 1;\n transform: translateY(0);\n }\n 100% {\n opacity: 0;\n transform: translateY(-20px);\n }\n}\n.fadeOutUp {\n -webkit-animation-name: fadeOutUp;\n animation-name: fadeOutUp;\n}\n\n@-webkit-keyframes fadeOutUpBig {\n 0% {\n opacity: 1;\n -webkit-transform: translateY(0);\n }\n 100% {\n opacity: 0;\n -webkit-transform: translateY(-2000px);\n }\n}\n@keyframes fadeOutUpBig {\n 0% {\n opacity: 1;\n transform: translateY(0);\n }\n 100% {\n opacity: 0;\n transform: translateY(-2000px);\n }\n}\n.fadeOutUpBig {\n -webkit-animation-name: fadeOutUpBig;\n animation-name: fadeOutUpBig;\n}\n\n@-webkit-keyframes flip {\n 0% {\n -webkit-transform: perspective(400px) rotateY(0);\n -webkit-animation-timing-function: ease-out;\n }\n 40% {\n -webkit-transform: perspective(400px) translateZ(150px) rotateY(170deg);\n -webkit-animation-timing-function: ease-out;\n }\n 50% {\n -webkit-transform: perspective(400px) translateZ(150px) rotateY(190deg) scale(1);\n -webkit-animation-timing-function: ease-in;\n }\n 80% {\n -webkit-transform: perspective(400px) rotateY(360deg) scale(0.95);\n -webkit-animation-timing-function: ease-in;\n }\n 100% {\n -webkit-transform: perspective(400px) scale(1);\n -webkit-animation-timing-function: ease-in;\n }\n}\n@keyframes flip {\n 0% {\n transform: perspective(400px) rotateY(0);\n animation-timing-function: ease-out;\n }\n 40% {\n transform: perspective(400px) translateZ(150px) rotateY(170deg);\n animation-timing-function: ease-out;\n }\n 50% {\n transform: perspective(400px) translateZ(150px) rotateY(190deg) scale(1);\n animation-timing-function: ease-in;\n }\n 80% {\n transform: perspective(400px) rotateY(360deg) scale(0.95);\n animation-timing-function: ease-in;\n }\n 100% {\n transform: perspective(400px) scale(1);\n animation-timing-function: ease-in;\n }\n}\n.flip {\n -webkit-transform-style: preserve-3d;\n transform-style: preserve-3d;\n -webkit-backface-visibility: visible !important;\n backface-visibility: visible !important;\n -webkit-animation-name: flip;\n animation-name: flip;\n}\n\n@-webkit-keyframes flipInX {\n 0% {\n -webkit-transform: perspective(400px) rotateX(90deg);\n opacity: 0;\n }\n 40% {\n -webkit-transform: perspective(400px) rotateX(-10deg);\n }\n 70% {\n -webkit-transform: perspective(400px) rotateX(10deg);\n }\n 100% {\n -webkit-transform: perspective(400px) rotateX(0deg);\n opacity: 1;\n }\n}\n@keyframes flipInX {\n 0% {\n transform: perspective(400px) rotateX(90deg);\n opacity: 0;\n }\n 40% {\n transform: perspective(400px) rotateX(-10deg);\n }\n 70% {\n transform: perspective(400px) rotateX(10deg);\n }\n 100% {\n transform: perspective(400px) rotateX(0deg);\n opacity: 1;\n }\n}\n.flipInX {\n -webkit-backface-visibility: visible !important;\n backface-visibility: visible !important;\n -webkit-animation-name: flipInX;\n animation-name: flipInX;\n}\n\n@-webkit-keyframes flipInY {\n 0% {\n -webkit-transform: perspective(400px) rotateY(90deg);\n opacity: 0;\n }\n 40% {\n -webkit-transform: perspective(400px) rotateY(-10deg);\n }\n 70% {\n -webkit-transform: perspective(400px) rotateY(10deg);\n }\n 100% {\n -webkit-transform: perspective(400px) rotateY(0deg);\n opacity: 1;\n }\n}\n@keyframes flipInY {\n 0% {\n transform: perspective(400px) rotateY(90deg);\n opacity: 0;\n }\n 40% {\n transform: perspective(400px) rotateY(-10deg);\n }\n 70% {\n transform: perspective(400px) rotateY(10deg);\n }\n 100% {\n transform: perspective(400px) rotateY(0deg);\n opacity: 1;\n }\n}\n.flipInY {\n -webkit-backface-visibility: visible !important;\n backface-visibility: visible !important;\n -webkit-animation-name: flipInY;\n animation-name: flipInY;\n}\n\n@-webkit-keyframes flipOutX {\n 0% {\n -webkit-transform: perspective(400px) rotateX(0deg);\n opacity: 1;\n }\n 100% {\n -webkit-transform: perspective(400px) rotateX(90deg);\n opacity: 0;\n }\n}\n@keyframes flipOutX {\n 0% {\n transform: perspective(400px) rotateX(0deg);\n opacity: 1;\n }\n 100% {\n transform: perspective(400px) rotateX(90deg);\n opacity: 0;\n }\n}\n.flipOutX {\n -webkit-animation-name: flipOutX;\n animation-name: flipOutX;\n -webkit-backface-visibility: visible !important;\n backface-visibility: visible !important;\n}\n\n@-webkit-keyframes flipOutY {\n 0% {\n -webkit-transform: perspective(400px) rotateY(0deg);\n opacity: 1;\n }\n 100% {\n -webkit-transform: perspective(400px) rotateY(90deg);\n opacity: 0;\n }\n}\n@keyframes flipOutY {\n 0% {\n transform: perspective(400px) rotateY(0deg);\n opacity: 1;\n }\n 100% {\n transform: perspective(400px) rotateY(90deg);\n opacity: 0;\n }\n}\n.flipOutY {\n -webkit-backface-visibility: visible !important;\n backface-visibility: visible !important;\n -webkit-animation-name: flipOutY;\n animation-name: flipOutY;\n}\n\n@-webkit-keyframes lightSpeedIn {\n 0% {\n -webkit-transform: translateX(100%) skewX(-30deg);\n opacity: 0;\n }\n 60% {\n -webkit-transform: translateX(-20%) skewX(30deg);\n opacity: 1;\n }\n 80% {\n -webkit-transform: translateX(0%) skewX(-15deg);\n opacity: 1;\n }\n 100% {\n -webkit-transform: translateX(0%) skewX(0deg);\n opacity: 1;\n }\n}\n@keyframes lightSpeedIn {\n 0% {\n transform: translateX(100%) skewX(-30deg);\n opacity: 0;\n }\n 60% {\n transform: translateX(-20%) skewX(30deg);\n opacity: 1;\n }\n 80% {\n transform: translateX(0%) skewX(-15deg);\n opacity: 1;\n }\n 100% {\n transform: translateX(0%) skewX(0deg);\n opacity: 1;\n }\n}\n.lightSpeedIn {\n -webkit-animation-name: lightSpeedIn;\n animation-name: lightSpeedIn;\n -webkit-animation-timing-function: ease-out;\n animation-timing-function: ease-out;\n}\n\n@-webkit-keyframes lightSpeedOut {\n 0% {\n -webkit-transform: translateX(0%) skewX(0deg);\n opacity: 1;\n }\n 100% {\n -webkit-transform: translateX(100%) skewX(-30deg);\n opacity: 0;\n }\n}\n@keyframes lightSpeedOut {\n 0% {\n transform: translateX(0%) skewX(0deg);\n opacity: 1;\n }\n 100% {\n transform: translateX(100%) skewX(-30deg);\n opacity: 0;\n }\n}\n.lightSpeedOut {\n -webkit-animation-name: lightSpeedOut;\n animation-name: lightSpeedOut;\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n}\n\n@-webkit-keyframes rotateIn {\n 0% {\n -webkit-transform-origin: center center;\n -webkit-transform: rotate(-200deg);\n opacity: 0;\n }\n 100% {\n -webkit-transform-origin: center center;\n -webkit-transform: rotate(0);\n opacity: 1;\n }\n}\n@keyframes rotateIn {\n 0% {\n transform-origin: center center;\n transform: rotate(-200deg);\n opacity: 0;\n }\n 100% {\n transform-origin: center center;\n transform: rotate(0);\n opacity: 1;\n }\n}\n.rotateIn {\n -webkit-animation-name: rotateIn;\n animation-name: rotateIn;\n}\n\n@-webkit-keyframes rotateInDownLeft {\n 0% {\n -webkit-transform-origin: left bottom;\n -webkit-transform: rotate(-90deg);\n opacity: 0;\n }\n 100% {\n -webkit-transform-origin: left bottom;\n -webkit-transform: rotate(0);\n opacity: 1;\n }\n}\n@keyframes rotateInDownLeft {\n 0% {\n transform-origin: left bottom;\n transform: rotate(-90deg);\n opacity: 0;\n }\n 100% {\n transform-origin: left bottom;\n transform: rotate(0);\n opacity: 1;\n }\n}\n.rotateInDownLeft {\n -webkit-animation-name: rotateInDownLeft;\n animation-name: rotateInDownLeft;\n}\n\n@-webkit-keyframes rotateInDownRight {\n 0% {\n -webkit-transform-origin: right bottom;\n -webkit-transform: rotate(90deg);\n opacity: 0;\n }\n 100% {\n -webkit-transform-origin: right bottom;\n -webkit-transform: rotate(0);\n opacity: 1;\n }\n}\n@keyframes rotateInDownRight {\n 0% {\n transform-origin: right bottom;\n transform: rotate(90deg);\n opacity: 0;\n }\n 100% {\n transform-origin: right bottom;\n transform: rotate(0);\n opacity: 1;\n }\n}\n.rotateInDownRight {\n -webkit-animation-name: rotateInDownRight;\n animation-name: rotateInDownRight;\n}\n\n@-webkit-keyframes rotateInUpLeft {\n 0% {\n -webkit-transform-origin: left bottom;\n -webkit-transform: rotate(90deg);\n opacity: 0;\n }\n 100% {\n -webkit-transform-origin: left bottom;\n -webkit-transform: rotate(0);\n opacity: 1;\n }\n}\n@keyframes rotateInUpLeft {\n 0% {\n transform-origin: left bottom;\n transform: rotate(90deg);\n opacity: 0;\n }\n 100% {\n transform-origin: left bottom;\n transform: rotate(0);\n opacity: 1;\n }\n}\n.rotateInUpLeft {\n -webkit-animation-name: rotateInUpLeft;\n animation-name: rotateInUpLeft;\n}\n\n@-webkit-keyframes rotateInUpRight {\n 0% {\n -webkit-transform-origin: right bottom;\n -webkit-transform: rotate(-90deg);\n opacity: 0;\n }\n 100% {\n -webkit-transform-origin: right bottom;\n -webkit-transform: rotate(0);\n opacity: 1;\n }\n}\n@keyframes rotateInUpRight {\n 0% {\n transform-origin: right bottom;\n transform: rotate(-90deg);\n opacity: 0;\n }\n 100% {\n transform-origin: right bottom;\n transform: rotate(0);\n opacity: 1;\n }\n}\n.rotateInUpRight {\n -webkit-animation-name: rotateInUpRight;\n animation-name: rotateInUpRight;\n}\n\n@-webkit-keyframes rotateOut {\n 0% {\n -webkit-transform-origin: center center;\n -webkit-transform: rotate(0);\n opacity: 1;\n }\n 100% {\n -webkit-transform-origin: center center;\n -webkit-transform: rotate(200deg);\n opacity: 0;\n }\n}\n@keyframes rotateOut {\n 0% {\n transform-origin: center center;\n transform: rotate(0);\n opacity: 1;\n }\n 100% {\n transform-origin: center center;\n transform: rotate(200deg);\n opacity: 0;\n }\n}\n.rotateOut {\n -webkit-animation-name: rotateOut;\n animation-name: rotateOut;\n}\n\n@-webkit-keyframes rotateOutDownLeft {\n 0% {\n -webkit-transform-origin: left bottom;\n -webkit-transform: rotate(0);\n opacity: 1;\n }\n 100% {\n -webkit-transform-origin: left bottom;\n -webkit-transform: rotate(90deg);\n opacity: 0;\n }\n}\n@keyframes rotateOutDownLeft {\n 0% {\n transform-origin: left bottom;\n transform: rotate(0);\n opacity: 1;\n }\n 100% {\n transform-origin: left bottom;\n transform: rotate(90deg);\n opacity: 0;\n }\n}\n.rotateOutDownLeft {\n -webkit-animation-name: rotateOutDownLeft;\n animation-name: rotateOutDownLeft;\n}\n\n@-webkit-keyframes rotateOutDownRight {\n 0% {\n -webkit-transform-origin: right bottom;\n -webkit-transform: rotate(0);\n opacity: 1;\n }\n 100% {\n -webkit-transform-origin: right bottom;\n -webkit-transform: rotate(-90deg);\n opacity: 0;\n }\n}\n@keyframes rotateOutDownRight {\n 0% {\n transform-origin: right bottom;\n transform: rotate(0);\n opacity: 1;\n }\n 100% {\n transform-origin: right bottom;\n transform: rotate(-90deg);\n opacity: 0;\n }\n}\n.rotateOutDownRight {\n -webkit-animation-name: rotateOutDownRight;\n animation-name: rotateOutDownRight;\n}\n\n@-webkit-keyframes rotateOutUpLeft {\n 0% {\n -webkit-transform-origin: left bottom;\n -webkit-transform: rotate(0);\n opacity: 1;\n }\n 100% {\n -webkit-transform-origin: left bottom;\n -webkit-transform: rotate(-90deg);\n opacity: 0;\n }\n}\n@keyframes rotateOutUpLeft {\n 0% {\n transform-origin: left bottom;\n transform: rotate(0);\n opacity: 1;\n }\n 100% {\n -transform-origin: left bottom;\n -transform: rotate(-90deg);\n opacity: 0;\n }\n}\n.rotateOutUpLeft {\n -webkit-animation-name: rotateOutUpLeft;\n animation-name: rotateOutUpLeft;\n}\n\n@-webkit-keyframes rotateOutUpRight {\n 0% {\n -webkit-transform-origin: right bottom;\n -webkit-transform: rotate(0);\n opacity: 1;\n }\n 100% {\n -webkit-transform-origin: right bottom;\n -webkit-transform: rotate(90deg);\n opacity: 0;\n }\n}\n@keyframes rotateOutUpRight {\n 0% {\n transform-origin: right bottom;\n transform: rotate(0);\n opacity: 1;\n }\n 100% {\n transform-origin: right bottom;\n transform: rotate(90deg);\n opacity: 0;\n }\n}\n.rotateOutUpRight {\n -webkit-animation-name: rotateOutUpRight;\n animation-name: rotateOutUpRight;\n}\n\n@-webkit-keyframes slideInDown {\n 0% {\n -webkit-transform: translate3d(0, -100%, 0);\n visibility: visible;\n }\n 100% {\n -webkit-transform: translate3d(0, 0, 0);\n }\n}\n@keyframes slideInDown {\n 0% {\n transform: translate3d(0, -100%, 0);\n visibility: visible;\n }\n 100% {\n transform: translate3d(0, 0, 0);\n }\n}\n.slideInDown {\n -webkit-animation-name: slideInDown;\n animation-name: slideInDown;\n}\n\n@-webkit-keyframes slideInLeft {\n 0% {\n -webkit-transform: translate3d(-100%, 0, 0);\n visibility: visible;\n }\n 100% {\n -webkit-transform: translate3d(0, 0, 0);\n }\n}\n@keyframes slideInLeft {\n 0% {\n transform: translate3d(-100%, 0, 0);\n visibility: visible;\n }\n 100% {\n transform: translate3d(0, 0, 0);\n }\n}\n.slideInLeft {\n -webkit-animation-name: slideInLeft;\n animation-name: slideInLeft;\n}\n\n@-webkit-keyframes slideInRight {\n 0% {\n -webkit-transform: translate3d(100%, 0, 0);\n visibility: visible;\n }\n 100% {\n -webkit-transform: translate3d(0, 0, 0);\n }\n}\n@keyframes slideInRight {\n 0% {\n transform: translate3d(100%, 0, 0);\n visibility: visible;\n }\n 100% {\n transform: translate3d(0, 0, 0);\n }\n}\n.slideInRight {\n -webkit-animation-name: slideInRight;\n animation-name: slideInRight;\n}\n\n@-webkit-keyframes slideInUp {\n 0% {\n -webkit-transform: translate3d(0, 100%, 0);\n visibility: visible;\n }\n 100% {\n -webkit-transform: translate3d(0, 0, 0);\n }\n}\n@keyframes slideInUp {\n 0% {\n transform: translate3d(0, 100%, 0);\n visibility: visible;\n }\n 100% {\n transform: translate3d(0, 0, 0);\n }\n}\n.slideInUp {\n -webkit-animation-name: slideInUp;\n animation-name: slideInUp;\n}\n\n@-webkit-keyframes slideOutDown {\n 0% {\n -webkit-transform: translate3d(0, 0, 0);\n visibility: visible;\n }\n 100% {\n -webkit-transform: translate3d(0, 100%, 0);\n }\n}\n@keyframes slideOutDown {\n 0% {\n transform: translate3d(0, 0, 0);\n visibility: visible;\n }\n 100% {\n transform: translate3d(0, 100%, 0);\n }\n}\n.slideOutDown {\n -webkit-animation-name: slideOutDown;\n animation-name: slideOutDown;\n}\n\n@-webkit-keyframes slideOutLeft {\n 0% {\n -webkit-transform: translate3d(0, 0, 0);\n visibility: visible;\n }\n 100% {\n -webkit-transform: translate3d(-100%, 0, 0);\n }\n}\n@keyframes slideOutLeft {\n 0% {\n transform: translate3d(0, 0, 0);\n visibility: visible;\n }\n 100% {\n transform: translate3d(-100%, 0, 0);\n }\n}\n.slideOutLeft {\n -webkit-animation-name: slideOutLeft;\n animation-name: slideOutLeft;\n}\n\n@-webkit-keyframes slideOutRight {\n 0% {\n -webkit-transform: translate3d(0, 0, 0);\n visibility: visible;\n }\n 100% {\n -webkit-transform: translate3d(100%, 0, 0);\n }\n}\n@keyframes slideOutRight {\n 0% {\n transform: translate3d(0, 0, 0);\n visibility: visible;\n }\n 100% {\n transform: translate3d(100%, 0, 0);\n }\n}\n.slideOutRight {\n -webkit-animation-name: slideOutRight;\n animation-name: slideOutRight;\n}\n\n@-webkit-keyframes slideOutUp {\n 0% {\n -webkit-transform: translate3d(0, 0, 0);\n visibility: visible;\n }\n 100% {\n -webkit-transform: translate3d(0, -100%, 0);\n }\n}\n@keyframes slideOutUp {\n 0% {\n transform: translate3d(0, 0, 0);\n visibility: visible;\n }\n 100% {\n transform: translate3d(0, -100%, 0);\n }\n}\n.slideOutUp {\n -webkit-animation-name: slideOutUp;\n animation-name: slideOutUp;\n}\n\n@-webkit-keyframes hinge {\n 0% {\n -webkit-transform: rotate(0);\n -webkit-transform-origin: top left;\n -webkit-animation-timing-function: ease-in-out;\n }\n 20%, 60% {\n -webkit-transform: rotate(80deg);\n -webkit-transform-origin: top left;\n -webkit-animation-timing-function: ease-in-out;\n }\n 40% {\n -webkit-transform: rotate(60deg);\n -webkit-transform-origin: top left;\n -webkit-animation-timing-function: ease-in-out;\n }\n 80% {\n -webkit-transform: rotate(60deg) translateY(0);\n opacity: 1;\n -webkit-transform-origin: top left;\n -webkit-animation-timing-function: ease-in-out;\n }\n 100% {\n -webkit-transform: translateY(700px);\n opacity: 0;\n }\n}\n@keyframes hinge {\n 0% {\n transform: rotate(0);\n transform-origin: top left;\n animation-timing-function: ease-in-out;\n }\n 20%, 60% {\n transform: rotate(80deg);\n transform-origin: top left;\n animation-timing-function: ease-in-out;\n }\n 40% {\n transform: rotate(60deg);\n transform-origin: top left;\n animation-timing-function: ease-in-out;\n }\n 80% {\n transform: rotate(60deg) translateY(0);\n opacity: 1;\n transform-origin: top left;\n animation-timing-function: ease-in-out;\n }\n 100% {\n transform: translateY(700px);\n opacity: 0;\n }\n}\n.hinge {\n -webkit-animation-name: hinge;\n animation-name: hinge;\n}\n\n@-webkit-keyframes rollIn {\n 0% {\n opacity: 0;\n -webkit-transform: translateX(-100%) rotate(-120deg);\n }\n 100% {\n opacity: 1;\n -webkit-transform: translateX(0px) rotate(0deg);\n }\n}\n@keyframes rollIn {\n 0% {\n opacity: 0;\n transform: translateX(-100%) rotate(-120deg);\n }\n 100% {\n opacity: 1;\n transform: translateX(0px) rotate(0deg);\n }\n}\n.rollIn {\n -webkit-animation-name: rollIn;\n animation-name: rollIn;\n}\n\n@-webkit-keyframes rollOut {\n 0% {\n opacity: 1;\n -webkit-transform: translateX(0px) rotate(0deg);\n }\n 100% {\n opacity: 0;\n -webkit-transform: translateX(100%) rotate(120deg);\n }\n}\n@keyframes rollOut {\n 0% {\n opacity: 1;\n transform: translateX(0px) rotate(0deg);\n }\n 100% {\n opacity: 0;\n transform: translateX(100%) rotate(120deg);\n }\n}\n.rollOut {\n -webkit-animation-name: rollOut;\n animation-name: rollOut;\n}\n\n@-webkit-keyframes zoomIn {\n 0% {\n opacity: 0;\n -webkit-transform: scale3d(0.3, 0.3, 0.3);\n }\n 50% {\n opacity: 1;\n }\n}\n@keyframes zoomIn {\n 0% {\n opacity: 0;\n transform: scale3d(0.3, 0.3, 0.3);\n }\n 50% {\n opacity: 1;\n }\n}\n.zoomIn {\n -webkit-animation-name: zoomIn;\n animation-name: zoomIn;\n}\n\n@-webkit-keyframes zoomInDown {\n 0% {\n opacity: 0;\n -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);\n -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n }\n 60% {\n opacity: 1;\n -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);\n -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n }\n}\n@keyframes zoomInDown {\n 0% {\n opacity: 0;\n transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);\n animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n }\n 60% {\n opacity: 1;\n transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n }\n}\n.zoomInDown {\n -webkit-animation-name: zoomInDown;\n animation-name: zoomInDown;\n}\n\n@-webkit-keyframes zoomInLeft {\n 0% {\n opacity: 0;\n -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);\n -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n }\n 60% {\n opacity: 1;\n -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);\n -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n }\n}\n@keyframes zoomInLeft {\n 0% {\n opacity: 0;\n transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);\n animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n }\n 60% {\n opacity: 1;\n transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n }\n}\n.zoomInLeft {\n -webkit-animation-name: zoomInLeft;\n animation-name: zoomInLeft;\n}\n\n@-webkit-keyframes zoomInRight {\n 0% {\n opacity: 0;\n -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);\n -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n }\n 60% {\n opacity: 1;\n -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);\n -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n }\n}\n@keyframes zoomInRight {\n 0% {\n opacity: 0;\n transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);\n animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n }\n 60% {\n opacity: 1;\n transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n }\n}\n.zoomInRight {\n -webkit-animation-name: zoomInRight;\n animation-name: zoomInRight;\n}\n\n@-webkit-keyframes zoomInUp {\n 0% {\n opacity: 0;\n -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);\n -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n }\n 60% {\n opacity: 1;\n -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);\n -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n }\n}\n@keyframes zoomInUp {\n 0% {\n opacity: 0;\n transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);\n animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n }\n 60% {\n opacity: 1;\n transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n }\n}\n.zoomInUp {\n -webkit-animation-name: zoomInUp;\n animation-name: zoomInUp;\n}\n\n@-webkit-keyframes zoomOut {\n 0% {\n opacity: 1;\n }\n 50% {\n opacity: 0;\n -webkit-transform: scale3d(0.3, 0.3, 0.3);\n }\n 100% {\n opacity: 0;\n }\n}\n@keyframes zoomOut {\n 0% {\n opacity: 1;\n }\n 50% {\n opacity: 0;\n transform: scale3d(0.3, 0.3, 0.3);\n }\n 100% {\n opacity: 0;\n }\n}\n.zoomOut {\n -webkit-animation-name: zoomOut;\n animation-name: zoomOut;\n}\n\n@-webkit-keyframes zoomOutDown {\n 40% {\n opacity: 1;\n -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);\n -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n }\n 100% {\n opacity: 0;\n -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);\n -webkit-transform-origin: center bottom;\n -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n }\n}\n@keyframes zoomOutDown {\n 40% {\n opacity: 1;\n transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);\n animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n }\n 100% {\n opacity: 0;\n transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);\n transform-origin: center bottom;\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n }\n}\n.zoomOutDown {\n -webkit-animation-name: zoomOutDown;\n animation-name: zoomOutDown;\n}\n\n@-webkit-keyframes zoomOutLeft {\n 40% {\n opacity: 1;\n -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0);\n }\n 100% {\n opacity: 0;\n -webkit-transform: scale3d(0.1) translate3d(-2000px, 0, 0);\n -webkit-transform-origin: left center;\n }\n}\n@keyframes zoomOutLeft {\n 40% {\n opacity: 1;\n transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0);\n }\n 100% {\n opacity: 0;\n transform: scale3d(0.1) translate3d(-2000px, 0, 0);\n transform-origin: left center;\n }\n}\n.zoomOutLeft {\n -webkit-animation-name: zoomOutLeft;\n animation-name: zoomOutLeft;\n}\n\n@-webkit-keyframes zoomOutRight {\n 40% {\n opacity: 1;\n -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0);\n }\n 100% {\n opacity: 0;\n -webkit-transform: scale3d(0.1) translate3d(2000px, 0, 0);\n -webkit-transform-origin: right center;\n }\n}\n@keyframes zoomOutRight {\n 40% {\n opacity: 1;\n transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0);\n }\n 100% {\n opacity: 0;\n transform: scale3d(0.1) translate3d(2000px, 0, 0);\n transform-origin: right center;\n }\n}\n.zoomOutRight {\n -webkit-animation-name: zoomOutRight;\n animation-name: zoomOutRight;\n}\n\n@-webkit-keyframes zoomOutUp {\n 40% {\n opacity: 1;\n -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);\n -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n }\n 100% {\n opacity: 0;\n -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);\n -webkit-transform-origin: center bottom;\n -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n }\n}\n@keyframes zoomOutUp {\n 40% {\n opacity: 1;\n transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);\n animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n }\n 100% {\n opacity: 0;\n transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);\n transform-origin: center bottom;\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n }\n}\n.zoomOutUp {\n -webkit-animation-name: zoomOutUp;\n animation-name: zoomOutUp;\n}\n\n.dropdown-menu.show {\n animation: fade-in2 0.2s cubic-bezier(0.39, 0.575, 0.565, 1) both;\n}\n\n.popover:not([data-placement^=top]).show {\n animation: fade-in2 0.2s cubic-bezier(0.39, 0.575, 0.565, 1) both;\n}\n\n.dropdown-menu[data-placement^=top].show {\n animation: fade-in3 0.2s cubic-bezier(0.39, 0.575, 0.565, 1) both;\n bottom: auto !important;\n top: auto !important;\n}\n\n@keyframes fade-in2 {\n 0% {\n margin-top: -50px;\n visibility: hidden;\n opacity: 0;\n }\n 100% {\n margin-top: 0px;\n visibility: visible;\n opacity: 1;\n }\n}\n.form-control {\n transition: all 0.2s;\n}\n\n.dropdown-toggle::after {\n position: relative;\n top: 2px;\n opacity: 0.8;\n}\n\n.dropright .dropdown-toggle::after {\n top: 0;\n}\n\n.dropdown-toggle-split {\n border-left: rgba(255, 255, 255, 0.1) solid 1px;\n}\n\n.btn-outline-primary {\n color: #3f6ad8;\n border-color: #3f6ad8;\n}\n.btn-outline-primary:hover {\n color: #fff;\n background-color: #3f6ad8;\n border-color: #3f6ad8;\n}\n.btn-check:focus + .btn-outline-primary, .btn-outline-primary:focus {\n box-shadow: 0 0 0 0 rgba(63, 106, 216, 0.5);\n}\n.btn-check:checked + .btn-outline-primary, .btn-check:active + .btn-outline-primary, .btn-outline-primary:active, .btn-outline-primary.active, .btn-outline-primary.dropdown-toggle.show {\n color: #fff;\n background-color: #3f6ad8;\n border-color: #3f6ad8;\n}\n.btn-check:checked + .btn-outline-primary:focus, .btn-check:active + .btn-outline-primary:focus, .btn-outline-primary:active:focus, .btn-outline-primary.active:focus, .btn-outline-primary.dropdown-toggle.show:focus {\n box-shadow: 0 0 0 0 rgba(63, 106, 216, 0.5);\n}\n.btn-outline-primary:disabled, .btn-outline-primary.disabled {\n color: #3f6ad8;\n background-color: transparent;\n}\n.btn-outline-primary.btn-shadow {\n box-shadow: 0 0.125rem 0.625rem rgba(63, 106, 216, 0.4), 0 0.0625rem 0.125rem rgba(63, 106, 216, 0.5);\n}\n.btn-outline-primary.btn-shadow.active:hover, .btn-outline-primary.btn-shadow.disabled:hover, .btn-outline-primary.btn-shadow:active:hover, .btn-outline-primary.btn-shadow:disabled:hover {\n box-shadow: 0 0.125rem 0.625rem rgba(63, 106, 216, 0.5), 0 0.0625rem 0.125rem rgba(63, 106, 216, 0.6);\n}\n.btn-outline-primary.btn-shadow:hover {\n box-shadow: 0px 5px 15px 2px rgba(63, 106, 216, 0.19);\n}\n\n.btn-outline-secondary {\n color: #6c757d;\n border-color: #6c757d;\n}\n.btn-outline-secondary:hover {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n.btn-check:focus + .btn-outline-secondary, .btn-outline-secondary:focus {\n box-shadow: 0 0 0 0 rgba(108, 117, 125, 0.5);\n}\n.btn-check:checked + .btn-outline-secondary, .btn-check:active + .btn-outline-secondary, .btn-outline-secondary:active, .btn-outline-secondary.active, .btn-outline-secondary.dropdown-toggle.show {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n.btn-check:checked + .btn-outline-secondary:focus, .btn-check:active + .btn-outline-secondary:focus, .btn-outline-secondary:active:focus, .btn-outline-secondary.active:focus, .btn-outline-secondary.dropdown-toggle.show:focus {\n box-shadow: 0 0 0 0 rgba(108, 117, 125, 0.5);\n}\n.btn-outline-secondary:disabled, .btn-outline-secondary.disabled {\n color: #6c757d;\n background-color: transparent;\n}\n.btn-outline-secondary.btn-shadow {\n box-shadow: 0 0.125rem 0.625rem rgba(108, 117, 125, 0.4), 0 0.0625rem 0.125rem rgba(108, 117, 125, 0.5);\n}\n.btn-outline-secondary.btn-shadow.active:hover, .btn-outline-secondary.btn-shadow.disabled:hover, .btn-outline-secondary.btn-shadow:active:hover, .btn-outline-secondary.btn-shadow:disabled:hover {\n box-shadow: 0 0.125rem 0.625rem rgba(108, 117, 125, 0.5), 0 0.0625rem 0.125rem rgba(108, 117, 125, 0.6);\n}\n.btn-outline-secondary.btn-shadow:hover {\n box-shadow: 0px 5px 15px 2px rgba(108, 117, 125, 0.19);\n}\n\n.btn-outline-success {\n color: #3ac47d;\n border-color: #3ac47d;\n}\n.btn-outline-success:hover {\n color: #000;\n background-color: #3ac47d;\n border-color: #3ac47d;\n}\n.btn-check:focus + .btn-outline-success, .btn-outline-success:focus {\n box-shadow: 0 0 0 0 rgba(58, 196, 125, 0.5);\n}\n.btn-check:checked + .btn-outline-success, .btn-check:active + .btn-outline-success, .btn-outline-success:active, .btn-outline-success.active, .btn-outline-success.dropdown-toggle.show {\n color: #000;\n background-color: #3ac47d;\n border-color: #3ac47d;\n}\n.btn-check:checked + .btn-outline-success:focus, .btn-check:active + .btn-outline-success:focus, .btn-outline-success:active:focus, .btn-outline-success.active:focus, .btn-outline-success.dropdown-toggle.show:focus {\n box-shadow: 0 0 0 0 rgba(58, 196, 125, 0.5);\n}\n.btn-outline-success:disabled, .btn-outline-success.disabled {\n color: #3ac47d;\n background-color: transparent;\n}\n.btn-outline-success.btn-shadow {\n box-shadow: 0 0.125rem 0.625rem rgba(58, 196, 125, 0.4), 0 0.0625rem 0.125rem rgba(58, 196, 125, 0.5);\n}\n.btn-outline-success.btn-shadow.active:hover, .btn-outline-success.btn-shadow.disabled:hover, .btn-outline-success.btn-shadow:active:hover, .btn-outline-success.btn-shadow:disabled:hover {\n box-shadow: 0 0.125rem 0.625rem rgba(58, 196, 125, 0.5), 0 0.0625rem 0.125rem rgba(58, 196, 125, 0.6);\n}\n.btn-outline-success.btn-shadow:hover {\n box-shadow: 0px 5px 15px 2px rgba(58, 196, 125, 0.19);\n}\n\n.btn-outline-info {\n color: #16aaff;\n border-color: #16aaff;\n}\n.btn-outline-info:hover {\n color: #000;\n background-color: #16aaff;\n border-color: #16aaff;\n}\n.btn-check:focus + .btn-outline-info, .btn-outline-info:focus {\n box-shadow: 0 0 0 0 rgba(22, 170, 255, 0.5);\n}\n.btn-check:checked + .btn-outline-info, .btn-check:active + .btn-outline-info, .btn-outline-info:active, .btn-outline-info.active, .btn-outline-info.dropdown-toggle.show {\n color: #000;\n background-color: #16aaff;\n border-color: #16aaff;\n}\n.btn-check:checked + .btn-outline-info:focus, .btn-check:active + .btn-outline-info:focus, .btn-outline-info:active:focus, .btn-outline-info.active:focus, .btn-outline-info.dropdown-toggle.show:focus {\n box-shadow: 0 0 0 0 rgba(22, 170, 255, 0.5);\n}\n.btn-outline-info:disabled, .btn-outline-info.disabled {\n color: #16aaff;\n background-color: transparent;\n}\n.btn-outline-info.btn-shadow {\n box-shadow: 0 0.125rem 0.625rem rgba(22, 170, 255, 0.4), 0 0.0625rem 0.125rem rgba(22, 170, 255, 0.5);\n}\n.btn-outline-info.btn-shadow.active:hover, .btn-outline-info.btn-shadow.disabled:hover, .btn-outline-info.btn-shadow:active:hover, .btn-outline-info.btn-shadow:disabled:hover {\n box-shadow: 0 0.125rem 0.625rem rgba(22, 170, 255, 0.5), 0 0.0625rem 0.125rem rgba(22, 170, 255, 0.6);\n}\n.btn-outline-info.btn-shadow:hover {\n box-shadow: 0px 5px 15px 2px rgba(22, 170, 255, 0.19);\n}\n\n.btn-outline-warning {\n color: #f7b924;\n border-color: #f7b924;\n}\n.btn-outline-warning:hover {\n color: #000;\n background-color: #f7b924;\n border-color: #f7b924;\n}\n.btn-check:focus + .btn-outline-warning, .btn-outline-warning:focus {\n box-shadow: 0 0 0 0 rgba(247, 185, 36, 0.5);\n}\n.btn-check:checked + .btn-outline-warning, .btn-check:active + .btn-outline-warning, .btn-outline-warning:active, .btn-outline-warning.active, .btn-outline-warning.dropdown-toggle.show {\n color: #000;\n background-color: #f7b924;\n border-color: #f7b924;\n}\n.btn-check:checked + .btn-outline-warning:focus, .btn-check:active + .btn-outline-warning:focus, .btn-outline-warning:active:focus, .btn-outline-warning.active:focus, .btn-outline-warning.dropdown-toggle.show:focus {\n box-shadow: 0 0 0 0 rgba(247, 185, 36, 0.5);\n}\n.btn-outline-warning:disabled, .btn-outline-warning.disabled {\n color: #f7b924;\n background-color: transparent;\n}\n.btn-outline-warning.btn-shadow {\n box-shadow: 0 0.125rem 0.625rem rgba(247, 185, 36, 0.4), 0 0.0625rem 0.125rem rgba(247, 185, 36, 0.5);\n}\n.btn-outline-warning.btn-shadow.active:hover, .btn-outline-warning.btn-shadow.disabled:hover, .btn-outline-warning.btn-shadow:active:hover, .btn-outline-warning.btn-shadow:disabled:hover {\n box-shadow: 0 0.125rem 0.625rem rgba(247, 185, 36, 0.5), 0 0.0625rem 0.125rem rgba(247, 185, 36, 0.6);\n}\n.btn-outline-warning.btn-shadow:hover {\n box-shadow: 0px 5px 15px 2px rgba(247, 185, 36, 0.19);\n}\n\n.btn-outline-danger {\n color: #d92550;\n border-color: #d92550;\n}\n.btn-outline-danger:hover {\n color: #fff;\n background-color: #d92550;\n border-color: #d92550;\n}\n.btn-check:focus + .btn-outline-danger, .btn-outline-danger:focus {\n box-shadow: 0 0 0 0 rgba(217, 37, 80, 0.5);\n}\n.btn-check:checked + .btn-outline-danger, .btn-check:active + .btn-outline-danger, .btn-outline-danger:active, .btn-outline-danger.active, .btn-outline-danger.dropdown-toggle.show {\n color: #fff;\n background-color: #d92550;\n border-color: #d92550;\n}\n.btn-check:checked + .btn-outline-danger:focus, .btn-check:active + .btn-outline-danger:focus, .btn-outline-danger:active:focus, .btn-outline-danger.active:focus, .btn-outline-danger.dropdown-toggle.show:focus {\n box-shadow: 0 0 0 0 rgba(217, 37, 80, 0.5);\n}\n.btn-outline-danger:disabled, .btn-outline-danger.disabled {\n color: #d92550;\n background-color: transparent;\n}\n.btn-outline-danger.btn-shadow {\n box-shadow: 0 0.125rem 0.625rem rgba(217, 37, 80, 0.4), 0 0.0625rem 0.125rem rgba(217, 37, 80, 0.5);\n}\n.btn-outline-danger.btn-shadow.active:hover, .btn-outline-danger.btn-shadow.disabled:hover, .btn-outline-danger.btn-shadow:active:hover, .btn-outline-danger.btn-shadow:disabled:hover {\n box-shadow: 0 0.125rem 0.625rem rgba(217, 37, 80, 0.5), 0 0.0625rem 0.125rem rgba(217, 37, 80, 0.6);\n}\n.btn-outline-danger.btn-shadow:hover {\n box-shadow: 0px 5px 15px 2px rgba(217, 37, 80, 0.19);\n}\n\n.btn-outline-light {\n color: #eeeeee;\n border-color: #eeeeee;\n}\n.btn-outline-light:hover {\n color: #000;\n background-color: #eeeeee;\n border-color: #eeeeee;\n}\n.btn-check:focus + .btn-outline-light, .btn-outline-light:focus {\n box-shadow: 0 0 0 0 rgba(238, 238, 238, 0.5);\n}\n.btn-check:checked + .btn-outline-light, .btn-check:active + .btn-outline-light, .btn-outline-light:active, .btn-outline-light.active, .btn-outline-light.dropdown-toggle.show {\n color: #000;\n background-color: #eeeeee;\n border-color: #eeeeee;\n}\n.btn-check:checked + .btn-outline-light:focus, .btn-check:active + .btn-outline-light:focus, .btn-outline-light:active:focus, .btn-outline-light.active:focus, .btn-outline-light.dropdown-toggle.show:focus {\n box-shadow: 0 0 0 0 rgba(238, 238, 238, 0.5);\n}\n.btn-outline-light:disabled, .btn-outline-light.disabled {\n color: #eeeeee;\n background-color: transparent;\n}\n.btn-outline-light.btn-shadow {\n box-shadow: 0 0.125rem 0.625rem rgba(238, 238, 238, 0.4), 0 0.0625rem 0.125rem rgba(238, 238, 238, 0.5);\n}\n.btn-outline-light.btn-shadow.active:hover, .btn-outline-light.btn-shadow.disabled:hover, .btn-outline-light.btn-shadow:active:hover, .btn-outline-light.btn-shadow:disabled:hover {\n box-shadow: 0 0.125rem 0.625rem rgba(238, 238, 238, 0.5), 0 0.0625rem 0.125rem rgba(238, 238, 238, 0.6);\n}\n.btn-outline-light.btn-shadow:hover {\n box-shadow: 0px 5px 15px 2px rgba(238, 238, 238, 0.19);\n}\n\n.btn-outline-dark {\n color: #343a40;\n border-color: #343a40;\n}\n.btn-outline-dark:hover {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n.btn-check:focus + .btn-outline-dark, .btn-outline-dark:focus {\n box-shadow: 0 0 0 0 rgba(52, 58, 64, 0.5);\n}\n.btn-check:checked + .btn-outline-dark, .btn-check:active + .btn-outline-dark, .btn-outline-dark:active, .btn-outline-dark.active, .btn-outline-dark.dropdown-toggle.show {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n.btn-check:checked + .btn-outline-dark:focus, .btn-check:active + .btn-outline-dark:focus, .btn-outline-dark:active:focus, .btn-outline-dark.active:focus, .btn-outline-dark.dropdown-toggle.show:focus {\n box-shadow: 0 0 0 0 rgba(52, 58, 64, 0.5);\n}\n.btn-outline-dark:disabled, .btn-outline-dark.disabled {\n color: #343a40;\n background-color: transparent;\n}\n.btn-outline-dark.btn-shadow {\n box-shadow: 0 0.125rem 0.625rem rgba(52, 58, 64, 0.4), 0 0.0625rem 0.125rem rgba(52, 58, 64, 0.5);\n}\n.btn-outline-dark.btn-shadow.active:hover, .btn-outline-dark.btn-shadow.disabled:hover, .btn-outline-dark.btn-shadow:active:hover, .btn-outline-dark.btn-shadow:disabled:hover {\n box-shadow: 0 0.125rem 0.625rem rgba(52, 58, 64, 0.5), 0 0.0625rem 0.125rem rgba(52, 58, 64, 0.6);\n}\n.btn-outline-dark.btn-shadow:hover {\n box-shadow: 0px 5px 15px 2px rgba(52, 58, 64, 0.19);\n}\n\n.btn-outline-focus {\n color: #444054;\n border-color: #444054;\n}\n.btn-outline-focus:hover {\n color: #fff;\n background-color: #444054;\n border-color: #444054;\n}\n.btn-check:focus + .btn-outline-focus, .btn-outline-focus:focus {\n box-shadow: 0 0 0 0 rgba(68, 64, 84, 0.5);\n}\n.btn-check:checked + .btn-outline-focus, .btn-check:active + .btn-outline-focus, .btn-outline-focus:active, .btn-outline-focus.active, .btn-outline-focus.dropdown-toggle.show {\n color: #fff;\n background-color: #444054;\n border-color: #444054;\n}\n.btn-check:checked + .btn-outline-focus:focus, .btn-check:active + .btn-outline-focus:focus, .btn-outline-focus:active:focus, .btn-outline-focus.active:focus, .btn-outline-focus.dropdown-toggle.show:focus {\n box-shadow: 0 0 0 0 rgba(68, 64, 84, 0.5);\n}\n.btn-outline-focus:disabled, .btn-outline-focus.disabled {\n color: #444054;\n background-color: transparent;\n}\n.btn-outline-focus.btn-shadow {\n box-shadow: 0 0.125rem 0.625rem rgba(68, 64, 84, 0.4), 0 0.0625rem 0.125rem rgba(68, 64, 84, 0.5);\n}\n.btn-outline-focus.btn-shadow.active:hover, .btn-outline-focus.btn-shadow.disabled:hover, .btn-outline-focus.btn-shadow:active:hover, .btn-outline-focus.btn-shadow:disabled:hover {\n box-shadow: 0 0.125rem 0.625rem rgba(68, 64, 84, 0.5), 0 0.0625rem 0.125rem rgba(68, 64, 84, 0.6);\n}\n.btn-outline-focus.btn-shadow:hover {\n box-shadow: 0px 5px 15px 2px rgba(68, 64, 84, 0.19);\n}\n\n.btn-outline-alternate {\n color: #794c8a;\n border-color: #794c8a;\n}\n.btn-outline-alternate:hover {\n color: #fff;\n background-color: #794c8a;\n border-color: #794c8a;\n}\n.btn-check:focus + .btn-outline-alternate, .btn-outline-alternate:focus {\n box-shadow: 0 0 0 0 rgba(121, 76, 138, 0.5);\n}\n.btn-check:checked + .btn-outline-alternate, .btn-check:active + .btn-outline-alternate, .btn-outline-alternate:active, .btn-outline-alternate.active, .btn-outline-alternate.dropdown-toggle.show {\n color: #fff;\n background-color: #794c8a;\n border-color: #794c8a;\n}\n.btn-check:checked + .btn-outline-alternate:focus, .btn-check:active + .btn-outline-alternate:focus, .btn-outline-alternate:active:focus, .btn-outline-alternate.active:focus, .btn-outline-alternate.dropdown-toggle.show:focus {\n box-shadow: 0 0 0 0 rgba(121, 76, 138, 0.5);\n}\n.btn-outline-alternate:disabled, .btn-outline-alternate.disabled {\n color: #794c8a;\n background-color: transparent;\n}\n.btn-outline-alternate.btn-shadow {\n box-shadow: 0 0.125rem 0.625rem rgba(121, 76, 138, 0.4), 0 0.0625rem 0.125rem rgba(121, 76, 138, 0.5);\n}\n.btn-outline-alternate.btn-shadow.active:hover, .btn-outline-alternate.btn-shadow.disabled:hover, .btn-outline-alternate.btn-shadow:active:hover, .btn-outline-alternate.btn-shadow:disabled:hover {\n box-shadow: 0 0.125rem 0.625rem rgba(121, 76, 138, 0.5), 0 0.0625rem 0.125rem rgba(121, 76, 138, 0.6);\n}\n.btn-outline-alternate.btn-shadow:hover {\n box-shadow: 0px 5px 15px 2px rgba(121, 76, 138, 0.19);\n}\n\n.btn {\n position: relative;\n transition: color 0.15s, background-color 0.15s, border-color 0.15s, box-shadow 0.15s;\n font-size: 0.8rem;\n}\n@media (prefers-reduced-motion: reduce) {\n .btn {\n transition: none;\n }\n}\n\n.btn-light {\n border-color: gainsboro;\n}\n\n.btn-outline-light {\n color: #8f8f8f;\n}\n\n.dropdown-menu {\n box-shadow: 0 0.46875rem 2.1875rem rgba(4, 9, 20, 0.03), 0 0.9375rem 1.40625rem rgba(4, 9, 20, 0.03), 0 0.25rem 0.53125rem rgba(4, 9, 20, 0.05), 0 0.125rem 0.1875rem rgba(4, 9, 20, 0.03);\n margin: 0.125rem;\n}\n.dropdown-menu.dropdown-menu-right {\n right: 0 !important;\n}\n.dropdown-menu .dropdown-header {\n text-transform: uppercase;\n font-size: 0.7333333333rem;\n color: #3f6ad8;\n font-weight: bold;\n}\n.dropdown-menu .dropdown-item {\n font-size: 0.88rem;\n display: flex;\n align-items: center;\n transition: background-color 0.3s ease, color 0.3s ease;\n cursor: pointer;\n z-index: 6;\n position: relative;\n}\n.dropdown-menu .dropdown-item .dropdown-icon {\n font-size: 1rem;\n margin-right: 0.325rem;\n width: 30px;\n text-align: center;\n opacity: 0.3;\n margin-left: -10px;\n}\n.dropdown-menu .dropdown-item:hover .dropdown-icon {\n opacity: 0.7;\n}\n.dropdown-menu.dropdown-menu-shadow {\n box-shadow: 0 0.66875rem 2.3875rem rgba(4, 9, 20, 0.03), 0 1.1375rem 1.60625rem rgba(4, 9, 20, 0.03), 0 0.45rem 0.73125rem rgba(4, 9, 20, 0.05), 0 0.325rem 0.3875rem rgba(4, 9, 20, 0.03);\n}\n\n.dropdown-toggle::after {\n position: relative;\n top: 2px;\n opacity: 0.8;\n margin-left: 5px;\n}\n\n.dropdown-toggle-split::after {\n margin-left: 0;\n}\n\n.dropright .dropdown-toggle::after {\n top: 0;\n}\n\n.dropdown-toggle-split {\n border-left: rgba(255, 255, 255, 0.1) solid 2px;\n}\n\n.badge {\n font-weight: bold;\n text-transform: uppercase;\n padding: 5px 10px;\n min-width: 19px;\n}\n\n.badge-light {\n background: #fff;\n}\n\n.btn .badge {\n margin-left: 8px;\n}\n\n.btn-sm .rounded-pill, .btn-group-sm > .btn .rounded-pill {\n position: absolute;\n top: -4px;\n right: -4px;\n}\n\n.badge-abs {\n position: absolute;\n right: -3px;\n top: -3px;\n}\n\n.card {\n box-shadow: 0 0.46875rem 2.1875rem rgba(4, 9, 20, 0.03), 0 0.9375rem 1.40625rem rgba(4, 9, 20, 0.03), 0 0.25rem 0.53125rem rgba(4, 9, 20, 0.05), 0 0.125rem 0.1875rem rgba(4, 9, 20, 0.03);\n border-width: 0;\n transition: all 0.2s;\n}\n.card > .dropdown-menu-header {\n margin: 0;\n}\n.card > .dropdown-menu-header .dropdown-menu-header-inner {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n.card.text-dark.text-white .card-footer,\n.card.text-dark.text-white .card-header, .card.text-white .card-footer,\n.card.text-white .card-header {\n background: rgba(255, 255, 255, 0.1);\n color: rgba(255, 255, 255, 0.9);\n}\n.card.text-dark.text-white .card-footer,\n.card.text-dark.text-white .card-header {\n color: rgba(0, 0, 0, 0.9);\n}\n.card .card-footer {\n display: flex;\n align-items: center;\n}\n\n.btn-actions-pane-right {\n margin-left: auto;\n white-space: nowrap;\n}\n.btn-actions-pane-right a {\n text-transform: none;\n}\n\n.btn-actions-pane-left {\n margin-right: auto;\n}\n\n.actions-icon-btn .btn-icon-only {\n padding-left: 0;\n padding-right: 0;\n color: #495057;\n}\n.actions-icon-btn .btn-icon-only .btn-icon-wrapper {\n font-size: 1.3rem;\n width: 30px;\n text-align: center;\n}\n.actions-icon-btn .btn-icon-only:hover {\n color: #3f6ad8;\n}\n\n.card-header,\n.card-title {\n text-transform: uppercase;\n color: rgba(13, 27, 62, 0.7);\n font-weight: bold;\n font-size: 0.88rem;\n}\n\n.card-header {\n display: flex;\n align-items: center;\n border-bottom-width: 1px;\n padding-top: 0;\n padding-bottom: 0;\n padding-right: 0.5rem;\n height: 3.5rem;\n}\n.card-header.no-border {\n border: 0;\n padding: 0;\n height: auto;\n}\n.card-header .menu-header-subtitle {\n display: block;\n}\n.card-header.card-header-tab .nav {\n width: auto;\n margin-left: auto;\n}\n.card-header.card-header-tab .card-header-title {\n display: flex;\n align-items: center;\n white-space: nowrap;\n}\n.card-header .header-icon {\n font-size: 1.65rem;\n margin-right: 0.5rem;\n}\n.card-header > .nav {\n margin-left: -0.5rem;\n height: 100%;\n width: 100%;\n}\n.card-header > .nav .nav-item {\n position: relative;\n height: 100%;\n display: flex;\n align-items: center;\n}\n.card-header > .nav .nav-link {\n text-transform: none;\n width: 100%;\n display: block;\n color: #495057;\n}\n.card-header > .nav .nav-link::before {\n content: \"\";\n border-radius: 15px;\n background: #3f6ad8;\n transition: all 0.2s;\n height: 4px;\n width: 100%;\n position: absolute;\n left: 0;\n bottom: -2px;\n opacity: 0;\n}\n.card-header > .nav .nav-link:hover {\n color: #3f6ad8;\n}\n.card-header > .nav .nav-link.active {\n color: #3f6ad8;\n}\n.card-header > .nav .nav-link.active::before {\n opacity: 1;\n}\n\n.card-border {\n box-shadow: 0 0 0 transparent;\n border-width: 1px;\n}\n\n.card-subtitle {\n margin-bottom: 1rem;\n font-size: 0.968rem;\n color: rgba(13, 27, 62, 0.55);\n}\n\n.card-shadow-primary {\n box-shadow: 0 0.46875rem 2.1875rem rgba(63, 106, 216, 0.03), 0 0.9375rem 1.40625rem rgba(63, 106, 216, 0.03), 0 0.25rem 0.53125rem rgba(63, 106, 216, 0.05), 0 0.125rem 0.1875rem rgba(63, 106, 216, 0.03);\n}\n\n.card-shadow-secondary {\n box-shadow: 0 0.46875rem 2.1875rem rgba(108, 117, 125, 0.03), 0 0.9375rem 1.40625rem rgba(108, 117, 125, 0.03), 0 0.25rem 0.53125rem rgba(108, 117, 125, 0.05), 0 0.125rem 0.1875rem rgba(108, 117, 125, 0.03);\n}\n\n.card-shadow-success {\n box-shadow: 0 0.46875rem 2.1875rem rgba(58, 196, 125, 0.03), 0 0.9375rem 1.40625rem rgba(58, 196, 125, 0.03), 0 0.25rem 0.53125rem rgba(58, 196, 125, 0.05), 0 0.125rem 0.1875rem rgba(58, 196, 125, 0.03);\n}\n\n.card-shadow-info {\n box-shadow: 0 0.46875rem 2.1875rem rgba(22, 170, 255, 0.03), 0 0.9375rem 1.40625rem rgba(22, 170, 255, 0.03), 0 0.25rem 0.53125rem rgba(22, 170, 255, 0.05), 0 0.125rem 0.1875rem rgba(22, 170, 255, 0.03);\n}\n\n.card-shadow-warning {\n box-shadow: 0 0.46875rem 2.1875rem rgba(247, 185, 36, 0.03), 0 0.9375rem 1.40625rem rgba(247, 185, 36, 0.03), 0 0.25rem 0.53125rem rgba(247, 185, 36, 0.05), 0 0.125rem 0.1875rem rgba(247, 185, 36, 0.03);\n}\n\n.card-shadow-danger {\n box-shadow: 0 0.46875rem 2.1875rem rgba(217, 37, 80, 0.03), 0 0.9375rem 1.40625rem rgba(217, 37, 80, 0.03), 0 0.25rem 0.53125rem rgba(217, 37, 80, 0.05), 0 0.125rem 0.1875rem rgba(217, 37, 80, 0.03);\n}\n\n.card-shadow-light {\n box-shadow: 0 0.46875rem 2.1875rem rgba(238, 238, 238, 0.03), 0 0.9375rem 1.40625rem rgba(238, 238, 238, 0.03), 0 0.25rem 0.53125rem rgba(238, 238, 238, 0.05), 0 0.125rem 0.1875rem rgba(238, 238, 238, 0.03);\n}\n\n.card-shadow-dark {\n box-shadow: 0 0.46875rem 2.1875rem rgba(52, 58, 64, 0.03), 0 0.9375rem 1.40625rem rgba(52, 58, 64, 0.03), 0 0.25rem 0.53125rem rgba(52, 58, 64, 0.05), 0 0.125rem 0.1875rem rgba(52, 58, 64, 0.03);\n}\n\n.card-shadow-focus {\n box-shadow: 0 0.46875rem 2.1875rem rgba(68, 64, 84, 0.03), 0 0.9375rem 1.40625rem rgba(68, 64, 84, 0.03), 0 0.25rem 0.53125rem rgba(68, 64, 84, 0.05), 0 0.125rem 0.1875rem rgba(68, 64, 84, 0.03);\n}\n\n.card-shadow-alternate {\n box-shadow: 0 0.46875rem 2.1875rem rgba(121, 76, 138, 0.03), 0 0.9375rem 1.40625rem rgba(121, 76, 138, 0.03), 0 0.25rem 0.53125rem rgba(121, 76, 138, 0.05), 0 0.125rem 0.1875rem rgba(121, 76, 138, 0.03);\n}\n\n.card-header-lg {\n padding: 2rem 2rem;\n height: auto;\n}\n\n.nav-pills,\n.nav-tabs {\n margin-bottom: 1rem;\n}\n\n.nav-link {\n font-weight: bold;\n}\n.nav-link:hover {\n cursor: pointer;\n}\n\n.nav-tabs .nav-link:hover {\n color: #3f6ad8 !important;\n}\n.nav-tabs .nav-link.active {\n color: #3f6ad8;\n}\n\n.nav-pills .nav-link:hover {\n color: #3f6ad8 !important;\n}\n.nav-pills .nav-link.active {\n background: #3f6ad8;\n}\n.nav-pills .nav-link.active:hover {\n color: #fff !important;\n}\n\n.tabs-animated .nav-link {\n position: relative;\n padding: 1rem;\n margin: 0 0.75rem 0 0;\n color: #495057;\n}\n.tabs-animated .nav-link::before {\n transform: scale(0);\n opacity: 1;\n width: 100%;\n left: 0;\n bottom: -2px;\n content: \"\";\n position: absolute;\n display: block;\n border-radius: 0.25rem;\n background: #3f6ad8;\n transition: all 0.2s;\n height: 4px;\n}\n.tabs-animated .nav-link.active, .tabs-animated .nav-link:hover {\n color: #3f6ad8;\n}\n.tabs-animated .nav-link.active::before, .tabs-animated .nav-link:hover::before {\n transform: scale(1);\n}\n\n.tabs-animated-shadow .nav-link {\n padding: 0.5rem 0.75rem;\n margin-bottom: 0.75rem;\n}\n.tabs-animated-shadow .nav-link span {\n position: relative;\n z-index: 5;\n display: inline-block;\n width: 100%;\n}\n.tabs-animated-shadow .nav-link::before {\n height: 100%;\n top: 0;\n z-index: 4;\n bottom: auto;\n box-shadow: 0 16px 26px -10px rgba(63, 106, 216, 0.56), 0 4px 25px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(63, 106, 216, 0.2);\n border-radius: 100%;\n opacity: 0.5;\n}\n.tabs-animated-shadow .nav-link.active, .tabs-animated-shadow .nav-link:hover {\n color: #fff;\n}\n.tabs-animated-shadow .nav-link.active::before, .tabs-animated-shadow .nav-link:hover::before {\n border-radius: 0.25rem;\n opacity: 1;\n}\n.tabs-animated-shadow .nav-item:last-child .nav-link {\n margin-right: 0;\n}\n.tabs-animated-shadow.tabs-shadow-bordered {\n border-bottom: rgba(26, 54, 126, 0.125) solid 1px;\n}\n.tabs-animated-shadow.tabs-shadow-bordered .nav-link {\n margin-bottom: 0;\n}\n\n.body-tabs-shadow .body-tabs-animated {\n padding: 0.75rem 0;\n}\n.body-tabs-shadow .body-tabs-animated .nav-link span {\n position: relative;\n z-index: 5;\n}\n.body-tabs-shadow .body-tabs-animated .nav-link::before {\n height: 70%;\n top: 15%;\n z-index: 4;\n bottom: auto;\n box-shadow: 0 16px 26px -10px rgba(63, 106, 216, 0.56), 0 4px 25px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(63, 106, 216, 0.2);\n border-radius: 100%;\n opacity: 0.5;\n}\n.body-tabs-shadow .body-tabs-animated .nav-link.active, .body-tabs-shadow .body-tabs-animated .nav-link:hover {\n color: #fff;\n}\n.body-tabs-shadow .body-tabs-animated .nav-link.active::before, .body-tabs-shadow .body-tabs-animated .nav-link:hover::before {\n border-radius: 0.25rem;\n opacity: 1;\n}\n\n.body-tabs-line .body-tabs-layout {\n margin: 0 -1.5rem;\n padding: 0 1.5rem;\n margin-bottom: 1.5rem;\n border-bottom: #dee2e6 solid 1px;\n}\n\n.accordion-wrapper {\n border-radius: 0.25rem;\n border: #e9ecef solid 1px;\n}\n.accordion-wrapper > .card {\n box-shadow: 0 0 0 0 transparent;\n}\n.accordion-wrapper > .card > .card-header {\n padding: 1rem;\n height: auto;\n}\n.accordion-wrapper > .card > .card-header .btn:active,\n.accordion-wrapper > .card > .card-header .btn:focus,\n.accordion-wrapper > .card > .card-header .btn:hover {\n text-decoration: none;\n}\n.accordion-wrapper > .card > .card-header .form-heading p {\n margin: 0;\n}\n.accordion-wrapper > .card .collapse {\n border-bottom: transparent solid 1px;\n}\n.accordion-wrapper > .card .collapse.show {\n border-bottom-color: #e9ecef;\n}\n\n.modal-header,\n.modal-footer {\n background: #f8f9fa;\n}\n\n.modal-footer {\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.modal-dialog {\n box-shadow: 0 0.76875rem 2.4875rem rgba(52, 58, 64, 0.3), 0 1.3375rem 1.70625rem rgba(52, 58, 64, 0.3), 0 0.55rem 0.53125rem rgba(0, 0, 0, 0.05), 0 0.225rem 0.4375rem rgba(52, 58, 64, 0.3);\n border-radius: 0.25rem;\n}\n\n.nav-item .nav-link {\n font-weight: normal;\n}\n\n.nav-link {\n display: flex;\n align-items: center;\n transition: background-color 0.3s ease, color 0.3s ease;\n cursor: pointer;\n}\n.nav-link .nav-link-icon {\n color: #3f6ad8;\n font-size: 1rem;\n width: 30px;\n text-align: center;\n opacity: 0.45;\n margin-left: -10px;\n}\n.nav-link:hover {\n color: #495057;\n}\n.nav-link:hover .nav-link-icon {\n opacity: 0.9;\n color: #3f6ad8;\n}\n.nav-link:disabled .nav-link-icon, .nav-link.disabled .nav-link-icon {\n opacity: 0.3;\n}\n\n.nav-item.nav-item-header {\n text-transform: uppercase;\n font-size: 0.7333333333rem;\n color: #6c757d;\n font-weight: bold;\n padding: 0.5rem 1rem;\n}\n.nav-item.nav-item-btn {\n padding: 0.5rem 1rem;\n}\n.nav-item.nav-item-divider {\n margin: 0.5rem 0;\n height: 1px;\n overflow: hidden;\n background: #dee2e6;\n}\n\n.nav .badge {\n margin-left: 8px;\n}\n\n.nav-pills .nav-link.active, .nav-pills .nav-link.active:hover {\n color: #fff;\n}\n.nav-pills .nav-link.active .nav-link-icon, .nav-pills .nav-link.active:hover .nav-link-icon {\n color: #fff;\n opacity: 0.8;\n}\n.nav-pills .nav-link:hover {\n color: #495057 !important;\n}\n\n.nav-justified .nav-link .nav-text {\n display: block;\n width: 100%;\n text-align: center;\n}\n\n.list-group-flush + .card-footer {\n border-top: 0;\n}\n\n.rm-list-borders .list-group-item {\n border: 0;\n padding: 0.6666666667rem 0;\n}\n\n.rm-list-borders-scroll .list-group-item {\n border: 0;\n padding-right: 1.5rem;\n}\n\nlegend {\n font-size: 0.88rem;\n font-weight: bold;\n}\n\n.form-heading {\n font-size: 1.1rem;\n margin: 0;\n color: #3f6ad8;\n}\n.form-heading p {\n color: #6c757d;\n padding: 0.3rem 0 0;\n font-size: 0.88rem;\n}\n\n.custom-select {\n -webkit-appearance: none;\n -moz-appearance: none;\n}\n\n.pagination li a {\n position: relative;\n display: block;\n padding: 0.375rem 0.75rem;\n margin-left: -1px;\n color: #3f6ad8;\n background-color: #fff;\n border: 1px solid #dee2e6;\n}\n.pagination li a:hover {\n z-index: 2;\n color: #3255ad;\n text-decoration: none;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n.pagination li a:focus {\n z-index: 2;\n outline: 0;\n box-shadow: none;\n}\n.pagination li a:not(:disabled):not(.disabled) {\n cursor: pointer;\n}\n.pagination li:first-child a {\n margin-left: 0;\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n.pagination li:last-child a {\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n}\n.pagination li.active a {\n z-index: 1;\n color: #fff;\n background-color: #3f6ad8;\n border-color: #3f6ad8;\n}\n.pagination li.active a:hover {\n color: #fff;\n}\n.pagination li.disabled a {\n color: #6c757d;\n pointer-events: none;\n cursor: auto;\n background-color: #fff;\n border-color: #dee2e6;\n}\n\n.widget-content {\n padding: 1rem;\n flex-direction: row;\n align-items: center;\n}\n.widget-content .widget-content-wrapper {\n display: flex;\n flex: 1;\n position: relative;\n align-items: center;\n}\n.widget-content .widget-content-left .widget-heading {\n opacity: 0.8;\n font-weight: bold;\n}\n.widget-content .widget-content-left .widget-subheading {\n opacity: 0.5;\n}\n.widget-content .widget-content-right {\n margin-left: auto;\n}\n.widget-content .widget-numbers {\n font-weight: bold;\n font-size: 1.8rem;\n display: block;\n}\n.widget-content .widget-content-outer {\n display: flex;\n flex: 1;\n flex-direction: column;\n}\n.widget-content .widget-progress-wrapper {\n margin-top: 1rem;\n}\n.widget-content .widget-progress-wrapper .progress-sub-label {\n margin-top: 0.3333333333rem;\n opacity: 0.5;\n display: flex;\n align-content: center;\n align-items: center;\n}\n.widget-content .widget-progress-wrapper .progress-sub-label .sub-label-right {\n margin-left: auto;\n}\n.widget-content .widget-content-right.widget-content-actions {\n visibility: hidden;\n opacity: 0;\n transition: opacity 0.2s;\n}\n.widget-content:hover .widget-content-right.widget-content-actions {\n visibility: visible;\n opacity: 1;\n}\n\n/*\n * Container style\n */\n.ps {\n overflow: hidden !important;\n overflow-anchor: none;\n touch-action: auto;\n}\n\n/*\n * Scrollbar rail styles\n */\n.ps__rail-x {\n display: none !important;\n opacity: 0;\n transition: background-color 0.2s linear, opacity 0.2s linear;\n height: 15px;\n /* there must be 'bottom' or 'top' for ps__rail-x */\n bottom: 0;\n /* please don't change 'position' */\n position: absolute;\n z-index: 7;\n}\n\n.ps__rail-y {\n display: none;\n opacity: 0;\n transition: background-color 0.2s linear, opacity 0.2s linear;\n width: 15px;\n /* there must be 'right' or 'left' for ps__rail-y */\n right: 0;\n /* please don't change 'position' */\n position: absolute;\n border-radius: 50px;\n z-index: 7;\n}\n\n.ps--active-x > .ps__rail-x,\n.ps--active-y > .ps__rail-y {\n display: block;\n background-color: transparent;\n}\n\n.ps:hover > .ps__rail-x,\n.ps:hover > .ps__rail-y,\n.ps--focus > .ps__rail-x,\n.ps--focus > .ps__rail-y,\n.ps--scrolling-x > .ps__rail-x,\n.ps--scrolling-y > .ps__rail-y {\n opacity: 0.6;\n}\n\n.ps__rail-x:hover,\n.ps__rail-y:hover,\n.ps__rail-x:focus,\n.ps__rail-y:focus {\n background-color: rgba(0, 0, 0, 0.1);\n opacity: 0.9;\n}\n\n/*\n * Scrollbar thumb styles\n */\n.ps__thumb-x {\n background-color: rgba(0, 0, 0, 0.1);\n border-radius: 6px;\n transition: background-color 0.2s linear, height 0.2s ease-in-out;\n height: 6px;\n /* there must be 'bottom' for ps__thumb-x */\n bottom: 2px;\n /* please don't change 'position' */\n position: absolute;\n}\n\n.ps__thumb-y {\n background-color: rgba(0, 0, 0, 0.1);\n border-radius: 6px;\n transition: background-color 0.2s linear, width 0.2s ease-in-out;\n width: 6px;\n /* there must be 'right' for ps__thumb-y */\n right: 2px;\n /* please don't change 'position' */\n position: absolute;\n}\n\n.ps__rail-x:hover > .ps__thumb-x,\n.ps__rail-x:focus > .ps__thumb-x {\n background-color: rgba(0, 0, 0, 0.12);\n height: 11px;\n}\n\n.ps__rail-y:hover > .ps__thumb-y,\n.ps__rail-y:focus > .ps__thumb-y {\n background-color: rgba(0, 0, 0, 0.12);\n width: 11px;\n}\n\n/* MS supports */\n@supports (-ms-overflow-style: none) {\n .ps {\n overflow: auto !important;\n }\n}\n@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {\n .ps {\n overflow: auto !important;\n }\n}\n.scrollbar-sidebar,\n.scrollbar-container {\n position: relative;\n height: 100%;\n}\n\n.scroll-area {\n overflow-x: hidden;\n height: 400px;\n}\n\n.scroll-area-xs {\n height: 150px;\n overflow-x: hidden;\n}\n\n.scroll-area-sm {\n height: 200px;\n overflow-x: hidden;\n}\n\n.scroll-area-md {\n height: 300px;\n overflow-x: hidden;\n}\n\n.scroll-area-lg {\n height: 400px;\n overflow-x: hidden;\n}\n\n.scroll-area-x {\n overflow-x: auto;\n width: 100%;\n max-width: 100%;\n}\n\n.shadow-overflow {\n position: relative;\n}\n.shadow-overflow::after, .shadow-overflow::before {\n width: 100%;\n bottom: auto;\n top: 0;\n left: 0;\n height: 1.5rem;\n position: absolute;\n z-index: 10;\n content: \"\";\n background: linear-gradient(to bottom, rgb(255, 255, 255) 20%, rgba(255, 255, 255, 0) 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#ffffff\", endColorstr=\"#00ffffff\", GradientType=0);\n}\n.shadow-overflow::after {\n bottom: 0;\n top: auto;\n background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, rgb(255, 255, 255) 80%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#00ffffff\", endColorstr=\"#ffffff\", GradientType=0);\n}\n\n/*!\n * Font Awesome Free 6.1.1 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n * Copyright 2022 Fonticons, Inc.\n */\n.fa {\n font-family: var(--fa-style-family, \"Font Awesome 6 Free\");\n font-weight: var(--fa-style, 900);\n}\n\n.fa,\n.fas,\n.fa-solid,\n.far,\n.fa-regular,\n.fal,\n.fa-light,\n.fat,\n.fa-thin,\n.fad,\n.fa-duotone,\n.fab,\n.fa-brands {\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n display: var(--fa-display, inline-block);\n font-style: normal;\n font-variant: normal;\n line-height: 1;\n text-rendering: auto;\n}\n\n.fa-1x {\n font-size: 1em;\n}\n\n.fa-2x {\n font-size: 2em;\n}\n\n.fa-3x {\n font-size: 3em;\n}\n\n.fa-4x {\n font-size: 4em;\n}\n\n.fa-5x {\n font-size: 5em;\n}\n\n.fa-6x {\n font-size: 6em;\n}\n\n.fa-7x {\n font-size: 7em;\n}\n\n.fa-8x {\n font-size: 8em;\n}\n\n.fa-9x {\n font-size: 9em;\n}\n\n.fa-10x {\n font-size: 10em;\n}\n\n.fa-2xs {\n font-size: 0.625em;\n line-height: 0.1em;\n vertical-align: 0.225em;\n}\n\n.fa-xs {\n font-size: 0.75em;\n line-height: 0.0833333337em;\n vertical-align: 0.125em;\n}\n\n.fa-sm {\n font-size: 0.875em;\n line-height: 0.0714285718em;\n vertical-align: 0.0535714295em;\n}\n\n.fa-lg {\n font-size: 1.25em;\n line-height: 0.05em;\n vertical-align: -0.075em;\n}\n\n.fa-xl {\n font-size: 1.5em;\n line-height: 0.0416666682em;\n vertical-align: -0.125em;\n}\n\n.fa-2xl {\n font-size: 2em;\n line-height: 0.03125em;\n vertical-align: -0.1875em;\n}\n\n.fa-fw {\n text-align: center;\n width: 1.25em;\n}\n\n.fa-ul {\n list-style-type: none;\n margin-left: var(--fa-li-margin, 2.5em);\n padding-left: 0;\n}\n.fa-ul > li {\n position: relative;\n}\n\n.fa-li {\n left: calc(var(--fa-li-width, 2em) * -1);\n position: absolute;\n text-align: center;\n width: var(--fa-li-width, 2em);\n line-height: inherit;\n}\n\n.fa-border {\n border-color: var(--fa-border-color, #eee);\n border-radius: var(--fa-border-radius, 0.1em);\n border-style: var(--fa-border-style, solid);\n border-width: var(--fa-border-width, 0.08em);\n padding: var(--fa-border-padding, 0.2em 0.25em 0.15em);\n}\n\n.fa-pull-left {\n float: left;\n margin-right: var(--fa-pull-margin, 0.3em);\n}\n\n.fa-pull-right {\n float: right;\n margin-left: var(--fa-pull-margin, 0.3em);\n}\n\n.fa-beat {\n animation-name: fa-beat;\n animation-delay: var(--fa-animation-delay, 0);\n animation-direction: var(--fa-animation-direction, normal);\n animation-duration: var(--fa-animation-duration, 1s);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\n}\n\n.fa-bounce {\n animation-name: fa-bounce;\n animation-delay: var(--fa-animation-delay, 0);\n animation-direction: var(--fa-animation-direction, normal);\n animation-duration: var(--fa-animation-duration, 1s);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));\n}\n\n.fa-fade {\n animation-name: fa-fade;\n animation-delay: var(--fa-animation-delay, 0);\n animation-direction: var(--fa-animation-direction, normal);\n animation-duration: var(--fa-animation-duration, 1s);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n}\n\n.fa-beat-fade {\n animation-name: fa-beat-fade;\n animation-delay: var(--fa-animation-delay, 0);\n animation-direction: var(--fa-animation-direction, normal);\n animation-duration: var(--fa-animation-duration, 1s);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n}\n\n.fa-flip {\n animation-name: fa-flip;\n animation-delay: var(--fa-animation-delay, 0);\n animation-direction: var(--fa-animation-direction, normal);\n animation-duration: var(--fa-animation-duration, 1s);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\n}\n\n.fa-shake {\n animation-name: fa-shake;\n animation-delay: var(--fa-animation-delay, 0);\n animation-direction: var(--fa-animation-direction, normal);\n animation-duration: var(--fa-animation-duration, 1s);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-timing-function: var(--fa-animation-timing, linear);\n}\n\n.fa-spin {\n animation-name: fa-spin;\n animation-delay: var(--fa-animation-delay, 0);\n animation-direction: var(--fa-animation-direction, normal);\n animation-duration: var(--fa-animation-duration, 2s);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-timing-function: var(--fa-animation-timing, linear);\n}\n\n.fa-spin-reverse {\n --fa-animation-direction: reverse;\n}\n\n.fa-pulse,\n.fa-spin-pulse {\n animation-name: fa-spin;\n animation-direction: var(--fa-animation-direction, normal);\n animation-duration: var(--fa-animation-duration, 1s);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-timing-function: var(--fa-animation-timing, steps(8));\n}\n\n@media (prefers-reduced-motion: reduce) {\n .fa-beat,\n.fa-bounce,\n.fa-fade,\n.fa-beat-fade,\n.fa-flip,\n.fa-pulse,\n.fa-shake,\n.fa-spin,\n.fa-spin-pulse {\n animation-delay: -1ms;\n animation-duration: 1ms;\n animation-iteration-count: 1;\n transition-delay: 0s;\n transition-duration: 0s;\n }\n}\n@keyframes fa-beat {\n 0%, 90% {\n transform: scale(1);\n }\n 45% {\n transform: scale(var(--fa-beat-scale, 1.25));\n }\n}\n@keyframes fa-bounce {\n 0% {\n transform: scale(1, 1) translateY(0);\n }\n 10% {\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\n }\n 30% {\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\n }\n 50% {\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\n }\n 57% {\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\n }\n 64% {\n transform: scale(1, 1) translateY(0);\n }\n 100% {\n transform: scale(1, 1) translateY(0);\n }\n}\n@keyframes fa-fade {\n 50% {\n opacity: var(--fa-fade-opacity, 0.4);\n }\n}\n@keyframes fa-beat-fade {\n 0%, 100% {\n opacity: var(--fa-beat-fade-opacity, 0.4);\n transform: scale(1);\n }\n 50% {\n opacity: 1;\n transform: scale(var(--fa-beat-fade-scale, 1.125));\n }\n}\n@keyframes fa-flip {\n 50% {\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\n }\n}\n@keyframes fa-shake {\n 0% {\n transform: rotate(-15deg);\n }\n 4% {\n transform: rotate(15deg);\n }\n 8%, 24% {\n transform: rotate(-18deg);\n }\n 12%, 28% {\n transform: rotate(18deg);\n }\n 16% {\n transform: rotate(-22deg);\n }\n 20% {\n transform: rotate(22deg);\n }\n 32% {\n transform: rotate(-12deg);\n }\n 36% {\n transform: rotate(12deg);\n }\n 40%, 100% {\n transform: rotate(0deg);\n }\n}\n@keyframes fa-spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n.fa-rotate-90 {\n transform: rotate(90deg);\n}\n\n.fa-rotate-180 {\n transform: rotate(180deg);\n}\n\n.fa-rotate-270 {\n transform: rotate(270deg);\n}\n\n.fa-flip-horizontal {\n transform: scale(-1, 1);\n}\n\n.fa-flip-vertical {\n transform: scale(1, -1);\n}\n\n.fa-flip-both,\n.fa-flip-horizontal.fa-flip-vertical {\n transform: scale(-1, -1);\n}\n\n.fa-rotate-by {\n transform: rotate(var(--fa-rotate-angle, none));\n}\n\n.fa-stack {\n display: inline-block;\n height: 2em;\n line-height: 2em;\n position: relative;\n vertical-align: middle;\n width: 2.5em;\n}\n\n.fa-stack-1x,\n.fa-stack-2x {\n left: 0;\n position: absolute;\n text-align: center;\n width: 100%;\n z-index: var(--fa-stack-z-index, auto);\n}\n\n.fa-stack-1x {\n line-height: inherit;\n}\n\n.fa-stack-2x {\n font-size: 2em;\n}\n\n.fa-inverse {\n color: var(--fa-inverse, #fff);\n}\n\n/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen\nreaders do not read off random characters that represent icons */\n.fa-0::before {\n content: \"\\30 \";\n}\n\n.fa-1::before {\n content: \"\\31 \";\n}\n\n.fa-2::before {\n content: \"\\32 \";\n}\n\n.fa-3::before {\n content: \"\\33 \";\n}\n\n.fa-4::before {\n content: \"\\34 \";\n}\n\n.fa-5::before {\n content: \"\\35 \";\n}\n\n.fa-6::before {\n content: \"\\36 \";\n}\n\n.fa-7::before {\n content: \"\\37 \";\n}\n\n.fa-8::before {\n content: \"\\38 \";\n}\n\n.fa-9::before {\n content: \"\\39 \";\n}\n\n.fa-a::before {\n content: \"A\";\n}\n\n.fa-address-book::before {\n content: \"\\f2b9\";\n}\n\n.fa-contact-book::before {\n content: \"\\f2b9\";\n}\n\n.fa-address-card::before {\n content: \"\\f2bb\";\n}\n\n.fa-contact-card::before {\n content: \"\\f2bb\";\n}\n\n.fa-vcard::before {\n content: \"\\f2bb\";\n}\n\n.fa-align-center::before {\n content: \"\\f037\";\n}\n\n.fa-align-justify::before {\n content: \"\\f039\";\n}\n\n.fa-align-left::before {\n content: \"\\f036\";\n}\n\n.fa-align-right::before {\n content: \"\\f038\";\n}\n\n.fa-anchor::before {\n content: \"\\f13d\";\n}\n\n.fa-anchor-circle-check::before {\n content: \"\\e4aa\";\n}\n\n.fa-anchor-circle-exclamation::before {\n content: \"\\e4ab\";\n}\n\n.fa-anchor-circle-xmark::before {\n content: \"\\e4ac\";\n}\n\n.fa-anchor-lock::before {\n content: \"\\e4ad\";\n}\n\n.fa-angle-down::before {\n content: \"\\f107\";\n}\n\n.fa-angle-left::before {\n content: \"\\f104\";\n}\n\n.fa-angle-right::before {\n content: \"\\f105\";\n}\n\n.fa-angle-up::before {\n content: \"\\f106\";\n}\n\n.fa-angles-down::before {\n content: \"\\f103\";\n}\n\n.fa-angle-double-down::before {\n content: \"\\f103\";\n}\n\n.fa-angles-left::before {\n content: \"\\f100\";\n}\n\n.fa-angle-double-left::before {\n content: \"\\f100\";\n}\n\n.fa-angles-right::before {\n content: \"\\f101\";\n}\n\n.fa-angle-double-right::before {\n content: \"\\f101\";\n}\n\n.fa-angles-up::before {\n content: \"\\f102\";\n}\n\n.fa-angle-double-up::before {\n content: \"\\f102\";\n}\n\n.fa-ankh::before {\n content: \"\\f644\";\n}\n\n.fa-apple-whole::before {\n content: \"\\f5d1\";\n}\n\n.fa-apple-alt::before {\n content: \"\\f5d1\";\n}\n\n.fa-archway::before {\n content: \"\\f557\";\n}\n\n.fa-arrow-down::before {\n content: \"\\f063\";\n}\n\n.fa-arrow-down-1-9::before {\n content: \"\\f162\";\n}\n\n.fa-sort-numeric-asc::before {\n content: \"\\f162\";\n}\n\n.fa-sort-numeric-down::before {\n content: \"\\f162\";\n}\n\n.fa-arrow-down-9-1::before {\n content: \"\\f886\";\n}\n\n.fa-sort-numeric-desc::before {\n content: \"\\f886\";\n}\n\n.fa-sort-numeric-down-alt::before {\n content: \"\\f886\";\n}\n\n.fa-arrow-down-a-z::before {\n content: \"\\f15d\";\n}\n\n.fa-sort-alpha-asc::before {\n content: \"\\f15d\";\n}\n\n.fa-sort-alpha-down::before {\n content: \"\\f15d\";\n}\n\n.fa-arrow-down-long::before {\n content: \"\\f175\";\n}\n\n.fa-long-arrow-down::before {\n content: \"\\f175\";\n}\n\n.fa-arrow-down-short-wide::before {\n content: \"\\f884\";\n}\n\n.fa-sort-amount-desc::before {\n content: \"\\f884\";\n}\n\n.fa-sort-amount-down-alt::before {\n content: \"\\f884\";\n}\n\n.fa-arrow-down-up-across-line::before {\n content: \"\\e4af\";\n}\n\n.fa-arrow-down-up-lock::before {\n content: \"\\e4b0\";\n}\n\n.fa-arrow-down-wide-short::before {\n content: \"\\f160\";\n}\n\n.fa-sort-amount-asc::before {\n content: \"\\f160\";\n}\n\n.fa-sort-amount-down::before {\n content: \"\\f160\";\n}\n\n.fa-arrow-down-z-a::before {\n content: \"\\f881\";\n}\n\n.fa-sort-alpha-desc::before {\n content: \"\\f881\";\n}\n\n.fa-sort-alpha-down-alt::before {\n content: \"\\f881\";\n}\n\n.fa-arrow-left::before {\n content: \"\\f060\";\n}\n\n.fa-arrow-left-long::before {\n content: \"\\f177\";\n}\n\n.fa-long-arrow-left::before {\n content: \"\\f177\";\n}\n\n.fa-arrow-pointer::before {\n content: \"\\f245\";\n}\n\n.fa-mouse-pointer::before {\n content: \"\\f245\";\n}\n\n.fa-arrow-right::before {\n content: \"\\f061\";\n}\n\n.fa-arrow-right-arrow-left::before {\n content: \"\\f0ec\";\n}\n\n.fa-exchange::before {\n content: \"\\f0ec\";\n}\n\n.fa-arrow-right-from-bracket::before {\n content: \"\\f08b\";\n}\n\n.fa-sign-out::before {\n content: \"\\f08b\";\n}\n\n.fa-arrow-right-long::before {\n content: \"\\f178\";\n}\n\n.fa-long-arrow-right::before {\n content: \"\\f178\";\n}\n\n.fa-arrow-right-to-bracket::before {\n content: \"\\f090\";\n}\n\n.fa-sign-in::before {\n content: \"\\f090\";\n}\n\n.fa-arrow-right-to-city::before {\n content: \"\\e4b3\";\n}\n\n.fa-arrow-rotate-left::before {\n content: \"\\f0e2\";\n}\n\n.fa-arrow-left-rotate::before {\n content: \"\\f0e2\";\n}\n\n.fa-arrow-rotate-back::before {\n content: \"\\f0e2\";\n}\n\n.fa-arrow-rotate-backward::before {\n content: \"\\f0e2\";\n}\n\n.fa-undo::before {\n content: \"\\f0e2\";\n}\n\n.fa-arrow-rotate-right::before {\n content: \"\\f01e\";\n}\n\n.fa-arrow-right-rotate::before {\n content: \"\\f01e\";\n}\n\n.fa-arrow-rotate-forward::before {\n content: \"\\f01e\";\n}\n\n.fa-redo::before {\n content: \"\\f01e\";\n}\n\n.fa-arrow-trend-down::before {\n content: \"\\e097\";\n}\n\n.fa-arrow-trend-up::before {\n content: \"\\e098\";\n}\n\n.fa-arrow-turn-down::before {\n content: \"\\f149\";\n}\n\n.fa-level-down::before {\n content: \"\\f149\";\n}\n\n.fa-arrow-turn-up::before {\n content: \"\\f148\";\n}\n\n.fa-level-up::before {\n content: \"\\f148\";\n}\n\n.fa-arrow-up::before {\n content: \"\\f062\";\n}\n\n.fa-arrow-up-1-9::before {\n content: \"\\f163\";\n}\n\n.fa-sort-numeric-up::before {\n content: \"\\f163\";\n}\n\n.fa-arrow-up-9-1::before {\n content: \"\\f887\";\n}\n\n.fa-sort-numeric-up-alt::before {\n content: \"\\f887\";\n}\n\n.fa-arrow-up-a-z::before {\n content: \"\\f15e\";\n}\n\n.fa-sort-alpha-up::before {\n content: \"\\f15e\";\n}\n\n.fa-arrow-up-from-bracket::before {\n content: \"\\e09a\";\n}\n\n.fa-arrow-up-from-ground-water::before {\n content: \"\\e4b5\";\n}\n\n.fa-arrow-up-from-water-pump::before {\n content: \"\\e4b6\";\n}\n\n.fa-arrow-up-long::before {\n content: \"\\f176\";\n}\n\n.fa-long-arrow-up::before {\n content: \"\\f176\";\n}\n\n.fa-arrow-up-right-dots::before {\n content: \"\\e4b7\";\n}\n\n.fa-arrow-up-right-from-square::before {\n content: \"\\f08e\";\n}\n\n.fa-external-link::before {\n content: \"\\f08e\";\n}\n\n.fa-arrow-up-short-wide::before {\n content: \"\\f885\";\n}\n\n.fa-sort-amount-up-alt::before {\n content: \"\\f885\";\n}\n\n.fa-arrow-up-wide-short::before {\n content: \"\\f161\";\n}\n\n.fa-sort-amount-up::before {\n content: \"\\f161\";\n}\n\n.fa-arrow-up-z-a::before {\n content: \"\\f882\";\n}\n\n.fa-sort-alpha-up-alt::before {\n content: \"\\f882\";\n}\n\n.fa-arrows-down-to-line::before {\n content: \"\\e4b8\";\n}\n\n.fa-arrows-down-to-people::before {\n content: \"\\e4b9\";\n}\n\n.fa-arrows-left-right::before {\n content: \"\\f07e\";\n}\n\n.fa-arrows-h::before {\n content: \"\\f07e\";\n}\n\n.fa-arrows-left-right-to-line::before {\n content: \"\\e4ba\";\n}\n\n.fa-arrows-rotate::before {\n content: \"\\f021\";\n}\n\n.fa-refresh::before {\n content: \"\\f021\";\n}\n\n.fa-sync::before {\n content: \"\\f021\";\n}\n\n.fa-arrows-spin::before {\n content: \"\\e4bb\";\n}\n\n.fa-arrows-split-up-and-left::before {\n content: \"\\e4bc\";\n}\n\n.fa-arrows-to-circle::before {\n content: \"\\e4bd\";\n}\n\n.fa-arrows-to-dot::before {\n content: \"\\e4be\";\n}\n\n.fa-arrows-to-eye::before {\n content: \"\\e4bf\";\n}\n\n.fa-arrows-turn-right::before {\n content: \"\\e4c0\";\n}\n\n.fa-arrows-turn-to-dots::before {\n content: \"\\e4c1\";\n}\n\n.fa-arrows-up-down::before {\n content: \"\\f07d\";\n}\n\n.fa-arrows-v::before {\n content: \"\\f07d\";\n}\n\n.fa-arrows-up-down-left-right::before {\n content: \"\\f047\";\n}\n\n.fa-arrows::before {\n content: \"\\f047\";\n}\n\n.fa-arrows-up-to-line::before {\n content: \"\\e4c2\";\n}\n\n.fa-asterisk::before {\n content: \"\\*\";\n}\n\n.fa-at::before {\n content: \"\\@\";\n}\n\n.fa-atom::before {\n content: \"\\f5d2\";\n}\n\n.fa-audio-description::before {\n content: \"\\f29e\";\n}\n\n.fa-austral-sign::before {\n content: \"\\e0a9\";\n}\n\n.fa-award::before {\n content: \"\\f559\";\n}\n\n.fa-b::before {\n content: \"B\";\n}\n\n.fa-baby::before {\n content: \"\\f77c\";\n}\n\n.fa-baby-carriage::before {\n content: \"\\f77d\";\n}\n\n.fa-carriage-baby::before {\n content: \"\\f77d\";\n}\n\n.fa-backward::before {\n content: \"\\f04a\";\n}\n\n.fa-backward-fast::before {\n content: \"\\f049\";\n}\n\n.fa-fast-backward::before {\n content: \"\\f049\";\n}\n\n.fa-backward-step::before {\n content: \"\\f048\";\n}\n\n.fa-step-backward::before {\n content: \"\\f048\";\n}\n\n.fa-bacon::before {\n content: \"\\f7e5\";\n}\n\n.fa-bacteria::before {\n content: \"\\e059\";\n}\n\n.fa-bacterium::before {\n content: \"\\e05a\";\n}\n\n.fa-bag-shopping::before {\n content: \"\\f290\";\n}\n\n.fa-shopping-bag::before {\n content: \"\\f290\";\n}\n\n.fa-bahai::before {\n content: \"\\f666\";\n}\n\n.fa-baht-sign::before {\n content: \"\\e0ac\";\n}\n\n.fa-ban::before {\n content: \"\\f05e\";\n}\n\n.fa-cancel::before {\n content: \"\\f05e\";\n}\n\n.fa-ban-smoking::before {\n content: \"\\f54d\";\n}\n\n.fa-smoking-ban::before {\n content: \"\\f54d\";\n}\n\n.fa-bandage::before {\n content: \"\\f462\";\n}\n\n.fa-band-aid::before {\n content: \"\\f462\";\n}\n\n.fa-barcode::before {\n content: \"\\f02a\";\n}\n\n.fa-bars::before {\n content: \"\\f0c9\";\n}\n\n.fa-navicon::before {\n content: \"\\f0c9\";\n}\n\n.fa-bars-progress::before {\n content: \"\\f828\";\n}\n\n.fa-tasks-alt::before {\n content: \"\\f828\";\n}\n\n.fa-bars-staggered::before {\n content: \"\\f550\";\n}\n\n.fa-reorder::before {\n content: \"\\f550\";\n}\n\n.fa-stream::before {\n content: \"\\f550\";\n}\n\n.fa-baseball::before {\n content: \"\\f433\";\n}\n\n.fa-baseball-ball::before {\n content: \"\\f433\";\n}\n\n.fa-baseball-bat-ball::before {\n content: \"\\f432\";\n}\n\n.fa-basket-shopping::before {\n content: \"\\f291\";\n}\n\n.fa-shopping-basket::before {\n content: \"\\f291\";\n}\n\n.fa-basketball::before {\n content: \"\\f434\";\n}\n\n.fa-basketball-ball::before {\n content: \"\\f434\";\n}\n\n.fa-bath::before {\n content: \"\\f2cd\";\n}\n\n.fa-bathtub::before {\n content: \"\\f2cd\";\n}\n\n.fa-battery-empty::before {\n content: \"\\f244\";\n}\n\n.fa-battery-0::before {\n content: \"\\f244\";\n}\n\n.fa-battery-full::before {\n content: \"\\f240\";\n}\n\n.fa-battery::before {\n content: \"\\f240\";\n}\n\n.fa-battery-5::before {\n content: \"\\f240\";\n}\n\n.fa-battery-half::before {\n content: \"\\f242\";\n}\n\n.fa-battery-3::before {\n content: \"\\f242\";\n}\n\n.fa-battery-quarter::before {\n content: \"\\f243\";\n}\n\n.fa-battery-2::before {\n content: \"\\f243\";\n}\n\n.fa-battery-three-quarters::before {\n content: \"\\f241\";\n}\n\n.fa-battery-4::before {\n content: \"\\f241\";\n}\n\n.fa-bed::before {\n content: \"\\f236\";\n}\n\n.fa-bed-pulse::before {\n content: \"\\f487\";\n}\n\n.fa-procedures::before {\n content: \"\\f487\";\n}\n\n.fa-beer-mug-empty::before {\n content: \"\\f0fc\";\n}\n\n.fa-beer::before {\n content: \"\\f0fc\";\n}\n\n.fa-bell::before {\n content: \"\\f0f3\";\n}\n\n.fa-bell-concierge::before {\n content: \"\\f562\";\n}\n\n.fa-concierge-bell::before {\n content: \"\\f562\";\n}\n\n.fa-bell-slash::before {\n content: \"\\f1f6\";\n}\n\n.fa-bezier-curve::before {\n content: \"\\f55b\";\n}\n\n.fa-bicycle::before {\n content: \"\\f206\";\n}\n\n.fa-binoculars::before {\n content: \"\\f1e5\";\n}\n\n.fa-biohazard::before {\n content: \"\\f780\";\n}\n\n.fa-bitcoin-sign::before {\n content: \"\\e0b4\";\n}\n\n.fa-blender::before {\n content: \"\\f517\";\n}\n\n.fa-blender-phone::before {\n content: \"\\f6b6\";\n}\n\n.fa-blog::before {\n content: \"\\f781\";\n}\n\n.fa-bold::before {\n content: \"\\f032\";\n}\n\n.fa-bolt::before {\n content: \"\\f0e7\";\n}\n\n.fa-zap::before {\n content: \"\\f0e7\";\n}\n\n.fa-bolt-lightning::before {\n content: \"\\e0b7\";\n}\n\n.fa-bomb::before {\n content: \"\\f1e2\";\n}\n\n.fa-bone::before {\n content: \"\\f5d7\";\n}\n\n.fa-bong::before {\n content: \"\\f55c\";\n}\n\n.fa-book::before {\n content: \"\\f02d\";\n}\n\n.fa-book-atlas::before {\n content: \"\\f558\";\n}\n\n.fa-atlas::before {\n content: \"\\f558\";\n}\n\n.fa-book-bible::before {\n content: \"\\f647\";\n}\n\n.fa-bible::before {\n content: \"\\f647\";\n}\n\n.fa-book-bookmark::before {\n content: \"\\e0bb\";\n}\n\n.fa-book-journal-whills::before {\n content: \"\\f66a\";\n}\n\n.fa-journal-whills::before {\n content: \"\\f66a\";\n}\n\n.fa-book-medical::before {\n content: \"\\f7e6\";\n}\n\n.fa-book-open::before {\n content: \"\\f518\";\n}\n\n.fa-book-open-reader::before {\n content: \"\\f5da\";\n}\n\n.fa-book-reader::before {\n content: \"\\f5da\";\n}\n\n.fa-book-quran::before {\n content: \"\\f687\";\n}\n\n.fa-quran::before {\n content: \"\\f687\";\n}\n\n.fa-book-skull::before {\n content: \"\\f6b7\";\n}\n\n.fa-book-dead::before {\n content: \"\\f6b7\";\n}\n\n.fa-bookmark::before {\n content: \"\\f02e\";\n}\n\n.fa-border-all::before {\n content: \"\\f84c\";\n}\n\n.fa-border-none::before {\n content: \"\\f850\";\n}\n\n.fa-border-top-left::before {\n content: \"\\f853\";\n}\n\n.fa-border-style::before {\n content: \"\\f853\";\n}\n\n.fa-bore-hole::before {\n content: \"\\e4c3\";\n}\n\n.fa-bottle-droplet::before {\n content: \"\\e4c4\";\n}\n\n.fa-bottle-water::before {\n content: \"\\e4c5\";\n}\n\n.fa-bowl-food::before {\n content: \"\\e4c6\";\n}\n\n.fa-bowl-rice::before {\n content: \"\\e2eb\";\n}\n\n.fa-bowling-ball::before {\n content: \"\\f436\";\n}\n\n.fa-box::before {\n content: \"\\f466\";\n}\n\n.fa-box-archive::before {\n content: \"\\f187\";\n}\n\n.fa-archive::before {\n content: \"\\f187\";\n}\n\n.fa-box-open::before {\n content: \"\\f49e\";\n}\n\n.fa-box-tissue::before {\n content: \"\\e05b\";\n}\n\n.fa-boxes-packing::before {\n content: \"\\e4c7\";\n}\n\n.fa-boxes-stacked::before {\n content: \"\\f468\";\n}\n\n.fa-boxes::before {\n content: \"\\f468\";\n}\n\n.fa-boxes-alt::before {\n content: \"\\f468\";\n}\n\n.fa-braille::before {\n content: \"\\f2a1\";\n}\n\n.fa-brain::before {\n content: \"\\f5dc\";\n}\n\n.fa-brazilian-real-sign::before {\n content: \"\\e46c\";\n}\n\n.fa-bread-slice::before {\n content: \"\\f7ec\";\n}\n\n.fa-bridge::before {\n content: \"\\e4c8\";\n}\n\n.fa-bridge-circle-check::before {\n content: \"\\e4c9\";\n}\n\n.fa-bridge-circle-exclamation::before {\n content: \"\\e4ca\";\n}\n\n.fa-bridge-circle-xmark::before {\n content: \"\\e4cb\";\n}\n\n.fa-bridge-lock::before {\n content: \"\\e4cc\";\n}\n\n.fa-bridge-water::before {\n content: \"\\e4ce\";\n}\n\n.fa-briefcase::before {\n content: \"\\f0b1\";\n}\n\n.fa-briefcase-medical::before {\n content: \"\\f469\";\n}\n\n.fa-broom::before {\n content: \"\\f51a\";\n}\n\n.fa-broom-ball::before {\n content: \"\\f458\";\n}\n\n.fa-quidditch::before {\n content: \"\\f458\";\n}\n\n.fa-quidditch-broom-ball::before {\n content: \"\\f458\";\n}\n\n.fa-brush::before {\n content: \"\\f55d\";\n}\n\n.fa-bucket::before {\n content: \"\\e4cf\";\n}\n\n.fa-bug::before {\n content: \"\\f188\";\n}\n\n.fa-bug-slash::before {\n content: \"\\e490\";\n}\n\n.fa-bugs::before {\n content: \"\\e4d0\";\n}\n\n.fa-building::before {\n content: \"\\f1ad\";\n}\n\n.fa-building-circle-arrow-right::before {\n content: \"\\e4d1\";\n}\n\n.fa-building-circle-check::before {\n content: \"\\e4d2\";\n}\n\n.fa-building-circle-exclamation::before {\n content: \"\\e4d3\";\n}\n\n.fa-building-circle-xmark::before {\n content: \"\\e4d4\";\n}\n\n.fa-building-columns::before {\n content: \"\\f19c\";\n}\n\n.fa-bank::before {\n content: \"\\f19c\";\n}\n\n.fa-institution::before {\n content: \"\\f19c\";\n}\n\n.fa-museum::before {\n content: \"\\f19c\";\n}\n\n.fa-university::before {\n content: \"\\f19c\";\n}\n\n.fa-building-flag::before {\n content: \"\\e4d5\";\n}\n\n.fa-building-lock::before {\n content: \"\\e4d6\";\n}\n\n.fa-building-ngo::before {\n content: \"\\e4d7\";\n}\n\n.fa-building-shield::before {\n content: \"\\e4d8\";\n}\n\n.fa-building-un::before {\n content: \"\\e4d9\";\n}\n\n.fa-building-user::before {\n content: \"\\e4da\";\n}\n\n.fa-building-wheat::before {\n content: \"\\e4db\";\n}\n\n.fa-bullhorn::before {\n content: \"\\f0a1\";\n}\n\n.fa-bullseye::before {\n content: \"\\f140\";\n}\n\n.fa-burger::before {\n content: \"\\f805\";\n}\n\n.fa-hamburger::before {\n content: \"\\f805\";\n}\n\n.fa-burst::before {\n content: \"\\e4dc\";\n}\n\n.fa-bus::before {\n content: \"\\f207\";\n}\n\n.fa-bus-simple::before {\n content: \"\\f55e\";\n}\n\n.fa-bus-alt::before {\n content: \"\\f55e\";\n}\n\n.fa-business-time::before {\n content: \"\\f64a\";\n}\n\n.fa-briefcase-clock::before {\n content: \"\\f64a\";\n}\n\n.fa-c::before {\n content: \"C\";\n}\n\n.fa-cake-candles::before {\n content: \"\\f1fd\";\n}\n\n.fa-birthday-cake::before {\n content: \"\\f1fd\";\n}\n\n.fa-cake::before {\n content: \"\\f1fd\";\n}\n\n.fa-calculator::before {\n content: \"\\f1ec\";\n}\n\n.fa-calendar::before {\n content: \"\\f133\";\n}\n\n.fa-calendar-check::before {\n content: \"\\f274\";\n}\n\n.fa-calendar-day::before {\n content: \"\\f783\";\n}\n\n.fa-calendar-days::before {\n content: \"\\f073\";\n}\n\n.fa-calendar-alt::before {\n content: \"\\f073\";\n}\n\n.fa-calendar-minus::before {\n content: \"\\f272\";\n}\n\n.fa-calendar-plus::before {\n content: \"\\f271\";\n}\n\n.fa-calendar-week::before {\n content: \"\\f784\";\n}\n\n.fa-calendar-xmark::before {\n content: \"\\f273\";\n}\n\n.fa-calendar-times::before {\n content: \"\\f273\";\n}\n\n.fa-camera::before {\n content: \"\\f030\";\n}\n\n.fa-camera-alt::before {\n content: \"\\f030\";\n}\n\n.fa-camera-retro::before {\n content: \"\\f083\";\n}\n\n.fa-camera-rotate::before {\n content: \"\\e0d8\";\n}\n\n.fa-campground::before {\n content: \"\\f6bb\";\n}\n\n.fa-candy-cane::before {\n content: \"\\f786\";\n}\n\n.fa-cannabis::before {\n content: \"\\f55f\";\n}\n\n.fa-capsules::before {\n content: \"\\f46b\";\n}\n\n.fa-car::before {\n content: \"\\f1b9\";\n}\n\n.fa-automobile::before {\n content: \"\\f1b9\";\n}\n\n.fa-car-battery::before {\n content: \"\\f5df\";\n}\n\n.fa-battery-car::before {\n content: \"\\f5df\";\n}\n\n.fa-car-burst::before {\n content: \"\\f5e1\";\n}\n\n.fa-car-crash::before {\n content: \"\\f5e1\";\n}\n\n.fa-car-on::before {\n content: \"\\e4dd\";\n}\n\n.fa-car-rear::before {\n content: \"\\f5de\";\n}\n\n.fa-car-alt::before {\n content: \"\\f5de\";\n}\n\n.fa-car-side::before {\n content: \"\\f5e4\";\n}\n\n.fa-car-tunnel::before {\n content: \"\\e4de\";\n}\n\n.fa-caravan::before {\n content: \"\\f8ff\";\n}\n\n.fa-caret-down::before {\n content: \"\\f0d7\";\n}\n\n.fa-caret-left::before {\n content: \"\\f0d9\";\n}\n\n.fa-caret-right::before {\n content: \"\\f0da\";\n}\n\n.fa-caret-up::before {\n content: \"\\f0d8\";\n}\n\n.fa-carrot::before {\n content: \"\\f787\";\n}\n\n.fa-cart-arrow-down::before {\n content: \"\\f218\";\n}\n\n.fa-cart-flatbed::before {\n content: \"\\f474\";\n}\n\n.fa-dolly-flatbed::before {\n content: \"\\f474\";\n}\n\n.fa-cart-flatbed-suitcase::before {\n content: \"\\f59d\";\n}\n\n.fa-luggage-cart::before {\n content: \"\\f59d\";\n}\n\n.fa-cart-plus::before {\n content: \"\\f217\";\n}\n\n.fa-cart-shopping::before {\n content: \"\\f07a\";\n}\n\n.fa-shopping-cart::before {\n content: \"\\f07a\";\n}\n\n.fa-cash-register::before {\n content: \"\\f788\";\n}\n\n.fa-cat::before {\n content: \"\\f6be\";\n}\n\n.fa-cedi-sign::before {\n content: \"\\e0df\";\n}\n\n.fa-cent-sign::before {\n content: \"\\e3f5\";\n}\n\n.fa-certificate::before {\n content: \"\\f0a3\";\n}\n\n.fa-chair::before {\n content: \"\\f6c0\";\n}\n\n.fa-chalkboard::before {\n content: \"\\f51b\";\n}\n\n.fa-blackboard::before {\n content: \"\\f51b\";\n}\n\n.fa-chalkboard-user::before {\n content: \"\\f51c\";\n}\n\n.fa-chalkboard-teacher::before {\n content: \"\\f51c\";\n}\n\n.fa-champagne-glasses::before {\n content: \"\\f79f\";\n}\n\n.fa-glass-cheers::before {\n content: \"\\f79f\";\n}\n\n.fa-charging-station::before {\n content: \"\\f5e7\";\n}\n\n.fa-chart-area::before {\n content: \"\\f1fe\";\n}\n\n.fa-area-chart::before {\n content: \"\\f1fe\";\n}\n\n.fa-chart-bar::before {\n content: \"\\f080\";\n}\n\n.fa-bar-chart::before {\n content: \"\\f080\";\n}\n\n.fa-chart-column::before {\n content: \"\\e0e3\";\n}\n\n.fa-chart-gantt::before {\n content: \"\\e0e4\";\n}\n\n.fa-chart-line::before {\n content: \"\\f201\";\n}\n\n.fa-line-chart::before {\n content: \"\\f201\";\n}\n\n.fa-chart-pie::before {\n content: \"\\f200\";\n}\n\n.fa-pie-chart::before {\n content: \"\\f200\";\n}\n\n.fa-chart-simple::before {\n content: \"\\e473\";\n}\n\n.fa-check::before {\n content: \"\\f00c\";\n}\n\n.fa-check-double::before {\n content: \"\\f560\";\n}\n\n.fa-check-to-slot::before {\n content: \"\\f772\";\n}\n\n.fa-vote-yea::before {\n content: \"\\f772\";\n}\n\n.fa-cheese::before {\n content: \"\\f7ef\";\n}\n\n.fa-chess::before {\n content: \"\\f439\";\n}\n\n.fa-chess-bishop::before {\n content: \"\\f43a\";\n}\n\n.fa-chess-board::before {\n content: \"\\f43c\";\n}\n\n.fa-chess-king::before {\n content: \"\\f43f\";\n}\n\n.fa-chess-knight::before {\n content: \"\\f441\";\n}\n\n.fa-chess-pawn::before {\n content: \"\\f443\";\n}\n\n.fa-chess-queen::before {\n content: \"\\f445\";\n}\n\n.fa-chess-rook::before {\n content: \"\\f447\";\n}\n\n.fa-chevron-down::before {\n content: \"\\f078\";\n}\n\n.fa-chevron-left::before {\n content: \"\\f053\";\n}\n\n.fa-chevron-right::before {\n content: \"\\f054\";\n}\n\n.fa-chevron-up::before {\n content: \"\\f077\";\n}\n\n.fa-child::before {\n content: \"\\f1ae\";\n}\n\n.fa-child-dress::before {\n content: \"\\e59c\";\n}\n\n.fa-child-reaching::before {\n content: \"\\e59d\";\n}\n\n.fa-child-rifle::before {\n content: \"\\e4e0\";\n}\n\n.fa-children::before {\n content: \"\\e4e1\";\n}\n\n.fa-church::before {\n content: \"\\f51d\";\n}\n\n.fa-circle::before {\n content: \"\\f111\";\n}\n\n.fa-circle-arrow-down::before {\n content: \"\\f0ab\";\n}\n\n.fa-arrow-circle-down::before {\n content: \"\\f0ab\";\n}\n\n.fa-circle-arrow-left::before {\n content: \"\\f0a8\";\n}\n\n.fa-arrow-circle-left::before {\n content: \"\\f0a8\";\n}\n\n.fa-circle-arrow-right::before {\n content: \"\\f0a9\";\n}\n\n.fa-arrow-circle-right::before {\n content: \"\\f0a9\";\n}\n\n.fa-circle-arrow-up::before {\n content: \"\\f0aa\";\n}\n\n.fa-arrow-circle-up::before {\n content: \"\\f0aa\";\n}\n\n.fa-circle-check::before {\n content: \"\\f058\";\n}\n\n.fa-check-circle::before {\n content: \"\\f058\";\n}\n\n.fa-circle-chevron-down::before {\n content: \"\\f13a\";\n}\n\n.fa-chevron-circle-down::before {\n content: \"\\f13a\";\n}\n\n.fa-circle-chevron-left::before {\n content: \"\\f137\";\n}\n\n.fa-chevron-circle-left::before {\n content: \"\\f137\";\n}\n\n.fa-circle-chevron-right::before {\n content: \"\\f138\";\n}\n\n.fa-chevron-circle-right::before {\n content: \"\\f138\";\n}\n\n.fa-circle-chevron-up::before {\n content: \"\\f139\";\n}\n\n.fa-chevron-circle-up::before {\n content: \"\\f139\";\n}\n\n.fa-circle-dollar-to-slot::before {\n content: \"\\f4b9\";\n}\n\n.fa-donate::before {\n content: \"\\f4b9\";\n}\n\n.fa-circle-dot::before {\n content: \"\\f192\";\n}\n\n.fa-dot-circle::before {\n content: \"\\f192\";\n}\n\n.fa-circle-down::before {\n content: \"\\f358\";\n}\n\n.fa-arrow-alt-circle-down::before {\n content: \"\\f358\";\n}\n\n.fa-circle-exclamation::before {\n content: \"\\f06a\";\n}\n\n.fa-exclamation-circle::before {\n content: \"\\f06a\";\n}\n\n.fa-circle-h::before {\n content: \"\\f47e\";\n}\n\n.fa-hospital-symbol::before {\n content: \"\\f47e\";\n}\n\n.fa-circle-half-stroke::before {\n content: \"\\f042\";\n}\n\n.fa-adjust::before {\n content: \"\\f042\";\n}\n\n.fa-circle-info::before {\n content: \"\\f05a\";\n}\n\n.fa-info-circle::before {\n content: \"\\f05a\";\n}\n\n.fa-circle-left::before {\n content: \"\\f359\";\n}\n\n.fa-arrow-alt-circle-left::before {\n content: \"\\f359\";\n}\n\n.fa-circle-minus::before {\n content: \"\\f056\";\n}\n\n.fa-minus-circle::before {\n content: \"\\f056\";\n}\n\n.fa-circle-nodes::before {\n content: \"\\e4e2\";\n}\n\n.fa-circle-notch::before {\n content: \"\\f1ce\";\n}\n\n.fa-circle-pause::before {\n content: \"\\f28b\";\n}\n\n.fa-pause-circle::before {\n content: \"\\f28b\";\n}\n\n.fa-circle-play::before {\n content: \"\\f144\";\n}\n\n.fa-play-circle::before {\n content: \"\\f144\";\n}\n\n.fa-circle-plus::before {\n content: \"\\f055\";\n}\n\n.fa-plus-circle::before {\n content: \"\\f055\";\n}\n\n.fa-circle-question::before {\n content: \"\\f059\";\n}\n\n.fa-question-circle::before {\n content: \"\\f059\";\n}\n\n.fa-circle-radiation::before {\n content: \"\\f7ba\";\n}\n\n.fa-radiation-alt::before {\n content: \"\\f7ba\";\n}\n\n.fa-circle-right::before {\n content: \"\\f35a\";\n}\n\n.fa-arrow-alt-circle-right::before {\n content: \"\\f35a\";\n}\n\n.fa-circle-stop::before {\n content: \"\\f28d\";\n}\n\n.fa-stop-circle::before {\n content: \"\\f28d\";\n}\n\n.fa-circle-up::before {\n content: \"\\f35b\";\n}\n\n.fa-arrow-alt-circle-up::before {\n content: \"\\f35b\";\n}\n\n.fa-circle-user::before {\n content: \"\\f2bd\";\n}\n\n.fa-user-circle::before {\n content: \"\\f2bd\";\n}\n\n.fa-circle-xmark::before {\n content: \"\\f057\";\n}\n\n.fa-times-circle::before {\n content: \"\\f057\";\n}\n\n.fa-xmark-circle::before {\n content: \"\\f057\";\n}\n\n.fa-city::before {\n content: \"\\f64f\";\n}\n\n.fa-clapperboard::before {\n content: \"\\e131\";\n}\n\n.fa-clipboard::before {\n content: \"\\f328\";\n}\n\n.fa-clipboard-check::before {\n content: \"\\f46c\";\n}\n\n.fa-clipboard-list::before {\n content: \"\\f46d\";\n}\n\n.fa-clipboard-question::before {\n content: \"\\e4e3\";\n}\n\n.fa-clipboard-user::before {\n content: \"\\f7f3\";\n}\n\n.fa-clock::before {\n content: \"\\f017\";\n}\n\n.fa-clock-four::before {\n content: \"\\f017\";\n}\n\n.fa-clock-rotate-left::before {\n content: \"\\f1da\";\n}\n\n.fa-history::before {\n content: \"\\f1da\";\n}\n\n.fa-clone::before {\n content: \"\\f24d\";\n}\n\n.fa-closed-captioning::before {\n content: \"\\f20a\";\n}\n\n.fa-cloud::before {\n content: \"\\f0c2\";\n}\n\n.fa-cloud-arrow-down::before {\n content: \"\\f0ed\";\n}\n\n.fa-cloud-download::before {\n content: \"\\f0ed\";\n}\n\n.fa-cloud-download-alt::before {\n content: \"\\f0ed\";\n}\n\n.fa-cloud-arrow-up::before {\n content: \"\\f0ee\";\n}\n\n.fa-cloud-upload::before {\n content: \"\\f0ee\";\n}\n\n.fa-cloud-upload-alt::before {\n content: \"\\f0ee\";\n}\n\n.fa-cloud-bolt::before {\n content: \"\\f76c\";\n}\n\n.fa-thunderstorm::before {\n content: \"\\f76c\";\n}\n\n.fa-cloud-meatball::before {\n content: \"\\f73b\";\n}\n\n.fa-cloud-moon::before {\n content: \"\\f6c3\";\n}\n\n.fa-cloud-moon-rain::before {\n content: \"\\f73c\";\n}\n\n.fa-cloud-rain::before {\n content: \"\\f73d\";\n}\n\n.fa-cloud-showers-heavy::before {\n content: \"\\f740\";\n}\n\n.fa-cloud-showers-water::before {\n content: \"\\e4e4\";\n}\n\n.fa-cloud-sun::before {\n content: \"\\f6c4\";\n}\n\n.fa-cloud-sun-rain::before {\n content: \"\\f743\";\n}\n\n.fa-clover::before {\n content: \"\\e139\";\n}\n\n.fa-code::before {\n content: \"\\f121\";\n}\n\n.fa-code-branch::before {\n content: \"\\f126\";\n}\n\n.fa-code-commit::before {\n content: \"\\f386\";\n}\n\n.fa-code-compare::before {\n content: \"\\e13a\";\n}\n\n.fa-code-fork::before {\n content: \"\\e13b\";\n}\n\n.fa-code-merge::before {\n content: \"\\f387\";\n}\n\n.fa-code-pull-request::before {\n content: \"\\e13c\";\n}\n\n.fa-coins::before {\n content: \"\\f51e\";\n}\n\n.fa-colon-sign::before {\n content: \"\\e140\";\n}\n\n.fa-comment::before {\n content: \"\\f075\";\n}\n\n.fa-comment-dollar::before {\n content: \"\\f651\";\n}\n\n.fa-comment-dots::before {\n content: \"\\f4ad\";\n}\n\n.fa-commenting::before {\n content: \"\\f4ad\";\n}\n\n.fa-comment-medical::before {\n content: \"\\f7f5\";\n}\n\n.fa-comment-slash::before {\n content: \"\\f4b3\";\n}\n\n.fa-comment-sms::before {\n content: \"\\f7cd\";\n}\n\n.fa-sms::before {\n content: \"\\f7cd\";\n}\n\n.fa-comments::before {\n content: \"\\f086\";\n}\n\n.fa-comments-dollar::before {\n content: \"\\f653\";\n}\n\n.fa-compact-disc::before {\n content: \"\\f51f\";\n}\n\n.fa-compass::before {\n content: \"\\f14e\";\n}\n\n.fa-compass-drafting::before {\n content: \"\\f568\";\n}\n\n.fa-drafting-compass::before {\n content: \"\\f568\";\n}\n\n.fa-compress::before {\n content: \"\\f066\";\n}\n\n.fa-computer::before {\n content: \"\\e4e5\";\n}\n\n.fa-computer-mouse::before {\n content: \"\\f8cc\";\n}\n\n.fa-mouse::before {\n content: \"\\f8cc\";\n}\n\n.fa-cookie::before {\n content: \"\\f563\";\n}\n\n.fa-cookie-bite::before {\n content: \"\\f564\";\n}\n\n.fa-copy::before {\n content: \"\\f0c5\";\n}\n\n.fa-copyright::before {\n content: \"\\f1f9\";\n}\n\n.fa-couch::before {\n content: \"\\f4b8\";\n}\n\n.fa-cow::before {\n content: \"\\f6c8\";\n}\n\n.fa-credit-card::before {\n content: \"\\f09d\";\n}\n\n.fa-credit-card-alt::before {\n content: \"\\f09d\";\n}\n\n.fa-crop::before {\n content: \"\\f125\";\n}\n\n.fa-crop-simple::before {\n content: \"\\f565\";\n}\n\n.fa-crop-alt::before {\n content: \"\\f565\";\n}\n\n.fa-cross::before {\n content: \"\\f654\";\n}\n\n.fa-crosshairs::before {\n content: \"\\f05b\";\n}\n\n.fa-crow::before {\n content: \"\\f520\";\n}\n\n.fa-crown::before {\n content: \"\\f521\";\n}\n\n.fa-crutch::before {\n content: \"\\f7f7\";\n}\n\n.fa-cruzeiro-sign::before {\n content: \"\\e152\";\n}\n\n.fa-cube::before {\n content: \"\\f1b2\";\n}\n\n.fa-cubes::before {\n content: \"\\f1b3\";\n}\n\n.fa-cubes-stacked::before {\n content: \"\\e4e6\";\n}\n\n.fa-d::before {\n content: \"D\";\n}\n\n.fa-database::before {\n content: \"\\f1c0\";\n}\n\n.fa-delete-left::before {\n content: \"\\f55a\";\n}\n\n.fa-backspace::before {\n content: \"\\f55a\";\n}\n\n.fa-democrat::before {\n content: \"\\f747\";\n}\n\n.fa-desktop::before {\n content: \"\\f390\";\n}\n\n.fa-desktop-alt::before {\n content: \"\\f390\";\n}\n\n.fa-dharmachakra::before {\n content: \"\\f655\";\n}\n\n.fa-diagram-next::before {\n content: \"\\e476\";\n}\n\n.fa-diagram-predecessor::before {\n content: \"\\e477\";\n}\n\n.fa-diagram-project::before {\n content: \"\\f542\";\n}\n\n.fa-project-diagram::before {\n content: \"\\f542\";\n}\n\n.fa-diagram-successor::before {\n content: \"\\e47a\";\n}\n\n.fa-diamond::before {\n content: \"\\f219\";\n}\n\n.fa-diamond-turn-right::before {\n content: \"\\f5eb\";\n}\n\n.fa-directions::before {\n content: \"\\f5eb\";\n}\n\n.fa-dice::before {\n content: \"\\f522\";\n}\n\n.fa-dice-d20::before {\n content: \"\\f6cf\";\n}\n\n.fa-dice-d6::before {\n content: \"\\f6d1\";\n}\n\n.fa-dice-five::before {\n content: \"\\f523\";\n}\n\n.fa-dice-four::before {\n content: \"\\f524\";\n}\n\n.fa-dice-one::before {\n content: \"\\f525\";\n}\n\n.fa-dice-six::before {\n content: \"\\f526\";\n}\n\n.fa-dice-three::before {\n content: \"\\f527\";\n}\n\n.fa-dice-two::before {\n content: \"\\f528\";\n}\n\n.fa-disease::before {\n content: \"\\f7fa\";\n}\n\n.fa-display::before {\n content: \"\\e163\";\n}\n\n.fa-divide::before {\n content: \"\\f529\";\n}\n\n.fa-dna::before {\n content: \"\\f471\";\n}\n\n.fa-dog::before {\n content: \"\\f6d3\";\n}\n\n.fa-dollar-sign::before {\n content: \"\\$\";\n}\n\n.fa-dollar::before {\n content: \"\\$\";\n}\n\n.fa-usd::before {\n content: \"\\$\";\n}\n\n.fa-dolly::before {\n content: \"\\f472\";\n}\n\n.fa-dolly-box::before {\n content: \"\\f472\";\n}\n\n.fa-dong-sign::before {\n content: \"\\e169\";\n}\n\n.fa-door-closed::before {\n content: \"\\f52a\";\n}\n\n.fa-door-open::before {\n content: \"\\f52b\";\n}\n\n.fa-dove::before {\n content: \"\\f4ba\";\n}\n\n.fa-down-left-and-up-right-to-center::before {\n content: \"\\f422\";\n}\n\n.fa-compress-alt::before {\n content: \"\\f422\";\n}\n\n.fa-down-long::before {\n content: \"\\f309\";\n}\n\n.fa-long-arrow-alt-down::before {\n content: \"\\f309\";\n}\n\n.fa-download::before {\n content: \"\\f019\";\n}\n\n.fa-dragon::before {\n content: \"\\f6d5\";\n}\n\n.fa-draw-polygon::before {\n content: \"\\f5ee\";\n}\n\n.fa-droplet::before {\n content: \"\\f043\";\n}\n\n.fa-tint::before {\n content: \"\\f043\";\n}\n\n.fa-droplet-slash::before {\n content: \"\\f5c7\";\n}\n\n.fa-tint-slash::before {\n content: \"\\f5c7\";\n}\n\n.fa-drum::before {\n content: \"\\f569\";\n}\n\n.fa-drum-steelpan::before {\n content: \"\\f56a\";\n}\n\n.fa-drumstick-bite::before {\n content: \"\\f6d7\";\n}\n\n.fa-dumbbell::before {\n content: \"\\f44b\";\n}\n\n.fa-dumpster::before {\n content: \"\\f793\";\n}\n\n.fa-dumpster-fire::before {\n content: \"\\f794\";\n}\n\n.fa-dungeon::before {\n content: \"\\f6d9\";\n}\n\n.fa-e::before {\n content: \"E\";\n}\n\n.fa-ear-deaf::before {\n content: \"\\f2a4\";\n}\n\n.fa-deaf::before {\n content: \"\\f2a4\";\n}\n\n.fa-deafness::before {\n content: \"\\f2a4\";\n}\n\n.fa-hard-of-hearing::before {\n content: \"\\f2a4\";\n}\n\n.fa-ear-listen::before {\n content: \"\\f2a2\";\n}\n\n.fa-assistive-listening-systems::before {\n content: \"\\f2a2\";\n}\n\n.fa-earth-africa::before {\n content: \"\\f57c\";\n}\n\n.fa-globe-africa::before {\n content: \"\\f57c\";\n}\n\n.fa-earth-americas::before {\n content: \"\\f57d\";\n}\n\n.fa-earth::before {\n content: \"\\f57d\";\n}\n\n.fa-earth-america::before {\n content: \"\\f57d\";\n}\n\n.fa-globe-americas::before {\n content: \"\\f57d\";\n}\n\n.fa-earth-asia::before {\n content: \"\\f57e\";\n}\n\n.fa-globe-asia::before {\n content: \"\\f57e\";\n}\n\n.fa-earth-europe::before {\n content: \"\\f7a2\";\n}\n\n.fa-globe-europe::before {\n content: \"\\f7a2\";\n}\n\n.fa-earth-oceania::before {\n content: \"\\e47b\";\n}\n\n.fa-globe-oceania::before {\n content: \"\\e47b\";\n}\n\n.fa-egg::before {\n content: \"\\f7fb\";\n}\n\n.fa-eject::before {\n content: \"\\f052\";\n}\n\n.fa-elevator::before {\n content: \"\\e16d\";\n}\n\n.fa-ellipsis::before {\n content: \"\\f141\";\n}\n\n.fa-ellipsis-h::before {\n content: \"\\f141\";\n}\n\n.fa-ellipsis-vertical::before {\n content: \"\\f142\";\n}\n\n.fa-ellipsis-v::before {\n content: \"\\f142\";\n}\n\n.fa-envelope::before {\n content: \"\\f0e0\";\n}\n\n.fa-envelope-circle-check::before {\n content: \"\\e4e8\";\n}\n\n.fa-envelope-open::before {\n content: \"\\f2b6\";\n}\n\n.fa-envelope-open-text::before {\n content: \"\\f658\";\n}\n\n.fa-envelopes-bulk::before {\n content: \"\\f674\";\n}\n\n.fa-mail-bulk::before {\n content: \"\\f674\";\n}\n\n.fa-equals::before {\n content: \"\\=\";\n}\n\n.fa-eraser::before {\n content: \"\\f12d\";\n}\n\n.fa-ethernet::before {\n content: \"\\f796\";\n}\n\n.fa-euro-sign::before {\n content: \"\\f153\";\n}\n\n.fa-eur::before {\n content: \"\\f153\";\n}\n\n.fa-euro::before {\n content: \"\\f153\";\n}\n\n.fa-exclamation::before {\n content: \"\\!\";\n}\n\n.fa-expand::before {\n content: \"\\f065\";\n}\n\n.fa-explosion::before {\n content: \"\\e4e9\";\n}\n\n.fa-eye::before {\n content: \"\\f06e\";\n}\n\n.fa-eye-dropper::before {\n content: \"\\f1fb\";\n}\n\n.fa-eye-dropper-empty::before {\n content: \"\\f1fb\";\n}\n\n.fa-eyedropper::before {\n content: \"\\f1fb\";\n}\n\n.fa-eye-low-vision::before {\n content: \"\\f2a8\";\n}\n\n.fa-low-vision::before {\n content: \"\\f2a8\";\n}\n\n.fa-eye-slash::before {\n content: \"\\f070\";\n}\n\n.fa-f::before {\n content: \"F\";\n}\n\n.fa-face-angry::before {\n content: \"\\f556\";\n}\n\n.fa-angry::before {\n content: \"\\f556\";\n}\n\n.fa-face-dizzy::before {\n content: \"\\f567\";\n}\n\n.fa-dizzy::before {\n content: \"\\f567\";\n}\n\n.fa-face-flushed::before {\n content: \"\\f579\";\n}\n\n.fa-flushed::before {\n content: \"\\f579\";\n}\n\n.fa-face-frown::before {\n content: \"\\f119\";\n}\n\n.fa-frown::before {\n content: \"\\f119\";\n}\n\n.fa-face-frown-open::before {\n content: \"\\f57a\";\n}\n\n.fa-frown-open::before {\n content: \"\\f57a\";\n}\n\n.fa-face-grimace::before {\n content: \"\\f57f\";\n}\n\n.fa-grimace::before {\n content: \"\\f57f\";\n}\n\n.fa-face-grin::before {\n content: \"\\f580\";\n}\n\n.fa-grin::before {\n content: \"\\f580\";\n}\n\n.fa-face-grin-beam::before {\n content: \"\\f582\";\n}\n\n.fa-grin-beam::before {\n content: \"\\f582\";\n}\n\n.fa-face-grin-beam-sweat::before {\n content: \"\\f583\";\n}\n\n.fa-grin-beam-sweat::before {\n content: \"\\f583\";\n}\n\n.fa-face-grin-hearts::before {\n content: \"\\f584\";\n}\n\n.fa-grin-hearts::before {\n content: \"\\f584\";\n}\n\n.fa-face-grin-squint::before {\n content: \"\\f585\";\n}\n\n.fa-grin-squint::before {\n content: \"\\f585\";\n}\n\n.fa-face-grin-squint-tears::before {\n content: \"\\f586\";\n}\n\n.fa-grin-squint-tears::before {\n content: \"\\f586\";\n}\n\n.fa-face-grin-stars::before {\n content: \"\\f587\";\n}\n\n.fa-grin-stars::before {\n content: \"\\f587\";\n}\n\n.fa-face-grin-tears::before {\n content: \"\\f588\";\n}\n\n.fa-grin-tears::before {\n content: \"\\f588\";\n}\n\n.fa-face-grin-tongue::before {\n content: \"\\f589\";\n}\n\n.fa-grin-tongue::before {\n content: \"\\f589\";\n}\n\n.fa-face-grin-tongue-squint::before {\n content: \"\\f58a\";\n}\n\n.fa-grin-tongue-squint::before {\n content: \"\\f58a\";\n}\n\n.fa-face-grin-tongue-wink::before {\n content: \"\\f58b\";\n}\n\n.fa-grin-tongue-wink::before {\n content: \"\\f58b\";\n}\n\n.fa-face-grin-wide::before {\n content: \"\\f581\";\n}\n\n.fa-grin-alt::before {\n content: \"\\f581\";\n}\n\n.fa-face-grin-wink::before {\n content: \"\\f58c\";\n}\n\n.fa-grin-wink::before {\n content: \"\\f58c\";\n}\n\n.fa-face-kiss::before {\n content: \"\\f596\";\n}\n\n.fa-kiss::before {\n content: \"\\f596\";\n}\n\n.fa-face-kiss-beam::before {\n content: \"\\f597\";\n}\n\n.fa-kiss-beam::before {\n content: \"\\f597\";\n}\n\n.fa-face-kiss-wink-heart::before {\n content: \"\\f598\";\n}\n\n.fa-kiss-wink-heart::before {\n content: \"\\f598\";\n}\n\n.fa-face-laugh::before {\n content: \"\\f599\";\n}\n\n.fa-laugh::before {\n content: \"\\f599\";\n}\n\n.fa-face-laugh-beam::before {\n content: \"\\f59a\";\n}\n\n.fa-laugh-beam::before {\n content: \"\\f59a\";\n}\n\n.fa-face-laugh-squint::before {\n content: \"\\f59b\";\n}\n\n.fa-laugh-squint::before {\n content: \"\\f59b\";\n}\n\n.fa-face-laugh-wink::before {\n content: \"\\f59c\";\n}\n\n.fa-laugh-wink::before {\n content: \"\\f59c\";\n}\n\n.fa-face-meh::before {\n content: \"\\f11a\";\n}\n\n.fa-meh::before {\n content: \"\\f11a\";\n}\n\n.fa-face-meh-blank::before {\n content: \"\\f5a4\";\n}\n\n.fa-meh-blank::before {\n content: \"\\f5a4\";\n}\n\n.fa-face-rolling-eyes::before {\n content: \"\\f5a5\";\n}\n\n.fa-meh-rolling-eyes::before {\n content: \"\\f5a5\";\n}\n\n.fa-face-sad-cry::before {\n content: \"\\f5b3\";\n}\n\n.fa-sad-cry::before {\n content: \"\\f5b3\";\n}\n\n.fa-face-sad-tear::before {\n content: \"\\f5b4\";\n}\n\n.fa-sad-tear::before {\n content: \"\\f5b4\";\n}\n\n.fa-face-smile::before {\n content: \"\\f118\";\n}\n\n.fa-smile::before {\n content: \"\\f118\";\n}\n\n.fa-face-smile-beam::before {\n content: \"\\f5b8\";\n}\n\n.fa-smile-beam::before {\n content: \"\\f5b8\";\n}\n\n.fa-face-smile-wink::before {\n content: \"\\f4da\";\n}\n\n.fa-smile-wink::before {\n content: \"\\f4da\";\n}\n\n.fa-face-surprise::before {\n content: \"\\f5c2\";\n}\n\n.fa-surprise::before {\n content: \"\\f5c2\";\n}\n\n.fa-face-tired::before {\n content: \"\\f5c8\";\n}\n\n.fa-tired::before {\n content: \"\\f5c8\";\n}\n\n.fa-fan::before {\n content: \"\\f863\";\n}\n\n.fa-faucet::before {\n content: \"\\e005\";\n}\n\n.fa-faucet-drip::before {\n content: \"\\e006\";\n}\n\n.fa-fax::before {\n content: \"\\f1ac\";\n}\n\n.fa-feather::before {\n content: \"\\f52d\";\n}\n\n.fa-feather-pointed::before {\n content: \"\\f56b\";\n}\n\n.fa-feather-alt::before {\n content: \"\\f56b\";\n}\n\n.fa-ferry::before {\n content: \"\\e4ea\";\n}\n\n.fa-file::before {\n content: \"\\f15b\";\n}\n\n.fa-file-arrow-down::before {\n content: \"\\f56d\";\n}\n\n.fa-file-download::before {\n content: \"\\f56d\";\n}\n\n.fa-file-arrow-up::before {\n content: \"\\f574\";\n}\n\n.fa-file-upload::before {\n content: \"\\f574\";\n}\n\n.fa-file-audio::before {\n content: \"\\f1c7\";\n}\n\n.fa-file-circle-check::before {\n content: \"\\e493\";\n}\n\n.fa-file-circle-exclamation::before {\n content: \"\\e4eb\";\n}\n\n.fa-file-circle-minus::before {\n content: \"\\e4ed\";\n}\n\n.fa-file-circle-plus::before {\n content: \"\\e4ee\";\n}\n\n.fa-file-circle-question::before {\n content: \"\\e4ef\";\n}\n\n.fa-file-circle-xmark::before {\n content: \"\\e494\";\n}\n\n.fa-file-code::before {\n content: \"\\f1c9\";\n}\n\n.fa-file-contract::before {\n content: \"\\f56c\";\n}\n\n.fa-file-csv::before {\n content: \"\\f6dd\";\n}\n\n.fa-file-excel::before {\n content: \"\\f1c3\";\n}\n\n.fa-file-export::before {\n content: \"\\f56e\";\n}\n\n.fa-arrow-right-from-file::before {\n content: \"\\f56e\";\n}\n\n.fa-file-image::before {\n content: \"\\f1c5\";\n}\n\n.fa-file-import::before {\n content: \"\\f56f\";\n}\n\n.fa-arrow-right-to-file::before {\n content: \"\\f56f\";\n}\n\n.fa-file-invoice::before {\n content: \"\\f570\";\n}\n\n.fa-file-invoice-dollar::before {\n content: \"\\f571\";\n}\n\n.fa-file-lines::before {\n content: \"\\f15c\";\n}\n\n.fa-file-alt::before {\n content: \"\\f15c\";\n}\n\n.fa-file-text::before {\n content: \"\\f15c\";\n}\n\n.fa-file-medical::before {\n content: \"\\f477\";\n}\n\n.fa-file-pdf::before {\n content: \"\\f1c1\";\n}\n\n.fa-file-pen::before {\n content: \"\\f31c\";\n}\n\n.fa-file-edit::before {\n content: \"\\f31c\";\n}\n\n.fa-file-powerpoint::before {\n content: \"\\f1c4\";\n}\n\n.fa-file-prescription::before {\n content: \"\\f572\";\n}\n\n.fa-file-shield::before {\n content: \"\\e4f0\";\n}\n\n.fa-file-signature::before {\n content: \"\\f573\";\n}\n\n.fa-file-video::before {\n content: \"\\f1c8\";\n}\n\n.fa-file-waveform::before {\n content: \"\\f478\";\n}\n\n.fa-file-medical-alt::before {\n content: \"\\f478\";\n}\n\n.fa-file-word::before {\n content: \"\\f1c2\";\n}\n\n.fa-file-zipper::before {\n content: \"\\f1c6\";\n}\n\n.fa-file-archive::before {\n content: \"\\f1c6\";\n}\n\n.fa-fill::before {\n content: \"\\f575\";\n}\n\n.fa-fill-drip::before {\n content: \"\\f576\";\n}\n\n.fa-film::before {\n content: \"\\f008\";\n}\n\n.fa-filter::before {\n content: \"\\f0b0\";\n}\n\n.fa-filter-circle-dollar::before {\n content: \"\\f662\";\n}\n\n.fa-funnel-dollar::before {\n content: \"\\f662\";\n}\n\n.fa-filter-circle-xmark::before {\n content: \"\\e17b\";\n}\n\n.fa-fingerprint::before {\n content: \"\\f577\";\n}\n\n.fa-fire::before {\n content: \"\\f06d\";\n}\n\n.fa-fire-burner::before {\n content: \"\\e4f1\";\n}\n\n.fa-fire-extinguisher::before {\n content: \"\\f134\";\n}\n\n.fa-fire-flame-curved::before {\n content: \"\\f7e4\";\n}\n\n.fa-fire-alt::before {\n content: \"\\f7e4\";\n}\n\n.fa-fire-flame-simple::before {\n content: \"\\f46a\";\n}\n\n.fa-burn::before {\n content: \"\\f46a\";\n}\n\n.fa-fish::before {\n content: \"\\f578\";\n}\n\n.fa-fish-fins::before {\n content: \"\\e4f2\";\n}\n\n.fa-flag::before {\n content: \"\\f024\";\n}\n\n.fa-flag-checkered::before {\n content: \"\\f11e\";\n}\n\n.fa-flag-usa::before {\n content: \"\\f74d\";\n}\n\n.fa-flask::before {\n content: \"\\f0c3\";\n}\n\n.fa-flask-vial::before {\n content: \"\\e4f3\";\n}\n\n.fa-floppy-disk::before {\n content: \"\\f0c7\";\n}\n\n.fa-save::before {\n content: \"\\f0c7\";\n}\n\n.fa-florin-sign::before {\n content: \"\\e184\";\n}\n\n.fa-folder::before {\n content: \"\\f07b\";\n}\n\n.fa-folder-blank::before {\n content: \"\\f07b\";\n}\n\n.fa-folder-closed::before {\n content: \"\\e185\";\n}\n\n.fa-folder-minus::before {\n content: \"\\f65d\";\n}\n\n.fa-folder-open::before {\n content: \"\\f07c\";\n}\n\n.fa-folder-plus::before {\n content: \"\\f65e\";\n}\n\n.fa-folder-tree::before {\n content: \"\\f802\";\n}\n\n.fa-font::before {\n content: \"\\f031\";\n}\n\n.fa-football::before {\n content: \"\\f44e\";\n}\n\n.fa-football-ball::before {\n content: \"\\f44e\";\n}\n\n.fa-forward::before {\n content: \"\\f04e\";\n}\n\n.fa-forward-fast::before {\n content: \"\\f050\";\n}\n\n.fa-fast-forward::before {\n content: \"\\f050\";\n}\n\n.fa-forward-step::before {\n content: \"\\f051\";\n}\n\n.fa-step-forward::before {\n content: \"\\f051\";\n}\n\n.fa-franc-sign::before {\n content: \"\\e18f\";\n}\n\n.fa-frog::before {\n content: \"\\f52e\";\n}\n\n.fa-futbol::before {\n content: \"\\f1e3\";\n}\n\n.fa-futbol-ball::before {\n content: \"\\f1e3\";\n}\n\n.fa-soccer-ball::before {\n content: \"\\f1e3\";\n}\n\n.fa-g::before {\n content: \"G\";\n}\n\n.fa-gamepad::before {\n content: \"\\f11b\";\n}\n\n.fa-gas-pump::before {\n content: \"\\f52f\";\n}\n\n.fa-gauge::before {\n content: \"\\f624\";\n}\n\n.fa-dashboard::before {\n content: \"\\f624\";\n}\n\n.fa-gauge-med::before {\n content: \"\\f624\";\n}\n\n.fa-tachometer-alt-average::before {\n content: \"\\f624\";\n}\n\n.fa-gauge-high::before {\n content: \"\\f625\";\n}\n\n.fa-tachometer-alt::before {\n content: \"\\f625\";\n}\n\n.fa-tachometer-alt-fast::before {\n content: \"\\f625\";\n}\n\n.fa-gauge-simple::before {\n content: \"\\f629\";\n}\n\n.fa-gauge-simple-med::before {\n content: \"\\f629\";\n}\n\n.fa-tachometer-average::before {\n content: \"\\f629\";\n}\n\n.fa-gauge-simple-high::before {\n content: \"\\f62a\";\n}\n\n.fa-tachometer::before {\n content: \"\\f62a\";\n}\n\n.fa-tachometer-fast::before {\n content: \"\\f62a\";\n}\n\n.fa-gavel::before {\n content: \"\\f0e3\";\n}\n\n.fa-legal::before {\n content: \"\\f0e3\";\n}\n\n.fa-gear::before {\n content: \"\\f013\";\n}\n\n.fa-cog::before {\n content: \"\\f013\";\n}\n\n.fa-gears::before {\n content: \"\\f085\";\n}\n\n.fa-cogs::before {\n content: \"\\f085\";\n}\n\n.fa-gem::before {\n content: \"\\f3a5\";\n}\n\n.fa-genderless::before {\n content: \"\\f22d\";\n}\n\n.fa-ghost::before {\n content: \"\\f6e2\";\n}\n\n.fa-gift::before {\n content: \"\\f06b\";\n}\n\n.fa-gifts::before {\n content: \"\\f79c\";\n}\n\n.fa-glass-water::before {\n content: \"\\e4f4\";\n}\n\n.fa-glass-water-droplet::before {\n content: \"\\e4f5\";\n}\n\n.fa-glasses::before {\n content: \"\\f530\";\n}\n\n.fa-globe::before {\n content: \"\\f0ac\";\n}\n\n.fa-golf-ball-tee::before {\n content: \"\\f450\";\n}\n\n.fa-golf-ball::before {\n content: \"\\f450\";\n}\n\n.fa-gopuram::before {\n content: \"\\f664\";\n}\n\n.fa-graduation-cap::before {\n content: \"\\f19d\";\n}\n\n.fa-mortar-board::before {\n content: \"\\f19d\";\n}\n\n.fa-greater-than::before {\n content: \"\\>\";\n}\n\n.fa-greater-than-equal::before {\n content: \"\\f532\";\n}\n\n.fa-grip::before {\n content: \"\\f58d\";\n}\n\n.fa-grip-horizontal::before {\n content: \"\\f58d\";\n}\n\n.fa-grip-lines::before {\n content: \"\\f7a4\";\n}\n\n.fa-grip-lines-vertical::before {\n content: \"\\f7a5\";\n}\n\n.fa-grip-vertical::before {\n content: \"\\f58e\";\n}\n\n.fa-group-arrows-rotate::before {\n content: \"\\e4f6\";\n}\n\n.fa-guarani-sign::before {\n content: \"\\e19a\";\n}\n\n.fa-guitar::before {\n content: \"\\f7a6\";\n}\n\n.fa-gun::before {\n content: \"\\e19b\";\n}\n\n.fa-h::before {\n content: \"H\";\n}\n\n.fa-hammer::before {\n content: \"\\f6e3\";\n}\n\n.fa-hamsa::before {\n content: \"\\f665\";\n}\n\n.fa-hand::before {\n content: \"\\f256\";\n}\n\n.fa-hand-paper::before {\n content: \"\\f256\";\n}\n\n.fa-hand-back-fist::before {\n content: \"\\f255\";\n}\n\n.fa-hand-rock::before {\n content: \"\\f255\";\n}\n\n.fa-hand-dots::before {\n content: \"\\f461\";\n}\n\n.fa-allergies::before {\n content: \"\\f461\";\n}\n\n.fa-hand-fist::before {\n content: \"\\f6de\";\n}\n\n.fa-fist-raised::before {\n content: \"\\f6de\";\n}\n\n.fa-hand-holding::before {\n content: \"\\f4bd\";\n}\n\n.fa-hand-holding-dollar::before {\n content: \"\\f4c0\";\n}\n\n.fa-hand-holding-usd::before {\n content: \"\\f4c0\";\n}\n\n.fa-hand-holding-droplet::before {\n content: \"\\f4c1\";\n}\n\n.fa-hand-holding-water::before {\n content: \"\\f4c1\";\n}\n\n.fa-hand-holding-hand::before {\n content: \"\\e4f7\";\n}\n\n.fa-hand-holding-heart::before {\n content: \"\\f4be\";\n}\n\n.fa-hand-holding-medical::before {\n content: \"\\e05c\";\n}\n\n.fa-hand-lizard::before {\n content: \"\\f258\";\n}\n\n.fa-hand-middle-finger::before {\n content: \"\\f806\";\n}\n\n.fa-hand-peace::before {\n content: \"\\f25b\";\n}\n\n.fa-hand-point-down::before {\n content: \"\\f0a7\";\n}\n\n.fa-hand-point-left::before {\n content: \"\\f0a5\";\n}\n\n.fa-hand-point-right::before {\n content: \"\\f0a4\";\n}\n\n.fa-hand-point-up::before {\n content: \"\\f0a6\";\n}\n\n.fa-hand-pointer::before {\n content: \"\\f25a\";\n}\n\n.fa-hand-scissors::before {\n content: \"\\f257\";\n}\n\n.fa-hand-sparkles::before {\n content: \"\\e05d\";\n}\n\n.fa-hand-spock::before {\n content: \"\\f259\";\n}\n\n.fa-handcuffs::before {\n content: \"\\e4f8\";\n}\n\n.fa-hands::before {\n content: \"\\f2a7\";\n}\n\n.fa-sign-language::before {\n content: \"\\f2a7\";\n}\n\n.fa-signing::before {\n content: \"\\f2a7\";\n}\n\n.fa-hands-asl-interpreting::before {\n content: \"\\f2a3\";\n}\n\n.fa-american-sign-language-interpreting::before {\n content: \"\\f2a3\";\n}\n\n.fa-asl-interpreting::before {\n content: \"\\f2a3\";\n}\n\n.fa-hands-american-sign-language-interpreting::before {\n content: \"\\f2a3\";\n}\n\n.fa-hands-bound::before {\n content: \"\\e4f9\";\n}\n\n.fa-hands-bubbles::before {\n content: \"\\e05e\";\n}\n\n.fa-hands-wash::before {\n content: \"\\e05e\";\n}\n\n.fa-hands-clapping::before {\n content: \"\\e1a8\";\n}\n\n.fa-hands-holding::before {\n content: \"\\f4c2\";\n}\n\n.fa-hands-holding-child::before {\n content: \"\\e4fa\";\n}\n\n.fa-hands-holding-circle::before {\n content: \"\\e4fb\";\n}\n\n.fa-hands-praying::before {\n content: \"\\f684\";\n}\n\n.fa-praying-hands::before {\n content: \"\\f684\";\n}\n\n.fa-handshake::before {\n content: \"\\f2b5\";\n}\n\n.fa-handshake-angle::before {\n content: \"\\f4c4\";\n}\n\n.fa-hands-helping::before {\n content: \"\\f4c4\";\n}\n\n.fa-handshake-simple::before {\n content: \"\\f4c6\";\n}\n\n.fa-handshake-alt::before {\n content: \"\\f4c6\";\n}\n\n.fa-handshake-simple-slash::before {\n content: \"\\e05f\";\n}\n\n.fa-handshake-alt-slash::before {\n content: \"\\e05f\";\n}\n\n.fa-handshake-slash::before {\n content: \"\\e060\";\n}\n\n.fa-hanukiah::before {\n content: \"\\f6e6\";\n}\n\n.fa-hard-drive::before {\n content: \"\\f0a0\";\n}\n\n.fa-hdd::before {\n content: \"\\f0a0\";\n}\n\n.fa-hashtag::before {\n content: \"\\#\";\n}\n\n.fa-hat-cowboy::before {\n content: \"\\f8c0\";\n}\n\n.fa-hat-cowboy-side::before {\n content: \"\\f8c1\";\n}\n\n.fa-hat-wizard::before {\n content: \"\\f6e8\";\n}\n\n.fa-head-side-cough::before {\n content: \"\\e061\";\n}\n\n.fa-head-side-cough-slash::before {\n content: \"\\e062\";\n}\n\n.fa-head-side-mask::before {\n content: \"\\e063\";\n}\n\n.fa-head-side-virus::before {\n content: \"\\e064\";\n}\n\n.fa-heading::before {\n content: \"\\f1dc\";\n}\n\n.fa-header::before {\n content: \"\\f1dc\";\n}\n\n.fa-headphones::before {\n content: \"\\f025\";\n}\n\n.fa-headphones-simple::before {\n content: \"\\f58f\";\n}\n\n.fa-headphones-alt::before {\n content: \"\\f58f\";\n}\n\n.fa-headset::before {\n content: \"\\f590\";\n}\n\n.fa-heart::before {\n content: \"\\f004\";\n}\n\n.fa-heart-circle-bolt::before {\n content: \"\\e4fc\";\n}\n\n.fa-heart-circle-check::before {\n content: \"\\e4fd\";\n}\n\n.fa-heart-circle-exclamation::before {\n content: \"\\e4fe\";\n}\n\n.fa-heart-circle-minus::before {\n content: \"\\e4ff\";\n}\n\n.fa-heart-circle-plus::before {\n content: \"\\e500\";\n}\n\n.fa-heart-circle-xmark::before {\n content: \"\\e501\";\n}\n\n.fa-heart-crack::before {\n content: \"\\f7a9\";\n}\n\n.fa-heart-broken::before {\n content: \"\\f7a9\";\n}\n\n.fa-heart-pulse::before {\n content: \"\\f21e\";\n}\n\n.fa-heartbeat::before {\n content: \"\\f21e\";\n}\n\n.fa-helicopter::before {\n content: \"\\f533\";\n}\n\n.fa-helicopter-symbol::before {\n content: \"\\e502\";\n}\n\n.fa-helmet-safety::before {\n content: \"\\f807\";\n}\n\n.fa-hard-hat::before {\n content: \"\\f807\";\n}\n\n.fa-hat-hard::before {\n content: \"\\f807\";\n}\n\n.fa-helmet-un::before {\n content: \"\\e503\";\n}\n\n.fa-highlighter::before {\n content: \"\\f591\";\n}\n\n.fa-hill-avalanche::before {\n content: \"\\e507\";\n}\n\n.fa-hill-rockslide::before {\n content: \"\\e508\";\n}\n\n.fa-hippo::before {\n content: \"\\f6ed\";\n}\n\n.fa-hockey-puck::before {\n content: \"\\f453\";\n}\n\n.fa-holly-berry::before {\n content: \"\\f7aa\";\n}\n\n.fa-horse::before {\n content: \"\\f6f0\";\n}\n\n.fa-horse-head::before {\n content: \"\\f7ab\";\n}\n\n.fa-hospital::before {\n content: \"\\f0f8\";\n}\n\n.fa-hospital-alt::before {\n content: \"\\f0f8\";\n}\n\n.fa-hospital-wide::before {\n content: \"\\f0f8\";\n}\n\n.fa-hospital-user::before {\n content: \"\\f80d\";\n}\n\n.fa-hot-tub-person::before {\n content: \"\\f593\";\n}\n\n.fa-hot-tub::before {\n content: \"\\f593\";\n}\n\n.fa-hotdog::before {\n content: \"\\f80f\";\n}\n\n.fa-hotel::before {\n content: \"\\f594\";\n}\n\n.fa-hourglass::before {\n content: \"\\f254\";\n}\n\n.fa-hourglass-2::before {\n content: \"\\f254\";\n}\n\n.fa-hourglass-half::before {\n content: \"\\f254\";\n}\n\n.fa-hourglass-empty::before {\n content: \"\\f252\";\n}\n\n.fa-hourglass-end::before {\n content: \"\\f253\";\n}\n\n.fa-hourglass-3::before {\n content: \"\\f253\";\n}\n\n.fa-hourglass-start::before {\n content: \"\\f251\";\n}\n\n.fa-hourglass-1::before {\n content: \"\\f251\";\n}\n\n.fa-house::before {\n content: \"\\f015\";\n}\n\n.fa-home::before {\n content: \"\\f015\";\n}\n\n.fa-home-alt::before {\n content: \"\\f015\";\n}\n\n.fa-home-lg-alt::before {\n content: \"\\f015\";\n}\n\n.fa-house-chimney::before {\n content: \"\\e3af\";\n}\n\n.fa-home-lg::before {\n content: \"\\e3af\";\n}\n\n.fa-house-chimney-crack::before {\n content: \"\\f6f1\";\n}\n\n.fa-house-damage::before {\n content: \"\\f6f1\";\n}\n\n.fa-house-chimney-medical::before {\n content: \"\\f7f2\";\n}\n\n.fa-clinic-medical::before {\n content: \"\\f7f2\";\n}\n\n.fa-house-chimney-user::before {\n content: \"\\e065\";\n}\n\n.fa-house-chimney-window::before {\n content: \"\\e00d\";\n}\n\n.fa-house-circle-check::before {\n content: \"\\e509\";\n}\n\n.fa-house-circle-exclamation::before {\n content: \"\\e50a\";\n}\n\n.fa-house-circle-xmark::before {\n content: \"\\e50b\";\n}\n\n.fa-house-crack::before {\n content: \"\\e3b1\";\n}\n\n.fa-house-fire::before {\n content: \"\\e50c\";\n}\n\n.fa-house-flag::before {\n content: \"\\e50d\";\n}\n\n.fa-house-flood-water::before {\n content: \"\\e50e\";\n}\n\n.fa-house-flood-water-circle-arrow-right::before {\n content: \"\\e50f\";\n}\n\n.fa-house-laptop::before {\n content: \"\\e066\";\n}\n\n.fa-laptop-house::before {\n content: \"\\e066\";\n}\n\n.fa-house-lock::before {\n content: \"\\e510\";\n}\n\n.fa-house-medical::before {\n content: \"\\e3b2\";\n}\n\n.fa-house-medical-circle-check::before {\n content: \"\\e511\";\n}\n\n.fa-house-medical-circle-exclamation::before {\n content: \"\\e512\";\n}\n\n.fa-house-medical-circle-xmark::before {\n content: \"\\e513\";\n}\n\n.fa-house-medical-flag::before {\n content: \"\\e514\";\n}\n\n.fa-house-signal::before {\n content: \"\\e012\";\n}\n\n.fa-house-tsunami::before {\n content: \"\\e515\";\n}\n\n.fa-house-user::before {\n content: \"\\e1b0\";\n}\n\n.fa-home-user::before {\n content: \"\\e1b0\";\n}\n\n.fa-hryvnia-sign::before {\n content: \"\\f6f2\";\n}\n\n.fa-hryvnia::before {\n content: \"\\f6f2\";\n}\n\n.fa-hurricane::before {\n content: \"\\f751\";\n}\n\n.fa-i::before {\n content: \"I\";\n}\n\n.fa-i-cursor::before {\n content: \"\\f246\";\n}\n\n.fa-ice-cream::before {\n content: \"\\f810\";\n}\n\n.fa-icicles::before {\n content: \"\\f7ad\";\n}\n\n.fa-icons::before {\n content: \"\\f86d\";\n}\n\n.fa-heart-music-camera-bolt::before {\n content: \"\\f86d\";\n}\n\n.fa-id-badge::before {\n content: \"\\f2c1\";\n}\n\n.fa-id-card::before {\n content: \"\\f2c2\";\n}\n\n.fa-drivers-license::before {\n content: \"\\f2c2\";\n}\n\n.fa-id-card-clip::before {\n content: \"\\f47f\";\n}\n\n.fa-id-card-alt::before {\n content: \"\\f47f\";\n}\n\n.fa-igloo::before {\n content: \"\\f7ae\";\n}\n\n.fa-image::before {\n content: \"\\f03e\";\n}\n\n.fa-image-portrait::before {\n content: \"\\f3e0\";\n}\n\n.fa-portrait::before {\n content: \"\\f3e0\";\n}\n\n.fa-images::before {\n content: \"\\f302\";\n}\n\n.fa-inbox::before {\n content: \"\\f01c\";\n}\n\n.fa-indent::before {\n content: \"\\f03c\";\n}\n\n.fa-indian-rupee-sign::before {\n content: \"\\e1bc\";\n}\n\n.fa-indian-rupee::before {\n content: \"\\e1bc\";\n}\n\n.fa-inr::before {\n content: \"\\e1bc\";\n}\n\n.fa-industry::before {\n content: \"\\f275\";\n}\n\n.fa-infinity::before {\n content: \"\\f534\";\n}\n\n.fa-info::before {\n content: \"\\f129\";\n}\n\n.fa-italic::before {\n content: \"\\f033\";\n}\n\n.fa-j::before {\n content: \"J\";\n}\n\n.fa-jar::before {\n content: \"\\e516\";\n}\n\n.fa-jar-wheat::before {\n content: \"\\e517\";\n}\n\n.fa-jedi::before {\n content: \"\\f669\";\n}\n\n.fa-jet-fighter::before {\n content: \"\\f0fb\";\n}\n\n.fa-fighter-jet::before {\n content: \"\\f0fb\";\n}\n\n.fa-jet-fighter-up::before {\n content: \"\\e518\";\n}\n\n.fa-joint::before {\n content: \"\\f595\";\n}\n\n.fa-jug-detergent::before {\n content: \"\\e519\";\n}\n\n.fa-k::before {\n content: \"K\";\n}\n\n.fa-kaaba::before {\n content: \"\\f66b\";\n}\n\n.fa-key::before {\n content: \"\\f084\";\n}\n\n.fa-keyboard::before {\n content: \"\\f11c\";\n}\n\n.fa-khanda::before {\n content: \"\\f66d\";\n}\n\n.fa-kip-sign::before {\n content: \"\\e1c4\";\n}\n\n.fa-kit-medical::before {\n content: \"\\f479\";\n}\n\n.fa-first-aid::before {\n content: \"\\f479\";\n}\n\n.fa-kitchen-set::before {\n content: \"\\e51a\";\n}\n\n.fa-kiwi-bird::before {\n content: \"\\f535\";\n}\n\n.fa-l::before {\n content: \"L\";\n}\n\n.fa-land-mine-on::before {\n content: \"\\e51b\";\n}\n\n.fa-landmark::before {\n content: \"\\f66f\";\n}\n\n.fa-landmark-dome::before {\n content: \"\\f752\";\n}\n\n.fa-landmark-alt::before {\n content: \"\\f752\";\n}\n\n.fa-landmark-flag::before {\n content: \"\\e51c\";\n}\n\n.fa-language::before {\n content: \"\\f1ab\";\n}\n\n.fa-laptop::before {\n content: \"\\f109\";\n}\n\n.fa-laptop-code::before {\n content: \"\\f5fc\";\n}\n\n.fa-laptop-file::before {\n content: \"\\e51d\";\n}\n\n.fa-laptop-medical::before {\n content: \"\\f812\";\n}\n\n.fa-lari-sign::before {\n content: \"\\e1c8\";\n}\n\n.fa-layer-group::before {\n content: \"\\f5fd\";\n}\n\n.fa-leaf::before {\n content: \"\\f06c\";\n}\n\n.fa-left-long::before {\n content: \"\\f30a\";\n}\n\n.fa-long-arrow-alt-left::before {\n content: \"\\f30a\";\n}\n\n.fa-left-right::before {\n content: \"\\f337\";\n}\n\n.fa-arrows-alt-h::before {\n content: \"\\f337\";\n}\n\n.fa-lemon::before {\n content: \"\\f094\";\n}\n\n.fa-less-than::before {\n content: \"\\<\";\n}\n\n.fa-less-than-equal::before {\n content: \"\\f537\";\n}\n\n.fa-life-ring::before {\n content: \"\\f1cd\";\n}\n\n.fa-lightbulb::before {\n content: \"\\f0eb\";\n}\n\n.fa-lines-leaning::before {\n content: \"\\e51e\";\n}\n\n.fa-link::before {\n content: \"\\f0c1\";\n}\n\n.fa-chain::before {\n content: \"\\f0c1\";\n}\n\n.fa-link-slash::before {\n content: \"\\f127\";\n}\n\n.fa-chain-broken::before {\n content: \"\\f127\";\n}\n\n.fa-chain-slash::before {\n content: \"\\f127\";\n}\n\n.fa-unlink::before {\n content: \"\\f127\";\n}\n\n.fa-lira-sign::before {\n content: \"\\f195\";\n}\n\n.fa-list::before {\n content: \"\\f03a\";\n}\n\n.fa-list-squares::before {\n content: \"\\f03a\";\n}\n\n.fa-list-check::before {\n content: \"\\f0ae\";\n}\n\n.fa-tasks::before {\n content: \"\\f0ae\";\n}\n\n.fa-list-ol::before {\n content: \"\\f0cb\";\n}\n\n.fa-list-1-2::before {\n content: \"\\f0cb\";\n}\n\n.fa-list-numeric::before {\n content: \"\\f0cb\";\n}\n\n.fa-list-ul::before {\n content: \"\\f0ca\";\n}\n\n.fa-list-dots::before {\n content: \"\\f0ca\";\n}\n\n.fa-litecoin-sign::before {\n content: \"\\e1d3\";\n}\n\n.fa-location-arrow::before {\n content: \"\\f124\";\n}\n\n.fa-location-crosshairs::before {\n content: \"\\f601\";\n}\n\n.fa-location::before {\n content: \"\\f601\";\n}\n\n.fa-location-dot::before {\n content: \"\\f3c5\";\n}\n\n.fa-map-marker-alt::before {\n content: \"\\f3c5\";\n}\n\n.fa-location-pin::before {\n content: \"\\f041\";\n}\n\n.fa-map-marker::before {\n content: \"\\f041\";\n}\n\n.fa-location-pin-lock::before {\n content: \"\\e51f\";\n}\n\n.fa-lock::before {\n content: \"\\f023\";\n}\n\n.fa-lock-open::before {\n content: \"\\f3c1\";\n}\n\n.fa-locust::before {\n content: \"\\e520\";\n}\n\n.fa-lungs::before {\n content: \"\\f604\";\n}\n\n.fa-lungs-virus::before {\n content: \"\\e067\";\n}\n\n.fa-m::before {\n content: \"M\";\n}\n\n.fa-magnet::before {\n content: \"\\f076\";\n}\n\n.fa-magnifying-glass::before {\n content: \"\\f002\";\n}\n\n.fa-search::before {\n content: \"\\f002\";\n}\n\n.fa-magnifying-glass-arrow-right::before {\n content: \"\\e521\";\n}\n\n.fa-magnifying-glass-chart::before {\n content: \"\\e522\";\n}\n\n.fa-magnifying-glass-dollar::before {\n content: \"\\f688\";\n}\n\n.fa-search-dollar::before {\n content: \"\\f688\";\n}\n\n.fa-magnifying-glass-location::before {\n content: \"\\f689\";\n}\n\n.fa-search-location::before {\n content: \"\\f689\";\n}\n\n.fa-magnifying-glass-minus::before {\n content: \"\\f010\";\n}\n\n.fa-search-minus::before {\n content: \"\\f010\";\n}\n\n.fa-magnifying-glass-plus::before {\n content: \"\\f00e\";\n}\n\n.fa-search-plus::before {\n content: \"\\f00e\";\n}\n\n.fa-manat-sign::before {\n content: \"\\e1d5\";\n}\n\n.fa-map::before {\n content: \"\\f279\";\n}\n\n.fa-map-location::before {\n content: \"\\f59f\";\n}\n\n.fa-map-marked::before {\n content: \"\\f59f\";\n}\n\n.fa-map-location-dot::before {\n content: \"\\f5a0\";\n}\n\n.fa-map-marked-alt::before {\n content: \"\\f5a0\";\n}\n\n.fa-map-pin::before {\n content: \"\\f276\";\n}\n\n.fa-marker::before {\n content: \"\\f5a1\";\n}\n\n.fa-mars::before {\n content: \"\\f222\";\n}\n\n.fa-mars-and-venus::before {\n content: \"\\f224\";\n}\n\n.fa-mars-and-venus-burst::before {\n content: \"\\e523\";\n}\n\n.fa-mars-double::before {\n content: \"\\f227\";\n}\n\n.fa-mars-stroke::before {\n content: \"\\f229\";\n}\n\n.fa-mars-stroke-right::before {\n content: \"\\f22b\";\n}\n\n.fa-mars-stroke-h::before {\n content: \"\\f22b\";\n}\n\n.fa-mars-stroke-up::before {\n content: \"\\f22a\";\n}\n\n.fa-mars-stroke-v::before {\n content: \"\\f22a\";\n}\n\n.fa-martini-glass::before {\n content: \"\\f57b\";\n}\n\n.fa-glass-martini-alt::before {\n content: \"\\f57b\";\n}\n\n.fa-martini-glass-citrus::before {\n content: \"\\f561\";\n}\n\n.fa-cocktail::before {\n content: \"\\f561\";\n}\n\n.fa-martini-glass-empty::before {\n content: \"\\f000\";\n}\n\n.fa-glass-martini::before {\n content: \"\\f000\";\n}\n\n.fa-mask::before {\n content: \"\\f6fa\";\n}\n\n.fa-mask-face::before {\n content: \"\\e1d7\";\n}\n\n.fa-mask-ventilator::before {\n content: \"\\e524\";\n}\n\n.fa-masks-theater::before {\n content: \"\\f630\";\n}\n\n.fa-theater-masks::before {\n content: \"\\f630\";\n}\n\n.fa-mattress-pillow::before {\n content: \"\\e525\";\n}\n\n.fa-maximize::before {\n content: \"\\f31e\";\n}\n\n.fa-expand-arrows-alt::before {\n content: \"\\f31e\";\n}\n\n.fa-medal::before {\n content: \"\\f5a2\";\n}\n\n.fa-memory::before {\n content: \"\\f538\";\n}\n\n.fa-menorah::before {\n content: \"\\f676\";\n}\n\n.fa-mercury::before {\n content: \"\\f223\";\n}\n\n.fa-message::before {\n content: \"\\f27a\";\n}\n\n.fa-comment-alt::before {\n content: \"\\f27a\";\n}\n\n.fa-meteor::before {\n content: \"\\f753\";\n}\n\n.fa-microchip::before {\n content: \"\\f2db\";\n}\n\n.fa-microphone::before {\n content: \"\\f130\";\n}\n\n.fa-microphone-lines::before {\n content: \"\\f3c9\";\n}\n\n.fa-microphone-alt::before {\n content: \"\\f3c9\";\n}\n\n.fa-microphone-lines-slash::before {\n content: \"\\f539\";\n}\n\n.fa-microphone-alt-slash::before {\n content: \"\\f539\";\n}\n\n.fa-microphone-slash::before {\n content: \"\\f131\";\n}\n\n.fa-microscope::before {\n content: \"\\f610\";\n}\n\n.fa-mill-sign::before {\n content: \"\\e1ed\";\n}\n\n.fa-minimize::before {\n content: \"\\f78c\";\n}\n\n.fa-compress-arrows-alt::before {\n content: \"\\f78c\";\n}\n\n.fa-minus::before {\n content: \"\\f068\";\n}\n\n.fa-subtract::before {\n content: \"\\f068\";\n}\n\n.fa-mitten::before {\n content: \"\\f7b5\";\n}\n\n.fa-mobile::before {\n content: \"\\f3ce\";\n}\n\n.fa-mobile-android::before {\n content: \"\\f3ce\";\n}\n\n.fa-mobile-phone::before {\n content: \"\\f3ce\";\n}\n\n.fa-mobile-button::before {\n content: \"\\f10b\";\n}\n\n.fa-mobile-retro::before {\n content: \"\\e527\";\n}\n\n.fa-mobile-screen::before {\n content: \"\\f3cf\";\n}\n\n.fa-mobile-android-alt::before {\n content: \"\\f3cf\";\n}\n\n.fa-mobile-screen-button::before {\n content: \"\\f3cd\";\n}\n\n.fa-mobile-alt::before {\n content: \"\\f3cd\";\n}\n\n.fa-money-bill::before {\n content: \"\\f0d6\";\n}\n\n.fa-money-bill-1::before {\n content: \"\\f3d1\";\n}\n\n.fa-money-bill-alt::before {\n content: \"\\f3d1\";\n}\n\n.fa-money-bill-1-wave::before {\n content: \"\\f53b\";\n}\n\n.fa-money-bill-wave-alt::before {\n content: \"\\f53b\";\n}\n\n.fa-money-bill-transfer::before {\n content: \"\\e528\";\n}\n\n.fa-money-bill-trend-up::before {\n content: \"\\e529\";\n}\n\n.fa-money-bill-wave::before {\n content: \"\\f53a\";\n}\n\n.fa-money-bill-wheat::before {\n content: \"\\e52a\";\n}\n\n.fa-money-bills::before {\n content: \"\\e1f3\";\n}\n\n.fa-money-check::before {\n content: \"\\f53c\";\n}\n\n.fa-money-check-dollar::before {\n content: \"\\f53d\";\n}\n\n.fa-money-check-alt::before {\n content: \"\\f53d\";\n}\n\n.fa-monument::before {\n content: \"\\f5a6\";\n}\n\n.fa-moon::before {\n content: \"\\f186\";\n}\n\n.fa-mortar-pestle::before {\n content: \"\\f5a7\";\n}\n\n.fa-mosque::before {\n content: \"\\f678\";\n}\n\n.fa-mosquito::before {\n content: \"\\e52b\";\n}\n\n.fa-mosquito-net::before {\n content: \"\\e52c\";\n}\n\n.fa-motorcycle::before {\n content: \"\\f21c\";\n}\n\n.fa-mound::before {\n content: \"\\e52d\";\n}\n\n.fa-mountain::before {\n content: \"\\f6fc\";\n}\n\n.fa-mountain-city::before {\n content: \"\\e52e\";\n}\n\n.fa-mountain-sun::before {\n content: \"\\e52f\";\n}\n\n.fa-mug-hot::before {\n content: \"\\f7b6\";\n}\n\n.fa-mug-saucer::before {\n content: \"\\f0f4\";\n}\n\n.fa-coffee::before {\n content: \"\\f0f4\";\n}\n\n.fa-music::before {\n content: \"\\f001\";\n}\n\n.fa-n::before {\n content: \"N\";\n}\n\n.fa-naira-sign::before {\n content: \"\\e1f6\";\n}\n\n.fa-network-wired::before {\n content: \"\\f6ff\";\n}\n\n.fa-neuter::before {\n content: \"\\f22c\";\n}\n\n.fa-newspaper::before {\n content: \"\\f1ea\";\n}\n\n.fa-not-equal::before {\n content: \"\\f53e\";\n}\n\n.fa-note-sticky::before {\n content: \"\\f249\";\n}\n\n.fa-sticky-note::before {\n content: \"\\f249\";\n}\n\n.fa-notes-medical::before {\n content: \"\\f481\";\n}\n\n.fa-o::before {\n content: \"O\";\n}\n\n.fa-object-group::before {\n content: \"\\f247\";\n}\n\n.fa-object-ungroup::before {\n content: \"\\f248\";\n}\n\n.fa-oil-can::before {\n content: \"\\f613\";\n}\n\n.fa-oil-well::before {\n content: \"\\e532\";\n}\n\n.fa-om::before {\n content: \"\\f679\";\n}\n\n.fa-otter::before {\n content: \"\\f700\";\n}\n\n.fa-outdent::before {\n content: \"\\f03b\";\n}\n\n.fa-dedent::before {\n content: \"\\f03b\";\n}\n\n.fa-p::before {\n content: \"P\";\n}\n\n.fa-pager::before {\n content: \"\\f815\";\n}\n\n.fa-paint-roller::before {\n content: \"\\f5aa\";\n}\n\n.fa-paintbrush::before {\n content: \"\\f1fc\";\n}\n\n.fa-paint-brush::before {\n content: \"\\f1fc\";\n}\n\n.fa-palette::before {\n content: \"\\f53f\";\n}\n\n.fa-pallet::before {\n content: \"\\f482\";\n}\n\n.fa-panorama::before {\n content: \"\\e209\";\n}\n\n.fa-paper-plane::before {\n content: \"\\f1d8\";\n}\n\n.fa-paperclip::before {\n content: \"\\f0c6\";\n}\n\n.fa-parachute-box::before {\n content: \"\\f4cd\";\n}\n\n.fa-paragraph::before {\n content: \"\\f1dd\";\n}\n\n.fa-passport::before {\n content: \"\\f5ab\";\n}\n\n.fa-paste::before {\n content: \"\\f0ea\";\n}\n\n.fa-file-clipboard::before {\n content: \"\\f0ea\";\n}\n\n.fa-pause::before {\n content: \"\\f04c\";\n}\n\n.fa-paw::before {\n content: \"\\f1b0\";\n}\n\n.fa-peace::before {\n content: \"\\f67c\";\n}\n\n.fa-pen::before {\n content: \"\\f304\";\n}\n\n.fa-pen-clip::before {\n content: \"\\f305\";\n}\n\n.fa-pen-alt::before {\n content: \"\\f305\";\n}\n\n.fa-pen-fancy::before {\n content: \"\\f5ac\";\n}\n\n.fa-pen-nib::before {\n content: \"\\f5ad\";\n}\n\n.fa-pen-ruler::before {\n content: \"\\f5ae\";\n}\n\n.fa-pencil-ruler::before {\n content: \"\\f5ae\";\n}\n\n.fa-pen-to-square::before {\n content: \"\\f044\";\n}\n\n.fa-edit::before {\n content: \"\\f044\";\n}\n\n.fa-pencil::before {\n content: \"\\f303\";\n}\n\n.fa-pencil-alt::before {\n content: \"\\f303\";\n}\n\n.fa-people-arrows-left-right::before {\n content: \"\\e068\";\n}\n\n.fa-people-arrows::before {\n content: \"\\e068\";\n}\n\n.fa-people-carry-box::before {\n content: \"\\f4ce\";\n}\n\n.fa-people-carry::before {\n content: \"\\f4ce\";\n}\n\n.fa-people-group::before {\n content: \"\\e533\";\n}\n\n.fa-people-line::before {\n content: \"\\e534\";\n}\n\n.fa-people-pulling::before {\n content: \"\\e535\";\n}\n\n.fa-people-robbery::before {\n content: \"\\e536\";\n}\n\n.fa-people-roof::before {\n content: \"\\e537\";\n}\n\n.fa-pepper-hot::before {\n content: \"\\f816\";\n}\n\n.fa-percent::before {\n content: \"\\%\";\n}\n\n.fa-percentage::before {\n content: \"\\%\";\n}\n\n.fa-person::before {\n content: \"\\f183\";\n}\n\n.fa-male::before {\n content: \"\\f183\";\n}\n\n.fa-person-arrow-down-to-line::before {\n content: \"\\e538\";\n}\n\n.fa-person-arrow-up-from-line::before {\n content: \"\\e539\";\n}\n\n.fa-person-biking::before {\n content: \"\\f84a\";\n}\n\n.fa-biking::before {\n content: \"\\f84a\";\n}\n\n.fa-person-booth::before {\n content: \"\\f756\";\n}\n\n.fa-person-breastfeeding::before {\n content: \"\\e53a\";\n}\n\n.fa-person-burst::before {\n content: \"\\e53b\";\n}\n\n.fa-person-cane::before {\n content: \"\\e53c\";\n}\n\n.fa-person-chalkboard::before {\n content: \"\\e53d\";\n}\n\n.fa-person-circle-check::before {\n content: \"\\e53e\";\n}\n\n.fa-person-circle-exclamation::before {\n content: \"\\e53f\";\n}\n\n.fa-person-circle-minus::before {\n content: \"\\e540\";\n}\n\n.fa-person-circle-plus::before {\n content: \"\\e541\";\n}\n\n.fa-person-circle-question::before {\n content: \"\\e542\";\n}\n\n.fa-person-circle-xmark::before {\n content: \"\\e543\";\n}\n\n.fa-person-digging::before {\n content: \"\\f85e\";\n}\n\n.fa-digging::before {\n content: \"\\f85e\";\n}\n\n.fa-person-dots-from-line::before {\n content: \"\\f470\";\n}\n\n.fa-diagnoses::before {\n content: \"\\f470\";\n}\n\n.fa-person-dress::before {\n content: \"\\f182\";\n}\n\n.fa-female::before {\n content: \"\\f182\";\n}\n\n.fa-person-dress-burst::before {\n content: \"\\e544\";\n}\n\n.fa-person-drowning::before {\n content: \"\\e545\";\n}\n\n.fa-person-falling::before {\n content: \"\\e546\";\n}\n\n.fa-person-falling-burst::before {\n content: \"\\e547\";\n}\n\n.fa-person-half-dress::before {\n content: \"\\e548\";\n}\n\n.fa-person-harassing::before {\n content: \"\\e549\";\n}\n\n.fa-person-hiking::before {\n content: \"\\f6ec\";\n}\n\n.fa-hiking::before {\n content: \"\\f6ec\";\n}\n\n.fa-person-military-pointing::before {\n content: \"\\e54a\";\n}\n\n.fa-person-military-rifle::before {\n content: \"\\e54b\";\n}\n\n.fa-person-military-to-person::before {\n content: \"\\e54c\";\n}\n\n.fa-person-praying::before {\n content: \"\\f683\";\n}\n\n.fa-pray::before {\n content: \"\\f683\";\n}\n\n.fa-person-pregnant::before {\n content: \"\\e31e\";\n}\n\n.fa-person-rays::before {\n content: \"\\e54d\";\n}\n\n.fa-person-rifle::before {\n content: \"\\e54e\";\n}\n\n.fa-person-running::before {\n content: \"\\f70c\";\n}\n\n.fa-running::before {\n content: \"\\f70c\";\n}\n\n.fa-person-shelter::before {\n content: \"\\e54f\";\n}\n\n.fa-person-skating::before {\n content: \"\\f7c5\";\n}\n\n.fa-skating::before {\n content: \"\\f7c5\";\n}\n\n.fa-person-skiing::before {\n content: \"\\f7c9\";\n}\n\n.fa-skiing::before {\n content: \"\\f7c9\";\n}\n\n.fa-person-skiing-nordic::before {\n content: \"\\f7ca\";\n}\n\n.fa-skiing-nordic::before {\n content: \"\\f7ca\";\n}\n\n.fa-person-snowboarding::before {\n content: \"\\f7ce\";\n}\n\n.fa-snowboarding::before {\n content: \"\\f7ce\";\n}\n\n.fa-person-swimming::before {\n content: \"\\f5c4\";\n}\n\n.fa-swimmer::before {\n content: \"\\f5c4\";\n}\n\n.fa-person-through-window::before {\n content: \"\\e433\";\n}\n\n.fa-person-walking::before {\n content: \"\\f554\";\n}\n\n.fa-walking::before {\n content: \"\\f554\";\n}\n\n.fa-person-walking-arrow-loop-left::before {\n content: \"\\e551\";\n}\n\n.fa-person-walking-arrow-right::before {\n content: \"\\e552\";\n}\n\n.fa-person-walking-dashed-line-arrow-right::before {\n content: \"\\e553\";\n}\n\n.fa-person-walking-luggage::before {\n content: \"\\e554\";\n}\n\n.fa-person-walking-with-cane::before {\n content: \"\\f29d\";\n}\n\n.fa-blind::before {\n content: \"\\f29d\";\n}\n\n.fa-peseta-sign::before {\n content: \"\\e221\";\n}\n\n.fa-peso-sign::before {\n content: \"\\e222\";\n}\n\n.fa-phone::before {\n content: \"\\f095\";\n}\n\n.fa-phone-flip::before {\n content: \"\\f879\";\n}\n\n.fa-phone-alt::before {\n content: \"\\f879\";\n}\n\n.fa-phone-slash::before {\n content: \"\\f3dd\";\n}\n\n.fa-phone-volume::before {\n content: \"\\f2a0\";\n}\n\n.fa-volume-control-phone::before {\n content: \"\\f2a0\";\n}\n\n.fa-photo-film::before {\n content: \"\\f87c\";\n}\n\n.fa-photo-video::before {\n content: \"\\f87c\";\n}\n\n.fa-piggy-bank::before {\n content: \"\\f4d3\";\n}\n\n.fa-pills::before {\n content: \"\\f484\";\n}\n\n.fa-pizza-slice::before {\n content: \"\\f818\";\n}\n\n.fa-place-of-worship::before {\n content: \"\\f67f\";\n}\n\n.fa-plane::before {\n content: \"\\f072\";\n}\n\n.fa-plane-arrival::before {\n content: \"\\f5af\";\n}\n\n.fa-plane-circle-check::before {\n content: \"\\e555\";\n}\n\n.fa-plane-circle-exclamation::before {\n content: \"\\e556\";\n}\n\n.fa-plane-circle-xmark::before {\n content: \"\\e557\";\n}\n\n.fa-plane-departure::before {\n content: \"\\f5b0\";\n}\n\n.fa-plane-lock::before {\n content: \"\\e558\";\n}\n\n.fa-plane-slash::before {\n content: \"\\e069\";\n}\n\n.fa-plane-up::before {\n content: \"\\e22d\";\n}\n\n.fa-plant-wilt::before {\n content: \"\\e43b\";\n}\n\n.fa-plate-wheat::before {\n content: \"\\e55a\";\n}\n\n.fa-play::before {\n content: \"\\f04b\";\n}\n\n.fa-plug::before {\n content: \"\\f1e6\";\n}\n\n.fa-plug-circle-bolt::before {\n content: \"\\e55b\";\n}\n\n.fa-plug-circle-check::before {\n content: \"\\e55c\";\n}\n\n.fa-plug-circle-exclamation::before {\n content: \"\\e55d\";\n}\n\n.fa-plug-circle-minus::before {\n content: \"\\e55e\";\n}\n\n.fa-plug-circle-plus::before {\n content: \"\\e55f\";\n}\n\n.fa-plug-circle-xmark::before {\n content: \"\\e560\";\n}\n\n.fa-plus::before {\n content: \"\\+\";\n}\n\n.fa-add::before {\n content: \"\\+\";\n}\n\n.fa-plus-minus::before {\n content: \"\\e43c\";\n}\n\n.fa-podcast::before {\n content: \"\\f2ce\";\n}\n\n.fa-poo::before {\n content: \"\\f2fe\";\n}\n\n.fa-poo-storm::before {\n content: \"\\f75a\";\n}\n\n.fa-poo-bolt::before {\n content: \"\\f75a\";\n}\n\n.fa-poop::before {\n content: \"\\f619\";\n}\n\n.fa-power-off::before {\n content: \"\\f011\";\n}\n\n.fa-prescription::before {\n content: \"\\f5b1\";\n}\n\n.fa-prescription-bottle::before {\n content: \"\\f485\";\n}\n\n.fa-prescription-bottle-medical::before {\n content: \"\\f486\";\n}\n\n.fa-prescription-bottle-alt::before {\n content: \"\\f486\";\n}\n\n.fa-print::before {\n content: \"\\f02f\";\n}\n\n.fa-pump-medical::before {\n content: \"\\e06a\";\n}\n\n.fa-pump-soap::before {\n content: \"\\e06b\";\n}\n\n.fa-puzzle-piece::before {\n content: \"\\f12e\";\n}\n\n.fa-q::before {\n content: \"Q\";\n}\n\n.fa-qrcode::before {\n content: \"\\f029\";\n}\n\n.fa-question::before {\n content: \"\\?\";\n}\n\n.fa-quote-left::before {\n content: \"\\f10d\";\n}\n\n.fa-quote-left-alt::before {\n content: \"\\f10d\";\n}\n\n.fa-quote-right::before {\n content: \"\\f10e\";\n}\n\n.fa-quote-right-alt::before {\n content: \"\\f10e\";\n}\n\n.fa-r::before {\n content: \"R\";\n}\n\n.fa-radiation::before {\n content: \"\\f7b9\";\n}\n\n.fa-radio::before {\n content: \"\\f8d7\";\n}\n\n.fa-rainbow::before {\n content: \"\\f75b\";\n}\n\n.fa-ranking-star::before {\n content: \"\\e561\";\n}\n\n.fa-receipt::before {\n content: \"\\f543\";\n}\n\n.fa-record-vinyl::before {\n content: \"\\f8d9\";\n}\n\n.fa-rectangle-ad::before {\n content: \"\\f641\";\n}\n\n.fa-ad::before {\n content: \"\\f641\";\n}\n\n.fa-rectangle-list::before {\n content: \"\\f022\";\n}\n\n.fa-list-alt::before {\n content: \"\\f022\";\n}\n\n.fa-rectangle-xmark::before {\n content: \"\\f410\";\n}\n\n.fa-rectangle-times::before {\n content: \"\\f410\";\n}\n\n.fa-times-rectangle::before {\n content: \"\\f410\";\n}\n\n.fa-window-close::before {\n content: \"\\f410\";\n}\n\n.fa-recycle::before {\n content: \"\\f1b8\";\n}\n\n.fa-registered::before {\n content: \"\\f25d\";\n}\n\n.fa-repeat::before {\n content: \"\\f363\";\n}\n\n.fa-reply::before {\n content: \"\\f3e5\";\n}\n\n.fa-mail-reply::before {\n content: \"\\f3e5\";\n}\n\n.fa-reply-all::before {\n content: \"\\f122\";\n}\n\n.fa-mail-reply-all::before {\n content: \"\\f122\";\n}\n\n.fa-republican::before {\n content: \"\\f75e\";\n}\n\n.fa-restroom::before {\n content: \"\\f7bd\";\n}\n\n.fa-retweet::before {\n content: \"\\f079\";\n}\n\n.fa-ribbon::before {\n content: \"\\f4d6\";\n}\n\n.fa-right-from-bracket::before {\n content: \"\\f2f5\";\n}\n\n.fa-sign-out-alt::before {\n content: \"\\f2f5\";\n}\n\n.fa-right-left::before {\n content: \"\\f362\";\n}\n\n.fa-exchange-alt::before {\n content: \"\\f362\";\n}\n\n.fa-right-long::before {\n content: \"\\f30b\";\n}\n\n.fa-long-arrow-alt-right::before {\n content: \"\\f30b\";\n}\n\n.fa-right-to-bracket::before {\n content: \"\\f2f6\";\n}\n\n.fa-sign-in-alt::before {\n content: \"\\f2f6\";\n}\n\n.fa-ring::before {\n content: \"\\f70b\";\n}\n\n.fa-road::before {\n content: \"\\f018\";\n}\n\n.fa-road-barrier::before {\n content: \"\\e562\";\n}\n\n.fa-road-bridge::before {\n content: \"\\e563\";\n}\n\n.fa-road-circle-check::before {\n content: \"\\e564\";\n}\n\n.fa-road-circle-exclamation::before {\n content: \"\\e565\";\n}\n\n.fa-road-circle-xmark::before {\n content: \"\\e566\";\n}\n\n.fa-road-lock::before {\n content: \"\\e567\";\n}\n\n.fa-road-spikes::before {\n content: \"\\e568\";\n}\n\n.fa-robot::before {\n content: \"\\f544\";\n}\n\n.fa-rocket::before {\n content: \"\\f135\";\n}\n\n.fa-rotate::before {\n content: \"\\f2f1\";\n}\n\n.fa-sync-alt::before {\n content: \"\\f2f1\";\n}\n\n.fa-rotate-left::before {\n content: \"\\f2ea\";\n}\n\n.fa-rotate-back::before {\n content: \"\\f2ea\";\n}\n\n.fa-rotate-backward::before {\n content: \"\\f2ea\";\n}\n\n.fa-undo-alt::before {\n content: \"\\f2ea\";\n}\n\n.fa-rotate-right::before {\n content: \"\\f2f9\";\n}\n\n.fa-redo-alt::before {\n content: \"\\f2f9\";\n}\n\n.fa-rotate-forward::before {\n content: \"\\f2f9\";\n}\n\n.fa-route::before {\n content: \"\\f4d7\";\n}\n\n.fa-rss::before {\n content: \"\\f09e\";\n}\n\n.fa-feed::before {\n content: \"\\f09e\";\n}\n\n.fa-ruble-sign::before {\n content: \"\\f158\";\n}\n\n.fa-rouble::before {\n content: \"\\f158\";\n}\n\n.fa-rub::before {\n content: \"\\f158\";\n}\n\n.fa-ruble::before {\n content: \"\\f158\";\n}\n\n.fa-rug::before {\n content: \"\\e569\";\n}\n\n.fa-ruler::before {\n content: \"\\f545\";\n}\n\n.fa-ruler-combined::before {\n content: \"\\f546\";\n}\n\n.fa-ruler-horizontal::before {\n content: \"\\f547\";\n}\n\n.fa-ruler-vertical::before {\n content: \"\\f548\";\n}\n\n.fa-rupee-sign::before {\n content: \"\\f156\";\n}\n\n.fa-rupee::before {\n content: \"\\f156\";\n}\n\n.fa-rupiah-sign::before {\n content: \"\\e23d\";\n}\n\n.fa-s::before {\n content: \"S\";\n}\n\n.fa-sack-dollar::before {\n content: \"\\f81d\";\n}\n\n.fa-sack-xmark::before {\n content: \"\\e56a\";\n}\n\n.fa-sailboat::before {\n content: \"\\e445\";\n}\n\n.fa-satellite::before {\n content: \"\\f7bf\";\n}\n\n.fa-satellite-dish::before {\n content: \"\\f7c0\";\n}\n\n.fa-scale-balanced::before {\n content: \"\\f24e\";\n}\n\n.fa-balance-scale::before {\n content: \"\\f24e\";\n}\n\n.fa-scale-unbalanced::before {\n content: \"\\f515\";\n}\n\n.fa-balance-scale-left::before {\n content: \"\\f515\";\n}\n\n.fa-scale-unbalanced-flip::before {\n content: \"\\f516\";\n}\n\n.fa-balance-scale-right::before {\n content: \"\\f516\";\n}\n\n.fa-school::before {\n content: \"\\f549\";\n}\n\n.fa-school-circle-check::before {\n content: \"\\e56b\";\n}\n\n.fa-school-circle-exclamation::before {\n content: \"\\e56c\";\n}\n\n.fa-school-circle-xmark::before {\n content: \"\\e56d\";\n}\n\n.fa-school-flag::before {\n content: \"\\e56e\";\n}\n\n.fa-school-lock::before {\n content: \"\\e56f\";\n}\n\n.fa-scissors::before {\n content: \"\\f0c4\";\n}\n\n.fa-cut::before {\n content: \"\\f0c4\";\n}\n\n.fa-screwdriver::before {\n content: \"\\f54a\";\n}\n\n.fa-screwdriver-wrench::before {\n content: \"\\f7d9\";\n}\n\n.fa-tools::before {\n content: \"\\f7d9\";\n}\n\n.fa-scroll::before {\n content: \"\\f70e\";\n}\n\n.fa-scroll-torah::before {\n content: \"\\f6a0\";\n}\n\n.fa-torah::before {\n content: \"\\f6a0\";\n}\n\n.fa-sd-card::before {\n content: \"\\f7c2\";\n}\n\n.fa-section::before {\n content: \"\\e447\";\n}\n\n.fa-seedling::before {\n content: \"\\f4d8\";\n}\n\n.fa-sprout::before {\n content: \"\\f4d8\";\n}\n\n.fa-server::before {\n content: \"\\f233\";\n}\n\n.fa-shapes::before {\n content: \"\\f61f\";\n}\n\n.fa-triangle-circle-square::before {\n content: \"\\f61f\";\n}\n\n.fa-share::before {\n content: \"\\f064\";\n}\n\n.fa-arrow-turn-right::before {\n content: \"\\f064\";\n}\n\n.fa-mail-forward::before {\n content: \"\\f064\";\n}\n\n.fa-share-from-square::before {\n content: \"\\f14d\";\n}\n\n.fa-share-square::before {\n content: \"\\f14d\";\n}\n\n.fa-share-nodes::before {\n content: \"\\f1e0\";\n}\n\n.fa-share-alt::before {\n content: \"\\f1e0\";\n}\n\n.fa-sheet-plastic::before {\n content: \"\\e571\";\n}\n\n.fa-shekel-sign::before {\n content: \"\\f20b\";\n}\n\n.fa-ils::before {\n content: \"\\f20b\";\n}\n\n.fa-shekel::before {\n content: \"\\f20b\";\n}\n\n.fa-sheqel::before {\n content: \"\\f20b\";\n}\n\n.fa-sheqel-sign::before {\n content: \"\\f20b\";\n}\n\n.fa-shield::before {\n content: \"\\f132\";\n}\n\n.fa-shield-blank::before {\n content: \"\\f132\";\n}\n\n.fa-shield-cat::before {\n content: \"\\e572\";\n}\n\n.fa-shield-dog::before {\n content: \"\\e573\";\n}\n\n.fa-shield-halved::before {\n content: \"\\f3ed\";\n}\n\n.fa-shield-alt::before {\n content: \"\\f3ed\";\n}\n\n.fa-shield-heart::before {\n content: \"\\e574\";\n}\n\n.fa-shield-virus::before {\n content: \"\\e06c\";\n}\n\n.fa-ship::before {\n content: \"\\f21a\";\n}\n\n.fa-shirt::before {\n content: \"\\f553\";\n}\n\n.fa-t-shirt::before {\n content: \"\\f553\";\n}\n\n.fa-tshirt::before {\n content: \"\\f553\";\n}\n\n.fa-shoe-prints::before {\n content: \"\\f54b\";\n}\n\n.fa-shop::before {\n content: \"\\f54f\";\n}\n\n.fa-store-alt::before {\n content: \"\\f54f\";\n}\n\n.fa-shop-lock::before {\n content: \"\\e4a5\";\n}\n\n.fa-shop-slash::before {\n content: \"\\e070\";\n}\n\n.fa-store-alt-slash::before {\n content: \"\\e070\";\n}\n\n.fa-shower::before {\n content: \"\\f2cc\";\n}\n\n.fa-shrimp::before {\n content: \"\\e448\";\n}\n\n.fa-shuffle::before {\n content: \"\\f074\";\n}\n\n.fa-random::before {\n content: \"\\f074\";\n}\n\n.fa-shuttle-space::before {\n content: \"\\f197\";\n}\n\n.fa-space-shuttle::before {\n content: \"\\f197\";\n}\n\n.fa-sign-hanging::before {\n content: \"\\f4d9\";\n}\n\n.fa-sign::before {\n content: \"\\f4d9\";\n}\n\n.fa-signal::before {\n content: \"\\f012\";\n}\n\n.fa-signal-5::before {\n content: \"\\f012\";\n}\n\n.fa-signal-perfect::before {\n content: \"\\f012\";\n}\n\n.fa-signature::before {\n content: \"\\f5b7\";\n}\n\n.fa-signs-post::before {\n content: \"\\f277\";\n}\n\n.fa-map-signs::before {\n content: \"\\f277\";\n}\n\n.fa-sim-card::before {\n content: \"\\f7c4\";\n}\n\n.fa-sink::before {\n content: \"\\e06d\";\n}\n\n.fa-sitemap::before {\n content: \"\\f0e8\";\n}\n\n.fa-skull::before {\n content: \"\\f54c\";\n}\n\n.fa-skull-crossbones::before {\n content: \"\\f714\";\n}\n\n.fa-slash::before {\n content: \"\\f715\";\n}\n\n.fa-sleigh::before {\n content: \"\\f7cc\";\n}\n\n.fa-sliders::before {\n content: \"\\f1de\";\n}\n\n.fa-sliders-h::before {\n content: \"\\f1de\";\n}\n\n.fa-smog::before {\n content: \"\\f75f\";\n}\n\n.fa-smoking::before {\n content: \"\\f48d\";\n}\n\n.fa-snowflake::before {\n content: \"\\f2dc\";\n}\n\n.fa-snowman::before {\n content: \"\\f7d0\";\n}\n\n.fa-snowplow::before {\n content: \"\\f7d2\";\n}\n\n.fa-soap::before {\n content: \"\\e06e\";\n}\n\n.fa-socks::before {\n content: \"\\f696\";\n}\n\n.fa-solar-panel::before {\n content: \"\\f5ba\";\n}\n\n.fa-sort::before {\n content: \"\\f0dc\";\n}\n\n.fa-unsorted::before {\n content: \"\\f0dc\";\n}\n\n.fa-sort-down::before {\n content: \"\\f0dd\";\n}\n\n.fa-sort-desc::before {\n content: \"\\f0dd\";\n}\n\n.fa-sort-up::before {\n content: \"\\f0de\";\n}\n\n.fa-sort-asc::before {\n content: \"\\f0de\";\n}\n\n.fa-spa::before {\n content: \"\\f5bb\";\n}\n\n.fa-spaghetti-monster-flying::before {\n content: \"\\f67b\";\n}\n\n.fa-pastafarianism::before {\n content: \"\\f67b\";\n}\n\n.fa-spell-check::before {\n content: \"\\f891\";\n}\n\n.fa-spider::before {\n content: \"\\f717\";\n}\n\n.fa-spinner::before {\n content: \"\\f110\";\n}\n\n.fa-splotch::before {\n content: \"\\f5bc\";\n}\n\n.fa-spoon::before {\n content: \"\\f2e5\";\n}\n\n.fa-utensil-spoon::before {\n content: \"\\f2e5\";\n}\n\n.fa-spray-can::before {\n content: \"\\f5bd\";\n}\n\n.fa-spray-can-sparkles::before {\n content: \"\\f5d0\";\n}\n\n.fa-air-freshener::before {\n content: \"\\f5d0\";\n}\n\n.fa-square::before {\n content: \"\\f0c8\";\n}\n\n.fa-square-arrow-up-right::before {\n content: \"\\f14c\";\n}\n\n.fa-external-link-square::before {\n content: \"\\f14c\";\n}\n\n.fa-square-caret-down::before {\n content: \"\\f150\";\n}\n\n.fa-caret-square-down::before {\n content: \"\\f150\";\n}\n\n.fa-square-caret-left::before {\n content: \"\\f191\";\n}\n\n.fa-caret-square-left::before {\n content: \"\\f191\";\n}\n\n.fa-square-caret-right::before {\n content: \"\\f152\";\n}\n\n.fa-caret-square-right::before {\n content: \"\\f152\";\n}\n\n.fa-square-caret-up::before {\n content: \"\\f151\";\n}\n\n.fa-caret-square-up::before {\n content: \"\\f151\";\n}\n\n.fa-square-check::before {\n content: \"\\f14a\";\n}\n\n.fa-check-square::before {\n content: \"\\f14a\";\n}\n\n.fa-square-envelope::before {\n content: \"\\f199\";\n}\n\n.fa-envelope-square::before {\n content: \"\\f199\";\n}\n\n.fa-square-full::before {\n content: \"\\f45c\";\n}\n\n.fa-square-h::before {\n content: \"\\f0fd\";\n}\n\n.fa-h-square::before {\n content: \"\\f0fd\";\n}\n\n.fa-square-minus::before {\n content: \"\\f146\";\n}\n\n.fa-minus-square::before {\n content: \"\\f146\";\n}\n\n.fa-square-nfi::before {\n content: \"\\e576\";\n}\n\n.fa-square-parking::before {\n content: \"\\f540\";\n}\n\n.fa-parking::before {\n content: \"\\f540\";\n}\n\n.fa-square-pen::before {\n content: \"\\f14b\";\n}\n\n.fa-pen-square::before {\n content: \"\\f14b\";\n}\n\n.fa-pencil-square::before {\n content: \"\\f14b\";\n}\n\n.fa-square-person-confined::before {\n content: \"\\e577\";\n}\n\n.fa-square-phone::before {\n content: \"\\f098\";\n}\n\n.fa-phone-square::before {\n content: \"\\f098\";\n}\n\n.fa-square-phone-flip::before {\n content: \"\\f87b\";\n}\n\n.fa-phone-square-alt::before {\n content: \"\\f87b\";\n}\n\n.fa-square-plus::before {\n content: \"\\f0fe\";\n}\n\n.fa-plus-square::before {\n content: \"\\f0fe\";\n}\n\n.fa-square-poll-horizontal::before {\n content: \"\\f682\";\n}\n\n.fa-poll-h::before {\n content: \"\\f682\";\n}\n\n.fa-square-poll-vertical::before {\n content: \"\\f681\";\n}\n\n.fa-poll::before {\n content: \"\\f681\";\n}\n\n.fa-square-root-variable::before {\n content: \"\\f698\";\n}\n\n.fa-square-root-alt::before {\n content: \"\\f698\";\n}\n\n.fa-square-rss::before {\n content: \"\\f143\";\n}\n\n.fa-rss-square::before {\n content: \"\\f143\";\n}\n\n.fa-square-share-nodes::before {\n content: \"\\f1e1\";\n}\n\n.fa-share-alt-square::before {\n content: \"\\f1e1\";\n}\n\n.fa-square-up-right::before {\n content: \"\\f360\";\n}\n\n.fa-external-link-square-alt::before {\n content: \"\\f360\";\n}\n\n.fa-square-virus::before {\n content: \"\\e578\";\n}\n\n.fa-square-xmark::before {\n content: \"\\f2d3\";\n}\n\n.fa-times-square::before {\n content: \"\\f2d3\";\n}\n\n.fa-xmark-square::before {\n content: \"\\f2d3\";\n}\n\n.fa-staff-aesculapius::before {\n content: \"\\e579\";\n}\n\n.fa-rod-asclepius::before {\n content: \"\\e579\";\n}\n\n.fa-rod-snake::before {\n content: \"\\e579\";\n}\n\n.fa-staff-snake::before {\n content: \"\\e579\";\n}\n\n.fa-stairs::before {\n content: \"\\e289\";\n}\n\n.fa-stamp::before {\n content: \"\\f5bf\";\n}\n\n.fa-star::before {\n content: \"\\f005\";\n}\n\n.fa-star-and-crescent::before {\n content: \"\\f699\";\n}\n\n.fa-star-half::before {\n content: \"\\f089\";\n}\n\n.fa-star-half-stroke::before {\n content: \"\\f5c0\";\n}\n\n.fa-star-half-alt::before {\n content: \"\\f5c0\";\n}\n\n.fa-star-of-david::before {\n content: \"\\f69a\";\n}\n\n.fa-star-of-life::before {\n content: \"\\f621\";\n}\n\n.fa-sterling-sign::before {\n content: \"\\f154\";\n}\n\n.fa-gbp::before {\n content: \"\\f154\";\n}\n\n.fa-pound-sign::before {\n content: \"\\f154\";\n}\n\n.fa-stethoscope::before {\n content: \"\\f0f1\";\n}\n\n.fa-stop::before {\n content: \"\\f04d\";\n}\n\n.fa-stopwatch::before {\n content: \"\\f2f2\";\n}\n\n.fa-stopwatch-20::before {\n content: \"\\e06f\";\n}\n\n.fa-store::before {\n content: \"\\f54e\";\n}\n\n.fa-store-slash::before {\n content: \"\\e071\";\n}\n\n.fa-street-view::before {\n content: \"\\f21d\";\n}\n\n.fa-strikethrough::before {\n content: \"\\f0cc\";\n}\n\n.fa-stroopwafel::before {\n content: \"\\f551\";\n}\n\n.fa-subscript::before {\n content: \"\\f12c\";\n}\n\n.fa-suitcase::before {\n content: \"\\f0f2\";\n}\n\n.fa-suitcase-medical::before {\n content: \"\\f0fa\";\n}\n\n.fa-medkit::before {\n content: \"\\f0fa\";\n}\n\n.fa-suitcase-rolling::before {\n content: \"\\f5c1\";\n}\n\n.fa-sun::before {\n content: \"\\f185\";\n}\n\n.fa-sun-plant-wilt::before {\n content: \"\\e57a\";\n}\n\n.fa-superscript::before {\n content: \"\\f12b\";\n}\n\n.fa-swatchbook::before {\n content: \"\\f5c3\";\n}\n\n.fa-synagogue::before {\n content: \"\\f69b\";\n}\n\n.fa-syringe::before {\n content: \"\\f48e\";\n}\n\n.fa-t::before {\n content: \"T\";\n}\n\n.fa-table::before {\n content: \"\\f0ce\";\n}\n\n.fa-table-cells::before {\n content: \"\\f00a\";\n}\n\n.fa-th::before {\n content: \"\\f00a\";\n}\n\n.fa-table-cells-large::before {\n content: \"\\f009\";\n}\n\n.fa-th-large::before {\n content: \"\\f009\";\n}\n\n.fa-table-columns::before {\n content: \"\\f0db\";\n}\n\n.fa-columns::before {\n content: \"\\f0db\";\n}\n\n.fa-table-list::before {\n content: \"\\f00b\";\n}\n\n.fa-th-list::before {\n content: \"\\f00b\";\n}\n\n.fa-table-tennis-paddle-ball::before {\n content: \"\\f45d\";\n}\n\n.fa-ping-pong-paddle-ball::before {\n content: \"\\f45d\";\n}\n\n.fa-table-tennis::before {\n content: \"\\f45d\";\n}\n\n.fa-tablet::before {\n content: \"\\f3fb\";\n}\n\n.fa-tablet-android::before {\n content: \"\\f3fb\";\n}\n\n.fa-tablet-button::before {\n content: \"\\f10a\";\n}\n\n.fa-tablet-screen-button::before {\n content: \"\\f3fa\";\n}\n\n.fa-tablet-alt::before {\n content: \"\\f3fa\";\n}\n\n.fa-tablets::before {\n content: \"\\f490\";\n}\n\n.fa-tachograph-digital::before {\n content: \"\\f566\";\n}\n\n.fa-digital-tachograph::before {\n content: \"\\f566\";\n}\n\n.fa-tag::before {\n content: \"\\f02b\";\n}\n\n.fa-tags::before {\n content: \"\\f02c\";\n}\n\n.fa-tape::before {\n content: \"\\f4db\";\n}\n\n.fa-tarp::before {\n content: \"\\e57b\";\n}\n\n.fa-tarp-droplet::before {\n content: \"\\e57c\";\n}\n\n.fa-taxi::before {\n content: \"\\f1ba\";\n}\n\n.fa-cab::before {\n content: \"\\f1ba\";\n}\n\n.fa-teeth::before {\n content: \"\\f62e\";\n}\n\n.fa-teeth-open::before {\n content: \"\\f62f\";\n}\n\n.fa-temperature-arrow-down::before {\n content: \"\\e03f\";\n}\n\n.fa-temperature-down::before {\n content: \"\\e03f\";\n}\n\n.fa-temperature-arrow-up::before {\n content: \"\\e040\";\n}\n\n.fa-temperature-up::before {\n content: \"\\e040\";\n}\n\n.fa-temperature-empty::before {\n content: \"\\f2cb\";\n}\n\n.fa-temperature-0::before {\n content: \"\\f2cb\";\n}\n\n.fa-thermometer-0::before {\n content: \"\\f2cb\";\n}\n\n.fa-thermometer-empty::before {\n content: \"\\f2cb\";\n}\n\n.fa-temperature-full::before {\n content: \"\\f2c7\";\n}\n\n.fa-temperature-4::before {\n content: \"\\f2c7\";\n}\n\n.fa-thermometer-4::before {\n content: \"\\f2c7\";\n}\n\n.fa-thermometer-full::before {\n content: \"\\f2c7\";\n}\n\n.fa-temperature-half::before {\n content: \"\\f2c9\";\n}\n\n.fa-temperature-2::before {\n content: \"\\f2c9\";\n}\n\n.fa-thermometer-2::before {\n content: \"\\f2c9\";\n}\n\n.fa-thermometer-half::before {\n content: \"\\f2c9\";\n}\n\n.fa-temperature-high::before {\n content: \"\\f769\";\n}\n\n.fa-temperature-low::before {\n content: \"\\f76b\";\n}\n\n.fa-temperature-quarter::before {\n content: \"\\f2ca\";\n}\n\n.fa-temperature-1::before {\n content: \"\\f2ca\";\n}\n\n.fa-thermometer-1::before {\n content: \"\\f2ca\";\n}\n\n.fa-thermometer-quarter::before {\n content: \"\\f2ca\";\n}\n\n.fa-temperature-three-quarters::before {\n content: \"\\f2c8\";\n}\n\n.fa-temperature-3::before {\n content: \"\\f2c8\";\n}\n\n.fa-thermometer-3::before {\n content: \"\\f2c8\";\n}\n\n.fa-thermometer-three-quarters::before {\n content: \"\\f2c8\";\n}\n\n.fa-tenge-sign::before {\n content: \"\\f7d7\";\n}\n\n.fa-tenge::before {\n content: \"\\f7d7\";\n}\n\n.fa-tent::before {\n content: \"\\e57d\";\n}\n\n.fa-tent-arrow-down-to-line::before {\n content: \"\\e57e\";\n}\n\n.fa-tent-arrow-left-right::before {\n content: \"\\e57f\";\n}\n\n.fa-tent-arrow-turn-left::before {\n content: \"\\e580\";\n}\n\n.fa-tent-arrows-down::before {\n content: \"\\e581\";\n}\n\n.fa-tents::before {\n content: \"\\e582\";\n}\n\n.fa-terminal::before {\n content: \"\\f120\";\n}\n\n.fa-text-height::before {\n content: \"\\f034\";\n}\n\n.fa-text-slash::before {\n content: \"\\f87d\";\n}\n\n.fa-remove-format::before {\n content: \"\\f87d\";\n}\n\n.fa-text-width::before {\n content: \"\\f035\";\n}\n\n.fa-thermometer::before {\n content: \"\\f491\";\n}\n\n.fa-thumbs-down::before {\n content: \"\\f165\";\n}\n\n.fa-thumbs-up::before {\n content: \"\\f164\";\n}\n\n.fa-thumbtack::before {\n content: \"\\f08d\";\n}\n\n.fa-thumb-tack::before {\n content: \"\\f08d\";\n}\n\n.fa-ticket::before {\n content: \"\\f145\";\n}\n\n.fa-ticket-simple::before {\n content: \"\\f3ff\";\n}\n\n.fa-ticket-alt::before {\n content: \"\\f3ff\";\n}\n\n.fa-timeline::before {\n content: \"\\e29c\";\n}\n\n.fa-toggle-off::before {\n content: \"\\f204\";\n}\n\n.fa-toggle-on::before {\n content: \"\\f205\";\n}\n\n.fa-toilet::before {\n content: \"\\f7d8\";\n}\n\n.fa-toilet-paper::before {\n content: \"\\f71e\";\n}\n\n.fa-toilet-paper-slash::before {\n content: \"\\e072\";\n}\n\n.fa-toilet-portable::before {\n content: \"\\e583\";\n}\n\n.fa-toilets-portable::before {\n content: \"\\e584\";\n}\n\n.fa-toolbox::before {\n content: \"\\f552\";\n}\n\n.fa-tooth::before {\n content: \"\\f5c9\";\n}\n\n.fa-torii-gate::before {\n content: \"\\f6a1\";\n}\n\n.fa-tornado::before {\n content: \"\\f76f\";\n}\n\n.fa-tower-broadcast::before {\n content: \"\\f519\";\n}\n\n.fa-broadcast-tower::before {\n content: \"\\f519\";\n}\n\n.fa-tower-cell::before {\n content: \"\\e585\";\n}\n\n.fa-tower-observation::before {\n content: \"\\e586\";\n}\n\n.fa-tractor::before {\n content: \"\\f722\";\n}\n\n.fa-trademark::before {\n content: \"\\f25c\";\n}\n\n.fa-traffic-light::before {\n content: \"\\f637\";\n}\n\n.fa-trailer::before {\n content: \"\\e041\";\n}\n\n.fa-train::before {\n content: \"\\f238\";\n}\n\n.fa-train-subway::before {\n content: \"\\f239\";\n}\n\n.fa-subway::before {\n content: \"\\f239\";\n}\n\n.fa-train-tram::before {\n content: \"\\f7da\";\n}\n\n.fa-tram::before {\n content: \"\\f7da\";\n}\n\n.fa-transgender::before {\n content: \"\\f225\";\n}\n\n.fa-transgender-alt::before {\n content: \"\\f225\";\n}\n\n.fa-trash::before {\n content: \"\\f1f8\";\n}\n\n.fa-trash-arrow-up::before {\n content: \"\\f829\";\n}\n\n.fa-trash-restore::before {\n content: \"\\f829\";\n}\n\n.fa-trash-can::before {\n content: \"\\f2ed\";\n}\n\n.fa-trash-alt::before {\n content: \"\\f2ed\";\n}\n\n.fa-trash-can-arrow-up::before {\n content: \"\\f82a\";\n}\n\n.fa-trash-restore-alt::before {\n content: \"\\f82a\";\n}\n\n.fa-tree::before {\n content: \"\\f1bb\";\n}\n\n.fa-tree-city::before {\n content: \"\\e587\";\n}\n\n.fa-triangle-exclamation::before {\n content: \"\\f071\";\n}\n\n.fa-exclamation-triangle::before {\n content: \"\\f071\";\n}\n\n.fa-warning::before {\n content: \"\\f071\";\n}\n\n.fa-trophy::before {\n content: \"\\f091\";\n}\n\n.fa-trowel::before {\n content: \"\\e589\";\n}\n\n.fa-trowel-bricks::before {\n content: \"\\e58a\";\n}\n\n.fa-truck::before {\n content: \"\\f0d1\";\n}\n\n.fa-truck-arrow-right::before {\n content: \"\\e58b\";\n}\n\n.fa-truck-droplet::before {\n content: \"\\e58c\";\n}\n\n.fa-truck-fast::before {\n content: \"\\f48b\";\n}\n\n.fa-shipping-fast::before {\n content: \"\\f48b\";\n}\n\n.fa-truck-field::before {\n content: \"\\e58d\";\n}\n\n.fa-truck-field-un::before {\n content: \"\\e58e\";\n}\n\n.fa-truck-front::before {\n content: \"\\e2b7\";\n}\n\n.fa-truck-medical::before {\n content: \"\\f0f9\";\n}\n\n.fa-ambulance::before {\n content: \"\\f0f9\";\n}\n\n.fa-truck-monster::before {\n content: \"\\f63b\";\n}\n\n.fa-truck-moving::before {\n content: \"\\f4df\";\n}\n\n.fa-truck-pickup::before {\n content: \"\\f63c\";\n}\n\n.fa-truck-plane::before {\n content: \"\\e58f\";\n}\n\n.fa-truck-ramp-box::before {\n content: \"\\f4de\";\n}\n\n.fa-truck-loading::before {\n content: \"\\f4de\";\n}\n\n.fa-tty::before {\n content: \"\\f1e4\";\n}\n\n.fa-teletype::before {\n content: \"\\f1e4\";\n}\n\n.fa-turkish-lira-sign::before {\n content: \"\\e2bb\";\n}\n\n.fa-try::before {\n content: \"\\e2bb\";\n}\n\n.fa-turkish-lira::before {\n content: \"\\e2bb\";\n}\n\n.fa-turn-down::before {\n content: \"\\f3be\";\n}\n\n.fa-level-down-alt::before {\n content: \"\\f3be\";\n}\n\n.fa-turn-up::before {\n content: \"\\f3bf\";\n}\n\n.fa-level-up-alt::before {\n content: \"\\f3bf\";\n}\n\n.fa-tv::before {\n content: \"\\f26c\";\n}\n\n.fa-television::before {\n content: \"\\f26c\";\n}\n\n.fa-tv-alt::before {\n content: \"\\f26c\";\n}\n\n.fa-u::before {\n content: \"U\";\n}\n\n.fa-umbrella::before {\n content: \"\\f0e9\";\n}\n\n.fa-umbrella-beach::before {\n content: \"\\f5ca\";\n}\n\n.fa-underline::before {\n content: \"\\f0cd\";\n}\n\n.fa-universal-access::before {\n content: \"\\f29a\";\n}\n\n.fa-unlock::before {\n content: \"\\f09c\";\n}\n\n.fa-unlock-keyhole::before {\n content: \"\\f13e\";\n}\n\n.fa-unlock-alt::before {\n content: \"\\f13e\";\n}\n\n.fa-up-down::before {\n content: \"\\f338\";\n}\n\n.fa-arrows-alt-v::before {\n content: \"\\f338\";\n}\n\n.fa-up-down-left-right::before {\n content: \"\\f0b2\";\n}\n\n.fa-arrows-alt::before {\n content: \"\\f0b2\";\n}\n\n.fa-up-long::before {\n content: \"\\f30c\";\n}\n\n.fa-long-arrow-alt-up::before {\n content: \"\\f30c\";\n}\n\n.fa-up-right-and-down-left-from-center::before {\n content: \"\\f424\";\n}\n\n.fa-expand-alt::before {\n content: \"\\f424\";\n}\n\n.fa-up-right-from-square::before {\n content: \"\\f35d\";\n}\n\n.fa-external-link-alt::before {\n content: \"\\f35d\";\n}\n\n.fa-upload::before {\n content: \"\\f093\";\n}\n\n.fa-user::before {\n content: \"\\f007\";\n}\n\n.fa-user-astronaut::before {\n content: \"\\f4fb\";\n}\n\n.fa-user-check::before {\n content: \"\\f4fc\";\n}\n\n.fa-user-clock::before {\n content: \"\\f4fd\";\n}\n\n.fa-user-doctor::before {\n content: \"\\f0f0\";\n}\n\n.fa-user-md::before {\n content: \"\\f0f0\";\n}\n\n.fa-user-gear::before {\n content: \"\\f4fe\";\n}\n\n.fa-user-cog::before {\n content: \"\\f4fe\";\n}\n\n.fa-user-graduate::before {\n content: \"\\f501\";\n}\n\n.fa-user-group::before {\n content: \"\\f500\";\n}\n\n.fa-user-friends::before {\n content: \"\\f500\";\n}\n\n.fa-user-injured::before {\n content: \"\\f728\";\n}\n\n.fa-user-large::before {\n content: \"\\f406\";\n}\n\n.fa-user-alt::before {\n content: \"\\f406\";\n}\n\n.fa-user-large-slash::before {\n content: \"\\f4fa\";\n}\n\n.fa-user-alt-slash::before {\n content: \"\\f4fa\";\n}\n\n.fa-user-lock::before {\n content: \"\\f502\";\n}\n\n.fa-user-minus::before {\n content: \"\\f503\";\n}\n\n.fa-user-ninja::before {\n content: \"\\f504\";\n}\n\n.fa-user-nurse::before {\n content: \"\\f82f\";\n}\n\n.fa-user-pen::before {\n content: \"\\f4ff\";\n}\n\n.fa-user-edit::before {\n content: \"\\f4ff\";\n}\n\n.fa-user-plus::before {\n content: \"\\f234\";\n}\n\n.fa-user-secret::before {\n content: \"\\f21b\";\n}\n\n.fa-user-shield::before {\n content: \"\\f505\";\n}\n\n.fa-user-slash::before {\n content: \"\\f506\";\n}\n\n.fa-user-tag::before {\n content: \"\\f507\";\n}\n\n.fa-user-tie::before {\n content: \"\\f508\";\n}\n\n.fa-user-xmark::before {\n content: \"\\f235\";\n}\n\n.fa-user-times::before {\n content: \"\\f235\";\n}\n\n.fa-users::before {\n content: \"\\f0c0\";\n}\n\n.fa-users-between-lines::before {\n content: \"\\e591\";\n}\n\n.fa-users-gear::before {\n content: \"\\f509\";\n}\n\n.fa-users-cog::before {\n content: \"\\f509\";\n}\n\n.fa-users-line::before {\n content: \"\\e592\";\n}\n\n.fa-users-rays::before {\n content: \"\\e593\";\n}\n\n.fa-users-rectangle::before {\n content: \"\\e594\";\n}\n\n.fa-users-slash::before {\n content: \"\\e073\";\n}\n\n.fa-users-viewfinder::before {\n content: \"\\e595\";\n}\n\n.fa-utensils::before {\n content: \"\\f2e7\";\n}\n\n.fa-cutlery::before {\n content: \"\\f2e7\";\n}\n\n.fa-v::before {\n content: \"V\";\n}\n\n.fa-van-shuttle::before {\n content: \"\\f5b6\";\n}\n\n.fa-shuttle-van::before {\n content: \"\\f5b6\";\n}\n\n.fa-vault::before {\n content: \"\\e2c5\";\n}\n\n.fa-vector-square::before {\n content: \"\\f5cb\";\n}\n\n.fa-venus::before {\n content: \"\\f221\";\n}\n\n.fa-venus-double::before {\n content: \"\\f226\";\n}\n\n.fa-venus-mars::before {\n content: \"\\f228\";\n}\n\n.fa-vest::before {\n content: \"\\e085\";\n}\n\n.fa-vest-patches::before {\n content: \"\\e086\";\n}\n\n.fa-vial::before {\n content: \"\\f492\";\n}\n\n.fa-vial-circle-check::before {\n content: \"\\e596\";\n}\n\n.fa-vial-virus::before {\n content: \"\\e597\";\n}\n\n.fa-vials::before {\n content: \"\\f493\";\n}\n\n.fa-video::before {\n content: \"\\f03d\";\n}\n\n.fa-video-camera::before {\n content: \"\\f03d\";\n}\n\n.fa-video-slash::before {\n content: \"\\f4e2\";\n}\n\n.fa-vihara::before {\n content: \"\\f6a7\";\n}\n\n.fa-virus::before {\n content: \"\\e074\";\n}\n\n.fa-virus-covid::before {\n content: \"\\e4a8\";\n}\n\n.fa-virus-covid-slash::before {\n content: \"\\e4a9\";\n}\n\n.fa-virus-slash::before {\n content: \"\\e075\";\n}\n\n.fa-viruses::before {\n content: \"\\e076\";\n}\n\n.fa-voicemail::before {\n content: \"\\f897\";\n}\n\n.fa-volcano::before {\n content: \"\\f770\";\n}\n\n.fa-volleyball::before {\n content: \"\\f45f\";\n}\n\n.fa-volleyball-ball::before {\n content: \"\\f45f\";\n}\n\n.fa-volume-high::before {\n content: \"\\f028\";\n}\n\n.fa-volume-up::before {\n content: \"\\f028\";\n}\n\n.fa-volume-low::before {\n content: \"\\f027\";\n}\n\n.fa-volume-down::before {\n content: \"\\f027\";\n}\n\n.fa-volume-off::before {\n content: \"\\f026\";\n}\n\n.fa-volume-xmark::before {\n content: \"\\f6a9\";\n}\n\n.fa-volume-mute::before {\n content: \"\\f6a9\";\n}\n\n.fa-volume-times::before {\n content: \"\\f6a9\";\n}\n\n.fa-vr-cardboard::before {\n content: \"\\f729\";\n}\n\n.fa-w::before {\n content: \"W\";\n}\n\n.fa-walkie-talkie::before {\n content: \"\\f8ef\";\n}\n\n.fa-wallet::before {\n content: \"\\f555\";\n}\n\n.fa-wand-magic::before {\n content: \"\\f0d0\";\n}\n\n.fa-magic::before {\n content: \"\\f0d0\";\n}\n\n.fa-wand-magic-sparkles::before {\n content: \"\\e2ca\";\n}\n\n.fa-magic-wand-sparkles::before {\n content: \"\\e2ca\";\n}\n\n.fa-wand-sparkles::before {\n content: \"\\f72b\";\n}\n\n.fa-warehouse::before {\n content: \"\\f494\";\n}\n\n.fa-water::before {\n content: \"\\f773\";\n}\n\n.fa-water-ladder::before {\n content: \"\\f5c5\";\n}\n\n.fa-ladder-water::before {\n content: \"\\f5c5\";\n}\n\n.fa-swimming-pool::before {\n content: \"\\f5c5\";\n}\n\n.fa-wave-square::before {\n content: \"\\f83e\";\n}\n\n.fa-weight-hanging::before {\n content: \"\\f5cd\";\n}\n\n.fa-weight-scale::before {\n content: \"\\f496\";\n}\n\n.fa-weight::before {\n content: \"\\f496\";\n}\n\n.fa-wheat-awn::before {\n content: \"\\e2cd\";\n}\n\n.fa-wheat-alt::before {\n content: \"\\e2cd\";\n}\n\n.fa-wheat-awn-circle-exclamation::before {\n content: \"\\e598\";\n}\n\n.fa-wheelchair::before {\n content: \"\\f193\";\n}\n\n.fa-wheelchair-move::before {\n content: \"\\e2ce\";\n}\n\n.fa-wheelchair-alt::before {\n content: \"\\e2ce\";\n}\n\n.fa-whiskey-glass::before {\n content: \"\\f7a0\";\n}\n\n.fa-glass-whiskey::before {\n content: \"\\f7a0\";\n}\n\n.fa-wifi::before {\n content: \"\\f1eb\";\n}\n\n.fa-wifi-3::before {\n content: \"\\f1eb\";\n}\n\n.fa-wifi-strong::before {\n content: \"\\f1eb\";\n}\n\n.fa-wind::before {\n content: \"\\f72e\";\n}\n\n.fa-window-maximize::before {\n content: \"\\f2d0\";\n}\n\n.fa-window-minimize::before {\n content: \"\\f2d1\";\n}\n\n.fa-window-restore::before {\n content: \"\\f2d2\";\n}\n\n.fa-wine-bottle::before {\n content: \"\\f72f\";\n}\n\n.fa-wine-glass::before {\n content: \"\\f4e3\";\n}\n\n.fa-wine-glass-empty::before {\n content: \"\\f5ce\";\n}\n\n.fa-wine-glass-alt::before {\n content: \"\\f5ce\";\n}\n\n.fa-won-sign::before {\n content: \"\\f159\";\n}\n\n.fa-krw::before {\n content: \"\\f159\";\n}\n\n.fa-won::before {\n content: \"\\f159\";\n}\n\n.fa-worm::before {\n content: \"\\e599\";\n}\n\n.fa-wrench::before {\n content: \"\\f0ad\";\n}\n\n.fa-x::before {\n content: \"X\";\n}\n\n.fa-x-ray::before {\n content: \"\\f497\";\n}\n\n.fa-xmark::before {\n content: \"\\f00d\";\n}\n\n.fa-close::before {\n content: \"\\f00d\";\n}\n\n.fa-multiply::before {\n content: \"\\f00d\";\n}\n\n.fa-remove::before {\n content: \"\\f00d\";\n}\n\n.fa-times::before {\n content: \"\\f00d\";\n}\n\n.fa-xmarks-lines::before {\n content: \"\\e59a\";\n}\n\n.fa-y::before {\n content: \"Y\";\n}\n\n.fa-yen-sign::before {\n content: \"\\f157\";\n}\n\n.fa-cny::before {\n content: \"\\f157\";\n}\n\n.fa-jpy::before {\n content: \"\\f157\";\n}\n\n.fa-rmb::before {\n content: \"\\f157\";\n}\n\n.fa-yen::before {\n content: \"\\f157\";\n}\n\n.fa-yin-yang::before {\n content: \"\\f6ad\";\n}\n\n.fa-z::before {\n content: \"Z\";\n}\n\n.sr-only,\n.fa-sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n}\n\n.sr-only-focusable:not(:focus),\n.fa-sr-only-focusable:not(:focus) {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n}\n\n/*!\n * Font Awesome Free 6.1.1 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n * Copyright 2022 Fonticons, Inc.\n */\n:root, :host {\n --fa-font-solid: normal 900 1em/1 \"Font Awesome 6 Free\";\n}\n\n@font-face {\n font-family: \"Font Awesome 6 Free\";\n font-style: normal;\n font-weight: 900;\n font-display: block;\n src: url(" + ___CSS_LOADER_URL_REPLACEMENT_18___ + ") format(\"woff2\"), url(" + ___CSS_LOADER_URL_REPLACEMENT_19___ + ") format(\"truetype\");\n}\n.fas,\n.fa-solid {\n font-family: \"Font Awesome 6 Free\";\n font-weight: 900;\n}\n\n/*!\n * Font Awesome Free 6.1.1 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n * Copyright 2022 Fonticons, Inc.\n */\n:root, :host {\n --fa-font-brands: normal 400 1em/1 \"Font Awesome 6 Brands\";\n}\n\n@font-face {\n font-family: \"Font Awesome 6 Brands\";\n font-style: normal;\n font-weight: 400;\n font-display: block;\n src: url(" + ___CSS_LOADER_URL_REPLACEMENT_20___ + ") format(\"woff2\"), url(" + ___CSS_LOADER_URL_REPLACEMENT_21___ + ") format(\"truetype\");\n}\n.fab,\n.fa-brands {\n font-family: \"Font Awesome 6 Brands\";\n font-weight: 400;\n}\n\n.fa-42-group:before {\n content: \"\\e080\";\n}\n\n.fa-innosoft:before {\n content: \"\\e080\";\n}\n\n.fa-500px:before {\n content: \"\\f26e\";\n}\n\n.fa-accessible-icon:before {\n content: \"\\f368\";\n}\n\n.fa-accusoft:before {\n content: \"\\f369\";\n}\n\n.fa-adn:before {\n content: \"\\f170\";\n}\n\n.fa-adversal:before {\n content: \"\\f36a\";\n}\n\n.fa-affiliatetheme:before {\n content: \"\\f36b\";\n}\n\n.fa-airbnb:before {\n content: \"\\f834\";\n}\n\n.fa-algolia:before {\n content: \"\\f36c\";\n}\n\n.fa-alipay:before {\n content: \"\\f642\";\n}\n\n.fa-amazon:before {\n content: \"\\f270\";\n}\n\n.fa-amazon-pay:before {\n content: \"\\f42c\";\n}\n\n.fa-amilia:before {\n content: \"\\f36d\";\n}\n\n.fa-android:before {\n content: \"\\f17b\";\n}\n\n.fa-angellist:before {\n content: \"\\f209\";\n}\n\n.fa-angrycreative:before {\n content: \"\\f36e\";\n}\n\n.fa-angular:before {\n content: \"\\f420\";\n}\n\n.fa-app-store:before {\n content: \"\\f36f\";\n}\n\n.fa-app-store-ios:before {\n content: \"\\f370\";\n}\n\n.fa-apper:before {\n content: \"\\f371\";\n}\n\n.fa-apple:before {\n content: \"\\f179\";\n}\n\n.fa-apple-pay:before {\n content: \"\\f415\";\n}\n\n.fa-artstation:before {\n content: \"\\f77a\";\n}\n\n.fa-asymmetrik:before {\n content: \"\\f372\";\n}\n\n.fa-atlassian:before {\n content: \"\\f77b\";\n}\n\n.fa-audible:before {\n content: \"\\f373\";\n}\n\n.fa-autoprefixer:before {\n content: \"\\f41c\";\n}\n\n.fa-avianex:before {\n content: \"\\f374\";\n}\n\n.fa-aviato:before {\n content: \"\\f421\";\n}\n\n.fa-aws:before {\n content: \"\\f375\";\n}\n\n.fa-bandcamp:before {\n content: \"\\f2d5\";\n}\n\n.fa-battle-net:before {\n content: \"\\f835\";\n}\n\n.fa-behance:before {\n content: \"\\f1b4\";\n}\n\n.fa-behance-square:before {\n content: \"\\f1b5\";\n}\n\n.fa-bilibili:before {\n content: \"\\e3d9\";\n}\n\n.fa-bimobject:before {\n content: \"\\f378\";\n}\n\n.fa-bitbucket:before {\n content: \"\\f171\";\n}\n\n.fa-bitcoin:before {\n content: \"\\f379\";\n}\n\n.fa-bity:before {\n content: \"\\f37a\";\n}\n\n.fa-black-tie:before {\n content: \"\\f27e\";\n}\n\n.fa-blackberry:before {\n content: \"\\f37b\";\n}\n\n.fa-blogger:before {\n content: \"\\f37c\";\n}\n\n.fa-blogger-b:before {\n content: \"\\f37d\";\n}\n\n.fa-bluetooth:before {\n content: \"\\f293\";\n}\n\n.fa-bluetooth-b:before {\n content: \"\\f294\";\n}\n\n.fa-bootstrap:before {\n content: \"\\f836\";\n}\n\n.fa-bots:before {\n content: \"\\e340\";\n}\n\n.fa-btc:before {\n content: \"\\f15a\";\n}\n\n.fa-buffer:before {\n content: \"\\f837\";\n}\n\n.fa-buromobelexperte:before {\n content: \"\\f37f\";\n}\n\n.fa-buy-n-large:before {\n content: \"\\f8a6\";\n}\n\n.fa-buysellads:before {\n content: \"\\f20d\";\n}\n\n.fa-canadian-maple-leaf:before {\n content: \"\\f785\";\n}\n\n.fa-cc-amazon-pay:before {\n content: \"\\f42d\";\n}\n\n.fa-cc-amex:before {\n content: \"\\f1f3\";\n}\n\n.fa-cc-apple-pay:before {\n content: \"\\f416\";\n}\n\n.fa-cc-diners-club:before {\n content: \"\\f24c\";\n}\n\n.fa-cc-discover:before {\n content: \"\\f1f2\";\n}\n\n.fa-cc-jcb:before {\n content: \"\\f24b\";\n}\n\n.fa-cc-mastercard:before {\n content: \"\\f1f1\";\n}\n\n.fa-cc-paypal:before {\n content: \"\\f1f4\";\n}\n\n.fa-cc-stripe:before {\n content: \"\\f1f5\";\n}\n\n.fa-cc-visa:before {\n content: \"\\f1f0\";\n}\n\n.fa-centercode:before {\n content: \"\\f380\";\n}\n\n.fa-centos:before {\n content: \"\\f789\";\n}\n\n.fa-chrome:before {\n content: \"\\f268\";\n}\n\n.fa-chromecast:before {\n content: \"\\f838\";\n}\n\n.fa-cloudflare:before {\n content: \"\\e07d\";\n}\n\n.fa-cloudscale:before {\n content: \"\\f383\";\n}\n\n.fa-cloudsmith:before {\n content: \"\\f384\";\n}\n\n.fa-cloudversify:before {\n content: \"\\f385\";\n}\n\n.fa-cmplid:before {\n content: \"\\e360\";\n}\n\n.fa-codepen:before {\n content: \"\\f1cb\";\n}\n\n.fa-codiepie:before {\n content: \"\\f284\";\n}\n\n.fa-confluence:before {\n content: \"\\f78d\";\n}\n\n.fa-connectdevelop:before {\n content: \"\\f20e\";\n}\n\n.fa-contao:before {\n content: \"\\f26d\";\n}\n\n.fa-cotton-bureau:before {\n content: \"\\f89e\";\n}\n\n.fa-cpanel:before {\n content: \"\\f388\";\n}\n\n.fa-creative-commons:before {\n content: \"\\f25e\";\n}\n\n.fa-creative-commons-by:before {\n content: \"\\f4e7\";\n}\n\n.fa-creative-commons-nc:before {\n content: \"\\f4e8\";\n}\n\n.fa-creative-commons-nc-eu:before {\n content: \"\\f4e9\";\n}\n\n.fa-creative-commons-nc-jp:before {\n content: \"\\f4ea\";\n}\n\n.fa-creative-commons-nd:before {\n content: \"\\f4eb\";\n}\n\n.fa-creative-commons-pd:before {\n content: \"\\f4ec\";\n}\n\n.fa-creative-commons-pd-alt:before {\n content: \"\\f4ed\";\n}\n\n.fa-creative-commons-remix:before {\n content: \"\\f4ee\";\n}\n\n.fa-creative-commons-sa:before {\n content: \"\\f4ef\";\n}\n\n.fa-creative-commons-sampling:before {\n content: \"\\f4f0\";\n}\n\n.fa-creative-commons-sampling-plus:before {\n content: \"\\f4f1\";\n}\n\n.fa-creative-commons-share:before {\n content: \"\\f4f2\";\n}\n\n.fa-creative-commons-zero:before {\n content: \"\\f4f3\";\n}\n\n.fa-critical-role:before {\n content: \"\\f6c9\";\n}\n\n.fa-css3:before {\n content: \"\\f13c\";\n}\n\n.fa-css3-alt:before {\n content: \"\\f38b\";\n}\n\n.fa-cuttlefish:before {\n content: \"\\f38c\";\n}\n\n.fa-d-and-d:before {\n content: \"\\f38d\";\n}\n\n.fa-d-and-d-beyond:before {\n content: \"\\f6ca\";\n}\n\n.fa-dailymotion:before {\n content: \"\\e052\";\n}\n\n.fa-dashcube:before {\n content: \"\\f210\";\n}\n\n.fa-deezer:before {\n content: \"\\e077\";\n}\n\n.fa-delicious:before {\n content: \"\\f1a5\";\n}\n\n.fa-deploydog:before {\n content: \"\\f38e\";\n}\n\n.fa-deskpro:before {\n content: \"\\f38f\";\n}\n\n.fa-dev:before {\n content: \"\\f6cc\";\n}\n\n.fa-deviantart:before {\n content: \"\\f1bd\";\n}\n\n.fa-dhl:before {\n content: \"\\f790\";\n}\n\n.fa-diaspora:before {\n content: \"\\f791\";\n}\n\n.fa-digg:before {\n content: \"\\f1a6\";\n}\n\n.fa-digital-ocean:before {\n content: \"\\f391\";\n}\n\n.fa-discord:before {\n content: \"\\f392\";\n}\n\n.fa-discourse:before {\n content: \"\\f393\";\n}\n\n.fa-dochub:before {\n content: \"\\f394\";\n}\n\n.fa-docker:before {\n content: \"\\f395\";\n}\n\n.fa-draft2digital:before {\n content: \"\\f396\";\n}\n\n.fa-dribbble:before {\n content: \"\\f17d\";\n}\n\n.fa-dribbble-square:before {\n content: \"\\f397\";\n}\n\n.fa-dropbox:before {\n content: \"\\f16b\";\n}\n\n.fa-drupal:before {\n content: \"\\f1a9\";\n}\n\n.fa-dyalog:before {\n content: \"\\f399\";\n}\n\n.fa-earlybirds:before {\n content: \"\\f39a\";\n}\n\n.fa-ebay:before {\n content: \"\\f4f4\";\n}\n\n.fa-edge:before {\n content: \"\\f282\";\n}\n\n.fa-edge-legacy:before {\n content: \"\\e078\";\n}\n\n.fa-elementor:before {\n content: \"\\f430\";\n}\n\n.fa-ello:before {\n content: \"\\f5f1\";\n}\n\n.fa-ember:before {\n content: \"\\f423\";\n}\n\n.fa-empire:before {\n content: \"\\f1d1\";\n}\n\n.fa-envira:before {\n content: \"\\f299\";\n}\n\n.fa-erlang:before {\n content: \"\\f39d\";\n}\n\n.fa-ethereum:before {\n content: \"\\f42e\";\n}\n\n.fa-etsy:before {\n content: \"\\f2d7\";\n}\n\n.fa-evernote:before {\n content: \"\\f839\";\n}\n\n.fa-expeditedssl:before {\n content: \"\\f23e\";\n}\n\n.fa-facebook:before {\n content: \"\\f09a\";\n}\n\n.fa-facebook-f:before {\n content: \"\\f39e\";\n}\n\n.fa-facebook-messenger:before {\n content: \"\\f39f\";\n}\n\n.fa-facebook-square:before {\n content: \"\\f082\";\n}\n\n.fa-fantasy-flight-games:before {\n content: \"\\f6dc\";\n}\n\n.fa-fedex:before {\n content: \"\\f797\";\n}\n\n.fa-fedora:before {\n content: \"\\f798\";\n}\n\n.fa-figma:before {\n content: \"\\f799\";\n}\n\n.fa-firefox:before {\n content: \"\\f269\";\n}\n\n.fa-firefox-browser:before {\n content: \"\\e007\";\n}\n\n.fa-first-order:before {\n content: \"\\f2b0\";\n}\n\n.fa-first-order-alt:before {\n content: \"\\f50a\";\n}\n\n.fa-firstdraft:before {\n content: \"\\f3a1\";\n}\n\n.fa-flickr:before {\n content: \"\\f16e\";\n}\n\n.fa-flipboard:before {\n content: \"\\f44d\";\n}\n\n.fa-fly:before {\n content: \"\\f417\";\n}\n\n.fa-font-awesome:before {\n content: \"\\f2b4\";\n}\n\n.fa-font-awesome-flag:before {\n content: \"\\f2b4\";\n}\n\n.fa-font-awesome-logo-full:before {\n content: \"\\f2b4\";\n}\n\n.fa-fonticons:before {\n content: \"\\f280\";\n}\n\n.fa-fonticons-fi:before {\n content: \"\\f3a2\";\n}\n\n.fa-fort-awesome:before {\n content: \"\\f286\";\n}\n\n.fa-fort-awesome-alt:before {\n content: \"\\f3a3\";\n}\n\n.fa-forumbee:before {\n content: \"\\f211\";\n}\n\n.fa-foursquare:before {\n content: \"\\f180\";\n}\n\n.fa-free-code-camp:before {\n content: \"\\f2c5\";\n}\n\n.fa-freebsd:before {\n content: \"\\f3a4\";\n}\n\n.fa-fulcrum:before {\n content: \"\\f50b\";\n}\n\n.fa-galactic-republic:before {\n content: \"\\f50c\";\n}\n\n.fa-galactic-senate:before {\n content: \"\\f50d\";\n}\n\n.fa-get-pocket:before {\n content: \"\\f265\";\n}\n\n.fa-gg:before {\n content: \"\\f260\";\n}\n\n.fa-gg-circle:before {\n content: \"\\f261\";\n}\n\n.fa-git:before {\n content: \"\\f1d3\";\n}\n\n.fa-git-alt:before {\n content: \"\\f841\";\n}\n\n.fa-git-square:before {\n content: \"\\f1d2\";\n}\n\n.fa-github:before {\n content: \"\\f09b\";\n}\n\n.fa-github-alt:before {\n content: \"\\f113\";\n}\n\n.fa-github-square:before {\n content: \"\\f092\";\n}\n\n.fa-gitkraken:before {\n content: \"\\f3a6\";\n}\n\n.fa-gitlab:before {\n content: \"\\f296\";\n}\n\n.fa-gitter:before {\n content: \"\\f426\";\n}\n\n.fa-glide:before {\n content: \"\\f2a5\";\n}\n\n.fa-glide-g:before {\n content: \"\\f2a6\";\n}\n\n.fa-gofore:before {\n content: \"\\f3a7\";\n}\n\n.fa-golang:before {\n content: \"\\e40f\";\n}\n\n.fa-goodreads:before {\n content: \"\\f3a8\";\n}\n\n.fa-goodreads-g:before {\n content: \"\\f3a9\";\n}\n\n.fa-google:before {\n content: \"\\f1a0\";\n}\n\n.fa-google-drive:before {\n content: \"\\f3aa\";\n}\n\n.fa-google-pay:before {\n content: \"\\e079\";\n}\n\n.fa-google-play:before {\n content: \"\\f3ab\";\n}\n\n.fa-google-plus:before {\n content: \"\\f2b3\";\n}\n\n.fa-google-plus-g:before {\n content: \"\\f0d5\";\n}\n\n.fa-google-plus-square:before {\n content: \"\\f0d4\";\n}\n\n.fa-google-wallet:before {\n content: \"\\f1ee\";\n}\n\n.fa-gratipay:before {\n content: \"\\f184\";\n}\n\n.fa-grav:before {\n content: \"\\f2d6\";\n}\n\n.fa-gripfire:before {\n content: \"\\f3ac\";\n}\n\n.fa-grunt:before {\n content: \"\\f3ad\";\n}\n\n.fa-guilded:before {\n content: \"\\e07e\";\n}\n\n.fa-gulp:before {\n content: \"\\f3ae\";\n}\n\n.fa-hacker-news:before {\n content: \"\\f1d4\";\n}\n\n.fa-hacker-news-square:before {\n content: \"\\f3af\";\n}\n\n.fa-hackerrank:before {\n content: \"\\f5f7\";\n}\n\n.fa-hashnode:before {\n content: \"\\e499\";\n}\n\n.fa-hips:before {\n content: \"\\f452\";\n}\n\n.fa-hire-a-helper:before {\n content: \"\\f3b0\";\n}\n\n.fa-hive:before {\n content: \"\\e07f\";\n}\n\n.fa-hooli:before {\n content: \"\\f427\";\n}\n\n.fa-hornbill:before {\n content: \"\\f592\";\n}\n\n.fa-hotjar:before {\n content: \"\\f3b1\";\n}\n\n.fa-houzz:before {\n content: \"\\f27c\";\n}\n\n.fa-html5:before {\n content: \"\\f13b\";\n}\n\n.fa-hubspot:before {\n content: \"\\f3b2\";\n}\n\n.fa-ideal:before {\n content: \"\\e013\";\n}\n\n.fa-imdb:before {\n content: \"\\f2d8\";\n}\n\n.fa-instagram:before {\n content: \"\\f16d\";\n}\n\n.fa-instagram-square:before {\n content: \"\\e055\";\n}\n\n.fa-instalod:before {\n content: \"\\e081\";\n}\n\n.fa-intercom:before {\n content: \"\\f7af\";\n}\n\n.fa-internet-explorer:before {\n content: \"\\f26b\";\n}\n\n.fa-invision:before {\n content: \"\\f7b0\";\n}\n\n.fa-ioxhost:before {\n content: \"\\f208\";\n}\n\n.fa-itch-io:before {\n content: \"\\f83a\";\n}\n\n.fa-itunes:before {\n content: \"\\f3b4\";\n}\n\n.fa-itunes-note:before {\n content: \"\\f3b5\";\n}\n\n.fa-java:before {\n content: \"\\f4e4\";\n}\n\n.fa-jedi-order:before {\n content: \"\\f50e\";\n}\n\n.fa-jenkins:before {\n content: \"\\f3b6\";\n}\n\n.fa-jira:before {\n content: \"\\f7b1\";\n}\n\n.fa-joget:before {\n content: \"\\f3b7\";\n}\n\n.fa-joomla:before {\n content: \"\\f1aa\";\n}\n\n.fa-js:before {\n content: \"\\f3b8\";\n}\n\n.fa-js-square:before {\n content: \"\\f3b9\";\n}\n\n.fa-jsfiddle:before {\n content: \"\\f1cc\";\n}\n\n.fa-kaggle:before {\n content: \"\\f5fa\";\n}\n\n.fa-keybase:before {\n content: \"\\f4f5\";\n}\n\n.fa-keycdn:before {\n content: \"\\f3ba\";\n}\n\n.fa-kickstarter:before {\n content: \"\\f3bb\";\n}\n\n.fa-kickstarter-k:before {\n content: \"\\f3bc\";\n}\n\n.fa-korvue:before {\n content: \"\\f42f\";\n}\n\n.fa-laravel:before {\n content: \"\\f3bd\";\n}\n\n.fa-lastfm:before {\n content: \"\\f202\";\n}\n\n.fa-lastfm-square:before {\n content: \"\\f203\";\n}\n\n.fa-leanpub:before {\n content: \"\\f212\";\n}\n\n.fa-less:before {\n content: \"\\f41d\";\n}\n\n.fa-line:before {\n content: \"\\f3c0\";\n}\n\n.fa-linkedin:before {\n content: \"\\f08c\";\n}\n\n.fa-linkedin-in:before {\n content: \"\\f0e1\";\n}\n\n.fa-linode:before {\n content: \"\\f2b8\";\n}\n\n.fa-linux:before {\n content: \"\\f17c\";\n}\n\n.fa-lyft:before {\n content: \"\\f3c3\";\n}\n\n.fa-magento:before {\n content: \"\\f3c4\";\n}\n\n.fa-mailchimp:before {\n content: \"\\f59e\";\n}\n\n.fa-mandalorian:before {\n content: \"\\f50f\";\n}\n\n.fa-markdown:before {\n content: \"\\f60f\";\n}\n\n.fa-mastodon:before {\n content: \"\\f4f6\";\n}\n\n.fa-maxcdn:before {\n content: \"\\f136\";\n}\n\n.fa-mdb:before {\n content: \"\\f8ca\";\n}\n\n.fa-medapps:before {\n content: \"\\f3c6\";\n}\n\n.fa-medium:before {\n content: \"\\f23a\";\n}\n\n.fa-medium-m:before {\n content: \"\\f23a\";\n}\n\n.fa-medrt:before {\n content: \"\\f3c8\";\n}\n\n.fa-meetup:before {\n content: \"\\f2e0\";\n}\n\n.fa-megaport:before {\n content: \"\\f5a3\";\n}\n\n.fa-mendeley:before {\n content: \"\\f7b3\";\n}\n\n.fa-microblog:before {\n content: \"\\e01a\";\n}\n\n.fa-microsoft:before {\n content: \"\\f3ca\";\n}\n\n.fa-mix:before {\n content: \"\\f3cb\";\n}\n\n.fa-mixcloud:before {\n content: \"\\f289\";\n}\n\n.fa-mixer:before {\n content: \"\\e056\";\n}\n\n.fa-mizuni:before {\n content: \"\\f3cc\";\n}\n\n.fa-modx:before {\n content: \"\\f285\";\n}\n\n.fa-monero:before {\n content: \"\\f3d0\";\n}\n\n.fa-napster:before {\n content: \"\\f3d2\";\n}\n\n.fa-neos:before {\n content: \"\\f612\";\n}\n\n.fa-nfc-directional:before {\n content: \"\\e530\";\n}\n\n.fa-nfc-symbol:before {\n content: \"\\e531\";\n}\n\n.fa-nimblr:before {\n content: \"\\f5a8\";\n}\n\n.fa-node:before {\n content: \"\\f419\";\n}\n\n.fa-node-js:before {\n content: \"\\f3d3\";\n}\n\n.fa-npm:before {\n content: \"\\f3d4\";\n}\n\n.fa-ns8:before {\n content: \"\\f3d5\";\n}\n\n.fa-nutritionix:before {\n content: \"\\f3d6\";\n}\n\n.fa-octopus-deploy:before {\n content: \"\\e082\";\n}\n\n.fa-odnoklassniki:before {\n content: \"\\f263\";\n}\n\n.fa-odnoklassniki-square:before {\n content: \"\\f264\";\n}\n\n.fa-old-republic:before {\n content: \"\\f510\";\n}\n\n.fa-opencart:before {\n content: \"\\f23d\";\n}\n\n.fa-openid:before {\n content: \"\\f19b\";\n}\n\n.fa-opera:before {\n content: \"\\f26a\";\n}\n\n.fa-optin-monster:before {\n content: \"\\f23c\";\n}\n\n.fa-orcid:before {\n content: \"\\f8d2\";\n}\n\n.fa-osi:before {\n content: \"\\f41a\";\n}\n\n.fa-padlet:before {\n content: \"\\e4a0\";\n}\n\n.fa-page4:before {\n content: \"\\f3d7\";\n}\n\n.fa-pagelines:before {\n content: \"\\f18c\";\n}\n\n.fa-palfed:before {\n content: \"\\f3d8\";\n}\n\n.fa-patreon:before {\n content: \"\\f3d9\";\n}\n\n.fa-paypal:before {\n content: \"\\f1ed\";\n}\n\n.fa-perbyte:before {\n content: \"\\e083\";\n}\n\n.fa-periscope:before {\n content: \"\\f3da\";\n}\n\n.fa-phabricator:before {\n content: \"\\f3db\";\n}\n\n.fa-phoenix-framework:before {\n content: \"\\f3dc\";\n}\n\n.fa-phoenix-squadron:before {\n content: \"\\f511\";\n}\n\n.fa-php:before {\n content: \"\\f457\";\n}\n\n.fa-pied-piper:before {\n content: \"\\f2ae\";\n}\n\n.fa-pied-piper-alt:before {\n content: \"\\f1a8\";\n}\n\n.fa-pied-piper-hat:before {\n content: \"\\f4e5\";\n}\n\n.fa-pied-piper-pp:before {\n content: \"\\f1a7\";\n}\n\n.fa-pied-piper-square:before {\n content: \"\\e01e\";\n}\n\n.fa-pinterest:before {\n content: \"\\f0d2\";\n}\n\n.fa-pinterest-p:before {\n content: \"\\f231\";\n}\n\n.fa-pinterest-square:before {\n content: \"\\f0d3\";\n}\n\n.fa-pix:before {\n content: \"\\e43a\";\n}\n\n.fa-playstation:before {\n content: \"\\f3df\";\n}\n\n.fa-product-hunt:before {\n content: \"\\f288\";\n}\n\n.fa-pushed:before {\n content: \"\\f3e1\";\n}\n\n.fa-python:before {\n content: \"\\f3e2\";\n}\n\n.fa-qq:before {\n content: \"\\f1d6\";\n}\n\n.fa-quinscape:before {\n content: \"\\f459\";\n}\n\n.fa-quora:before {\n content: \"\\f2c4\";\n}\n\n.fa-r-project:before {\n content: \"\\f4f7\";\n}\n\n.fa-raspberry-pi:before {\n content: \"\\f7bb\";\n}\n\n.fa-ravelry:before {\n content: \"\\f2d9\";\n}\n\n.fa-react:before {\n content: \"\\f41b\";\n}\n\n.fa-reacteurope:before {\n content: \"\\f75d\";\n}\n\n.fa-readme:before {\n content: \"\\f4d5\";\n}\n\n.fa-rebel:before {\n content: \"\\f1d0\";\n}\n\n.fa-red-river:before {\n content: \"\\f3e3\";\n}\n\n.fa-reddit:before {\n content: \"\\f1a1\";\n}\n\n.fa-reddit-alien:before {\n content: \"\\f281\";\n}\n\n.fa-reddit-square:before {\n content: \"\\f1a2\";\n}\n\n.fa-redhat:before {\n content: \"\\f7bc\";\n}\n\n.fa-renren:before {\n content: \"\\f18b\";\n}\n\n.fa-replyd:before {\n content: \"\\f3e6\";\n}\n\n.fa-researchgate:before {\n content: \"\\f4f8\";\n}\n\n.fa-resolving:before {\n content: \"\\f3e7\";\n}\n\n.fa-rev:before {\n content: \"\\f5b2\";\n}\n\n.fa-rocketchat:before {\n content: \"\\f3e8\";\n}\n\n.fa-rockrms:before {\n content: \"\\f3e9\";\n}\n\n.fa-rust:before {\n content: \"\\e07a\";\n}\n\n.fa-safari:before {\n content: \"\\f267\";\n}\n\n.fa-salesforce:before {\n content: \"\\f83b\";\n}\n\n.fa-sass:before {\n content: \"\\f41e\";\n}\n\n.fa-schlix:before {\n content: \"\\f3ea\";\n}\n\n.fa-screenpal:before {\n content: \"\\e570\";\n}\n\n.fa-scribd:before {\n content: \"\\f28a\";\n}\n\n.fa-searchengin:before {\n content: \"\\f3eb\";\n}\n\n.fa-sellcast:before {\n content: \"\\f2da\";\n}\n\n.fa-sellsy:before {\n content: \"\\f213\";\n}\n\n.fa-servicestack:before {\n content: \"\\f3ec\";\n}\n\n.fa-shirtsinbulk:before {\n content: \"\\f214\";\n}\n\n.fa-shopify:before {\n content: \"\\e057\";\n}\n\n.fa-shopware:before {\n content: \"\\f5b5\";\n}\n\n.fa-simplybuilt:before {\n content: \"\\f215\";\n}\n\n.fa-sistrix:before {\n content: \"\\f3ee\";\n}\n\n.fa-sith:before {\n content: \"\\f512\";\n}\n\n.fa-sitrox:before {\n content: \"\\e44a\";\n}\n\n.fa-sketch:before {\n content: \"\\f7c6\";\n}\n\n.fa-skyatlas:before {\n content: \"\\f216\";\n}\n\n.fa-skype:before {\n content: \"\\f17e\";\n}\n\n.fa-slack:before {\n content: \"\\f198\";\n}\n\n.fa-slack-hash:before {\n content: \"\\f198\";\n}\n\n.fa-slideshare:before {\n content: \"\\f1e7\";\n}\n\n.fa-snapchat:before {\n content: \"\\f2ab\";\n}\n\n.fa-snapchat-ghost:before {\n content: \"\\f2ab\";\n}\n\n.fa-snapchat-square:before {\n content: \"\\f2ad\";\n}\n\n.fa-soundcloud:before {\n content: \"\\f1be\";\n}\n\n.fa-sourcetree:before {\n content: \"\\f7d3\";\n}\n\n.fa-speakap:before {\n content: \"\\f3f3\";\n}\n\n.fa-speaker-deck:before {\n content: \"\\f83c\";\n}\n\n.fa-spotify:before {\n content: \"\\f1bc\";\n}\n\n.fa-square-font-awesome:before {\n content: \"\\f425\";\n}\n\n.fa-square-font-awesome-stroke:before {\n content: \"\\f35c\";\n}\n\n.fa-font-awesome-alt:before {\n content: \"\\f35c\";\n}\n\n.fa-squarespace:before {\n content: \"\\f5be\";\n}\n\n.fa-stack-exchange:before {\n content: \"\\f18d\";\n}\n\n.fa-stack-overflow:before {\n content: \"\\f16c\";\n}\n\n.fa-stackpath:before {\n content: \"\\f842\";\n}\n\n.fa-staylinked:before {\n content: \"\\f3f5\";\n}\n\n.fa-steam:before {\n content: \"\\f1b6\";\n}\n\n.fa-steam-square:before {\n content: \"\\f1b7\";\n}\n\n.fa-steam-symbol:before {\n content: \"\\f3f6\";\n}\n\n.fa-sticker-mule:before {\n content: \"\\f3f7\";\n}\n\n.fa-strava:before {\n content: \"\\f428\";\n}\n\n.fa-stripe:before {\n content: \"\\f429\";\n}\n\n.fa-stripe-s:before {\n content: \"\\f42a\";\n}\n\n.fa-studiovinari:before {\n content: \"\\f3f8\";\n}\n\n.fa-stumbleupon:before {\n content: \"\\f1a4\";\n}\n\n.fa-stumbleupon-circle:before {\n content: \"\\f1a3\";\n}\n\n.fa-superpowers:before {\n content: \"\\f2dd\";\n}\n\n.fa-supple:before {\n content: \"\\f3f9\";\n}\n\n.fa-suse:before {\n content: \"\\f7d6\";\n}\n\n.fa-swift:before {\n content: \"\\f8e1\";\n}\n\n.fa-symfony:before {\n content: \"\\f83d\";\n}\n\n.fa-teamspeak:before {\n content: \"\\f4f9\";\n}\n\n.fa-telegram:before {\n content: \"\\f2c6\";\n}\n\n.fa-telegram-plane:before {\n content: \"\\f2c6\";\n}\n\n.fa-tencent-weibo:before {\n content: \"\\f1d5\";\n}\n\n.fa-the-red-yeti:before {\n content: \"\\f69d\";\n}\n\n.fa-themeco:before {\n content: \"\\f5c6\";\n}\n\n.fa-themeisle:before {\n content: \"\\f2b2\";\n}\n\n.fa-think-peaks:before {\n content: \"\\f731\";\n}\n\n.fa-tiktok:before {\n content: \"\\e07b\";\n}\n\n.fa-trade-federation:before {\n content: \"\\f513\";\n}\n\n.fa-trello:before {\n content: \"\\f181\";\n}\n\n.fa-tumblr:before {\n content: \"\\f173\";\n}\n\n.fa-tumblr-square:before {\n content: \"\\f174\";\n}\n\n.fa-twitch:before {\n content: \"\\f1e8\";\n}\n\n.fa-twitter:before {\n content: \"\\f099\";\n}\n\n.fa-twitter-square:before {\n content: \"\\f081\";\n}\n\n.fa-typo3:before {\n content: \"\\f42b\";\n}\n\n.fa-uber:before {\n content: \"\\f402\";\n}\n\n.fa-ubuntu:before {\n content: \"\\f7df\";\n}\n\n.fa-uikit:before {\n content: \"\\f403\";\n}\n\n.fa-umbraco:before {\n content: \"\\f8e8\";\n}\n\n.fa-uncharted:before {\n content: \"\\e084\";\n}\n\n.fa-uniregistry:before {\n content: \"\\f404\";\n}\n\n.fa-unity:before {\n content: \"\\e049\";\n}\n\n.fa-unsplash:before {\n content: \"\\e07c\";\n}\n\n.fa-untappd:before {\n content: \"\\f405\";\n}\n\n.fa-ups:before {\n content: \"\\f7e0\";\n}\n\n.fa-usb:before {\n content: \"\\f287\";\n}\n\n.fa-usps:before {\n content: \"\\f7e1\";\n}\n\n.fa-ussunnah:before {\n content: \"\\f407\";\n}\n\n.fa-vaadin:before {\n content: \"\\f408\";\n}\n\n.fa-viacoin:before {\n content: \"\\f237\";\n}\n\n.fa-viadeo:before {\n content: \"\\f2a9\";\n}\n\n.fa-viadeo-square:before {\n content: \"\\f2aa\";\n}\n\n.fa-viber:before {\n content: \"\\f409\";\n}\n\n.fa-vimeo:before {\n content: \"\\f40a\";\n}\n\n.fa-vimeo-square:before {\n content: \"\\f194\";\n}\n\n.fa-vimeo-v:before {\n content: \"\\f27d\";\n}\n\n.fa-vine:before {\n content: \"\\f1ca\";\n}\n\n.fa-vk:before {\n content: \"\\f189\";\n}\n\n.fa-vnv:before {\n content: \"\\f40b\";\n}\n\n.fa-vuejs:before {\n content: \"\\f41f\";\n}\n\n.fa-watchman-monitoring:before {\n content: \"\\e087\";\n}\n\n.fa-waze:before {\n content: \"\\f83f\";\n}\n\n.fa-weebly:before {\n content: \"\\f5cc\";\n}\n\n.fa-weibo:before {\n content: \"\\f18a\";\n}\n\n.fa-weixin:before {\n content: \"\\f1d7\";\n}\n\n.fa-whatsapp:before {\n content: \"\\f232\";\n}\n\n.fa-whatsapp-square:before {\n content: \"\\f40c\";\n}\n\n.fa-whmcs:before {\n content: \"\\f40d\";\n}\n\n.fa-wikipedia-w:before {\n content: \"\\f266\";\n}\n\n.fa-windows:before {\n content: \"\\f17a\";\n}\n\n.fa-wirsindhandwerk:before {\n content: \"\\e2d0\";\n}\n\n.fa-wsh:before {\n content: \"\\e2d0\";\n}\n\n.fa-wix:before {\n content: \"\\f5cf\";\n}\n\n.fa-wizards-of-the-coast:before {\n content: \"\\f730\";\n}\n\n.fa-wodu:before {\n content: \"\\e088\";\n}\n\n.fa-wolf-pack-battalion:before {\n content: \"\\f514\";\n}\n\n.fa-wordpress:before {\n content: \"\\f19a\";\n}\n\n.fa-wordpress-simple:before {\n content: \"\\f411\";\n}\n\n.fa-wpbeginner:before {\n content: \"\\f297\";\n}\n\n.fa-wpexplorer:before {\n content: \"\\f2de\";\n}\n\n.fa-wpforms:before {\n content: \"\\f298\";\n}\n\n.fa-wpressr:before {\n content: \"\\f3e4\";\n}\n\n.fa-xbox:before {\n content: \"\\f412\";\n}\n\n.fa-xing:before {\n content: \"\\f168\";\n}\n\n.fa-xing-square:before {\n content: \"\\f169\";\n}\n\n.fa-y-combinator:before {\n content: \"\\f23b\";\n}\n\n.fa-yahoo:before {\n content: \"\\f19e\";\n}\n\n.fa-yammer:before {\n content: \"\\f840\";\n}\n\n.fa-yandex:before {\n content: \"\\f413\";\n}\n\n.fa-yandex-international:before {\n content: \"\\f414\";\n}\n\n.fa-yarn:before {\n content: \"\\f7e3\";\n}\n\n.fa-yelp:before {\n content: \"\\f1e9\";\n}\n\n.fa-yoast:before {\n content: \"\\f2b1\";\n}\n\n.fa-youtube:before {\n content: \"\\f167\";\n}\n\n.fa-youtube-square:before {\n content: \"\\f431\";\n}\n\n.fa-zhihu:before {\n content: \"\\f63f\";\n}\n\n.fa-2x {\n line-height: 2;\n}\n\n/*\n* Licensing: http://www.pixeden.com/icon-fonts/stroke-7-icon-font-set\n*/\n@font-face {\n font-family: \"Pe-icon-7-stroke\";\n src: url(" + ___CSS_LOADER_URL_REPLACEMENT_22___ + ");\n src: url(" + ___CSS_LOADER_URL_REPLACEMENT_23___ + ") format(\"embedded-opentype\"), url(" + ___CSS_LOADER_URL_REPLACEMENT_24___ + ") format(\"woff\"), url(" + ___CSS_LOADER_URL_REPLACEMENT_25___ + ") format(\"truetype\"), url(" + ___CSS_LOADER_URL_REPLACEMENT_26___ + ") format(\"svg\");\n font-weight: normal;\n font-style: normal;\n}\n[class^=pe-7s-], [class*=\" pe-7s-\"] {\n display: inline-block;\n font-family: \"Pe-icon-7-stroke\";\n speak: none;\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n line-height: 1;\n /* Better Font Rendering =========== */\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n/* HELPER CLASS\n * -------------------------- */\n/* FA based classes */\n/*! Modified from font-awesome helper CSS classes - PIXEDEN\n * Font Awesome 4.0.3 by @davegandy - http://fontawesome.io - @fontawesome\n * License - http://fontawesome.io/license (CSS: MIT License)\n */\n/* makes the font 33% larger relative to the icon container */\n.pe-lg {\n font-size: 1.1704rem;\n line-height: 0.75em;\n vertical-align: -15%;\n}\n\n.pe-2x {\n font-size: 1.76rem;\n}\n\n.pe-3x {\n font-size: 2.64rem;\n}\n\n.pe-4x {\n font-size: 3.52rem;\n}\n\n.pe-5x {\n font-size: 4.4rem;\n}\n\n.pe-fw {\n width: 1.2857142857em;\n text-align: center;\n}\n\n.pe-ul {\n padding-left: 0;\n margin-left: 2.1428571429em;\n list-style-type: none;\n}\n.pe-ul > li {\n position: relative;\n}\n\n.pe-li {\n position: absolute;\n left: -2.1428571429em;\n width: 2.1428571429em;\n top: 0.1428571429em;\n text-align: center;\n}\n.pe-li.pe-lg {\n left: -1.8571428571em;\n}\n\n.pe-border {\n padding: 0.2em 0.25em 0.15em;\n border: solid 0.08em #eeeeee;\n border-radius: 0.1em;\n}\n\n.pull-right {\n float: right;\n}\n\n.pe.pull-left {\n float: left;\n margin-right: 0.3em;\n margin-left: 0.3em;\n}\n\n.pe-spin {\n animation: spin 2s infinite linear;\n}\n\n@keyframes spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(359deg);\n }\n}\n.pe-rotate-90 {\n filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);\n transform: rotate(90deg);\n}\n\n.pe-rotate-180 {\n filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);\n transform: rotate(180deg);\n}\n\n.pe-rotate-270 {\n filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);\n transform: rotate(270deg);\n}\n\n.pe-flip-horizontal {\n filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);\n transform: scale(-1, 1);\n}\n\n.pe-flip-vertical {\n filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);\n transform: scale(1, -1);\n}\n\n.pe-stack {\n position: relative;\n display: inline-block;\n width: 2em;\n height: 2em;\n line-height: 2em;\n vertical-align: middle;\n}\n\n.pe-stack-1x,\n.pe-stack-2x {\n position: absolute;\n left: 0;\n width: 100%;\n text-align: center;\n}\n\n.pe-stack-1x {\n line-height: inherit;\n}\n\n.pe-stack-2x {\n font-size: 2em;\n}\n\n.pe-inverse {\n color: #ffffff;\n}\n\n/* Custom classes / mods - PIXEDEN */\n.pe-va {\n vertical-align: middle;\n}\n\n.pe-border {\n border: solid 0.08em #eaeaea;\n}\n\n.pe-7s-album:before {\n content: \"\\e6aa\";\n}\n\n.pe-7s-arc:before {\n content: \"\\e6ab\";\n}\n\n.pe-7s-back-2:before {\n content: \"\\e6ac\";\n}\n\n.pe-7s-bandaid:before {\n content: \"\\e6ad\";\n}\n\n.pe-7s-car:before {\n content: \"\\e6ae\";\n}\n\n.pe-7s-diamond:before {\n content: \"\\e6af\";\n}\n\n.pe-7s-door-lock:before {\n content: \"\\e6b0\";\n}\n\n.pe-7s-eyedropper:before {\n content: \"\\e6b1\";\n}\n\n.pe-7s-female:before {\n content: \"\\e6b2\";\n}\n\n.pe-7s-gym:before {\n content: \"\\e6b3\";\n}\n\n.pe-7s-hammer:before {\n content: \"\\e6b4\";\n}\n\n.pe-7s-headphones:before {\n content: \"\\e6b5\";\n}\n\n.pe-7s-helm:before {\n content: \"\\e6b6\";\n}\n\n.pe-7s-hourglass:before {\n content: \"\\e6b7\";\n}\n\n.pe-7s-leaf:before {\n content: \"\\e6b8\";\n}\n\n.pe-7s-magic-wand:before {\n content: \"\\e6b9\";\n}\n\n.pe-7s-male:before {\n content: \"\\e6ba\";\n}\n\n.pe-7s-map-2:before {\n content: \"\\e6bb\";\n}\n\n.pe-7s-next-2:before {\n content: \"\\e6bc\";\n}\n\n.pe-7s-paint-bucket:before {\n content: \"\\e6bd\";\n}\n\n.pe-7s-pendrive:before {\n content: \"\\e6be\";\n}\n\n.pe-7s-photo:before {\n content: \"\\e6bf\";\n}\n\n.pe-7s-piggy:before {\n content: \"\\e6c0\";\n}\n\n.pe-7s-plugin:before {\n content: \"\\e6c1\";\n}\n\n.pe-7s-refresh-2:before {\n content: \"\\e6c2\";\n}\n\n.pe-7s-rocket:before {\n content: \"\\e6c3\";\n}\n\n.pe-7s-settings:before {\n content: \"\\e6c4\";\n}\n\n.pe-7s-shield:before {\n content: \"\\e6c5\";\n}\n\n.pe-7s-smile:before {\n content: \"\\e6c6\";\n}\n\n.pe-7s-usb:before {\n content: \"\\e6c7\";\n}\n\n.pe-7s-vector:before {\n content: \"\\e6c8\";\n}\n\n.pe-7s-wine:before {\n content: \"\\e6c9\";\n}\n\n.pe-7s-cloud-upload:before {\n content: \"\\e68a\";\n}\n\n.pe-7s-cash:before {\n content: \"\\e68c\";\n}\n\n.pe-7s-close:before {\n content: \"\\e680\";\n}\n\n.pe-7s-bluetooth:before {\n content: \"\\e68d\";\n}\n\n.pe-7s-cloud-download:before {\n content: \"\\e68b\";\n}\n\n.pe-7s-way:before {\n content: \"\\e68e\";\n}\n\n.pe-7s-close-circle:before {\n content: \"\\e681\";\n}\n\n.pe-7s-id:before {\n content: \"\\e68f\";\n}\n\n.pe-7s-angle-up:before {\n content: \"\\e682\";\n}\n\n.pe-7s-wristwatch:before {\n content: \"\\e690\";\n}\n\n.pe-7s-angle-up-circle:before {\n content: \"\\e683\";\n}\n\n.pe-7s-world:before {\n content: \"\\e691\";\n}\n\n.pe-7s-angle-right:before {\n content: \"\\e684\";\n}\n\n.pe-7s-volume:before {\n content: \"\\e692\";\n}\n\n.pe-7s-angle-right-circle:before {\n content: \"\\e685\";\n}\n\n.pe-7s-users:before {\n content: \"\\e693\";\n}\n\n.pe-7s-angle-left:before {\n content: \"\\e686\";\n}\n\n.pe-7s-user-female:before {\n content: \"\\e694\";\n}\n\n.pe-7s-angle-left-circle:before {\n content: \"\\e687\";\n}\n\n.pe-7s-up-arrow:before {\n content: \"\\e695\";\n}\n\n.pe-7s-angle-down:before {\n content: \"\\e688\";\n}\n\n.pe-7s-switch:before {\n content: \"\\e696\";\n}\n\n.pe-7s-angle-down-circle:before {\n content: \"\\e689\";\n}\n\n.pe-7s-scissors:before {\n content: \"\\e697\";\n}\n\n.pe-7s-wallet:before {\n content: \"\\e600\";\n}\n\n.pe-7s-safe:before {\n content: \"\\e698\";\n}\n\n.pe-7s-volume2:before {\n content: \"\\e601\";\n}\n\n.pe-7s-volume1:before {\n content: \"\\e602\";\n}\n\n.pe-7s-voicemail:before {\n content: \"\\e603\";\n}\n\n.pe-7s-video:before {\n content: \"\\e604\";\n}\n\n.pe-7s-user:before {\n content: \"\\e605\";\n}\n\n.pe-7s-upload:before {\n content: \"\\e606\";\n}\n\n.pe-7s-unlock:before {\n content: \"\\e607\";\n}\n\n.pe-7s-umbrella:before {\n content: \"\\e608\";\n}\n\n.pe-7s-trash:before {\n content: \"\\e609\";\n}\n\n.pe-7s-tools:before {\n content: \"\\e60a\";\n}\n\n.pe-7s-timer:before {\n content: \"\\e60b\";\n}\n\n.pe-7s-ticket:before {\n content: \"\\e60c\";\n}\n\n.pe-7s-target:before {\n content: \"\\e60d\";\n}\n\n.pe-7s-sun:before {\n content: \"\\e60e\";\n}\n\n.pe-7s-study:before {\n content: \"\\e60f\";\n}\n\n.pe-7s-stopwatch:before {\n content: \"\\e610\";\n}\n\n.pe-7s-star:before {\n content: \"\\e611\";\n}\n\n.pe-7s-speaker:before {\n content: \"\\e612\";\n}\n\n.pe-7s-signal:before {\n content: \"\\e613\";\n}\n\n.pe-7s-shuffle:before {\n content: \"\\e614\";\n}\n\n.pe-7s-shopbag:before {\n content: \"\\e615\";\n}\n\n.pe-7s-share:before {\n content: \"\\e616\";\n}\n\n.pe-7s-server:before {\n content: \"\\e617\";\n}\n\n.pe-7s-search:before {\n content: \"\\e618\";\n}\n\n.pe-7s-film:before {\n content: \"\\e6a5\";\n}\n\n.pe-7s-science:before {\n content: \"\\e619\";\n}\n\n.pe-7s-disk:before {\n content: \"\\e6a6\";\n}\n\n.pe-7s-ribbon:before {\n content: \"\\e61a\";\n}\n\n.pe-7s-repeat:before {\n content: \"\\e61b\";\n}\n\n.pe-7s-refresh:before {\n content: \"\\e61c\";\n}\n\n.pe-7s-add-user:before {\n content: \"\\e6a9\";\n}\n\n.pe-7s-refresh-cloud:before {\n content: \"\\e61d\";\n}\n\n.pe-7s-paperclip:before {\n content: \"\\e69c\";\n}\n\n.pe-7s-radio:before {\n content: \"\\e61e\";\n}\n\n.pe-7s-note2:before {\n content: \"\\e69d\";\n}\n\n.pe-7s-print:before {\n content: \"\\e61f\";\n}\n\n.pe-7s-network:before {\n content: \"\\e69e\";\n}\n\n.pe-7s-prev:before {\n content: \"\\e620\";\n}\n\n.pe-7s-mute:before {\n content: \"\\e69f\";\n}\n\n.pe-7s-power:before {\n content: \"\\e621\";\n}\n\n.pe-7s-medal:before {\n content: \"\\e6a0\";\n}\n\n.pe-7s-portfolio:before {\n content: \"\\e622\";\n}\n\n.pe-7s-like2:before {\n content: \"\\e6a1\";\n}\n\n.pe-7s-plus:before {\n content: \"\\e623\";\n}\n\n.pe-7s-left-arrow:before {\n content: \"\\e6a2\";\n}\n\n.pe-7s-play:before {\n content: \"\\e624\";\n}\n\n.pe-7s-key:before {\n content: \"\\e6a3\";\n}\n\n.pe-7s-plane:before {\n content: \"\\e625\";\n}\n\n.pe-7s-joy:before {\n content: \"\\e6a4\";\n}\n\n.pe-7s-photo-gallery:before {\n content: \"\\e626\";\n}\n\n.pe-7s-pin:before {\n content: \"\\e69b\";\n}\n\n.pe-7s-phone:before {\n content: \"\\e627\";\n}\n\n.pe-7s-plug:before {\n content: \"\\e69a\";\n}\n\n.pe-7s-pen:before {\n content: \"\\e628\";\n}\n\n.pe-7s-right-arrow:before {\n content: \"\\e699\";\n}\n\n.pe-7s-paper-plane:before {\n content: \"\\e629\";\n}\n\n.pe-7s-delete-user:before {\n content: \"\\e6a7\";\n}\n\n.pe-7s-paint:before {\n content: \"\\e62a\";\n}\n\n.pe-7s-bottom-arrow:before {\n content: \"\\e6a8\";\n}\n\n.pe-7s-notebook:before {\n content: \"\\e62b\";\n}\n\n.pe-7s-note:before {\n content: \"\\e62c\";\n}\n\n.pe-7s-next:before {\n content: \"\\e62d\";\n}\n\n.pe-7s-news-paper:before {\n content: \"\\e62e\";\n}\n\n.pe-7s-musiclist:before {\n content: \"\\e62f\";\n}\n\n.pe-7s-music:before {\n content: \"\\e630\";\n}\n\n.pe-7s-mouse:before {\n content: \"\\e631\";\n}\n\n.pe-7s-more:before {\n content: \"\\e632\";\n}\n\n.pe-7s-moon:before {\n content: \"\\e633\";\n}\n\n.pe-7s-monitor:before {\n content: \"\\e634\";\n}\n\n.pe-7s-micro:before {\n content: \"\\e635\";\n}\n\n.pe-7s-menu:before {\n content: \"\\e636\";\n}\n\n.pe-7s-map:before {\n content: \"\\e637\";\n}\n\n.pe-7s-map-marker:before {\n content: \"\\e638\";\n}\n\n.pe-7s-mail:before {\n content: \"\\e639\";\n}\n\n.pe-7s-mail-open:before {\n content: \"\\e63a\";\n}\n\n.pe-7s-mail-open-file:before {\n content: \"\\e63b\";\n}\n\n.pe-7s-magnet:before {\n content: \"\\e63c\";\n}\n\n.pe-7s-loop:before {\n content: \"\\e63d\";\n}\n\n.pe-7s-look:before {\n content: \"\\e63e\";\n}\n\n.pe-7s-lock:before {\n content: \"\\e63f\";\n}\n\n.pe-7s-lintern:before {\n content: \"\\e640\";\n}\n\n.pe-7s-link:before {\n content: \"\\e641\";\n}\n\n.pe-7s-like:before {\n content: \"\\e642\";\n}\n\n.pe-7s-light:before {\n content: \"\\e643\";\n}\n\n.pe-7s-less:before {\n content: \"\\e644\";\n}\n\n.pe-7s-keypad:before {\n content: \"\\e645\";\n}\n\n.pe-7s-junk:before {\n content: \"\\e646\";\n}\n\n.pe-7s-info:before {\n content: \"\\e647\";\n}\n\n.pe-7s-home:before {\n content: \"\\e648\";\n}\n\n.pe-7s-help2:before {\n content: \"\\e649\";\n}\n\n.pe-7s-help1:before {\n content: \"\\e64a\";\n}\n\n.pe-7s-graph3:before {\n content: \"\\e64b\";\n}\n\n.pe-7s-graph2:before {\n content: \"\\e64c\";\n}\n\n.pe-7s-graph1:before {\n content: \"\\e64d\";\n}\n\n.pe-7s-graph:before {\n content: \"\\e64e\";\n}\n\n.pe-7s-global:before {\n content: \"\\e64f\";\n}\n\n.pe-7s-gleam:before {\n content: \"\\e650\";\n}\n\n.pe-7s-glasses:before {\n content: \"\\e651\";\n}\n\n.pe-7s-gift:before {\n content: \"\\e652\";\n}\n\n.pe-7s-folder:before {\n content: \"\\e653\";\n}\n\n.pe-7s-flag:before {\n content: \"\\e654\";\n}\n\n.pe-7s-filter:before {\n content: \"\\e655\";\n}\n\n.pe-7s-file:before {\n content: \"\\e656\";\n}\n\n.pe-7s-expand1:before {\n content: \"\\e657\";\n}\n\n.pe-7s-exapnd2:before {\n content: \"\\e658\";\n}\n\n.pe-7s-edit:before {\n content: \"\\e659\";\n}\n\n.pe-7s-drop:before {\n content: \"\\e65a\";\n}\n\n.pe-7s-drawer:before {\n content: \"\\e65b\";\n}\n\n.pe-7s-download:before {\n content: \"\\e65c\";\n}\n\n.pe-7s-display2:before {\n content: \"\\e65d\";\n}\n\n.pe-7s-display1:before {\n content: \"\\e65e\";\n}\n\n.pe-7s-diskette:before {\n content: \"\\e65f\";\n}\n\n.pe-7s-date:before {\n content: \"\\e660\";\n}\n\n.pe-7s-cup:before {\n content: \"\\e661\";\n}\n\n.pe-7s-culture:before {\n content: \"\\e662\";\n}\n\n.pe-7s-crop:before {\n content: \"\\e663\";\n}\n\n.pe-7s-credit:before {\n content: \"\\e664\";\n}\n\n.pe-7s-copy-file:before {\n content: \"\\e665\";\n}\n\n.pe-7s-config:before {\n content: \"\\e666\";\n}\n\n.pe-7s-compass:before {\n content: \"\\e667\";\n}\n\n.pe-7s-comment:before {\n content: \"\\e668\";\n}\n\n.pe-7s-coffee:before {\n content: \"\\e669\";\n}\n\n.pe-7s-cloud:before {\n content: \"\\e66a\";\n}\n\n.pe-7s-clock:before {\n content: \"\\e66b\";\n}\n\n.pe-7s-check:before {\n content: \"\\e66c\";\n}\n\n.pe-7s-chat:before {\n content: \"\\e66d\";\n}\n\n.pe-7s-cart:before {\n content: \"\\e66e\";\n}\n\n.pe-7s-camera:before {\n content: \"\\e66f\";\n}\n\n.pe-7s-call:before {\n content: \"\\e670\";\n}\n\n.pe-7s-calculator:before {\n content: \"\\e671\";\n}\n\n.pe-7s-browser:before {\n content: \"\\e672\";\n}\n\n.pe-7s-box2:before {\n content: \"\\e673\";\n}\n\n.pe-7s-box1:before {\n content: \"\\e674\";\n}\n\n.pe-7s-bookmarks:before {\n content: \"\\e675\";\n}\n\n.pe-7s-bicycle:before {\n content: \"\\e676\";\n}\n\n.pe-7s-bell:before {\n content: \"\\e677\";\n}\n\n.pe-7s-battery:before {\n content: \"\\e678\";\n}\n\n.pe-7s-ball:before {\n content: \"\\e679\";\n}\n\n.pe-7s-back:before {\n content: \"\\e67a\";\n}\n\n.pe-7s-attention:before {\n content: \"\\e67b\";\n}\n\n.pe-7s-anchor:before {\n content: \"\\e67c\";\n}\n\n.pe-7s-albums:before {\n content: \"\\e67d\";\n}\n\n.pe-7s-alarm:before {\n content: \"\\e67e\";\n}\n\n.pe-7s-airplay:before {\n content: \"\\e67f\";\n}\n\n/*!\n * Hamburgers\n * @description Tasty CSS-animated hamburgers\n * @author Jonathan Suh @jonsuh\n * @site https://jonsuh.com/hamburgers\n * @link https://github.com/jonsuh/hamburgers\n */\n.hamburger {\n padding: 0px 0px;\n display: inline-block;\n cursor: pointer;\n transition-property: opacity, filter;\n transition-duration: 0.15s;\n transition-timing-function: linear;\n font: inherit;\n color: inherit;\n text-transform: none;\n background-color: transparent;\n border: 0;\n margin: 0;\n overflow: visible;\n}\n.hamburger:hover {\n opacity: 0.7;\n}\n.hamburger.is-active:hover {\n opacity: 0.7;\n}\n.hamburger.is-active .hamburger-inner,\n.hamburger.is-active .hamburger-inner::before,\n.hamburger.is-active .hamburger-inner::after {\n background-color: #3f6ad8;\n}\n\n.hamburger-box {\n width: 24px;\n height: 14px;\n display: inline-block;\n position: relative;\n}\n\n.hamburger-inner {\n display: block;\n top: 50%;\n margin-top: -1px;\n}\n.hamburger-inner, .hamburger-inner::before, .hamburger-inner::after {\n width: 24px;\n height: 2px;\n background-color: #3f6ad8;\n border-radius: 10px;\n position: absolute;\n transition-property: transform;\n transition-duration: 0.15s;\n transition-timing-function: ease;\n}\n.hamburger-inner::before, .hamburger-inner::after {\n content: \"\";\n display: block;\n}\n.hamburger-inner::before {\n top: -6px;\n}\n.hamburger-inner::after {\n bottom: -6px;\n}\n\n/*\n * Elastic\n */\n.hamburger--elastic .hamburger-inner {\n top: 1px;\n transition-duration: 0.275s;\n transition-timing-function: cubic-bezier(0.68, -0.55, 0.265, 1.55);\n}\n.hamburger--elastic .hamburger-inner::before {\n top: 6px;\n transition: opacity 0.125s 0.275s ease;\n}\n.hamburger--elastic .hamburger-inner::after {\n top: 12px;\n transition: transform 0.275s cubic-bezier(0.68, -0.55, 0.265, 1.55);\n}\n.hamburger--elastic.is-active .hamburger-inner {\n transform: translate3d(0, 6px, 0) rotate(135deg);\n transition-delay: 0.075s;\n}\n.hamburger--elastic.is-active .hamburger-inner::before {\n transition-delay: 0s;\n opacity: 0;\n}\n.hamburger--elastic.is-active .hamburger-inner::after {\n transform: translate3d(0, -12px, 0) rotate(-270deg);\n transition-delay: 0.075s;\n}\n\n.toast-title {\n font-weight: bold;\n}\n\n.toast-message {\n -ms-word-wrap: break-word;\n word-wrap: break-word;\n}\n\n.toast-message a,\n.toast-message label {\n color: #fff;\n}\n\n.toast-message a:hover {\n color: #cccccc;\n text-decoration: none;\n}\n\n.toast-close-button {\n position: relative;\n right: -0.3em;\n top: -0.3em;\n float: right;\n font-weight: bold;\n color: #fff;\n opacity: 0.8;\n}\n\n.toast-close-button:hover,\n.toast-close-button:focus {\n color: #000;\n text-decoration: none;\n cursor: pointer;\n opacity: 0.4;\n}\n\nbutton.toast-close-button {\n padding: 0;\n cursor: pointer;\n background: transparent;\n border: 0;\n -webkit-appearance: none;\n}\n\n.toast-top-center {\n top: 0;\n right: 0;\n width: 100%;\n}\n\n.toast-bottom-center {\n bottom: 0;\n right: 0;\n width: 100%;\n}\n\n.toast-top-full-width {\n top: 0;\n right: 0;\n width: 100%;\n}\n\n.toast-bottom-full-width {\n bottom: 0;\n right: 0;\n width: 100%;\n}\n\n.toast-top-left {\n top: 12px;\n left: 12px;\n}\n\n.toast-top-right {\n top: 12px;\n right: 12px;\n}\n\n.toast-bottom-right {\n right: 12px;\n bottom: 12px;\n}\n\n.toast-bottom-left {\n bottom: 12px;\n left: 12px;\n}\n\n#toast-container {\n position: fixed;\n z-index: 999999;\n /*overrides*/\n}\n\n#toast-container * {\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n}\n\n#toast-container > div {\n position: relative;\n overflow: hidden;\n margin: 0 0 0.6rem;\n padding: 0.6rem 0.6rem 0.6rem 50px;\n width: 300px;\n border-radius: 0.25rem;\n background-position: 15px center;\n background-repeat: no-repeat;\n box-shadow: 0 0.46875rem 2.1875rem rgba(4, 9, 20, 0.03), 0 0.9375rem 1.40625rem rgba(4, 9, 20, 0.03), 0 0.25rem 0.53125rem rgba(4, 9, 20, 0.05), 0 0.125rem 0.1875rem rgba(4, 9, 20, 0.03);\n color: #fff;\n opacity: 0.9;\n}\n\n#toast-container > div:hover {\n opacity: 1;\n cursor: pointer;\n}\n\n#toast-container > .toast-info {\n background-image: url(" + ___CSS_LOADER_URL_REPLACEMENT_27___ + ") !important;\n box-shadow: 0 0.66875rem 2.3875rem rgba(22, 170, 255, 0.03), 0 1.1375rem 1.60625rem rgba(22, 170, 255, 0.03), 0 0.45rem 0.73125rem rgba(22, 170, 255, 0.05), 0 0.325rem 0.3875rem rgba(22, 170, 255, 0.03);\n}\n\n#toast-container > .toast-error {\n background-image: url(" + ___CSS_LOADER_URL_REPLACEMENT_28___ + ") !important;\n box-shadow: 0 0.66875rem 2.3875rem rgba(217, 37, 80, 0.03), 0 1.1375rem 1.60625rem rgba(217, 37, 80, 0.03), 0 0.45rem 0.73125rem rgba(217, 37, 80, 0.05), 0 0.325rem 0.3875rem rgba(217, 37, 80, 0.03);\n}\n\n#toast-container > .toast-success {\n background-image: url(" + ___CSS_LOADER_URL_REPLACEMENT_29___ + ") !important;\n box-shadow: 0 0.66875rem 2.3875rem rgba(58, 196, 125, 0.03), 0 1.1375rem 1.60625rem rgba(58, 196, 125, 0.03), 0 0.45rem 0.73125rem rgba(58, 196, 125, 0.05), 0 0.325rem 0.3875rem rgba(58, 196, 125, 0.03);\n}\n\n#toast-container > .toast-warning {\n background-image: url(" + ___CSS_LOADER_URL_REPLACEMENT_30___ + ") !important;\n box-shadow: 0 0.66875rem 2.3875rem rgba(247, 185, 36, 0.03), 0 1.1375rem 1.60625rem rgba(247, 185, 36, 0.03), 0 0.45rem 0.73125rem rgba(247, 185, 36, 0.05), 0 0.325rem 0.3875rem rgba(247, 185, 36, 0.03);\n color: color-yiq(#f7b924);\n}\n\n#toast-container.toast-top-center > div,\n#toast-container.toast-bottom-center > div {\n width: 300px;\n margin-left: auto;\n margin-right: auto;\n}\n\n#toast-container.toast-top-full-width > div,\n#toast-container.toast-bottom-full-width > div {\n width: 96%;\n margin-left: auto;\n margin-right: auto;\n}\n\n.toast {\n background-color: #343a40;\n}\n\n.toast-success {\n background-color: #3ac47d;\n}\n\n.toast-error {\n background-color: #d92550;\n}\n\n.toast-info {\n background-color: #16aaff;\n}\n\n.toast-warning {\n background-color: #f7b924;\n}\n\n.toast-progress {\n position: absolute;\n left: 0;\n bottom: 0;\n height: 4px;\n background-color: #000;\n opacity: 0.4;\n}\n\n@media all and (max-width: 240px) {\n #toast-container > div {\n padding: 8px 8px 8px 50px;\n width: 11em;\n }\n #toast-container .toast-close-button {\n right: -0.2em;\n top: -0.2em;\n }\n}\n@media all and (min-width: 241px) and (max-width: 480px) {\n #toast-container > div {\n padding: 8px 8px 8px 50px;\n width: 18em;\n }\n #toast-container .toast-close-button {\n right: -0.2em;\n top: -0.2em;\n }\n}\n@media all and (min-width: 481px) and (max-width: 768px) {\n #toast-container > div {\n padding: 15px 15px 15px 50px;\n width: 25em;\n }\n}\n.popover,\n.tooltip {\n opacity: 0;\n transition: opacity 0.2s ease;\n}\n.popover.show,\n.tooltip.show {\n opacity: 1;\n}\n\n.popover {\n box-shadow: 0 0.46875rem 2.1875rem rgba(4, 9, 20, 0.03), 0 0.9375rem 1.40625rem rgba(4, 9, 20, 0.03), 0 0.25rem 0.53125rem rgba(4, 9, 20, 0.05), 0 0.125rem 0.1875rem rgba(4, 9, 20, 0.03);\n}\n\n.rm-pointers .popover .arrow {\n display: none !important;\n}\n\n/* classes attached to */\n/* TODO: make fc-event selector work when calender in shadow DOM */\n.fc-not-allowed,\n.fc-not-allowed .fc-event { /* override events' custom cursors */\n cursor: not-allowed;\n}\n\n/* TODO: not attached to body. attached to specific els. move */\n.fc-unselectable {\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n -webkit-touch-callout: none;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\n.fc {\n /* layout of immediate children */\n display: flex;\n flex-direction: column;\n font-size: 1em;\n}\n\n.fc,\n.fc *,\n.fc *:before,\n.fc *:after {\n box-sizing: border-box;\n}\n\n.fc table {\n border-collapse: collapse;\n border-spacing: 0;\n font-size: 1em; /* normalize cross-browser */\n}\n\n.fc th {\n text-align: center;\n}\n\n.fc th,\n.fc td {\n vertical-align: top;\n padding: 0;\n}\n\n.fc a[data-navlink] {\n cursor: pointer;\n}\n\n.fc a[data-navlink]:hover {\n text-decoration: underline;\n}\n\n.fc-direction-ltr {\n direction: ltr;\n text-align: left;\n}\n\n.fc-direction-rtl {\n direction: rtl;\n text-align: right;\n}\n\n.fc-theme-standard td,\n.fc-theme-standard th {\n border: 1px solid #ddd;\n border: 1px solid var(--fc-border-color, #ddd);\n}\n\n/* for FF, which doesn't expand a 100% div within a table cell. use absolute positioning */\n/* inner-wrappers are responsible for being absolute */\n/* TODO: best place for this? */\n.fc-liquid-hack td,\n.fc-liquid-hack th {\n position: relative;\n}\n\n@font-face {\n font-family: \"fcicons\";\n src: url(" + ___CSS_LOADER_URL_REPLACEMENT_31___ + ") format(\"truetype\");\n font-weight: normal;\n font-style: normal;\n}\n.fc-icon {\n /* added for fc */\n display: inline-block;\n width: 1em;\n height: 1em;\n text-align: center;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n /* use !important to prevent issues with browser extensions that change fonts */\n font-family: \"fcicons\" !important;\n speak: none;\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n line-height: 1;\n /* Better Font Rendering =========== */\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n.fc-icon-chevron-left:before {\n content: \"\\e900\";\n}\n\n.fc-icon-chevron-right:before {\n content: \"\\e901\";\n}\n\n.fc-icon-chevrons-left:before {\n content: \"\\e902\";\n}\n\n.fc-icon-chevrons-right:before {\n content: \"\\e903\";\n}\n\n.fc-icon-minus-square:before {\n content: \"\\e904\";\n}\n\n.fc-icon-plus-square:before {\n content: \"\\e905\";\n}\n\n.fc-icon-x:before {\n content: \"\\e906\";\n}\n\n/*\nLots taken from Flatly (MIT): https://bootswatch.com/4/flatly/bootstrap.css\n\nThese styles only apply when the standard-theme is activated.\nWhen it's NOT activated, the fc-button classes won't even be in the DOM.\n*/\n.fc {\n /* reset */\n}\n\n.fc .fc-button {\n border-radius: 0;\n overflow: visible;\n text-transform: none;\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\n.fc .fc-button:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\n.fc .fc-button {\n -webkit-appearance: button;\n}\n\n.fc .fc-button:not(:disabled) {\n cursor: pointer;\n}\n\n.fc .fc-button::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\n.fc {\n /* theme */\n}\n\n.fc .fc-button {\n display: inline-block;\n font-weight: 400;\n text-align: center;\n vertical-align: middle;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n background-color: transparent;\n border: 1px solid transparent;\n padding: 0.4em 0.65em;\n font-size: 1em;\n line-height: 1.5;\n border-radius: 0.25em;\n}\n\n.fc .fc-button:hover {\n text-decoration: none;\n}\n\n.fc .fc-button:focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(44, 62, 80, 0.25);\n}\n\n.fc .fc-button:disabled {\n opacity: 0.65;\n}\n\n.fc {\n /* \"primary\" coloring */\n}\n\n.fc .fc-button-primary {\n color: #fff;\n color: var(--fc-button-text-color, #fff);\n background-color: #3f6ad8 !important;\n background-color: var(--fc-button-bg-color, #3f6ad8) !important;\n border-color: #3f6ad8 !important;\n border-color: var(--fc-button-border-color, #3f6ad8) !important;\n}\n\n.fc .fc-button-primary:hover {\n color: #fff;\n color: var(--fc-button-text-color, #fff);\n background-color: #3f6ad8;\n background-color: var(--fc-button-hover-bg-color, #3f6ad8) !important;\n border-color: #3f6ad8 !important;\n border-color: var(--fc-button-hover-border-color, #3f6ad8) !important;\n}\n\n.fc .fc-button-primary:disabled { /* not DRY */\n color: #fff;\n color: var(--fc-button-text-color, #fff);\n background-color: #3f6ad8 !important;\n background-color: var(--fc-button-bg-color, #3f6ad8) !important;\n border-color: #3f6ad8 !important;\n border-color: var(--fc-button-border-color, #3f6ad8) !important; /* overrides :hover */\n}\n\n.fc .fc-button-primary:focus {\n box-shadow: 0 0 0 0.2rem #3f6ad8;\n}\n\n.fc .fc-button-primary:not(:disabled):active,\n.fc .fc-button-primary:not(:disabled).fc-button-active {\n color: #fff;\n color: var(--fc-button-text-color, #fff);\n background-color: #3f6ad8 !important;\n background-color: var(--fc-button-active-bg-color, #3f6ad8) !important;\n border-color: #3f6ad8 !important;\n border-color: var(--fc-button-active-border-color, #3f6ad8) !important;\n}\n\n.fc .fc-button-primary:not(:disabled):active:focus,\n.fc .fc-button-primary:not(:disabled).fc-button-active:focus {\n box-shadow: 0 0 0 0.2rem #3f6ad8;\n}\n\n.fc {\n /* icons within buttons */\n}\n\n.fc .fc-button .fc-icon {\n vertical-align: middle;\n font-size: 1.5em; /* bump up the size (but don't make it bigger than line-height of button, which is 1.5em also) */\n}\n\n.fc .fc-button-group {\n position: relative;\n display: inline-flex;\n vertical-align: middle;\n}\n\n.fc .fc-button-group > .fc-button {\n position: relative;\n flex: 1 1 auto;\n}\n\n.fc .fc-button-group > .fc-button:hover {\n z-index: 1;\n}\n\n.fc .fc-button-group > .fc-button:focus,\n.fc .fc-button-group > .fc-button:active,\n.fc .fc-button-group > .fc-button.fc-button-active {\n z-index: 1;\n}\n\n.fc-direction-ltr .fc-button-group > .fc-button:not(:first-child) {\n margin-left: -1px;\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.fc-direction-ltr .fc-button-group > .fc-button:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.fc-direction-rtl .fc-button-group > .fc-button:not(:first-child) {\n margin-right: -1px;\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.fc-direction-rtl .fc-button-group > .fc-button:not(:last-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.fc .fc-toolbar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n\n.fc .fc-toolbar.fc-header-toolbar {\n margin-bottom: 1.5em;\n}\n\n.fc .fc-toolbar.fc-footer-toolbar {\n margin-top: 1.5em;\n}\n\n.fc .fc-toolbar-title {\n font-size: 1.75em;\n margin: 0;\n}\n\n.fc-direction-ltr .fc-toolbar > * > :not(:first-child) {\n margin-left: 0.75em; /* space between */\n}\n\n.fc-direction-rtl .fc-toolbar > * > :not(:first-child) {\n margin-right: 0.75em; /* space between */\n}\n\n.fc-direction-rtl .fc-toolbar-ltr { /* when the toolbar-chunk positioning system is explicitly left-to-right */\n flex-direction: row-reverse;\n}\n\n.fc .fc-scroller {\n -webkit-overflow-scrolling: touch;\n position: relative; /* for abs-positioned elements within */\n}\n\n.fc .fc-scroller-liquid {\n height: 100%;\n}\n\n.fc .fc-scroller-liquid-absolute {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n bottom: 0;\n}\n\n.fc .fc-scroller-harness {\n position: relative;\n overflow: hidden;\n direction: ltr;\n /* hack for chrome computing the scroller's right/left wrong for rtl. undone below... */\n /* TODO: demonstrate in codepen */\n}\n\n.fc .fc-scroller-harness-liquid {\n height: 100%;\n}\n\n.fc-direction-rtl .fc-scroller-harness > .fc-scroller { /* undo above hack */\n direction: rtl;\n}\n\n.fc-theme-standard .fc-scrollgrid {\n border: 1px solid #ddd;\n border: 1px solid var(--fc-border-color, #ddd); /* bootstrap does this. match */\n}\n\n.fc .fc-scrollgrid,\n.fc .fc-scrollgrid table { /* all tables (self included) */\n width: 100%; /* because tables don't normally do this */\n table-layout: fixed;\n}\n\n.fc .fc-scrollgrid table { /* inner tables */\n border-top-style: hidden;\n border-left-style: hidden;\n border-right-style: hidden;\n}\n\n.fc .fc-scrollgrid {\n border-collapse: separate;\n border-right-width: 0;\n border-bottom-width: 0;\n}\n\n.fc .fc-scrollgrid-liquid {\n height: 100%;\n}\n\n.fc .fc-scrollgrid-section { /* a */\n height: 1px;\n}\n\n.fc .fc-scrollgrid-section > td {\n height: 1px; /* needs a height so inner div within grow. better than 0, for firefox */\n}\n\n.fc .fc-scrollgrid-section table {\n height: 1px;\n /* for most browsers, if a height isn't set on the table, can't do liquid-height within cells */\n /* serves as a min-height. harmless */\n}\n\n.fc .fc-scrollgrid-section-liquid > td {\n height: 100%; /* better than `auto`, for firefox */\n}\n\n.fc .fc-scrollgrid-section > * {\n border-top-width: 0;\n border-left-width: 0;\n}\n\n.fc .fc-scrollgrid-section-header > *,\n.fc .fc-scrollgrid-section-footer > * {\n border-bottom-width: 0;\n}\n\n.fc .fc-scrollgrid-section-body table,\n.fc .fc-scrollgrid-section-footer table {\n border-bottom-style: hidden; /* head keeps its bottom border tho */\n}\n\n.fc {\n /* stickiness */\n}\n\n.fc .fc-scrollgrid-section-sticky > * {\n background: #fff;\n background: var(--fc-page-bg-color, #fff);\n position: sticky;\n z-index: 3; /* TODO: var */\n /* TODO: box-shadow when sticking */\n}\n\n.fc .fc-scrollgrid-section-header.fc-scrollgrid-section-sticky > * {\n top: 0; /* because border-sharing causes a gap at the top */\n /* TODO: give safari -1. has bug */\n}\n\n.fc .fc-scrollgrid-section-footer.fc-scrollgrid-section-sticky > * {\n bottom: 0; /* known bug: bottom-stickiness doesn't work in safari */\n}\n\n.fc .fc-scrollgrid-sticky-shim { /* for horizontal scrollbar */\n height: 1px; /* needs height to create scrollbars */\n margin-bottom: -1px;\n}\n\n.fc-sticky { /* no .fc wrap because used as child of body */\n position: sticky;\n}\n\n.fc .fc-view-harness {\n flex-grow: 1; /* because this harness is WITHIN the .fc's flexbox */\n position: relative;\n}\n\n.fc {\n /* when the harness controls the height, make the view liquid */\n}\n\n.fc .fc-view-harness-active > .fc-view {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n}\n\n.fc .fc-col-header-cell-cushion {\n display: inline-block; /* x-browser for when sticky (when multi-tier header) */\n padding: 2px 4px;\n}\n\n.fc .fc-bg-event,\n.fc .fc-non-business,\n.fc .fc-highlight {\n /* will always have a harness with position:relative/absolute, so absolutely expand */\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n}\n\n.fc .fc-non-business {\n background: rgba(215, 215, 215, 0.3);\n background: var(--fc-non-business-color, rgba(215, 215, 215, 0.3));\n}\n\n.fc .fc-bg-event {\n background: rgb(143, 223, 130);\n background: var(--fc-bg-event-color, rgb(143, 223, 130));\n opacity: 0.3;\n opacity: var(--fc-bg-event-opacity, 0.3);\n}\n\n.fc .fc-bg-event .fc-event-title {\n margin: 0.5em;\n font-size: 0.85em;\n font-size: var(--fc-small-font-size, 0.85em);\n font-style: italic;\n}\n\n.fc .fc-highlight {\n background: rgba(188, 232, 241, 0.3);\n background: var(--fc-highlight-color, rgba(188, 232, 241, 0.3));\n}\n\n.fc .fc-cell-shaded,\n.fc .fc-day-disabled {\n background: rgba(208, 208, 208, 0.3);\n background: var(--fc-neutral-bg-color, rgba(208, 208, 208, 0.3));\n}\n\n/* link resets */\n/* ---------------------------------------------------------------------------------------------------- */\na.fc-event,\na.fc-event:hover {\n text-decoration: none;\n}\n\n/* cursor */\n.fc-event[href],\n.fc-event.fc-event-draggable {\n cursor: pointer;\n}\n\n/* event text content */\n/* ---------------------------------------------------------------------------------------------------- */\n.fc-event .fc-event-main {\n position: relative;\n z-index: 2;\n}\n\n/* dragging */\n/* ---------------------------------------------------------------------------------------------------- */\n.fc-event-dragging:not(.fc-event-selected) { /* MOUSE */\n opacity: 0.75;\n}\n\n.fc-event-dragging.fc-event-selected { /* TOUCH */\n box-shadow: 0 2px 7px rgba(0, 0, 0, 0.3);\n}\n\n/* resizing */\n/* ---------------------------------------------------------------------------------------------------- */\n/* (subclasses should hone positioning for touch and non-touch) */\n.fc-event .fc-event-resizer {\n display: none;\n position: absolute;\n z-index: 4;\n}\n\n.fc-event:hover,\n.fc-event-selected { /* TOUCH */ }\n\n.fc-event:hover .fc-event-resizer, .fc-event-selected .fc-event-resizer {\n display: block;\n}\n\n.fc-event-selected .fc-event-resizer {\n border-radius: 4px;\n border-radius: calc(var(--fc-event-resizer-dot-total-width, 8px) / 2);\n border-width: 1px;\n border-width: var(--fc-event-resizer-dot-border-width, 1px);\n width: 8px;\n width: var(--fc-event-resizer-dot-total-width, 8px);\n height: 8px;\n height: var(--fc-event-resizer-dot-total-width, 8px);\n border-style: solid;\n border-color: inherit;\n background: #fff;\n background: var(--fc-page-bg-color, #fff);\n}\n\n.fc-event-selected .fc-event-resizer:before {\n content: \"\";\n position: absolute;\n top: -20px;\n left: -20px;\n right: -20px;\n bottom: -20px;\n}\n\n/* selecting (always TOUCH) */\n/* ---------------------------------------------------------------------------------------------------- */\n.fc-event-selected {\n box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);\n}\n\n.fc-event-selected:before {\n content: \"\";\n position: absolute;\n z-index: 3;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n}\n\n.fc-event-selected {\n /* dimmer effect */\n}\n\n.fc-event-selected:after {\n content: \"\";\n background: rgba(0, 0, 0, 0.25);\n background: var(--fc-event-selected-overlay-color, rgba(0, 0, 0, 0.25));\n position: absolute;\n z-index: 1;\n /* assume there's a border on all sides. overcome it. */\n /* sometimes there's NOT a border, in which case the dimmer will go over */\n /* an adjacent border, which looks fine. */\n top: -1px;\n left: -1px;\n right: -1px;\n bottom: -1px;\n}\n\n/*\nA HORIZONTAL event\n*/\n.fc-h-event { /* allowed to be top-level */\n display: block;\n border: 1px solid #3788d8;\n border: 1px solid var(--fc-event-border-color, #3788d8);\n background-color: #3788d8;\n background-color: var(--fc-event-bg-color, #3788d8);\n}\n\n.fc-h-event .fc-event-main {\n color: #fff;\n color: var(--fc-event-text-color, #fff);\n}\n\n.fc-h-event .fc-event-main-frame {\n display: flex; /* for make fc-event-title-container expand */\n}\n\n.fc-h-event .fc-event-time {\n max-width: 100%; /* clip overflow on this element */\n overflow: hidden;\n}\n\n.fc-h-event .fc-event-title-container { /* serves as a container for the sticky cushion */\n flex-grow: 1;\n flex-shrink: 1;\n min-width: 0; /* important for allowing to shrink all the way */\n}\n\n.fc-h-event .fc-event-title {\n display: inline-block; /* need this to be sticky cross-browser */\n vertical-align: top; /* for not messing up line-height */\n left: 0; /* for sticky */\n right: 0; /* for sticky */\n max-width: 100%; /* clip overflow on this element */\n overflow: hidden;\n}\n\n.fc-h-event.fc-event-selected:before {\n /* expand hit area */\n top: -10px;\n bottom: -10px;\n}\n\n/* adjust border and border-radius (if there is any) for non-start/end */\n.fc-direction-ltr .fc-daygrid-block-event:not(.fc-event-start),\n.fc-direction-rtl .fc-daygrid-block-event:not(.fc-event-end) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n border-left-width: 0;\n}\n\n.fc-direction-ltr .fc-daygrid-block-event:not(.fc-event-end),\n.fc-direction-rtl .fc-daygrid-block-event:not(.fc-event-start) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n border-right-width: 0;\n}\n\n/* resizers */\n.fc-h-event:not(.fc-event-selected) .fc-event-resizer {\n top: 0;\n bottom: 0;\n width: 8px;\n width: var(--fc-event-resizer-thickness, 8px);\n}\n\n.fc-direction-ltr .fc-h-event:not(.fc-event-selected) .fc-event-resizer-start,\n.fc-direction-rtl .fc-h-event:not(.fc-event-selected) .fc-event-resizer-end {\n cursor: w-resize;\n left: -4px;\n left: calc(var(--fc-event-resizer-thickness, 8px) / -2);\n}\n\n.fc-direction-ltr .fc-h-event:not(.fc-event-selected) .fc-event-resizer-end,\n.fc-direction-rtl .fc-h-event:not(.fc-event-selected) .fc-event-resizer-start {\n cursor: e-resize;\n right: -4px;\n right: calc(var(--fc-event-resizer-thickness, 8px) / -2);\n}\n\n/* resizers for TOUCH */\n.fc-h-event.fc-event-selected .fc-event-resizer {\n top: 50%;\n margin-top: -4px;\n margin-top: calc(var(--fc-event-resizer-dot-total-width, 8px) / -2);\n}\n\n.fc-direction-ltr .fc-h-event.fc-event-selected .fc-event-resizer-start,\n.fc-direction-rtl .fc-h-event.fc-event-selected .fc-event-resizer-end {\n left: -4px;\n left: calc(var(--fc-event-resizer-dot-total-width, 8px) / -2);\n}\n\n.fc-direction-ltr .fc-h-event.fc-event-selected .fc-event-resizer-end,\n.fc-direction-rtl .fc-h-event.fc-event-selected .fc-event-resizer-start {\n right: -4px;\n right: calc(var(--fc-event-resizer-dot-total-width, 8px) / -2);\n}\n\n.fc .fc-popover {\n position: absolute;\n z-index: 9999;\n box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);\n}\n\n.fc .fc-popover-header {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n padding: 3px 4px;\n}\n\n.fc .fc-popover-title {\n margin: 0 2px;\n}\n\n.fc .fc-popover-close {\n cursor: pointer;\n opacity: 0.65;\n font-size: 1.1em;\n}\n\n.fc-theme-standard .fc-popover {\n border: 1px solid #ddd;\n border: 1px solid var(--fc-border-color, #ddd);\n background: #fff;\n background: var(--fc-page-bg-color, #fff);\n}\n\n.fc-theme-standard .fc-popover-header {\n background: rgba(208, 208, 208, 0.3);\n background: var(--fc-neutral-bg-color, rgba(208, 208, 208, 0.3));\n}\n\n:root {\n --fc-daygrid-event-dot-width: 8px;\n}\n\n/* help things clear margins of inner content */\n.fc-daygrid-day-frame,\n.fc-daygrid-day-events,\n.fc-daygrid-event-harness { /* for event top/bottom margins */ }\n\n.fc-daygrid-day-frame:before, .fc-daygrid-day-events:before, .fc-daygrid-event-harness:before {\n content: \"\";\n clear: both;\n display: table;\n}\n\n.fc-daygrid-day-frame:after, .fc-daygrid-day-events:after, .fc-daygrid-event-harness:after {\n content: \"\";\n clear: both;\n display: table;\n}\n\n.fc .fc-daygrid-body { /* a
that wraps the table */\n position: relative;\n z-index: 1; /* container inner z-index's because s can't do it */\n}\n\n.fc .fc-daygrid-day.fc-day-today {\n background-color: rgba(255, 220, 40, 0.15);\n background-color: var(--fc-today-bg-color, rgba(255, 220, 40, 0.15));\n}\n\n.fc .fc-daygrid-day-frame {\n position: relative;\n min-height: 100%; /* seems to work better than `height` because sets height after rows/cells naturally do it */\n}\n\n.fc {\n /* cell top */\n}\n\n.fc .fc-daygrid-day-top {\n display: flex;\n flex-direction: row-reverse;\n}\n\n.fc .fc-day-other .fc-daygrid-day-top {\n opacity: 0.3;\n}\n\n.fc {\n /* day number (within cell top) */\n}\n\n.fc .fc-daygrid-day-number {\n position: relative;\n z-index: 4;\n padding: 4px;\n}\n\n.fc {\n /* event container */\n}\n\n.fc .fc-daygrid-day-events {\n margin-top: 1px; /* needs to be margin, not padding, so that available cell height can be computed */\n}\n\n.fc {\n /* positioning for balanced vs natural */\n}\n\n.fc .fc-daygrid-body-balanced .fc-daygrid-day-events {\n position: absolute;\n left: 0;\n right: 0;\n}\n\n.fc .fc-daygrid-body-unbalanced .fc-daygrid-day-events {\n position: relative; /* for containing abs positioned event harnesses */\n min-height: 2em; /* in addition to being a min-height during natural height, equalizes the heights a little bit */\n}\n\n.fc .fc-daygrid-body-natural { /* can coexist with -unbalanced */ }\n\n.fc .fc-daygrid-body-natural .fc-daygrid-day-events {\n margin-bottom: 1em;\n}\n\n.fc {\n /* event harness */\n}\n\n.fc .fc-daygrid-event-harness {\n position: relative;\n}\n\n.fc .fc-daygrid-event-harness-abs {\n position: absolute;\n top: 0; /* fallback coords for when cannot yet be computed */\n left: 0; /* */\n right: 0; /* */\n}\n\n.fc .fc-daygrid-bg-harness {\n position: absolute;\n top: 0;\n bottom: 0;\n}\n\n.fc {\n /* bg content */\n}\n\n.fc .fc-daygrid-day-bg .fc-non-business {\n z-index: 1;\n}\n\n.fc .fc-daygrid-day-bg .fc-bg-event {\n z-index: 2;\n}\n\n.fc .fc-daygrid-day-bg .fc-highlight {\n z-index: 3;\n}\n\n.fc {\n /* events */\n}\n\n.fc .fc-daygrid-event {\n z-index: 6;\n margin-top: 1px;\n}\n\n.fc .fc-daygrid-event.fc-event-mirror {\n z-index: 7;\n}\n\n.fc {\n /* cell bottom (within day-events) */\n}\n\n.fc .fc-daygrid-day-bottom {\n font-size: 0.85em;\n padding: 2px 3px 0;\n}\n\n.fc .fc-daygrid-day-bottom:before {\n content: \"\";\n clear: both;\n display: table;\n}\n\n.fc .fc-daygrid-more-link {\n position: relative;\n z-index: 4;\n cursor: pointer;\n}\n\n.fc {\n /* week number (within frame) */\n}\n\n.fc .fc-daygrid-week-number {\n position: absolute;\n z-index: 5;\n top: 0;\n padding: 2px;\n min-width: 1.5em;\n text-align: center;\n background-color: rgba(208, 208, 208, 0.3);\n background-color: var(--fc-neutral-bg-color, rgba(208, 208, 208, 0.3));\n color: #808080;\n color: var(--fc-neutral-text-color, #808080);\n}\n\n.fc {\n /* popover */\n}\n\n.fc .fc-more-popover .fc-popover-body {\n min-width: 220px;\n padding: 10px;\n}\n\n.fc-direction-ltr .fc-daygrid-event.fc-event-start,\n.fc-direction-rtl .fc-daygrid-event.fc-event-end {\n margin-left: 2px;\n}\n\n.fc-direction-ltr .fc-daygrid-event.fc-event-end,\n.fc-direction-rtl .fc-daygrid-event.fc-event-start {\n margin-right: 2px;\n}\n\n.fc-direction-ltr .fc-daygrid-week-number {\n left: 0;\n border-radius: 0 0 3px 0;\n}\n\n.fc-direction-rtl .fc-daygrid-week-number {\n right: 0;\n border-radius: 0 0 0 3px;\n}\n\n.fc-liquid-hack .fc-daygrid-day-frame {\n position: static; /* will cause inner absolute stuff to expand to */\n}\n\n.fc-daygrid-event { /* make root-level, because will be dragged-and-dropped outside of a component root */\n position: relative; /* for z-indexes assigned later */\n white-space: nowrap;\n border-radius: 3px; /* dot event needs this to when selected */\n font-size: 0.85em;\n font-size: var(--fc-small-font-size, 0.85em);\n}\n\n/* --- the rectangle (\"block\") style of event --- */\n.fc-daygrid-block-event .fc-event-time {\n font-weight: bold;\n}\n\n.fc-daygrid-block-event .fc-event-time,\n.fc-daygrid-block-event .fc-event-title {\n padding: 1px;\n}\n\n/* --- the dot style of event --- */\n.fc-daygrid-dot-event {\n display: flex;\n align-items: center;\n padding: 2px 0;\n}\n\n.fc-daygrid-dot-event .fc-event-title {\n flex-grow: 1;\n flex-shrink: 1;\n min-width: 0; /* important for allowing to shrink all the way */\n overflow: hidden;\n font-weight: bold;\n}\n\n.fc-daygrid-dot-event:hover,\n.fc-daygrid-dot-event.fc-event-mirror {\n background: rgba(0, 0, 0, 0.1);\n}\n\n.fc-daygrid-dot-event.fc-event-selected:before {\n /* expand hit area */\n top: -10px;\n bottom: -10px;\n}\n\n.fc-daygrid-event-dot { /* the actual dot */\n margin: 0 4px;\n box-sizing: content-box;\n width: 0;\n height: 0;\n border: 4px solid #3788d8;\n border: calc(var(--fc-daygrid-event-dot-width, 8px) / 2) solid var(--fc-event-border-color, #3788d8);\n border-radius: 4px;\n border-radius: calc(var(--fc-daygrid-event-dot-width, 8px) / 2);\n}\n\n/* --- spacing between time and title --- */\n.fc-direction-ltr .fc-daygrid-event .fc-event-time {\n margin-right: 3px;\n}\n\n.fc-direction-rtl .fc-daygrid-event .fc-event-time {\n margin-left: 3px;\n}\n\n/*\nA VERTICAL event\n*/\n.fc-v-event { /* allowed to be top-level */\n display: block;\n border: 1px solid #3788d8;\n border: 1px solid var(--fc-event-border-color, #3788d8);\n background-color: #3788d8;\n background-color: var(--fc-event-bg-color, #3788d8);\n}\n\n.fc-v-event .fc-event-main {\n color: #fff;\n color: var(--fc-event-text-color, #fff);\n height: 100%;\n}\n\n.fc-v-event .fc-event-main-frame {\n height: 100%;\n display: flex;\n flex-direction: column;\n}\n\n.fc-v-event .fc-event-time {\n flex-grow: 0;\n flex-shrink: 0;\n max-height: 100%;\n overflow: hidden;\n}\n\n.fc-v-event .fc-event-title-container { /* a container for the sticky cushion */\n flex-grow: 1;\n flex-shrink: 1;\n min-height: 0; /* important for allowing to shrink all the way */\n}\n\n.fc-v-event .fc-event-title { /* will have fc-sticky on it */\n top: 0;\n bottom: 0;\n max-height: 100%; /* clip overflow */\n overflow: hidden;\n}\n\n.fc-v-event:not(.fc-event-start) {\n border-top-width: 0;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.fc-v-event:not(.fc-event-end) {\n border-bottom-width: 0;\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.fc-v-event.fc-event-selected:before {\n /* expand hit area */\n left: -10px;\n right: -10px;\n}\n\n.fc-v-event {\n /* resizer (mouse AND touch) */\n}\n\n.fc-v-event .fc-event-resizer-start {\n cursor: n-resize;\n}\n\n.fc-v-event .fc-event-resizer-end {\n cursor: s-resize;\n}\n\n.fc-v-event {\n /* resizer for MOUSE */\n}\n\n.fc-v-event:not(.fc-event-selected) .fc-event-resizer {\n height: 8px;\n height: var(--fc-event-resizer-thickness, 8px);\n left: 0;\n right: 0;\n}\n\n.fc-v-event:not(.fc-event-selected) .fc-event-resizer-start {\n top: -4px;\n top: calc(var(--fc-event-resizer-thickness, 8px) / -2);\n}\n\n.fc-v-event:not(.fc-event-selected) .fc-event-resizer-end {\n bottom: -4px;\n bottom: calc(var(--fc-event-resizer-thickness, 8px) / -2);\n}\n\n.fc-v-event {\n /* resizer for TOUCH (when event is \"selected\") */\n}\n\n.fc-v-event.fc-event-selected .fc-event-resizer {\n left: 50%;\n margin-left: -4px;\n margin-left: calc(var(--fc-event-resizer-dot-total-width, 8px) / -2);\n}\n\n.fc-v-event.fc-event-selected .fc-event-resizer-start {\n top: -4px;\n top: calc(var(--fc-event-resizer-dot-total-width, 8px) / -2);\n}\n\n.fc-v-event.fc-event-selected .fc-event-resizer-end {\n bottom: -4px;\n bottom: calc(var(--fc-event-resizer-dot-total-width, 8px) / -2);\n}\n\n.fc .fc-timegrid .fc-daygrid-body { /* the all-day daygrid within the timegrid view */\n z-index: 2; /* put above the timegrid-body so that more-popover is above everything. TODO: better solution */\n}\n\n.fc .fc-timegrid-divider {\n padding: 0 0 2px; /* browsers get confused when you set height. use padding instead */\n}\n\n.fc .fc-timegrid-body {\n position: relative;\n z-index: 1; /* scope the z-indexes of slots and cols */\n min-height: 100%; /* fill height always, even when slat table doesn't grow */\n}\n\n.fc .fc-timegrid-axis-chunk { /* for advanced ScrollGrid */\n position: relative;\n}\n\n.fc .fc-timegrid-axis-chunk > table {\n position: relative;\n z-index: 1; /* above the now-indicator-container */\n}\n\n.fc .fc-timegrid-slots {\n position: relative;\n z-index: 1;\n}\n\n.fc .fc-timegrid-slot { /* a */\n height: 1.5em;\n border-bottom: 0;\n}\n\n.fc .fc-timegrid-slot:empty:before {\n content: \" \"; /* make sure there's at least an empty space to create height for height syncing */\n}\n\n.fc .fc-timegrid-slot-minor {\n border-top-style: dotted;\n}\n\n.fc .fc-timegrid-slot-label-cushion {\n display: inline-block;\n white-space: nowrap;\n}\n\n.fc .fc-timegrid-slot-label {\n vertical-align: middle; /* vertical align the slots */\n}\n\n.fc {\n /* slots AND axis cells (top-left corner of view including the \"all-day\" text) */\n}\n\n.fc .fc-timegrid-axis-cushion,\n.fc .fc-timegrid-slot-label-cushion {\n padding: 0 4px;\n}\n\n.fc {\n /* axis cells (top-left corner of view including the \"all-day\" text) */\n /* vertical align is more complicated, uses flexbox */\n}\n\n.fc .fc-timegrid-axis-frame-liquid {\n height: 100%; /* will need liquid-hack in FF */\n}\n\n.fc .fc-timegrid-axis-frame {\n overflow: hidden;\n display: flex;\n align-items: center; /* vertical align */\n justify-content: flex-end; /* horizontal align. matches text-align below */\n}\n\n.fc .fc-timegrid-axis-cushion {\n max-width: 60px; /* limits the width of the \"all-day\" text */\n flex-shrink: 0; /* allows text to expand how it normally would, regardless of constrained width */\n}\n\n.fc-direction-ltr .fc-timegrid-slot-label-frame {\n text-align: right;\n}\n\n.fc-direction-rtl .fc-timegrid-slot-label-frame {\n text-align: left;\n}\n\n.fc-liquid-hack .fc-timegrid-axis-frame-liquid {\n height: auto;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n}\n\n.fc .fc-timegrid-col.fc-day-today {\n background-color: rgba(255, 220, 40, 0.15);\n background-color: var(--fc-today-bg-color, rgba(255, 220, 40, 0.15));\n}\n\n.fc .fc-timegrid-col-frame {\n min-height: 100%; /* liquid-hack is below */\n position: relative;\n}\n\n.fc-media-screen.fc-liquid-hack .fc-timegrid-col-frame {\n height: auto;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n}\n\n.fc-media-screen .fc-timegrid-cols {\n position: absolute; /* no z-index. children will decide and go above slots */\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n}\n\n.fc-media-screen .fc-timegrid-cols > table {\n height: 100%;\n}\n\n.fc-media-screen .fc-timegrid-col-bg,\n.fc-media-screen .fc-timegrid-col-events,\n.fc-media-screen .fc-timegrid-now-indicator-container {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n}\n\n.fc {\n /* bg */\n}\n\n.fc .fc-timegrid-col-bg {\n z-index: 2; /* TODO: kill */\n}\n\n.fc .fc-timegrid-col-bg .fc-non-business {\n z-index: 1;\n}\n\n.fc .fc-timegrid-col-bg .fc-bg-event {\n z-index: 2;\n}\n\n.fc .fc-timegrid-col-bg .fc-highlight {\n z-index: 3;\n}\n\n.fc .fc-timegrid-bg-harness {\n position: absolute; /* top/bottom will be set by JS */\n left: 0;\n right: 0;\n}\n\n.fc {\n /* fg events */\n /* (the mirror segs are put into a separate container with same classname, */\n /* and they must be after the normal seg container to appear at a higher z-index) */\n}\n\n.fc .fc-timegrid-col-events {\n z-index: 3;\n /* child event segs have z-indexes that are scoped within this div */\n}\n\n.fc {\n /* now indicator */\n}\n\n.fc .fc-timegrid-now-indicator-container {\n bottom: 0;\n overflow: hidden; /* don't let overflow of lines/arrows cause unnecessary scrolling */\n /* z-index is set on the individual elements */\n}\n\n.fc-direction-ltr .fc-timegrid-col-events {\n margin: 0 2.5% 0 2px;\n}\n\n.fc-direction-rtl .fc-timegrid-col-events {\n margin: 0 2px 0 2.5%;\n}\n\n.fc-timegrid-event-harness {\n position: absolute;\n}\n\n.fc-timegrid-event-harness > .fc-timegrid-event {\n position: absolute; /* absolute WITHIN the harness */\n top: 0; /* for when not yet positioned */\n bottom: 0; /* \" */\n left: 0;\n right: 0;\n}\n\n.fc-timegrid-event-harness-inset .fc-timegrid-event,\n.fc-timegrid-event.fc-event-mirror,\n.fc-timegrid-more-link {\n box-shadow: 0px 0px 0px 1px #fff;\n box-shadow: 0px 0px 0px 1px var(--fc-page-bg-color, #fff);\n}\n\n.fc-timegrid-event,\n.fc-timegrid-more-link { /* events need to be root */\n font-size: 0.85em;\n font-size: var(--fc-small-font-size, 0.85em);\n border-radius: 3px;\n}\n\n.fc-timegrid-event { /* events need to be root */\n margin-bottom: 1px;\n}\n\n.fc-timegrid-event .fc-event-main {\n padding: 1px 1px 0;\n}\n\n.fc-timegrid-event .fc-event-time {\n white-space: nowrap;\n font-size: 0.85em;\n font-size: var(--fc-small-font-size, 0.85em);\n margin-bottom: 1px;\n}\n\n.fc-timegrid-event-short .fc-event-main-frame {\n flex-direction: row;\n overflow: hidden;\n}\n\n.fc-timegrid-event-short .fc-event-time:after {\n content: \" - \"; /* dash surrounded by non-breaking spaces */\n}\n\n.fc-timegrid-event-short .fc-event-title {\n font-size: 0.85em;\n font-size: var(--fc-small-font-size, 0.85em);\n}\n\n.fc-timegrid-more-link { /* does NOT inherit from fc-timegrid-event */\n position: absolute;\n z-index: 9999; /* hack */\n color: inherit;\n color: var(--fc-more-link-text-color, inherit);\n background: #d0d0d0;\n background: var(--fc-more-link-bg-color, #d0d0d0);\n cursor: pointer;\n margin-bottom: 1px; /* match space below fc-timegrid-event */\n}\n\n.fc-timegrid-more-link-inner { /* has fc-sticky */\n padding: 3px 2px;\n top: 0;\n}\n\n.fc-direction-ltr .fc-timegrid-more-link {\n right: 0;\n}\n\n.fc-direction-rtl .fc-timegrid-more-link {\n left: 0;\n}\n\n.fc {\n /* line */\n}\n\n.fc .fc-timegrid-now-indicator-line {\n position: absolute;\n z-index: 4;\n left: 0;\n right: 0;\n border-style: solid;\n border-color: red;\n border-color: var(--fc-now-indicator-color, red);\n border-width: 1px 0 0;\n}\n\n.fc {\n /* arrow */\n}\n\n.fc .fc-timegrid-now-indicator-arrow {\n position: absolute;\n z-index: 4;\n margin-top: -5px; /* vertically center on top coordinate */\n border-style: solid;\n border-color: red;\n border-color: var(--fc-now-indicator-color, red);\n}\n\n.fc-direction-ltr .fc-timegrid-now-indicator-arrow {\n left: 0;\n /* triangle pointing right. TODO: mixin */\n border-width: 5px 0 5px 6px;\n border-top-color: transparent;\n border-bottom-color: transparent;\n}\n\n.fc-direction-rtl .fc-timegrid-now-indicator-arrow {\n right: 0;\n /* triangle pointing left. TODO: mixin */\n border-width: 5px 6px 5px 0;\n border-top-color: transparent;\n border-bottom-color: transparent;\n}\n\n:root {\n --fc-list-event-dot-width: 10px;\n --fc-list-event-hover-bg-color: #f5f5f5;\n}\n\n.fc-theme-standard .fc-list {\n border: 1px solid #ddd;\n border: 1px solid var(--fc-border-color, #ddd);\n}\n\n.fc {\n /* message when no events */\n}\n\n.fc .fc-list-empty {\n background-color: rgba(208, 208, 208, 0.3);\n background-color: var(--fc-neutral-bg-color, rgba(208, 208, 208, 0.3));\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center; /* vertically aligns fc-list-empty-inner */\n}\n\n.fc .fc-list-empty-cushion {\n margin: 5em 0;\n}\n\n.fc {\n /* table within the scroller */\n /* ---------------------------------------------------------------------------------------------------- */\n}\n\n.fc .fc-list-table {\n width: 100%;\n border-style: hidden; /* kill outer border on theme */\n}\n\n.fc .fc-list-table tr > * {\n border-left: 0;\n border-right: 0;\n}\n\n.fc .fc-list-sticky .fc-list-day > * { /* the cells */\n position: sticky;\n top: 0;\n background: #fff;\n background: var(--fc-page-bg-color, #fff); /* for when headers are styled to be transparent and sticky */\n}\n\n.fc .fc-list-table th {\n padding: 0; /* uses an inner-wrapper instead... */\n}\n\n.fc .fc-list-table td,\n.fc .fc-list-day-cushion {\n padding: 8px 14px;\n}\n\n.fc {\n /* date heading rows */\n /* ---------------------------------------------------------------------------------------------------- */\n}\n\n.fc .fc-list-day-cushion:after {\n content: \"\";\n clear: both;\n display: table; /* clear floating */\n}\n\n.fc-theme-standard .fc-list-day-cushion {\n background-color: rgba(208, 208, 208, 0.3);\n background-color: var(--fc-neutral-bg-color, rgba(208, 208, 208, 0.3));\n}\n\n.fc-direction-ltr .fc-list-day-text,\n.fc-direction-rtl .fc-list-day-side-text {\n float: left;\n}\n\n.fc-direction-ltr .fc-list-day-side-text,\n.fc-direction-rtl .fc-list-day-text {\n float: right;\n}\n\n/* make the dot closer to the event title */\n.fc-direction-ltr .fc-list-table .fc-list-event-graphic {\n padding-right: 0;\n}\n\n.fc-direction-rtl .fc-list-table .fc-list-event-graphic {\n padding-left: 0;\n}\n\n.fc .fc-list-event.fc-event-forced-url {\n cursor: pointer; /* whole row will seem clickable */\n}\n\n.fc .fc-list-event:hover td {\n background-color: #f5f5f5;\n background-color: var(--fc-list-event-hover-bg-color, #f5f5f5);\n}\n\n.fc {\n /* shrink certain cols */\n}\n\n.fc .fc-list-event-graphic,\n.fc .fc-list-event-time {\n white-space: nowrap;\n width: 1px;\n}\n\n.fc .fc-list-event-dot {\n display: inline-block;\n box-sizing: content-box;\n width: 0;\n height: 0;\n border: 5px solid #3788d8;\n border: calc(var(--fc-list-event-dot-width, 10px) / 2) solid var(--fc-event-border-color, #3788d8);\n border-radius: 5px;\n border-radius: calc(var(--fc-list-event-dot-width, 10px) / 2);\n}\n\n.fc {\n /* reset styling */\n}\n\n.fc .fc-list-event-title a {\n color: inherit;\n text-decoration: none;\n}\n\n.fc {\n /* underline link when hovering over any part of row */\n}\n\n.fc .fc-list-event.fc-event-forced-url:hover a {\n text-decoration: underline;\n}\n\n.fc-theme-bootstrap a:not([href]) {\n color: inherit; /* natural color for navlinks */\n}\n\n.jvectormap-container {\n width: 100%;\n height: 100%;\n position: relative;\n overflow: hidden;\n}\n\n.jvectormap-tip {\n position: absolute;\n display: none;\n border: solid 1px #CDCDCD;\n border-radius: 3px;\n background: #292929;\n color: white;\n font-family: sans-serif, Verdana;\n font-size: smaller;\n padding: 3px;\n}\n\n.jvectormap-zoomin, .jvectormap-zoomout, .jvectormap-goback {\n position: absolute;\n left: 10px;\n border-radius: 3px;\n background: #292929;\n padding: 3px;\n color: white;\n cursor: pointer;\n line-height: 10px;\n text-align: center;\n}\n\n.jvectormap-zoomin {\n top: 10px;\n}\n\n.jvectormap-zoomout {\n top: 30px;\n}\n\n.jvectormap-goback {\n bottom: 10px;\n z-index: 1000;\n padding: 6px;\n}\n\n.jvectormap-spinner {\n position: absolute;\n left: 0;\n top: 0;\n right: 0;\n bottom: 0;\n background: center no-repeat url(" + ___CSS_LOADER_URL_REPLACEMENT_32___ + ");\n}\n\n.jvectormap-legend-title {\n font-weight: bold;\n font-size: 14px;\n text-align: center;\n}\n\n.jvectormap-legend-cnt {\n position: absolute;\n}\n\n.jvectormap-legend-cnt-h {\n bottom: 0;\n right: 0;\n}\n\n.jvectormap-legend-cnt-v {\n top: 0;\n right: 0;\n}\n\n.jvectormap-legend {\n background: black;\n color: white;\n border-radius: 3px;\n}\n\n.jvectormap-legend-cnt-h .jvectormap-legend {\n float: left;\n margin: 0 10px 10px 0;\n padding: 3px 3px 1px 3px;\n}\n\n.jvectormap-legend-cnt-h .jvectormap-legend .jvectormap-legend-tick {\n float: left;\n}\n\n.jvectormap-legend-cnt-v .jvectormap-legend {\n margin: 10px 10px 0 0;\n padding: 3px;\n}\n\n.jvectormap-legend-cnt-h .jvectormap-legend-tick {\n width: 40px;\n}\n\n.jvectormap-legend-cnt-h .jvectormap-legend-tick-sample {\n height: 15px;\n}\n\n.jvectormap-legend-cnt-v .jvectormap-legend-tick-sample {\n height: 20px;\n width: 20px;\n display: inline-block;\n vertical-align: middle;\n}\n\n.jvectormap-legend-tick-text {\n font-size: 12px;\n}\n\n.jvectormap-legend-cnt-h .jvectormap-legend-tick-text {\n text-align: center;\n}\n\n.jvectormap-legend-cnt-v .jvectormap-legend-tick-text {\n display: inline-block;\n vertical-align: middle;\n line-height: 20px;\n padding-left: 3px;\n}\n\n@media only screen and (max-width: 1320px) {\n .header-user-info {\n display: none;\n }\n}\n@media (max-width: 767.98px) {\n .app-main {\n display: block;\n }\n .dropdown-menu::before, .dropdown-menu::after {\n display: none;\n }\n .app-sidebar {\n flex: 0 0 280px !important;\n width: 280px !important;\n transform: translateX(-280px);\n position: fixed;\n }\n .app-sidebar .app-header__logo {\n display: none;\n }\n .sidebar-mobile-open .app-sidebar {\n transform: translateX(0);\n }\n .sidebar-mobile-open .app-sidebar .app-sidebar__inner .app-sidebar__heading {\n text-indent: initial;\n }\n .sidebar-mobile-open .app-sidebar .app-sidebar__inner .app-sidebar__heading::before {\n display: none;\n }\n .sidebar-mobile-open .app-sidebar .app-sidebar__inner ul li a {\n text-indent: initial;\n padding: 0 1.5rem 0 45px;\n }\n .sidebar-mobile-open .app-sidebar .app-sidebar__inner .metismenu-icon {\n text-indent: initial;\n left: 5px;\n margin-left: 0;\n }\n .sidebar-mobile-open .app-sidebar .app-sidebar__inner .metismenu-state-icon {\n visibility: visible;\n }\n .sidebar-mobile-open .app-sidebar .app-sidebar__inner ul::before {\n display: block;\n }\n .sidebar-mobile-open .app-sidebar .app-sidebar__inner ul ul li a {\n padding-left: 1em;\n }\n .sidebar-mobile-open .app-sidebar .app-sidebar__inner ul.mm-show {\n padding: 0.5em 0 0 2rem;\n }\n .sidebar-mobile-open .app-sidebar .app-sidebar__inner ul.mm-show > li > a {\n height: 2rem;\n line-height: 2rem;\n }\n .sidebar-mobile-open .app-sidebar .app-header__logo {\n width: auto !important;\n }\n .sidebar-mobile-open .app-sidebar .app-header__logo .logo-src {\n width: 97px !important;\n margin-left: auto;\n margin-right: 0;\n }\n .sidebar-mobile-open .fixed-sidebar .app-sidebar {\n height: 100%;\n }\n .sidebar-mobile-open .sidebar-mobile-overlay {\n display: block;\n }\n .app-main .app-main__outer {\n padding-left: 0 !important;\n }\n .app-header {\n justify-content: space-between;\n }\n .app-header .app-header__logo {\n display: none;\n order: 2;\n background: transparent !important;\n border: 0 !important;\n }\n .app-header .app-header__content {\n visibility: hidden;\n opacity: 0;\n box-shadow: 0 0.46875rem 2.1875rem rgba(4, 9, 20, 0.03), 0 0.9375rem 1.40625rem rgba(4, 9, 20, 0.03), 0 0.25rem 0.53125rem rgba(4, 9, 20, 0.05), 0 0.125rem 0.1875rem rgba(4, 9, 20, 0.03);\n position: absolute;\n left: 5%;\n width: 90%;\n top: 0;\n transition: all 0.2s;\n background: #fff;\n border-radius: 50px;\n padding: 0 10px;\n overflow: hidden;\n }\n .app-header .app-header__content .header-btn-lg {\n margin-left: 0.5rem;\n padding: 0 0.5rem;\n }\n .app-header .app-header__content .app-header-left .nav {\n display: none;\n }\n .app-header .app-header__content.header-mobile-open {\n visibility: visible;\n opacity: 1;\n top: 80px;\n }\n .app-header .app-header__mobile-menu {\n display: flex;\n order: 1;\n }\n .app-header .app-header__menu {\n display: flex;\n order: 3;\n }\n .app-header.header-text-light .app-header__menu > span .btn, .app-header.header-text-light .app-header__menu > .btn {\n background: rgba(255, 255, 255, 0.1);\n border-color: rgba(255, 255, 255, 0.1);\n }\n .app-header.header-text-light .header-mobile-open {\n background: #343a40;\n }\n .popover,\n.dropdown-menu {\n position: fixed !important;\n z-index: 50;\n left: 5% !important;\n top: 50% !important;\n width: 90% !important;\n transform: translateY(-50%) !important;\n min-width: 10px !important;\n }\n .popover .btn-icon-vertical .btn-icon-wrapper,\n.dropdown-menu .btn-icon-vertical .btn-icon-wrapper {\n display: none;\n }\n .popover {\n max-width: initial;\n }\n .popover .arrow {\n display: none !important;\n }\n .app-page-title {\n text-align: center;\n }\n .app-page-title .page-title-heading,\n.app-page-title .page-title-wrapper {\n margin: 0 auto;\n display: block;\n }\n .app-page-title .page-title-actions {\n margin: 0.75rem auto 0;\n }\n .app-page-title .page-title-actions .breadcrumb-item,\n.app-page-title .page-title-actions .breadcrumb,\n.app-page-title .page-title-subheading .breadcrumb-item,\n.app-page-title .page-title-subheading .breadcrumb {\n display: inline-block;\n }\n .app-footer .app-footer__inner .app-footer-right {\n display: none;\n }\n .app-footer .app-footer__inner .app-footer-left {\n width: 100%;\n }\n .app-footer .app-footer__inner .app-footer-left .footer-dots {\n margin: 0 auto;\n }\n .widget-content .widget-numbers {\n font-size: 1.6rem;\n line-height: 1;\n }\n .slick-slider-sm .slick-slider {\n max-width: 650px !important;\n }\n .bg-transparent.list-group-item {\n border-color: transparent;\n }\n .tabs-lg-alternate.card-header > .nav .nav-item .widget-number {\n font-size: 1.5rem;\n }\n .page-title-head {\n display: block;\n }\n}\n@media (max-width: 767.98px) {\n .app-page-title .page-title-icon,\n.ui-theme-settings {\n display: none;\n }\n .card-header.responsive-center {\n display: block;\n text-align: center;\n height: auto;\n padding: 1.5rem;\n }\n .card-header.responsive-center .nav,\n.card-header.responsive-center .btn-actions-pane-right {\n margin: 0.75rem 0 0;\n }\n .card-header.responsive-center .nav .d-inline-block.ml-2,\n.card-header.responsive-center .btn-actions-pane-right .d-inline-block.ml-2 {\n width: 100% !important;\n text-align: left;\n margin: 0 !important;\n }\n .slick-slider-sm .slick-slider {\n max-width: 650px !important;\n }\n}\n@media (min-width: 992px) {\n .slick-slider-sm .slick-slider {\n max-width: 850px !important;\n }\n}\n@media (max-width: 991.98px) {\n .-hide-paging .-pagination .-center {\n display: none;\n }\n}\n@media (max-width: 575.98px) {\n .app-main .app-main__inner {\n padding: 15px 15px 0;\n }\n .mbg-3,\nbody .card.mb-3 {\n margin-bottom: 0.75rem !important;\n }\n .app-page-title {\n padding: 0.75rem;\n margin: -0.75rem -0.75rem 0.75rem;\n }\n .app-page-title + .body-tabs-layout {\n margin-top: -0.75rem !important;\n }\n .body-tabs-line .body-tabs-layout {\n margin-bottom: 0.75rem;\n margin-left: -0.75rem;\n margin-right: -0.75rem;\n padding: 0 15px;\n }\n .body-tabs {\n padding: 0 0.75rem;\n display: block;\n }\n .body-tabs .nav-item .nav-link {\n margin: 0;\n }\n .popover,\n.dropdown-menu {\n width: 80%;\n left: 10%;\n }\n body .card-header {\n height: auto;\n display: block;\n padding: 0.75rem 1.5rem;\n text-align: center;\n }\n body .card-header .btn-actions-pane-right {\n padding: 0.75rem 0 0;\n }\n body .card-header .actions-icon-btn {\n padding: 0;\n }\n .card-header.card-header-tab .card-header-title {\n display: inline-flex !important;\n line-height: 1;\n }\n .card-header.card-header-tab > .nav {\n margin: 0.75rem 0 -0.75rem;\n display: table !important;\n width: 100%;\n }\n .card-header.card-header-tab > .nav .nav-item {\n display: table-cell;\n }\n .header-icon {\n display: none;\n }\n .profile-responsive-sm .dropdown-menu-header .menu-header-content.btn-pane-right,\n.profile-responsive .dropdown-menu-header .menu-header-content.btn-pane-right {\n display: block;\n text-align: center;\n }\n .profile-responsive-sm .dropdown-menu-header .menu-header-content.btn-pane-right .avatar-icon-wrapper,\n.profile-responsive .dropdown-menu-header .menu-header-content.btn-pane-right .avatar-icon-wrapper {\n margin-right: 0 !important;\n }\n .profile-responsive-sm .dropdown-menu-header .menu-header-content.btn-pane-right .menu-header-btn-pane,\n.profile-responsive .dropdown-menu-header .menu-header-content.btn-pane-right .menu-header-btn-pane {\n margin-top: 1rem;\n }\n .slick-slider-sm .slick-slider .slick-prev {\n left: 0.75rem;\n }\n .slick-slider-sm .slick-slider .slick-next {\n right: 0.75rem;\n }\n}\n@media only screen and (min-width: 1200px) and (max-width: 1500px) {\n .profile-responsive .dropdown-menu-header .menu-header-content.btn-pane-right {\n display: block;\n text-align: center;\n }\n .profile-responsive .dropdown-menu-header .menu-header-content.btn-pane-right .avatar-icon-wrapper {\n margin-right: 0 !important;\n }\n .profile-responsive .dropdown-menu-header .menu-header-content.btn-pane-right .menu-header-btn-pane {\n margin-top: 1rem;\n }\n}\n.ui-theme-settings {\n position: fixed;\n z-index: 155;\n right: -30px;\n top: 0;\n height: 100vh;\n transform: translate(500px);\n transition: all 0.2s;\n box-shadow: -0.46875rem 0 2.1875rem rgba(4, 9, 20, 0.03), -0.9375rem 0 1.40625rem rgba(4, 9, 20, 0.03), -0.25rem 0 0.53125rem rgba(4, 9, 20, 0.05), -0.125rem 0 0.1875rem rgba(4, 9, 20, 0.03);\n}\n.ui-theme-settings .btn-open-options {\n border-radius: 50px;\n position: absolute;\n left: -114px;\n bottom: 80px;\n padding: 0;\n height: 54px;\n line-height: 54px;\n width: 54px;\n text-align: center;\n display: block;\n box-shadow: 0 0.46875rem 2.1875rem rgba(4, 9, 20, 0.03), 0 0.9375rem 1.40625rem rgba(4, 9, 20, 0.03), 0 0.25rem 0.53125rem rgba(4, 9, 20, 0.05), 0 0.125rem 0.1875rem rgba(4, 9, 20, 0.03);\n margin-top: -27px;\n}\n.ui-theme-settings .btn-open-options svg {\n top: 50%;\n left: 50%;\n position: absolute;\n margin: -0.5em 0 0 -0.5em;\n}\n.ui-theme-settings .theme-settings__inner {\n background: #fff;\n width: 500px;\n height: 100vh;\n padding: 0;\n}\n.ui-theme-settings.settings-open {\n transform: translate(0);\n right: 0;\n}\n.ui-theme-settings .theme-settings-swatches {\n text-align: center;\n}\n.ui-theme-settings .theme-settings-swatches .swatch-holder-img {\n width: 72px;\n height: auto;\n border-radius: 3px;\n}\n.ui-theme-settings .theme-settings-swatches .swatch-holder-img img {\n width: 100%;\n}\n.ui-theme-settings .themeoptions-heading {\n font-size: 1.1rem;\n color: #495057;\n margin: 0;\n background: #f8f9fa;\n padding: 0.75rem 1.5rem;\n border-bottom: #dee2e6 solid 1px;\n border-top: #dee2e6 solid 1px;\n display: flex;\n align-items: center;\n align-content: center;\n}\n.ui-theme-settings .themeoptions-heading:first-child {\n border-top: 0;\n}\n.ui-theme-settings .list-group-item h5, .ui-theme-settings .list-group-item .h5 {\n color: #3f6ad8;\n font-size: 0.968rem;\n text-transform: uppercase;\n margin: 0;\n text-align: center;\n}\n\n.swatch-holder {\n width: 24px;\n height: 24px;\n line-height: 24px;\n margin: 5px 5px 0;\n transition: all 0.2s;\n opacity: 0.7;\n display: inline-block;\n border-radius: 30px;\n}\n.swatch-holder.active {\n border: #fff solid 2px;\n box-shadow: 0 0 0 5px #3f6ad8;\n opacity: 1;\n}\n.swatch-holder:hover {\n opacity: 1;\n}\n\n.swatch-holder-lg {\n width: 48px;\n height: 48px;\n line-height: 48px;\n}\n\n.font-icon-wrapper {\n text-align: center;\n border: #e9ecef solid 1px;\n border-radius: 0.25rem;\n margin: 0 0 10px;\n padding: 5px;\n}\n.font-icon-wrapper.font-icon-lg {\n float: left;\n padding: 10px;\n text-align: center;\n margin-right: 15px;\n min-width: 64px;\n}\n.font-icon-wrapper.font-icon-lg i {\n font-size: 2.2rem;\n}\n.font-icon-wrapper:hover {\n background: #f8f9fa;\n color: #3f6ad8;\n}\n.font-icon-wrapper:hover p {\n color: #6c757d;\n}\n.font-icon-wrapper i {\n font-size: 1.65rem;\n}\n.font-icon-wrapper p {\n color: #adb5bd;\n font-size: 0.8066666667rem;\n margin: 5px 0 0;\n}\n\n.btn-icon-vertical {\n min-width: 100px;\n}\n\n.card.mb-3 {\n margin-bottom: 1.5rem !important;\n}\n\n.demo-image-bg {\n height: 350px;\n margin-bottom: 1.5rem;\n background-size: 100%;\n}", ""]); -// Exports -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); - - -/***/ }), -/* 70 */ -/***/ ((module) => { - -"use strict"; - - -module.exports = function (i) { - return i[1]; -}; - -/***/ }), -/* 71 */ -/***/ ((module) => { - -"use strict"; - - -/* - MIT License http://www.opensource.org/licenses/mit-license.php - Author Tobias Koppers @sokra -*/ -module.exports = function (cssWithMappingToString) { - var list = []; // return the list of modules as css string - - list.toString = function toString() { - return this.map(function (item) { - var content = ""; - var needLayer = typeof item[5] !== "undefined"; - - if (item[4]) { - content += "@supports (".concat(item[4], ") {"); - } - - if (item[2]) { - content += "@media ".concat(item[2], " {"); - } - - if (needLayer) { - content += "@layer".concat(item[5].length > 0 ? " ".concat(item[5]) : "", " {"); - } - - content += cssWithMappingToString(item); - - if (needLayer) { - content += "}"; - } - - if (item[2]) { - content += "}"; - } - - if (item[4]) { - content += "}"; - } - - return content; - }).join(""); - }; // import a list of modules into the list - - - list.i = function i(modules, media, dedupe, supports, layer) { - if (typeof modules === "string") { - modules = [[null, modules, undefined]]; - } - - var alreadyImportedModules = {}; - - if (dedupe) { - for (var k = 0; k < this.length; k++) { - var id = this[k][0]; - - if (id != null) { - alreadyImportedModules[id] = true; - } - } - } - - for (var _k = 0; _k < modules.length; _k++) { - var item = [].concat(modules[_k]); - - if (dedupe && alreadyImportedModules[item[0]]) { - continue; - } - - if (typeof layer !== "undefined") { - if (typeof item[5] === "undefined") { - item[5] = layer; - } else { - item[1] = "@layer".concat(item[5].length > 0 ? " ".concat(item[5]) : "", " {").concat(item[1], "}"); - item[5] = layer; - } - } - - if (media) { - if (!item[2]) { - item[2] = media; - } else { - item[1] = "@media ".concat(item[2], " {").concat(item[1], "}"); - item[2] = media; - } - } - - if (supports) { - if (!item[4]) { - item[4] = "".concat(supports); - } else { - item[1] = "@supports (".concat(item[4], ") {").concat(item[1], "}"); - item[4] = supports; - } - } - - list.push(item); - } - }; - - return list; -}; - -/***/ }), -/* 72 */ -/***/ ((module) => { - -"use strict"; - - -module.exports = function (url, options) { - if (!options) { - options = {}; - } - - if (!url) { - return url; - } - - url = String(url.__esModule ? url.default : url); // If url is already wrapped in quotes, remove them - - if (/^['"].*['"]$/.test(url)) { - url = url.slice(1, -1); - } - - if (options.hash) { - url += options.hash; - } // Should url be wrapped? - // See https://drafts.csswg.org/css-values-3/#urls - - - if (/["'() \t\n]|(%20)/.test(url) || options.needQuotes) { - return "\"".concat(url.replace(/"/g, '\\"').replace(/\n/g, "\\n"), "\""); - } - - return url; -}; - -/***/ }), -/* 73 */ -/***/ ((module) => { - -"use strict"; -module.exports = "data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27%3e%3cpath fill=%27none%27 stroke=%27%23343a40%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27 stroke-width=%272%27 d=%27M2 5l6 6 6-6%27/%3e%3c/svg%3e"; - -/***/ }), -/* 74 */ -/***/ ((module) => { - -"use strict"; -module.exports = "data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 20 20%27%3e%3cpath fill=%27none%27 stroke=%27%23fff%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27 stroke-width=%273%27 d=%27M6 10l3 3l6-6%27/%3e%3c/svg%3e"; - -/***/ }), -/* 75 */ -/***/ ((module) => { - -"use strict"; -module.exports = "data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%27-4 -4 8 8%27%3e%3ccircle r=%272%27 fill=%27%23fff%27/%3e%3c/svg%3e"; - -/***/ }), -/* 76 */ -/***/ ((module) => { - -"use strict"; -module.exports = "data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 20 20%27%3e%3cpath fill=%27none%27 stroke=%27%23fff%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27 stroke-width=%273%27 d=%27M6 10h8%27/%3e%3c/svg%3e"; - -/***/ }), -/* 77 */ -/***/ ((module) => { - -"use strict"; -module.exports = "data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%27-4 -4 8 8%27%3e%3ccircle r=%273%27 fill=%27rgba%280, 0, 0, 0.25%29%27/%3e%3c/svg%3e"; - -/***/ }), -/* 78 */ -/***/ ((module) => { - -"use strict"; -module.exports = "data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%27-4 -4 8 8%27%3e%3ccircle r=%273%27 fill=%27%23a9bcee%27/%3e%3c/svg%3e"; - -/***/ }), -/* 79 */ -/***/ ((module) => { - -"use strict"; -module.exports = "data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%27-4 -4 8 8%27%3e%3ccircle r=%273%27 fill=%27%23fff%27/%3e%3c/svg%3e"; - -/***/ }), -/* 80 */ -/***/ ((module) => { - -"use strict"; -module.exports = "data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 8 8%27%3e%3cpath fill=%27%233ac47d%27 d=%27M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z%27/%3e%3c/svg%3e"; - -/***/ }), -/* 81 */ -/***/ ((module) => { - -"use strict"; -module.exports = "data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 12 12%27 width=%2712%27 height=%2712%27 fill=%27none%27 stroke=%27%23d92550%27%3e%3ccircle cx=%276%27 cy=%276%27 r=%274.5%27/%3e%3cpath stroke-linejoin=%27round%27 d=%27M5.8 3.6h.4L6 6.5z%27/%3e%3ccircle cx=%276%27 cy=%278.2%27 r=%27.6%27 fill=%27%23d92550%27 stroke=%27none%27/%3e%3c/svg%3e"; - -/***/ }), -/* 82 */ -/***/ ((module) => { - -"use strict"; -module.exports = "data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 30 30%27%3e%3cpath stroke=%27rgba%280, 0, 0, 0.55%29%27 stroke-linecap=%27round%27 stroke-miterlimit=%2710%27 stroke-width=%272%27 d=%27M4 7h22M4 15h22M4 23h22%27/%3e%3c/svg%3e"; - -/***/ }), -/* 83 */ -/***/ ((module) => { - -"use strict"; -module.exports = "data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 30 30%27%3e%3cpath stroke=%27rgba%28255, 255, 255, 0.55%29%27 stroke-linecap=%27round%27 stroke-miterlimit=%2710%27 stroke-width=%272%27 d=%27M4 7h22M4 15h22M4 23h22%27/%3e%3c/svg%3e"; - -/***/ }), -/* 84 */ -/***/ ((module) => { - -"use strict"; -module.exports = "data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27 fill=%27%23395fc2%27%3e%3cpath fill-rule=%27evenodd%27 d=%27M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z%27/%3e%3c/svg%3e"; - -/***/ }), -/* 85 */ -/***/ ((module) => { - -"use strict"; -module.exports = "data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27 fill=%27%23495057%27%3e%3cpath fill-rule=%27evenodd%27 d=%27M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z%27/%3e%3c/svg%3e"; - -/***/ }), -/* 86 */ -/***/ ((module) => { - -"use strict"; -module.exports = "data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27 fill=%27%23000%27%3e%3cpath d=%27M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z%27/%3e%3c/svg%3e"; - -/***/ }), -/* 87 */ -/***/ ((module) => { - -"use strict"; -module.exports = "data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27 fill=%27%23fff%27%3e%3cpath d=%27M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z%27/%3e%3c/svg%3e"; - -/***/ }), -/* 88 */ -/***/ ((module) => { - -"use strict"; -module.exports = "data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27 fill=%27%23fff%27%3e%3cpath d=%27M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z%27/%3e%3c/svg%3e"; - -/***/ }), -/* 89 */ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -module.exports = __webpack_require__.p + "5de49e582a3378e7a6f5.png"; - -/***/ }), -/* 90 */ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -module.exports = __webpack_require__.p + "247797d48a903028d1e9.png"; - -/***/ }), -/* 91 */ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -module.exports = __webpack_require__.p + "59edf72a325ac2048d60.woff2"; - -/***/ }), -/* 92 */ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -module.exports = __webpack_require__.p + "e615bbcb258550973c16.ttf"; - -/***/ }), -/* 93 */ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -module.exports = __webpack_require__.p + "ebb7a127d2d8ee6f1832.woff2"; - -/***/ }), -/* 94 */ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -module.exports = __webpack_require__.p + "b823fc0dbb5a5f0c21bb.ttf"; - -/***/ }), -/* 95 */ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -module.exports = __webpack_require__.p + "1d449ea50ab8389ee078.eot?d7yf1v"; - -/***/ }), -/* 96 */ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -module.exports = __webpack_require__.p + "1d449ea50ab8389ee078.eot"; - -/***/ }), -/* 97 */ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -module.exports = __webpack_require__.p + "11f7c073b050d62afb33.woff?d7yf1v"; - -/***/ }), -/* 98 */ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -module.exports = __webpack_require__.p + "7233a7aee250f9b77fba.ttf?d7yf1v"; - -/***/ }), -/* 99 */ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -module.exports = __webpack_require__.p + "09c6a96523589cb91799.svg?d7yf1v"; - -/***/ }), -/* 100 */ -/***/ ((module) => { - -"use strict"; -module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGwSURBVEhLtZa9SgNBEMc9sUxxRcoUKSzSWIhXpFMhhYWFhaBg4yPYiWCXZxBLERsLRS3EQkEfwCKdjWJAwSKCgoKCcudv4O5YLrt7EzgXhiU3/4+b2ckmwVjJSpKkQ6wAi4gwhT+z3wRBcEz0yjSseUTrcRyfsHsXmD0AmbHOC9Ii8VImnuXBPglHpQ5wwSVM7sNnTG7Za4JwDdCjxyAiH3nyA2mtaTJufiDZ5dCaqlItILh1NHatfN5skvjx9Z38m69CgzuXmZgVrPIGE763Jx9qKsRozWYw6xOHdER+nn2KkO+Bb+UV5CBN6WC6QtBgbRVozrahAbmm6HtUsgtPC19tFdxXZYBOfkbmFJ1VaHA1VAHjd0pp70oTZzvR+EVrx2Ygfdsq6eu55BHYR8hlcki+n+kERUFG8BrA0BwjeAv2M8WLQBtcy+SD6fNsmnB3AlBLrgTtVW1c2QN4bVWLATaIS60J2Du5y1TiJgjSBvFVZgTmwCU+dAZFoPxGEEs8nyHC9Bwe2GvEJv2WXZb0vjdyFT4Cxk3e/kIqlOGoVLwwPevpYHT+00T+hWwXDf4AJAOUqWcDhbwAAAAASUVORK5CYII="; - -/***/ }), -/* 101 */ -/***/ ((module) => { - -"use strict"; -module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVEhLrZa/SgNBEMZzh0WKCClSCKaIYOED+AAKeQQLG8HWztLCImBrYadgIdY+gIKNYkBFSwu7CAoqCgkkoGBI/E28PdbLZmeDLgzZzcx83/zZ2SSXC1j9fr+I1Hq93g2yxH4iwM1vkoBWAdxCmpzTxfkN2RcyZNaHFIkSo10+8kgxkXIURV5HGxTmFuc75B2RfQkpxHG8aAgaAFa0tAHqYFfQ7Iwe2yhODk8+J4C7yAoRTWI3w/4klGRgR4lO7Rpn9+gvMyWp+uxFh8+H+ARlgN1nJuJuQAYvNkEnwGFck18Er4q3egEc/oO+mhLdKgRyhdNFiacC0rlOCbhNVz4H9FnAYgDBvU3QIioZlJFLJtsoHYRDfiZoUyIxqCtRpVlANq0EU4dApjrtgezPFad5S19Wgjkc0hNVnuF4HjVA6C7QrSIbylB+oZe3aHgBsqlNqKYH48jXyJKMuAbiyVJ8KzaB3eRc0pg9VwQ4niFryI68qiOi3AbjwdsfnAtk0bCjTLJKr6mrD9g8iq/S/B81hguOMlQTnVyG40wAcjnmgsCNESDrjme7wfftP4P7SP4N3CJZdvzoNyGq2c/HWOXJGsvVg+RA/k2MC/wN6I2YA2Pt8GkAAAAASUVORK5CYII="; - -/***/ }), -/* 102 */ -/***/ ((module) => { - -"use strict"; -module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADsSURBVEhLY2AYBfQMgf///3P8+/evAIgvA/FsIF+BavYDDWMBGroaSMMBiE8VC7AZDrIFaMFnii3AZTjUgsUUWUDA8OdAH6iQbQEhw4HyGsPEcKBXBIC4ARhex4G4BsjmweU1soIFaGg/WtoFZRIZdEvIMhxkCCjXIVsATV6gFGACs4Rsw0EGgIIH3QJYJgHSARQZDrWAB+jawzgs+Q2UO49D7jnRSRGoEFRILcdmEMWGI0cm0JJ2QpYA1RDvcmzJEWhABhD/pqrL0S0CWuABKgnRki9lLseS7g2AlqwHWQSKH4oKLrILpRGhEQCw2LiRUIa4lwAAAABJRU5ErkJggg=="; - -/***/ }), -/* 103 */ -/***/ ((module) => { - -"use strict"; -module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGYSURBVEhL5ZSvTsNQFMbXZGICMYGYmJhAQIJAICYQPAACiSDB8AiICQQJT4CqQEwgJvYASAQCiZiYmJhAIBATCARJy+9rTsldd8sKu1M0+dLb057v6/lbq/2rK0mS/TRNj9cWNAKPYIJII7gIxCcQ51cvqID+GIEX8ASG4B1bK5gIZFeQfoJdEXOfgX4QAQg7kH2A65yQ87lyxb27sggkAzAuFhbbg1K2kgCkB1bVwyIR9m2L7PRPIhDUIXgGtyKw575yz3lTNs6X4JXnjV+LKM/m3MydnTbtOKIjtz6VhCBq4vSm3ncdrD2lk0VgUXSVKjVDJXJzijW1RQdsU7F77He8u68koNZTz8Oz5yGa6J3H3lZ0xYgXBK2QymlWWA+RWnYhskLBv2vmE+hBMCtbA7KX5drWyRT/2JsqZ2IvfB9Y4bWDNMFbJRFmC9E74SoS0CqulwjkC0+5bpcV1CZ8NMej4pjy0U+doDQsGyo1hzVJttIjhQ7GnBtRFN1UarUlH8F3xict+HY07rEzoUGPlWcjRFRr4/gChZgc3ZL2d8oAAAAASUVORK5CYII="; - -/***/ }), -/* 104 */ -/***/ ((module) => { - -"use strict"; -module.exports = "data:application/x-font-ttf;charset=utf-8;base64,AAEAAAALAIAAAwAwT1MvMg8SBfAAAAC8AAAAYGNtYXAXVtKNAAABHAAAAFRnYXNwAAAAEAAAAXAAAAAIZ2x5ZgYydxIAAAF4AAAFNGhlYWQUJ7cIAAAGrAAAADZoaGVhB20DzAAABuQAAAAkaG10eCIABhQAAAcIAAAALGxvY2ED4AU6AAAHNAAAABhtYXhwAA8AjAAAB0wAAAAgbmFtZXsr690AAAdsAAABhnBvc3QAAwAAAAAI9AAAACAAAwPAAZAABQAAApkCzAAAAI8CmQLMAAAB6wAzAQkAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADpBgPA/8AAQAPAAEAAAAABAAAAAAAAAAAAAAAgAAAAAAADAAAAAwAAABwAAQADAAAAHAADAAEAAAAcAAQAOAAAAAoACAACAAIAAQAg6Qb//f//AAAAAAAg6QD//f//AAH/4xcEAAMAAQAAAAAAAAAAAAAAAQAB//8ADwABAAAAAAAAAAAAAgAANzkBAAAAAAEAAAAAAAAAAAACAAA3OQEAAAAAAQAAAAAAAAAAAAIAADc5AQAAAAABAWIAjQKeAskAEwAAJSc3NjQnJiIHAQYUFwEWMjc2NCcCnuLiDQ0MJAz/AA0NAQAMJAwNDcni4gwjDQwM/wANIwz/AA0NDCMNAAAAAQFiAI0CngLJABMAACUBNjQnASYiBwYUHwEHBhQXFjI3AZ4BAA0N/wAMJAwNDeLiDQ0MJAyNAQAMIw0BAAwMDSMM4uINIwwNDQAAAAIA4gC3Ax4CngATACcAACUnNzY0JyYiDwEGFB8BFjI3NjQnISc3NjQnJiIPAQYUHwEWMjc2NCcB87e3DQ0MIw3VDQ3VDSMMDQ0BK7e3DQ0MJAzVDQ3VDCQMDQ3zuLcMJAwNDdUNIwzWDAwNIwy4twwkDA0N1Q0jDNYMDA0jDAAAAgDiALcDHgKeABMAJwAAJTc2NC8BJiIHBhQfAQcGFBcWMjchNzY0LwEmIgcGFB8BBwYUFxYyNwJJ1Q0N1Q0jDA0Nt7cNDQwjDf7V1Q0N1QwkDA0Nt7cNDQwkDLfWDCMN1Q0NDCQMt7gMIw0MDNYMIw3VDQ0MJAy3uAwjDQwMAAADAFUAAAOrA1UAMwBoAHcAABMiBgcOAQcOAQcOARURFBYXHgEXHgEXHgEzITI2Nz4BNz4BNz4BNRE0JicuAScuAScuASMFITIWFx4BFx4BFx4BFREUBgcOAQcOAQcOASMhIiYnLgEnLgEnLgE1ETQ2Nz4BNz4BNz4BMxMhMjY1NCYjISIGFRQWM9UNGAwLFQkJDgUFBQUFBQ4JCRULDBgNAlYNGAwLFQkJDgUFBQUFBQ4JCRULDBgN/aoCVgQIBAQHAwMFAQIBAQIBBQMDBwQECAT9qgQIBAQHAwMFAQIBAQIBBQMDBwQECASAAVYRGRkR/qoRGRkRA1UFBAUOCQkVDAsZDf2rDRkLDBUJCA4FBQUFBQUOCQgVDAsZDQJVDRkLDBUJCQ4FBAVVAgECBQMCBwQECAX9qwQJAwQHAwMFAQICAgIBBQMDBwQDCQQCVQUIBAQHAgMFAgEC/oAZEhEZGRESGQAAAAADAFUAAAOrA1UAMwBoAIkAABMiBgcOAQcOAQcOARURFBYXHgEXHgEXHgEzITI2Nz4BNz4BNz4BNRE0JicuAScuAScuASMFITIWFx4BFx4BFx4BFREUBgcOAQcOAQcOASMhIiYnLgEnLgEnLgE1ETQ2Nz4BNz4BNz4BMxMzFRQWMzI2PQEzMjY1NCYrATU0JiMiBh0BIyIGFRQWM9UNGAwLFQkJDgUFBQUFBQ4JCRULDBgNAlYNGAwLFQkJDgUFBQUFBQ4JCRULDBgN/aoCVgQIBAQHAwMFAQIBAQIBBQMDBwQECAT9qgQIBAQHAwMFAQIBAQIBBQMDBwQECASAgBkSEhmAERkZEYAZEhIZgBEZGREDVQUEBQ4JCRUMCxkN/asNGQsMFQkIDgUFBQUFBQ4JCBUMCxkNAlUNGQsMFQkJDgUEBVUCAQIFAwIHBAQIBf2rBAkDBAcDAwUBAgICAgEFAwMHBAMJBAJVBQgEBAcCAwUCAQL+gIASGRkSgBkSERmAEhkZEoAZERIZAAABAOIAjQMeAskAIAAAExcHBhQXFjI/ARcWMjc2NC8BNzY0JyYiDwEnJiIHBhQX4uLiDQ0MJAzi4gwkDA0N4uINDQwkDOLiDCQMDQ0CjeLiDSMMDQ3h4Q0NDCMN4uIMIw0MDOLiDAwNIwwAAAABAAAAAQAAa5n0y18PPPUACwQAAAAAANivOVsAAAAA2K85WwAAAAADqwNVAAAACAACAAAAAAAAAAEAAAPA/8AAAAQAAAAAAAOrAAEAAAAAAAAAAAAAAAAAAAALBAAAAAAAAAAAAAAAAgAAAAQAAWIEAAFiBAAA4gQAAOIEAABVBAAAVQQAAOIAAAAAAAoAFAAeAEQAagCqAOoBngJkApoAAQAAAAsAigADAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAA4ArgABAAAAAAABAAcAAAABAAAAAAACAAcAYAABAAAAAAADAAcANgABAAAAAAAEAAcAdQABAAAAAAAFAAsAFQABAAAAAAAGAAcASwABAAAAAAAKABoAigADAAEECQABAA4ABwADAAEECQACAA4AZwADAAEECQADAA4APQADAAEECQAEAA4AfAADAAEECQAFABYAIAADAAEECQAGAA4AUgADAAEECQAKADQApGZjaWNvbnMAZgBjAGkAYwBvAG4Ac1ZlcnNpb24gMS4wAFYAZQByAHMAaQBvAG4AIAAxAC4AMGZjaWNvbnMAZgBjAGkAYwBvAG4Ac2ZjaWNvbnMAZgBjAGkAYwBvAG4Ac1JlZ3VsYXIAUgBlAGcAdQBsAGEAcmZjaWNvbnMAZgBjAGkAYwBvAG4Ac0ZvbnQgZ2VuZXJhdGVkIGJ5IEljb01vb24uAEYAbwBuAHQAIABnAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAEkAYwBvAE0AbwBvAG4ALgAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="; - -/***/ }), -/* 105 */ -/***/ ((module) => { - -"use strict"; -module.exports = "data:image/gif;base64,R0lGODlhIAAgAPMAAP///wAAAMbGxoSEhLa2tpqamjY2NlZWVtjY2OTk5Ly8vB4eHgQEBAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCgAAACwAAAAAIAAgAAAE5xDISWlhperN52JLhSSdRgwVo1ICQZRUsiwHpTJT4iowNS8vyW2icCF6k8HMMBkCEDskxTBDAZwuAkkqIfxIQyhBQBFvAQSDITM5VDW6XNE4KagNh6Bgwe60smQUB3d4Rz1ZBApnFASDd0hihh12BkE9kjAJVlycXIg7CQIFA6SlnJ87paqbSKiKoqusnbMdmDC2tXQlkUhziYtyWTxIfy6BE8WJt5YJvpJivxNaGmLHT0VnOgSYf0dZXS7APdpB309RnHOG5gDqXGLDaC457D1zZ/V/nmOM82XiHRLYKhKP1oZmADdEAAAh+QQJCgAAACwAAAAAIAAgAAAE6hDISWlZpOrNp1lGNRSdRpDUolIGw5RUYhhHukqFu8DsrEyqnWThGvAmhVlteBvojpTDDBUEIFwMFBRAmBkSgOrBFZogCASwBDEY/CZSg7GSE0gSCjQBMVG023xWBhklAnoEdhQEfyNqMIcKjhRsjEdnezB+A4k8gTwJhFuiW4dokXiloUepBAp5qaKpp6+Ho7aWW54wl7obvEe0kRuoplCGepwSx2jJvqHEmGt6whJpGpfJCHmOoNHKaHx61WiSR92E4lbFoq+B6QDtuetcaBPnW6+O7wDHpIiK9SaVK5GgV543tzjgGcghAgAh+QQJCgAAACwAAAAAIAAgAAAE7hDISSkxpOrN5zFHNWRdhSiVoVLHspRUMoyUakyEe8PTPCATW9A14E0UvuAKMNAZKYUZCiBMuBakSQKG8G2FzUWox2AUtAQFcBKlVQoLgQReZhQlCIJesQXI5B0CBnUMOxMCenoCfTCEWBsJColTMANldx15BGs8B5wlCZ9Po6OJkwmRpnqkqnuSrayqfKmqpLajoiW5HJq7FL1Gr2mMMcKUMIiJgIemy7xZtJsTmsM4xHiKv5KMCXqfyUCJEonXPN2rAOIAmsfB3uPoAK++G+w48edZPK+M6hLJpQg484enXIdQFSS1u6UhksENEQAAIfkECQoAAAAsAAAAACAAIAAABOcQyEmpGKLqzWcZRVUQnZYg1aBSh2GUVEIQ2aQOE+G+cD4ntpWkZQj1JIiZIogDFFyHI0UxQwFugMSOFIPJftfVAEoZLBbcLEFhlQiqGp1Vd140AUklUN3eCA51C1EWMzMCezCBBmkxVIVHBWd3HHl9JQOIJSdSnJ0TDKChCwUJjoWMPaGqDKannasMo6WnM562R5YluZRwur0wpgqZE7NKUm+FNRPIhjBJxKZteWuIBMN4zRMIVIhffcgojwCF117i4nlLnY5ztRLsnOk+aV+oJY7V7m76PdkS4trKcdg0Zc0tTcKkRAAAIfkECQoAAAAsAAAAACAAIAAABO4QyEkpKqjqzScpRaVkXZWQEximw1BSCUEIlDohrft6cpKCk5xid5MNJTaAIkekKGQkWyKHkvhKsR7ARmitkAYDYRIbUQRQjWBwJRzChi9CRlBcY1UN4g0/VNB0AlcvcAYHRyZPdEQFYV8ccwR5HWxEJ02YmRMLnJ1xCYp0Y5idpQuhopmmC2KgojKasUQDk5BNAwwMOh2RtRq5uQuPZKGIJQIGwAwGf6I0JXMpC8C7kXWDBINFMxS4DKMAWVWAGYsAdNqW5uaRxkSKJOZKaU3tPOBZ4DuK2LATgJhkPJMgTwKCdFjyPHEnKxFCDhEAACH5BAkKAAAALAAAAAAgACAAAATzEMhJaVKp6s2nIkolIJ2WkBShpkVRWqqQrhLSEu9MZJKK9y1ZrqYK9WiClmvoUaF8gIQSNeF1Er4MNFn4SRSDARWroAIETg1iVwuHjYB1kYc1mwruwXKC9gmsJXliGxc+XiUCby9ydh1sOSdMkpMTBpaXBzsfhoc5l58Gm5yToAaZhaOUqjkDgCWNHAULCwOLaTmzswadEqggQwgHuQsHIoZCHQMMQgQGubVEcxOPFAcMDAYUA85eWARmfSRQCdcMe0zeP1AAygwLlJtPNAAL19DARdPzBOWSm1brJBi45soRAWQAAkrQIykShQ9wVhHCwCQCACH5BAkKAAAALAAAAAAgACAAAATrEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq+E71SRQeyqUToLA7VxF0JDyIQh/MVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiRMDjI0Fd30/iI2UA5GSS5UDj2l6NoqgOgN4gksEBgYFf0FDqKgHnyZ9OX8HrgYHdHpcHQULXAS2qKpENRg7eAMLC7kTBaixUYFkKAzWAAnLC7FLVxLWDBLKCwaKTULgEwbLA4hJtOkSBNqITT3xEgfLpBtzE/jiuL04RGEBgwWhShRgQExHBAAh+QQJCgAAACwAAAAAIAAgAAAE7xDISWlSqerNpyJKhWRdlSAVoVLCWk6JKlAqAavhO9UkUHsqlE6CwO1cRdCQ8iEIfzFVTzLdRAmZX3I2SfZiCqGk5dTESJeaOAlClzsJsqwiJwiqnFrb2nS9kmIcgEsjQydLiIlHehhpejaIjzh9eomSjZR+ipslWIRLAgMDOR2DOqKogTB9pCUJBagDBXR6XB0EBkIIsaRsGGMMAxoDBgYHTKJiUYEGDAzHC9EACcUGkIgFzgwZ0QsSBcXHiQvOwgDdEwfFs0sDzt4S6BK4xYjkDOzn0unFeBzOBijIm1Dgmg5YFQwsCMjp1oJ8LyIAACH5BAkKAAAALAAAAAAgACAAAATwEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq+E71SRQeyqUToLA7VxF0JDyIQh/MVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiUd6GGl6NoiPOH16iZKNlH6KmyWFOggHhEEvAwwMA0N9GBsEC6amhnVcEwavDAazGwIDaH1ipaYLBUTCGgQDA8NdHz0FpqgTBwsLqAbWAAnIA4FWKdMLGdYGEgraigbT0OITBcg5QwPT4xLrROZL6AuQAPUS7bxLpoWidY0JtxLHKhwwMJBTHgPKdEQAACH5BAkKAAAALAAAAAAgACAAAATrEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq+E71SRQeyqUToLA7VxF0JDyIQh/MVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiUd6GAULDJCRiXo1CpGXDJOUjY+Yip9DhToJA4RBLwMLCwVDfRgbBAaqqoZ1XBMHswsHtxtFaH1iqaoGNgAIxRpbFAgfPQSqpbgGBqUD1wBXeCYp1AYZ19JJOYgH1KwA4UBvQwXUBxPqVD9L3sbp2BNk2xvvFPJd+MFCN6HAAIKgNggY0KtEBAAh+QQJCgAAACwAAAAAIAAgAAAE6BDISWlSqerNpyJKhWRdlSAVoVLCWk6JKlAqAavhO9UkUHsqlE6CwO1cRdCQ8iEIfzFVTzLdRAmZX3I2SfYIDMaAFdTESJeaEDAIMxYFqrOUaNW4E4ObYcCXaiBVEgULe0NJaxxtYksjh2NLkZISgDgJhHthkpU4mW6blRiYmZOlh4JWkDqILwUGBnE6TYEbCgevr0N1gH4At7gHiRpFaLNrrq8HNgAJA70AWxQIH1+vsYMDAzZQPC9VCNkDWUhGkuE5PxJNwiUK4UfLzOlD4WvzAHaoG9nxPi5d+jYUqfAhhykOFwJWiAAAIfkECQoAAAAsAAAAACAAIAAABPAQyElpUqnqzaciSoVkXVUMFaFSwlpOCcMYlErAavhOMnNLNo8KsZsMZItJEIDIFSkLGQoQTNhIsFehRww2CQLKF0tYGKYSg+ygsZIuNqJksKgbfgIGepNo2cIUB3V1B3IvNiBYNQaDSTtfhhx0CwVPI0UJe0+bm4g5VgcGoqOcnjmjqDSdnhgEoamcsZuXO1aWQy8KAwOAuTYYGwi7w5h+Kr0SJ8MFihpNbx+4Erq7BYBuzsdiH1jCAzoSfl0rVirNbRXlBBlLX+BP0XJLAPGzTkAuAOqb0WT5AH7OcdCm5B8TgRwSRKIHQtaLCwg1RAAAOwAAAAAAAAAAAA=="; + $(this).parent().find('.switch-theme-class').removeClass('active'); + $(this).addClass('active'); + }); + $('.switch-header-cs-class').on('click', function () { + var classToSwitch = $(this).attr('data-class'); + var containerElement = '.app-header'; + $('.switch-header-cs-class').removeClass('active'); + $(this).addClass('active'); + $(containerElement).attr('class', 'app-header'); + $(containerElement).addClass('header-shadow ' + classToSwitch); + }); + $('.switch-sidebar-cs-class').on('click', function () { + var classToSwitch = $(this).attr('data-class'); + var containerElement = '.app-sidebar'; + $('.switch-sidebar-cs-class').removeClass('active'); + $(this).addClass('active'); + $(containerElement).attr('class', 'app-sidebar'); + $(containerElement).addClass('sidebar-shadow ' + classToSwitch); + }); +}); +})(); -/***/ }) -/******/ ]); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ if (cachedModule.error !== undefined) throw cachedModule.error; -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ id: moduleId, -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ try { -/******/ var execOptions = { id: moduleId, module: module, factory: __webpack_modules__[moduleId], require: __webpack_require__ }; -/******/ __webpack_require__.i.forEach(function(handler) { handler(execOptions); }); -/******/ module = execOptions.module; -/******/ execOptions.factory.call(module.exports, module, module.exports, execOptions.require); -/******/ } catch(e) { -/******/ module.error = e; -/******/ throw e; -/******/ } -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = __webpack_modules__; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = __webpack_module_cache__; -/******/ -/******/ // expose the module execution interceptor -/******/ __webpack_require__.i = []; -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/compat get default export */ -/******/ (() => { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = (module) => { -/******/ var getter = module && module.__esModule ? -/******/ () => (module['default']) : -/******/ () => (module); -/******/ __webpack_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (exports, definition) => { -/******/ for(var key in definition) { -/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { -/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); -/******/ } -/******/ } -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/get javascript update chunk filename */ -/******/ (() => { -/******/ // This function allow to reference all chunks -/******/ __webpack_require__.hu = (chunkId) => { -/******/ // return url for filenames based on template -/******/ return "" + chunkId + "." + __webpack_require__.h() + ".hot-update.js"; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/get update manifest filename */ -/******/ (() => { -/******/ __webpack_require__.hmrF = () => ("main." + __webpack_require__.h() + ".hot-update.json"); -/******/ })(); -/******/ -/******/ /* webpack/runtime/getFullHash */ -/******/ (() => { -/******/ __webpack_require__.h = () => ("4482c4fd53874700961a") -/******/ })(); -/******/ -/******/ /* webpack/runtime/global */ -/******/ (() => { -/******/ __webpack_require__.g = (function() { -/******/ if (typeof globalThis === 'object') return globalThis; -/******/ try { -/******/ return this || new Function('return this')(); -/******/ } catch (e) { -/******/ if (typeof window === 'object') return window; -/******/ } -/******/ })(); -/******/ })(); -/******/ -/******/ /* webpack/runtime/hasOwnProperty shorthand */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/load script */ -/******/ (() => { -/******/ var inProgress = {}; -/******/ var dataWebpackPrefix = "architectui-html-free:"; -/******/ // loadScript function to load a script via script tag -/******/ __webpack_require__.l = (url, done, key, chunkId) => { -/******/ if(inProgress[url]) { inProgress[url].push(done); return; } -/******/ var script, needAttach; -/******/ if(key !== undefined) { -/******/ var scripts = document.getElementsByTagName("script"); -/******/ for(var i = 0; i < scripts.length; i++) { -/******/ var s = scripts[i]; -/******/ if(s.getAttribute("src") == url || s.getAttribute("data-webpack") == dataWebpackPrefix + key) { script = s; break; } -/******/ } -/******/ } -/******/ if(!script) { -/******/ needAttach = true; -/******/ script = document.createElement('script'); -/******/ -/******/ script.charset = 'utf-8'; -/******/ script.timeout = 120; -/******/ if (__webpack_require__.nc) { -/******/ script.setAttribute("nonce", __webpack_require__.nc); -/******/ } -/******/ script.setAttribute("data-webpack", dataWebpackPrefix + key); -/******/ script.src = url; -/******/ } -/******/ inProgress[url] = [done]; -/******/ var onScriptComplete = (prev, event) => { -/******/ // avoid mem leaks in IE. -/******/ script.onerror = script.onload = null; -/******/ clearTimeout(timeout); -/******/ var doneFns = inProgress[url]; -/******/ delete inProgress[url]; -/******/ script.parentNode && script.parentNode.removeChild(script); -/******/ doneFns && doneFns.forEach((fn) => (fn(event))); -/******/ if(prev) return prev(event); -/******/ } -/******/ ; -/******/ var timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000); -/******/ script.onerror = onScriptComplete.bind(null, script.onerror); -/******/ script.onload = onScriptComplete.bind(null, script.onload); -/******/ needAttach && document.head.appendChild(script); -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/hot module replacement */ -/******/ (() => { -/******/ var currentModuleData = {}; -/******/ var installedModules = __webpack_require__.c; -/******/ -/******/ // module and require creation -/******/ var currentChildModule; -/******/ var currentParents = []; -/******/ -/******/ // status -/******/ var registeredStatusHandlers = []; -/******/ var currentStatus = "idle"; -/******/ -/******/ // while downloading -/******/ var blockingPromises = 0; -/******/ var blockingPromisesWaiting = []; -/******/ -/******/ // The update info -/******/ var currentUpdateApplyHandlers; -/******/ var queuedInvalidatedModules; -/******/ -/******/ // eslint-disable-next-line no-unused-vars -/******/ __webpack_require__.hmrD = currentModuleData; -/******/ -/******/ __webpack_require__.i.push(function (options) { -/******/ var module = options.module; -/******/ var require = createRequire(options.require, options.id); -/******/ module.hot = createModuleHotObject(options.id, module); -/******/ module.parents = currentParents; -/******/ module.children = []; -/******/ currentParents = []; -/******/ options.require = require; -/******/ }); -/******/ -/******/ __webpack_require__.hmrC = {}; -/******/ __webpack_require__.hmrI = {}; -/******/ -/******/ function createRequire(require, moduleId) { -/******/ var me = installedModules[moduleId]; -/******/ if (!me) return require; -/******/ var fn = function (request) { -/******/ if (me.hot.active) { -/******/ if (installedModules[request]) { -/******/ var parents = installedModules[request].parents; -/******/ if (parents.indexOf(moduleId) === -1) { -/******/ parents.push(moduleId); -/******/ } -/******/ } else { -/******/ currentParents = [moduleId]; -/******/ currentChildModule = request; -/******/ } -/******/ if (me.children.indexOf(request) === -1) { -/******/ me.children.push(request); -/******/ } -/******/ } else { -/******/ console.warn( -/******/ "[HMR] unexpected require(" + -/******/ request + -/******/ ") from disposed module " + -/******/ moduleId -/******/ ); -/******/ currentParents = []; -/******/ } -/******/ return require(request); -/******/ }; -/******/ var createPropertyDescriptor = function (name) { -/******/ return { -/******/ configurable: true, -/******/ enumerable: true, -/******/ get: function () { -/******/ return require[name]; -/******/ }, -/******/ set: function (value) { -/******/ require[name] = value; -/******/ } -/******/ }; -/******/ }; -/******/ for (var name in require) { -/******/ if (Object.prototype.hasOwnProperty.call(require, name) && name !== "e") { -/******/ Object.defineProperty(fn, name, createPropertyDescriptor(name)); -/******/ } -/******/ } -/******/ fn.e = function (chunkId) { -/******/ return trackBlockingPromise(require.e(chunkId)); -/******/ }; -/******/ return fn; -/******/ } -/******/ -/******/ function createModuleHotObject(moduleId, me) { -/******/ var _main = currentChildModule !== moduleId; -/******/ var hot = { -/******/ // private stuff -/******/ _acceptedDependencies: {}, -/******/ _acceptedErrorHandlers: {}, -/******/ _declinedDependencies: {}, -/******/ _selfAccepted: false, -/******/ _selfDeclined: false, -/******/ _selfInvalidated: false, -/******/ _disposeHandlers: [], -/******/ _main: _main, -/******/ _requireSelf: function () { -/******/ currentParents = me.parents.slice(); -/******/ currentChildModule = _main ? undefined : moduleId; -/******/ __webpack_require__(moduleId); -/******/ }, -/******/ -/******/ // Module API -/******/ active: true, -/******/ accept: function (dep, callback, errorHandler) { -/******/ if (dep === undefined) hot._selfAccepted = true; -/******/ else if (typeof dep === "function") hot._selfAccepted = dep; -/******/ else if (typeof dep === "object" && dep !== null) { -/******/ for (var i = 0; i < dep.length; i++) { -/******/ hot._acceptedDependencies[dep[i]] = callback || function () {}; -/******/ hot._acceptedErrorHandlers[dep[i]] = errorHandler; -/******/ } -/******/ } else { -/******/ hot._acceptedDependencies[dep] = callback || function () {}; -/******/ hot._acceptedErrorHandlers[dep] = errorHandler; -/******/ } -/******/ }, -/******/ decline: function (dep) { -/******/ if (dep === undefined) hot._selfDeclined = true; -/******/ else if (typeof dep === "object" && dep !== null) -/******/ for (var i = 0; i < dep.length; i++) -/******/ hot._declinedDependencies[dep[i]] = true; -/******/ else hot._declinedDependencies[dep] = true; -/******/ }, -/******/ dispose: function (callback) { -/******/ hot._disposeHandlers.push(callback); -/******/ }, -/******/ addDisposeHandler: function (callback) { -/******/ hot._disposeHandlers.push(callback); -/******/ }, -/******/ removeDisposeHandler: function (callback) { -/******/ var idx = hot._disposeHandlers.indexOf(callback); -/******/ if (idx >= 0) hot._disposeHandlers.splice(idx, 1); -/******/ }, -/******/ invalidate: function () { -/******/ this._selfInvalidated = true; -/******/ switch (currentStatus) { -/******/ case "idle": -/******/ currentUpdateApplyHandlers = []; -/******/ Object.keys(__webpack_require__.hmrI).forEach(function (key) { -/******/ __webpack_require__.hmrI[key]( -/******/ moduleId, -/******/ currentUpdateApplyHandlers -/******/ ); -/******/ }); -/******/ setStatus("ready"); -/******/ break; -/******/ case "ready": -/******/ Object.keys(__webpack_require__.hmrI).forEach(function (key) { -/******/ __webpack_require__.hmrI[key]( -/******/ moduleId, -/******/ currentUpdateApplyHandlers -/******/ ); -/******/ }); -/******/ break; -/******/ case "prepare": -/******/ case "check": -/******/ case "dispose": -/******/ case "apply": -/******/ (queuedInvalidatedModules = queuedInvalidatedModules || []).push( -/******/ moduleId -/******/ ); -/******/ break; -/******/ default: -/******/ // ignore requests in error states -/******/ break; -/******/ } -/******/ }, -/******/ -/******/ // Management API -/******/ check: hotCheck, -/******/ apply: hotApply, -/******/ status: function (l) { -/******/ if (!l) return currentStatus; -/******/ registeredStatusHandlers.push(l); -/******/ }, -/******/ addStatusHandler: function (l) { -/******/ registeredStatusHandlers.push(l); -/******/ }, -/******/ removeStatusHandler: function (l) { -/******/ var idx = registeredStatusHandlers.indexOf(l); -/******/ if (idx >= 0) registeredStatusHandlers.splice(idx, 1); -/******/ }, -/******/ -/******/ //inherit from previous dispose call -/******/ data: currentModuleData[moduleId] -/******/ }; -/******/ currentChildModule = undefined; -/******/ return hot; -/******/ } -/******/ -/******/ function setStatus(newStatus) { -/******/ currentStatus = newStatus; -/******/ var results = []; -/******/ -/******/ for (var i = 0; i < registeredStatusHandlers.length; i++) -/******/ results[i] = registeredStatusHandlers[i].call(null, newStatus); -/******/ -/******/ return Promise.all(results); -/******/ } -/******/ -/******/ function unblock() { -/******/ if (--blockingPromises === 0) { -/******/ setStatus("ready").then(function () { -/******/ if (blockingPromises === 0) { -/******/ var list = blockingPromisesWaiting; -/******/ blockingPromisesWaiting = []; -/******/ for (var i = 0; i < list.length; i++) { -/******/ list[i](); -/******/ } -/******/ } -/******/ }); -/******/ } -/******/ } -/******/ -/******/ function trackBlockingPromise(promise) { -/******/ switch (currentStatus) { -/******/ case "ready": -/******/ setStatus("prepare"); -/******/ /* fallthrough */ -/******/ case "prepare": -/******/ blockingPromises++; -/******/ promise.then(unblock, unblock); -/******/ return promise; -/******/ default: -/******/ return promise; -/******/ } -/******/ } -/******/ -/******/ function waitForBlockingPromises(fn) { -/******/ if (blockingPromises === 0) return fn(); -/******/ return new Promise(function (resolve) { -/******/ blockingPromisesWaiting.push(function () { -/******/ resolve(fn()); -/******/ }); -/******/ }); -/******/ } -/******/ -/******/ function hotCheck(applyOnUpdate) { -/******/ if (currentStatus !== "idle") { -/******/ throw new Error("check() is only allowed in idle status"); -/******/ } -/******/ return setStatus("check") -/******/ .then(__webpack_require__.hmrM) -/******/ .then(function (update) { -/******/ if (!update) { -/******/ return setStatus(applyInvalidatedModules() ? "ready" : "idle").then( -/******/ function () { -/******/ return null; -/******/ } -/******/ ); -/******/ } -/******/ -/******/ return setStatus("prepare").then(function () { -/******/ var updatedModules = []; -/******/ currentUpdateApplyHandlers = []; -/******/ -/******/ return Promise.all( -/******/ Object.keys(__webpack_require__.hmrC).reduce(function ( -/******/ promises, -/******/ key -/******/ ) { -/******/ __webpack_require__.hmrC[key]( -/******/ update.c, -/******/ update.r, -/******/ update.m, -/******/ promises, -/******/ currentUpdateApplyHandlers, -/******/ updatedModules -/******/ ); -/******/ return promises; -/******/ }, -/******/ []) -/******/ ).then(function () { -/******/ return waitForBlockingPromises(function () { -/******/ if (applyOnUpdate) { -/******/ return internalApply(applyOnUpdate); -/******/ } else { -/******/ return setStatus("ready").then(function () { -/******/ return updatedModules; -/******/ }); -/******/ } -/******/ }); -/******/ }); -/******/ }); -/******/ }); -/******/ } -/******/ -/******/ function hotApply(options) { -/******/ if (currentStatus !== "ready") { -/******/ return Promise.resolve().then(function () { -/******/ throw new Error( -/******/ "apply() is only allowed in ready status (state: " + -/******/ currentStatus + -/******/ ")" -/******/ ); -/******/ }); -/******/ } -/******/ return internalApply(options); -/******/ } -/******/ -/******/ function internalApply(options) { -/******/ options = options || {}; -/******/ -/******/ applyInvalidatedModules(); -/******/ -/******/ var results = currentUpdateApplyHandlers.map(function (handler) { -/******/ return handler(options); -/******/ }); -/******/ currentUpdateApplyHandlers = undefined; -/******/ -/******/ var errors = results -/******/ .map(function (r) { -/******/ return r.error; -/******/ }) -/******/ .filter(Boolean); -/******/ -/******/ if (errors.length > 0) { -/******/ return setStatus("abort").then(function () { -/******/ throw errors[0]; -/******/ }); -/******/ } -/******/ -/******/ // Now in "dispose" phase -/******/ var disposePromise = setStatus("dispose"); -/******/ -/******/ results.forEach(function (result) { -/******/ if (result.dispose) result.dispose(); -/******/ }); -/******/ -/******/ // Now in "apply" phase -/******/ var applyPromise = setStatus("apply"); -/******/ -/******/ var error; -/******/ var reportError = function (err) { -/******/ if (!error) error = err; -/******/ }; -/******/ -/******/ var outdatedModules = []; -/******/ results.forEach(function (result) { -/******/ if (result.apply) { -/******/ var modules = result.apply(reportError); -/******/ if (modules) { -/******/ for (var i = 0; i < modules.length; i++) { -/******/ outdatedModules.push(modules[i]); -/******/ } -/******/ } -/******/ } -/******/ }); -/******/ -/******/ return Promise.all([disposePromise, applyPromise]).then(function () { -/******/ // handle errors in accept handlers and self accepted module load -/******/ if (error) { -/******/ return setStatus("fail").then(function () { -/******/ throw error; -/******/ }); -/******/ } -/******/ -/******/ if (queuedInvalidatedModules) { -/******/ return internalApply(options).then(function (list) { -/******/ outdatedModules.forEach(function (moduleId) { -/******/ if (list.indexOf(moduleId) < 0) list.push(moduleId); -/******/ }); -/******/ return list; -/******/ }); -/******/ } -/******/ -/******/ return setStatus("idle").then(function () { -/******/ return outdatedModules; -/******/ }); -/******/ }); -/******/ } -/******/ -/******/ function applyInvalidatedModules() { -/******/ if (queuedInvalidatedModules) { -/******/ if (!currentUpdateApplyHandlers) currentUpdateApplyHandlers = []; -/******/ Object.keys(__webpack_require__.hmrI).forEach(function (key) { -/******/ queuedInvalidatedModules.forEach(function (moduleId) { -/******/ __webpack_require__.hmrI[key]( -/******/ moduleId, -/******/ currentUpdateApplyHandlers -/******/ ); -/******/ }); -/******/ }); -/******/ queuedInvalidatedModules = undefined; -/******/ return true; -/******/ } -/******/ } -/******/ })(); -/******/ -/******/ /* webpack/runtime/publicPath */ -/******/ (() => { -/******/ var scriptUrl; -/******/ if (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + ""; -/******/ var document = __webpack_require__.g.document; -/******/ if (!scriptUrl && document) { -/******/ if (document.currentScript) -/******/ scriptUrl = document.currentScript.src -/******/ if (!scriptUrl) { -/******/ var scripts = document.getElementsByTagName("script"); -/******/ if(scripts.length) scriptUrl = scripts[scripts.length - 1].src -/******/ } -/******/ } -/******/ // When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration -/******/ // or pass an empty string ("") and set the __webpack_public_path__ variable from your code to use your own logic. -/******/ if (!scriptUrl) throw new Error("Automatic publicPath is not supported in this browser"); -/******/ scriptUrl = scriptUrl.replace(/#.*$/, "").replace(/\?.*$/, "").replace(/\/[^\/]+$/, "/"); -/******/ __webpack_require__.p = scriptUrl + "../../"; -/******/ })(); -/******/ -/******/ /* webpack/runtime/jsonp chunk loading */ -/******/ (() => { -/******/ __webpack_require__.b = document.baseURI || self.location.href; -/******/ -/******/ // object to store loaded and loading chunks -/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched -/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded -/******/ var installedChunks = __webpack_require__.hmrS_jsonp = __webpack_require__.hmrS_jsonp || { -/******/ 3: 0 -/******/ }; -/******/ -/******/ // no chunk on demand loading -/******/ -/******/ // no prefetching -/******/ -/******/ // no preloaded -/******/ -/******/ var currentUpdatedModulesList; -/******/ var waitingUpdateResolves = {}; -/******/ function loadUpdateChunk(chunkId, updatedModulesList) { -/******/ currentUpdatedModulesList = updatedModulesList; -/******/ return new Promise((resolve, reject) => { -/******/ waitingUpdateResolves[chunkId] = resolve; -/******/ // start update chunk loading -/******/ var url = __webpack_require__.p + __webpack_require__.hu(chunkId); -/******/ // create error before stack unwound to get useful stacktrace later -/******/ var error = new Error(); -/******/ var loadingEnded = (event) => { -/******/ if(waitingUpdateResolves[chunkId]) { -/******/ waitingUpdateResolves[chunkId] = undefined -/******/ var errorType = event && (event.type === 'load' ? 'missing' : event.type); -/******/ var realSrc = event && event.target && event.target.src; -/******/ error.message = 'Loading hot update chunk ' + chunkId + ' failed.\n(' + errorType + ': ' + realSrc + ')'; -/******/ error.name = 'ChunkLoadError'; -/******/ error.type = errorType; -/******/ error.request = realSrc; -/******/ reject(error); -/******/ } -/******/ }; -/******/ __webpack_require__.l(url, loadingEnded); -/******/ }); -/******/ } -/******/ -/******/ self["webpackHotUpdatearchitectui_html_free"] = (chunkId, moreModules, runtime) => { -/******/ for(var moduleId in moreModules) { -/******/ if(__webpack_require__.o(moreModules, moduleId)) { -/******/ currentUpdate[moduleId] = moreModules[moduleId]; -/******/ if(currentUpdatedModulesList) currentUpdatedModulesList.push(moduleId); -/******/ } -/******/ } -/******/ if(runtime) currentUpdateRuntime.push(runtime); -/******/ if(waitingUpdateResolves[chunkId]) { -/******/ waitingUpdateResolves[chunkId](); -/******/ waitingUpdateResolves[chunkId] = undefined; -/******/ } -/******/ }; -/******/ -/******/ var currentUpdateChunks; -/******/ var currentUpdate; -/******/ var currentUpdateRemovedChunks; -/******/ var currentUpdateRuntime; -/******/ function applyHandler(options) { -/******/ if (__webpack_require__.f) delete __webpack_require__.f.jsonpHmr; -/******/ currentUpdateChunks = undefined; -/******/ function getAffectedModuleEffects(updateModuleId) { -/******/ var outdatedModules = [updateModuleId]; -/******/ var outdatedDependencies = {}; -/******/ -/******/ var queue = outdatedModules.map(function (id) { -/******/ return { -/******/ chain: [id], -/******/ id: id -/******/ }; -/******/ }); -/******/ while (queue.length > 0) { -/******/ var queueItem = queue.pop(); -/******/ var moduleId = queueItem.id; -/******/ var chain = queueItem.chain; -/******/ var module = __webpack_require__.c[moduleId]; -/******/ if ( -/******/ !module || -/******/ (module.hot._selfAccepted && !module.hot._selfInvalidated) -/******/ ) -/******/ continue; -/******/ if (module.hot._selfDeclined) { -/******/ return { -/******/ type: "self-declined", -/******/ chain: chain, -/******/ moduleId: moduleId -/******/ }; -/******/ } -/******/ if (module.hot._main) { -/******/ return { -/******/ type: "unaccepted", -/******/ chain: chain, -/******/ moduleId: moduleId -/******/ }; -/******/ } -/******/ for (var i = 0; i < module.parents.length; i++) { -/******/ var parentId = module.parents[i]; -/******/ var parent = __webpack_require__.c[parentId]; -/******/ if (!parent) continue; -/******/ if (parent.hot._declinedDependencies[moduleId]) { -/******/ return { -/******/ type: "declined", -/******/ chain: chain.concat([parentId]), -/******/ moduleId: moduleId, -/******/ parentId: parentId -/******/ }; -/******/ } -/******/ if (outdatedModules.indexOf(parentId) !== -1) continue; -/******/ if (parent.hot._acceptedDependencies[moduleId]) { -/******/ if (!outdatedDependencies[parentId]) -/******/ outdatedDependencies[parentId] = []; -/******/ addAllToSet(outdatedDependencies[parentId], [moduleId]); -/******/ continue; -/******/ } -/******/ delete outdatedDependencies[parentId]; -/******/ outdatedModules.push(parentId); -/******/ queue.push({ -/******/ chain: chain.concat([parentId]), -/******/ id: parentId -/******/ }); -/******/ } -/******/ } -/******/ -/******/ return { -/******/ type: "accepted", -/******/ moduleId: updateModuleId, -/******/ outdatedModules: outdatedModules, -/******/ outdatedDependencies: outdatedDependencies -/******/ }; -/******/ } -/******/ -/******/ function addAllToSet(a, b) { -/******/ for (var i = 0; i < b.length; i++) { -/******/ var item = b[i]; -/******/ if (a.indexOf(item) === -1) a.push(item); -/******/ } -/******/ } -/******/ -/******/ // at begin all updates modules are outdated -/******/ // the "outdated" status can propagate to parents if they don't accept the children -/******/ var outdatedDependencies = {}; -/******/ var outdatedModules = []; -/******/ var appliedUpdate = {}; -/******/ -/******/ var warnUnexpectedRequire = function warnUnexpectedRequire(module) { -/******/ console.warn( -/******/ "[HMR] unexpected require(" + module.id + ") to disposed module" -/******/ ); -/******/ }; -/******/ -/******/ for (var moduleId in currentUpdate) { -/******/ if (__webpack_require__.o(currentUpdate, moduleId)) { -/******/ var newModuleFactory = currentUpdate[moduleId]; -/******/ /** @type {TODO} */ -/******/ var result; -/******/ if (newModuleFactory) { -/******/ result = getAffectedModuleEffects(moduleId); -/******/ } else { -/******/ result = { -/******/ type: "disposed", -/******/ moduleId: moduleId -/******/ }; -/******/ } -/******/ /** @type {Error|false} */ -/******/ var abortError = false; -/******/ var doApply = false; -/******/ var doDispose = false; -/******/ var chainInfo = ""; -/******/ if (result.chain) { -/******/ chainInfo = "\nUpdate propagation: " + result.chain.join(" -> "); -/******/ } -/******/ switch (result.type) { -/******/ case "self-declined": -/******/ if (options.onDeclined) options.onDeclined(result); -/******/ if (!options.ignoreDeclined) -/******/ abortError = new Error( -/******/ "Aborted because of self decline: " + -/******/ result.moduleId + -/******/ chainInfo -/******/ ); -/******/ break; -/******/ case "declined": -/******/ if (options.onDeclined) options.onDeclined(result); -/******/ if (!options.ignoreDeclined) -/******/ abortError = new Error( -/******/ "Aborted because of declined dependency: " + -/******/ result.moduleId + -/******/ " in " + -/******/ result.parentId + -/******/ chainInfo -/******/ ); -/******/ break; -/******/ case "unaccepted": -/******/ if (options.onUnaccepted) options.onUnaccepted(result); -/******/ if (!options.ignoreUnaccepted) -/******/ abortError = new Error( -/******/ "Aborted because " + moduleId + " is not accepted" + chainInfo -/******/ ); -/******/ break; -/******/ case "accepted": -/******/ if (options.onAccepted) options.onAccepted(result); -/******/ doApply = true; -/******/ break; -/******/ case "disposed": -/******/ if (options.onDisposed) options.onDisposed(result); -/******/ doDispose = true; -/******/ break; -/******/ default: -/******/ throw new Error("Unexception type " + result.type); -/******/ } -/******/ if (abortError) { -/******/ return { -/******/ error: abortError -/******/ }; -/******/ } -/******/ if (doApply) { -/******/ appliedUpdate[moduleId] = newModuleFactory; -/******/ addAllToSet(outdatedModules, result.outdatedModules); -/******/ for (moduleId in result.outdatedDependencies) { -/******/ if (__webpack_require__.o(result.outdatedDependencies, moduleId)) { -/******/ if (!outdatedDependencies[moduleId]) -/******/ outdatedDependencies[moduleId] = []; -/******/ addAllToSet( -/******/ outdatedDependencies[moduleId], -/******/ result.outdatedDependencies[moduleId] -/******/ ); -/******/ } -/******/ } -/******/ } -/******/ if (doDispose) { -/******/ addAllToSet(outdatedModules, [result.moduleId]); -/******/ appliedUpdate[moduleId] = warnUnexpectedRequire; -/******/ } -/******/ } -/******/ } -/******/ currentUpdate = undefined; -/******/ -/******/ // Store self accepted outdated modules to require them later by the module system -/******/ var outdatedSelfAcceptedModules = []; -/******/ for (var j = 0; j < outdatedModules.length; j++) { -/******/ var outdatedModuleId = outdatedModules[j]; -/******/ var module = __webpack_require__.c[outdatedModuleId]; -/******/ if ( -/******/ module && -/******/ (module.hot._selfAccepted || module.hot._main) && -/******/ // removed self-accepted modules should not be required -/******/ appliedUpdate[outdatedModuleId] !== warnUnexpectedRequire && -/******/ // when called invalidate self-accepting is not possible -/******/ !module.hot._selfInvalidated -/******/ ) { -/******/ outdatedSelfAcceptedModules.push({ -/******/ module: outdatedModuleId, -/******/ require: module.hot._requireSelf, -/******/ errorHandler: module.hot._selfAccepted -/******/ }); -/******/ } -/******/ } -/******/ -/******/ var moduleOutdatedDependencies; -/******/ -/******/ return { -/******/ dispose: function () { -/******/ currentUpdateRemovedChunks.forEach(function (chunkId) { -/******/ delete installedChunks[chunkId]; -/******/ }); -/******/ currentUpdateRemovedChunks = undefined; -/******/ -/******/ var idx; -/******/ var queue = outdatedModules.slice(); -/******/ while (queue.length > 0) { -/******/ var moduleId = queue.pop(); -/******/ var module = __webpack_require__.c[moduleId]; -/******/ if (!module) continue; -/******/ -/******/ var data = {}; -/******/ -/******/ // Call dispose handlers -/******/ var disposeHandlers = module.hot._disposeHandlers; -/******/ for (j = 0; j < disposeHandlers.length; j++) { -/******/ disposeHandlers[j].call(null, data); -/******/ } -/******/ __webpack_require__.hmrD[moduleId] = data; -/******/ -/******/ // disable module (this disables requires from this module) -/******/ module.hot.active = false; -/******/ -/******/ // remove module from cache -/******/ delete __webpack_require__.c[moduleId]; -/******/ -/******/ // when disposing there is no need to call dispose handler -/******/ delete outdatedDependencies[moduleId]; -/******/ -/******/ // remove "parents" references from all children -/******/ for (j = 0; j < module.children.length; j++) { -/******/ var child = __webpack_require__.c[module.children[j]]; -/******/ if (!child) continue; -/******/ idx = child.parents.indexOf(moduleId); -/******/ if (idx >= 0) { -/******/ child.parents.splice(idx, 1); -/******/ } -/******/ } -/******/ } -/******/ -/******/ // remove outdated dependency from module children -/******/ var dependency; -/******/ for (var outdatedModuleId in outdatedDependencies) { -/******/ if (__webpack_require__.o(outdatedDependencies, outdatedModuleId)) { -/******/ module = __webpack_require__.c[outdatedModuleId]; -/******/ if (module) { -/******/ moduleOutdatedDependencies = -/******/ outdatedDependencies[outdatedModuleId]; -/******/ for (j = 0; j < moduleOutdatedDependencies.length; j++) { -/******/ dependency = moduleOutdatedDependencies[j]; -/******/ idx = module.children.indexOf(dependency); -/******/ if (idx >= 0) module.children.splice(idx, 1); -/******/ } -/******/ } -/******/ } -/******/ } -/******/ }, -/******/ apply: function (reportError) { -/******/ // insert new code -/******/ for (var updateModuleId in appliedUpdate) { -/******/ if (__webpack_require__.o(appliedUpdate, updateModuleId)) { -/******/ __webpack_require__.m[updateModuleId] = appliedUpdate[updateModuleId]; -/******/ } -/******/ } -/******/ -/******/ // run new runtime modules -/******/ for (var i = 0; i < currentUpdateRuntime.length; i++) { -/******/ currentUpdateRuntime[i](__webpack_require__); -/******/ } -/******/ -/******/ // call accept handlers -/******/ for (var outdatedModuleId in outdatedDependencies) { -/******/ if (__webpack_require__.o(outdatedDependencies, outdatedModuleId)) { -/******/ var module = __webpack_require__.c[outdatedModuleId]; -/******/ if (module) { -/******/ moduleOutdatedDependencies = -/******/ outdatedDependencies[outdatedModuleId]; -/******/ var callbacks = []; -/******/ var errorHandlers = []; -/******/ var dependenciesForCallbacks = []; -/******/ for (var j = 0; j < moduleOutdatedDependencies.length; j++) { -/******/ var dependency = moduleOutdatedDependencies[j]; -/******/ var acceptCallback = -/******/ module.hot._acceptedDependencies[dependency]; -/******/ var errorHandler = -/******/ module.hot._acceptedErrorHandlers[dependency]; -/******/ if (acceptCallback) { -/******/ if (callbacks.indexOf(acceptCallback) !== -1) continue; -/******/ callbacks.push(acceptCallback); -/******/ errorHandlers.push(errorHandler); -/******/ dependenciesForCallbacks.push(dependency); -/******/ } -/******/ } -/******/ for (var k = 0; k < callbacks.length; k++) { -/******/ try { -/******/ callbacks[k].call(null, moduleOutdatedDependencies); -/******/ } catch (err) { -/******/ if (typeof errorHandlers[k] === "function") { -/******/ try { -/******/ errorHandlers[k](err, { -/******/ moduleId: outdatedModuleId, -/******/ dependencyId: dependenciesForCallbacks[k] -/******/ }); -/******/ } catch (err2) { -/******/ if (options.onErrored) { -/******/ options.onErrored({ -/******/ type: "accept-error-handler-errored", -/******/ moduleId: outdatedModuleId, -/******/ dependencyId: dependenciesForCallbacks[k], -/******/ error: err2, -/******/ originalError: err -/******/ }); -/******/ } -/******/ if (!options.ignoreErrored) { -/******/ reportError(err2); -/******/ reportError(err); -/******/ } -/******/ } -/******/ } else { -/******/ if (options.onErrored) { -/******/ options.onErrored({ -/******/ type: "accept-errored", -/******/ moduleId: outdatedModuleId, -/******/ dependencyId: dependenciesForCallbacks[k], -/******/ error: err -/******/ }); -/******/ } -/******/ if (!options.ignoreErrored) { -/******/ reportError(err); -/******/ } -/******/ } -/******/ } -/******/ } -/******/ } -/******/ } -/******/ } -/******/ -/******/ // Load self accepted modules -/******/ for (var o = 0; o < outdatedSelfAcceptedModules.length; o++) { -/******/ var item = outdatedSelfAcceptedModules[o]; -/******/ var moduleId = item.module; -/******/ try { -/******/ item.require(moduleId); -/******/ } catch (err) { -/******/ if (typeof item.errorHandler === "function") { -/******/ try { -/******/ item.errorHandler(err, { -/******/ moduleId: moduleId, -/******/ module: __webpack_require__.c[moduleId] -/******/ }); -/******/ } catch (err2) { -/******/ if (options.onErrored) { -/******/ options.onErrored({ -/******/ type: "self-accept-error-handler-errored", -/******/ moduleId: moduleId, -/******/ error: err2, -/******/ originalError: err -/******/ }); -/******/ } -/******/ if (!options.ignoreErrored) { -/******/ reportError(err2); -/******/ reportError(err); -/******/ } -/******/ } -/******/ } else { -/******/ if (options.onErrored) { -/******/ options.onErrored({ -/******/ type: "self-accept-errored", -/******/ moduleId: moduleId, -/******/ error: err -/******/ }); -/******/ } -/******/ if (!options.ignoreErrored) { -/******/ reportError(err); -/******/ } -/******/ } -/******/ } -/******/ } -/******/ -/******/ return outdatedModules; -/******/ } -/******/ }; -/******/ } -/******/ __webpack_require__.hmrI.jsonp = function (moduleId, applyHandlers) { -/******/ if (!currentUpdate) { -/******/ currentUpdate = {}; -/******/ currentUpdateRuntime = []; -/******/ currentUpdateRemovedChunks = []; -/******/ applyHandlers.push(applyHandler); -/******/ } -/******/ if (!__webpack_require__.o(currentUpdate, moduleId)) { -/******/ currentUpdate[moduleId] = __webpack_require__.m[moduleId]; -/******/ } -/******/ }; -/******/ __webpack_require__.hmrC.jsonp = function ( -/******/ chunkIds, -/******/ removedChunks, -/******/ removedModules, -/******/ promises, -/******/ applyHandlers, -/******/ updatedModulesList -/******/ ) { -/******/ applyHandlers.push(applyHandler); -/******/ currentUpdateChunks = {}; -/******/ currentUpdateRemovedChunks = removedChunks; -/******/ currentUpdate = removedModules.reduce(function (obj, key) { -/******/ obj[key] = false; -/******/ return obj; -/******/ }, {}); -/******/ currentUpdateRuntime = []; -/******/ chunkIds.forEach(function (chunkId) { -/******/ if ( -/******/ __webpack_require__.o(installedChunks, chunkId) && -/******/ installedChunks[chunkId] !== undefined -/******/ ) { -/******/ promises.push(loadUpdateChunk(chunkId, updatedModulesList)); -/******/ currentUpdateChunks[chunkId] = true; -/******/ } else { -/******/ currentUpdateChunks[chunkId] = false; -/******/ } -/******/ }); -/******/ if (__webpack_require__.f) { -/******/ __webpack_require__.f.jsonpHmr = function (chunkId, promises) { -/******/ if ( -/******/ currentUpdateChunks && -/******/ __webpack_require__.o(currentUpdateChunks, chunkId) && -/******/ !currentUpdateChunks[chunkId] -/******/ ) { -/******/ promises.push(loadUpdateChunk(chunkId)); -/******/ currentUpdateChunks[chunkId] = true; -/******/ } -/******/ }; -/******/ } -/******/ }; -/******/ -/******/ __webpack_require__.hmrM = () => { -/******/ if (typeof fetch === "undefined") throw new Error("No browser support: need fetch API"); -/******/ return fetch(__webpack_require__.p + __webpack_require__.hmrF()).then((response) => { -/******/ if(response.status === 404) return; // no update available -/******/ if(!response.ok) throw new Error("Failed to fetch update manifest " + response.statusText); -/******/ return response.json(); -/******/ }); -/******/ }; -/******/ -/******/ // no on chunks loaded -/******/ -/******/ // no jsonp function -/******/ })(); -/******/ -/******/ /* webpack/runtime/nonce */ -/******/ (() => { -/******/ __webpack_require__.nc = undefined; -/******/ })(); -/******/ -/************************************************************************/ -/******/ -/******/ // module cache are used so entry inlining is disabled -/******/ // startup -/******/ // Load entry module and return exports -/******/ var __webpack_exports__ = __webpack_require__(0); -/******/ /******/ })() ; \ No newline at end of file diff --git a/webservice/static/main.css b/webservice/static/main.css new file mode 100644 index 0000000..efbd2fa --- /dev/null +++ b/webservice/static/main.css @@ -0,0 +1,28212 @@ +@charset "UTF-8"; +/*! + ========================================================= + * ArchitectUI HTML Theme Dashboard - v2.0.0 + ========================================================= + * Product Page: https://dashboardpack.com + * Copyright 2021 DashboardPack (https://dashboardpack.com) + * Licensed under MIT (https://github.com/DashboardPack/architectui-html-theme-free/blob/master/LICENSE) + ========================================================= + * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + */ +.border-primary { + border-color: #3f6ad8; +} + +.border-secondary { + border-color: #6c757d; +} + +.border-success { + border-color: #3ac47d; +} + +.border-info { + border-color: #16aaff; +} + +.border-warning { + border-color: #f7b924; +} + +.border-danger { + border-color: #d92550; +} + +.border-light { + border-color: #eeeeee; +} + +.border-dark { + border-color: #343a40; +} + +.border-focus { + border-color: #444054; +} + +.border-alternate { + border-color: #794c8a; +} + +:root { + --bs-blue: #78C3FB; + --bs-indigo: #444054; + --bs-purple: #794c8a; + --bs-pink: #f65ca2; + --bs-red: #d92550; + --bs-orange: #fd7e14; + --bs-yellow: #f7b924; + --bs-green: #3ac47d; + --bs-teal: #16E0BD; + --bs-cyan: #16aaff; + --bs-white: #fff; + --bs-gray: #6c757d; + --bs-gray-dark: #343a40; + --bs-primary: #3f6ad8; + --bs-secondary: #6c757d; + --bs-success: #3ac47d; + --bs-info: #16aaff; + --bs-warning: #f7b924; + --bs-danger: #d92550; + --bs-light: #eeeeee; + --bs-dark: #343a40; + --bs-focus: #444054; + --bs-alternate: #794c8a; + --bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + --bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; + --bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0)); +} + +*, +*::before, +*::after { + box-sizing: border-box; +} + +@media (prefers-reduced-motion: no-preference) { + :root { + scroll-behavior: smooth; + } +} + +body { + margin: 0; + font-family: var(--bs-font-sans-serif); + font-size: 0.88rem; + font-weight: 400; + line-height: 1.5; + color: #495057; + background-color: #fff; + -webkit-text-size-adjust: 100%; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} + +hr { + margin: 1rem 0; + color: inherit; + background-color: currentColor; + border: 0; + opacity: 0.25; +} + +hr:not([size]) { + height: 1px; +} + +h6, .h6, h5, .h5, h4, .h4, h3, .h3, h2, .h2, h1, .h1 { + margin-top: 0; + margin-bottom: 0.5rem; + font-weight: 400; + line-height: 1.2; +} + +h1, .h1 { + font-size: calc(1.345rem + 1.14vw); +} +@media (min-width: 1200px) { + h1, .h1 { + font-size: 2.2rem; + } +} + +h2, .h2 { + font-size: calc(1.301rem + 0.612vw); +} +@media (min-width: 1200px) { + h2, .h2 { + font-size: 1.76rem; + } +} + +h3, .h3 { + font-size: calc(1.279rem + 0.348vw); +} +@media (min-width: 1200px) { + h3, .h3 { + font-size: 1.54rem; + } +} + +h4, .h4 { + font-size: calc(1.257rem + 0.084vw); +} +@media (min-width: 1200px) { + h4, .h4 { + font-size: 1.32rem; + } +} + +h5, .h5 { + font-size: 1.1rem; +} + +h6, .h6 { + font-size: 0.88rem; +} + +p { + margin-top: 0; + margin-bottom: 1rem; +} + +abbr[title], +abbr[data-bs-original-title] { + text-decoration: underline dotted; + cursor: help; + text-decoration-skip-ink: none; +} + +address { + margin-bottom: 1rem; + font-style: normal; + line-height: inherit; +} + +ol, +ul { + padding-left: 2rem; +} + +ol, +ul, +dl { + margin-top: 0; + margin-bottom: 1rem; +} + +ol ol, +ul ul, +ol ul, +ul ol { + margin-bottom: 0; +} + +dt { + font-weight: 700; +} + +dd { + margin-bottom: 0.5rem; + margin-left: 0; +} + +blockquote { + margin: 0 0 1rem; +} + +b, +strong { + font-weight: bolder; +} + +small, .small { + font-size: 0.875em; +} + +mark, .mark { + padding: 0.2em; + background-color: #fcf8e3; +} + +sub, +sup { + position: relative; + font-size: 0.75em; + line-height: 0; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.5em; +} + +a { + color: #3f6ad8; + text-decoration: underline; +} +a:hover { + color: #3255ad; +} + +a:not([href]):not([class]), a:not([href]):not([class]):hover { + color: inherit; + text-decoration: none; +} + +pre, +code, +kbd, +samp { + font-family: var(--bs-font-monospace); + font-size: 1em; + direction: ltr /* rtl:ignore */; + unicode-bidi: bidi-override; +} + +pre { + display: block; + margin-top: 0; + margin-bottom: 1rem; + overflow: auto; + font-size: 0.875em; +} +pre code { + font-size: inherit; + color: inherit; + word-break: normal; +} + +code { + font-size: 0.875em; + color: #f65ca2; + word-wrap: break-word; +} +a > code { + color: inherit; +} + +kbd { + padding: 0.2rem 0.4rem; + font-size: 0.875em; + color: #fff; + background-color: #212529; + border-radius: 0.2rem; +} +kbd kbd { + padding: 0; + font-size: 1em; + font-weight: 700; +} + +figure { + margin: 0 0 1rem; +} + +img, +svg { + vertical-align: middle; +} + +table { + caption-side: bottom; + border-collapse: collapse; +} + +caption { + padding-top: 0.5rem; + padding-bottom: 0.5rem; + color: #6c757d; + text-align: left; +} + +th { + text-align: inherit; + text-align: -webkit-match-parent; +} + +thead, +tbody, +tfoot, +tr, +td, +th { + border-color: inherit; + border-style: solid; + border-width: 0; +} + +label { + display: inline-block; +} + +button { + border-radius: 0; +} + +button:focus:not(:focus-visible) { + outline: 0; +} + +input, +button, +select, +optgroup, +textarea { + margin: 0; + font-family: inherit; + font-size: inherit; + line-height: inherit; +} + +button, +select { + text-transform: none; +} + +[role=button] { + cursor: pointer; +} + +select { + word-wrap: normal; +} +select:disabled { + opacity: 1; +} + +[list]::-webkit-calendar-picker-indicator { + display: none; +} + +button, +[type=button], +[type=reset], +[type=submit] { + -webkit-appearance: button; +} +button:not(:disabled), +[type=button]:not(:disabled), +[type=reset]:not(:disabled), +[type=submit]:not(:disabled) { + cursor: pointer; +} + +::-moz-focus-inner { + padding: 0; + border-style: none; +} + +textarea { + resize: vertical; +} + +fieldset { + min-width: 0; + padding: 0; + margin: 0; + border: 0; +} + +legend { + float: left; + width: 100%; + padding: 0; + margin-bottom: 0.5rem; + font-size: calc(1.275rem + 0.3vw); + line-height: inherit; +} +@media (min-width: 1200px) { + legend { + font-size: 1.5rem; + } +} +legend + * { + clear: left; +} + +::-webkit-datetime-edit-fields-wrapper, +::-webkit-datetime-edit-text, +::-webkit-datetime-edit-minute, +::-webkit-datetime-edit-hour-field, +::-webkit-datetime-edit-day-field, +::-webkit-datetime-edit-month-field, +::-webkit-datetime-edit-year-field { + padding: 0; +} + +::-webkit-inner-spin-button { + height: auto; +} + +[type=search] { + outline-offset: -2px; + -webkit-appearance: textfield; +} + +/* rtl:raw: +[type="tel"], +[type="url"], +[type="email"], +[type="number"] { + direction: ltr; +} +*/ +::-webkit-search-decoration { + -webkit-appearance: none; +} + +::-webkit-color-swatch-wrapper { + padding: 0; +} + +::file-selector-button { + font: inherit; +} + +::-webkit-file-upload-button { + font: inherit; + -webkit-appearance: button; +} + +output { + display: inline-block; +} + +iframe { + border: 0; +} + +summary { + display: list-item; + cursor: pointer; +} + +progress { + vertical-align: baseline; +} + +[hidden] { + display: none !important; +} + +.lead { + font-size: 1.1rem; + font-weight: 300; +} + +.display-1 { + font-size: calc(1.625rem + 4.5vw); + font-weight: 300; + line-height: 1.2; +} +@media (min-width: 1200px) { + .display-1 { + font-size: 5rem; + } +} + +.display-2 { + font-size: calc(1.575rem + 3.9vw); + font-weight: 300; + line-height: 1.2; +} +@media (min-width: 1200px) { + .display-2 { + font-size: 4.5rem; + } +} + +.display-3 { + font-size: calc(1.525rem + 3.3vw); + font-weight: 300; + line-height: 1.2; +} +@media (min-width: 1200px) { + .display-3 { + font-size: 4rem; + } +} + +.display-4 { + font-size: calc(1.475rem + 2.7vw); + font-weight: 300; + line-height: 1.2; +} +@media (min-width: 1200px) { + .display-4 { + font-size: 3.5rem; + } +} + +.display-5 { + font-size: calc(1.425rem + 2.1vw); + font-weight: 300; + line-height: 1.2; +} +@media (min-width: 1200px) { + .display-5 { + font-size: 3rem; + } +} + +.display-6 { + font-size: calc(1.375rem + 1.5vw); + font-weight: 300; + line-height: 1.2; +} +@media (min-width: 1200px) { + .display-6 { + font-size: 2.5rem; + } +} + +.list-unstyled { + padding-left: 0; + list-style: none; +} + +.list-inline { + padding-left: 0; + list-style: none; +} + +.list-inline-item { + display: inline-block; +} +.list-inline-item:not(:last-child) { + margin-right: 0.5rem; +} + +.initialism { + font-size: 0.875em; + text-transform: uppercase; +} + +.blockquote { + margin-bottom: 1rem; + font-size: 1.1rem; +} +.blockquote > :last-child { + margin-bottom: 0; +} + +.blockquote-footer { + margin-top: -1rem; + margin-bottom: 1rem; + font-size: 0.875em; + color: #6c757d; +} +.blockquote-footer::before { + content: "— "; +} + +.img-fluid { + max-width: 100%; + height: auto; +} + +.img-thumbnail { + padding: 0.25rem; + background-color: #fff; + border: 1px solid #dee2e6; + border-radius: 0.25rem; + max-width: 100%; + height: auto; +} + +.figure { + display: inline-block; +} + +.figure-img { + margin-bottom: 0.5rem; + line-height: 1; +} + +.figure-caption { + font-size: 0.875em; + color: #6c757d; +} + +.container, +.container-fluid, +.container-xxl, +.container-xl, +.container-lg, +.container-md, +.container-sm { + width: 100%; + padding-right: var(--bs-gutter-x, 0.75rem); + padding-left: var(--bs-gutter-x, 0.75rem); + margin-right: auto; + margin-left: auto; +} + +@media (min-width: 576px) { + .container-sm, .container { + max-width: 540px; + } +} +@media (min-width: 768px) { + .container-md, .container-sm, .container { + max-width: 720px; + } +} +@media (min-width: 992px) { + .container-lg, .container-md, .container-sm, .container { + max-width: 960px; + } +} +@media (min-width: 1200px) { + .container-xl, .container-lg, .container-md, .container-sm, .container { + max-width: 1140px; + } +} +@media (min-width: 1400px) { + .container-xxl, .container-xl, .container-lg, .container-md, .container-sm, .container { + max-width: 1320px; + } +} +.row { + --bs-gutter-x: 1.5rem; + --bs-gutter-y: 0; + display: flex; + flex-wrap: wrap; + margin-top: calc(var(--bs-gutter-y) * -1); + margin-right: calc(var(--bs-gutter-x) * -0.5); + margin-left: calc(var(--bs-gutter-x) * -0.5); +} +.row > * { + flex-shrink: 0; + width: 100%; + max-width: 100%; + padding-right: calc(var(--bs-gutter-x) * 0.5); + padding-left: calc(var(--bs-gutter-x) * 0.5); + margin-top: var(--bs-gutter-y); +} + +.col { + flex: 1 0 0%; +} + +.row-cols-auto > * { + flex: 0 0 auto; + width: auto; +} + +.row-cols-1 > * { + flex: 0 0 auto; + width: 100%; +} + +.row-cols-2 > * { + flex: 0 0 auto; + width: 50%; +} + +.row-cols-3 > * { + flex: 0 0 auto; + width: 33.3333333333%; +} + +.row-cols-4 > * { + flex: 0 0 auto; + width: 25%; +} + +.row-cols-5 > * { + flex: 0 0 auto; + width: 20%; +} + +.row-cols-6 > * { + flex: 0 0 auto; + width: 16.6666666667%; +} + +@media (min-width: 576px) { + .col-sm { + flex: 1 0 0%; + } + .row-cols-sm-auto > * { + flex: 0 0 auto; + width: auto; + } + .row-cols-sm-1 > * { + flex: 0 0 auto; + width: 100%; + } + .row-cols-sm-2 > * { + flex: 0 0 auto; + width: 50%; + } + .row-cols-sm-3 > * { + flex: 0 0 auto; + width: 33.3333333333%; + } + .row-cols-sm-4 > * { + flex: 0 0 auto; + width: 25%; + } + .row-cols-sm-5 > * { + flex: 0 0 auto; + width: 20%; + } + .row-cols-sm-6 > * { + flex: 0 0 auto; + width: 16.6666666667%; + } +} +@media (min-width: 768px) { + .col-md { + flex: 1 0 0%; + } + .row-cols-md-auto > * { + flex: 0 0 auto; + width: auto; + } + .row-cols-md-1 > * { + flex: 0 0 auto; + width: 100%; + } + .row-cols-md-2 > * { + flex: 0 0 auto; + width: 50%; + } + .row-cols-md-3 > * { + flex: 0 0 auto; + width: 33.3333333333%; + } + .row-cols-md-4 > * { + flex: 0 0 auto; + width: 25%; + } + .row-cols-md-5 > * { + flex: 0 0 auto; + width: 20%; + } + .row-cols-md-6 > * { + flex: 0 0 auto; + width: 16.6666666667%; + } +} +@media (min-width: 992px) { + .col-lg { + flex: 1 0 0%; + } + .row-cols-lg-auto > * { + flex: 0 0 auto; + width: auto; + } + .row-cols-lg-1 > * { + flex: 0 0 auto; + width: 100%; + } + .row-cols-lg-2 > * { + flex: 0 0 auto; + width: 50%; + } + .row-cols-lg-3 > * { + flex: 0 0 auto; + width: 33.3333333333%; + } + .row-cols-lg-4 > * { + flex: 0 0 auto; + width: 25%; + } + .row-cols-lg-5 > * { + flex: 0 0 auto; + width: 20%; + } + .row-cols-lg-6 > * { + flex: 0 0 auto; + width: 16.6666666667%; + } +} +@media (min-width: 1200px) { + .col-xl { + flex: 1 0 0%; + } + .row-cols-xl-auto > * { + flex: 0 0 auto; + width: auto; + } + .row-cols-xl-1 > * { + flex: 0 0 auto; + width: 100%; + } + .row-cols-xl-2 > * { + flex: 0 0 auto; + width: 50%; + } + .row-cols-xl-3 > * { + flex: 0 0 auto; + width: 33.3333333333%; + } + .row-cols-xl-4 > * { + flex: 0 0 auto; + width: 25%; + } + .row-cols-xl-5 > * { + flex: 0 0 auto; + width: 20%; + } + .row-cols-xl-6 > * { + flex: 0 0 auto; + width: 16.6666666667%; + } +} +@media (min-width: 1400px) { + .col-xxl { + flex: 1 0 0%; + } + .row-cols-xxl-auto > * { + flex: 0 0 auto; + width: auto; + } + .row-cols-xxl-1 > * { + flex: 0 0 auto; + width: 100%; + } + .row-cols-xxl-2 > * { + flex: 0 0 auto; + width: 50%; + } + .row-cols-xxl-3 > * { + flex: 0 0 auto; + width: 33.3333333333%; + } + .row-cols-xxl-4 > * { + flex: 0 0 auto; + width: 25%; + } + .row-cols-xxl-5 > * { + flex: 0 0 auto; + width: 20%; + } + .row-cols-xxl-6 > * { + flex: 0 0 auto; + width: 16.6666666667%; + } +} +.col-auto { + flex: 0 0 auto; + width: auto; +} + +.col-1 { + flex: 0 0 auto; + width: 8.33333333%; +} + +.col-2 { + flex: 0 0 auto; + width: 16.66666667%; +} + +.col-3 { + flex: 0 0 auto; + width: 25%; +} + +.col-4 { + flex: 0 0 auto; + width: 33.33333333%; +} + +.col-5 { + flex: 0 0 auto; + width: 41.66666667%; +} + +.col-6 { + flex: 0 0 auto; + width: 50%; +} + +.col-7 { + flex: 0 0 auto; + width: 58.33333333%; +} + +.col-8 { + flex: 0 0 auto; + width: 66.66666667%; +} + +.col-9 { + flex: 0 0 auto; + width: 75%; +} + +.col-10 { + flex: 0 0 auto; + width: 83.33333333%; +} + +.col-11 { + flex: 0 0 auto; + width: 91.66666667%; +} + +.col-12 { + flex: 0 0 auto; + width: 100%; +} + +.offset-1 { + margin-left: 8.33333333%; +} + +.offset-2 { + margin-left: 16.66666667%; +} + +.offset-3 { + margin-left: 25%; +} + +.offset-4 { + margin-left: 33.33333333%; +} + +.offset-5 { + margin-left: 41.66666667%; +} + +.offset-6 { + margin-left: 50%; +} + +.offset-7 { + margin-left: 58.33333333%; +} + +.offset-8 { + margin-left: 66.66666667%; +} + +.offset-9 { + margin-left: 75%; +} + +.offset-10 { + margin-left: 83.33333333%; +} + +.offset-11 { + margin-left: 91.66666667%; +} + +.g-0, +.gx-0 { + --bs-gutter-x: 0; +} + +.g-0, +.gy-0 { + --bs-gutter-y: 0; +} + +.g-1, +.gx-1 { + --bs-gutter-x: 0.25rem; +} + +.g-1, +.gy-1 { + --bs-gutter-y: 0.25rem; +} + +.g-2, +.gx-2 { + --bs-gutter-x: 0.5rem; +} + +.g-2, +.gy-2 { + --bs-gutter-y: 0.5rem; +} + +.g-3, +.gx-3 { + --bs-gutter-x: 1rem; +} + +.g-3, +.gy-3 { + --bs-gutter-y: 1rem; +} + +.g-4, +.gx-4 { + --bs-gutter-x: 1.5rem; +} + +.g-4, +.gy-4 { + --bs-gutter-y: 1.5rem; +} + +.g-5, +.gx-5 { + --bs-gutter-x: 3rem; +} + +.g-5, +.gy-5 { + --bs-gutter-y: 3rem; +} + +@media (min-width: 576px) { + .col-sm-auto { + flex: 0 0 auto; + width: auto; + } + .col-sm-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + .col-sm-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-sm-3 { + flex: 0 0 auto; + width: 25%; + } + .col-sm-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + .col-sm-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + .col-sm-6 { + flex: 0 0 auto; + width: 50%; + } + .col-sm-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + .col-sm-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + .col-sm-9 { + flex: 0 0 auto; + width: 75%; + } + .col-sm-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + .col-sm-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + .col-sm-12 { + flex: 0 0 auto; + width: 100%; + } + .offset-sm-0 { + margin-left: 0; + } + .offset-sm-1 { + margin-left: 8.33333333%; + } + .offset-sm-2 { + margin-left: 16.66666667%; + } + .offset-sm-3 { + margin-left: 25%; + } + .offset-sm-4 { + margin-left: 33.33333333%; + } + .offset-sm-5 { + margin-left: 41.66666667%; + } + .offset-sm-6 { + margin-left: 50%; + } + .offset-sm-7 { + margin-left: 58.33333333%; + } + .offset-sm-8 { + margin-left: 66.66666667%; + } + .offset-sm-9 { + margin-left: 75%; + } + .offset-sm-10 { + margin-left: 83.33333333%; + } + .offset-sm-11 { + margin-left: 91.66666667%; + } + .g-sm-0, +.gx-sm-0 { + --bs-gutter-x: 0; + } + .g-sm-0, +.gy-sm-0 { + --bs-gutter-y: 0; + } + .g-sm-1, +.gx-sm-1 { + --bs-gutter-x: 0.25rem; + } + .g-sm-1, +.gy-sm-1 { + --bs-gutter-y: 0.25rem; + } + .g-sm-2, +.gx-sm-2 { + --bs-gutter-x: 0.5rem; + } + .g-sm-2, +.gy-sm-2 { + --bs-gutter-y: 0.5rem; + } + .g-sm-3, +.gx-sm-3 { + --bs-gutter-x: 1rem; + } + .g-sm-3, +.gy-sm-3 { + --bs-gutter-y: 1rem; + } + .g-sm-4, +.gx-sm-4 { + --bs-gutter-x: 1.5rem; + } + .g-sm-4, +.gy-sm-4 { + --bs-gutter-y: 1.5rem; + } + .g-sm-5, +.gx-sm-5 { + --bs-gutter-x: 3rem; + } + .g-sm-5, +.gy-sm-5 { + --bs-gutter-y: 3rem; + } +} +@media (min-width: 768px) { + .col-md-auto { + flex: 0 0 auto; + width: auto; + } + .col-md-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + .col-md-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-md-3 { + flex: 0 0 auto; + width: 25%; + } + .col-md-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + .col-md-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + .col-md-6 { + flex: 0 0 auto; + width: 50%; + } + .col-md-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + .col-md-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + .col-md-9 { + flex: 0 0 auto; + width: 75%; + } + .col-md-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + .col-md-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + .col-md-12 { + flex: 0 0 auto; + width: 100%; + } + .offset-md-0 { + margin-left: 0; + } + .offset-md-1 { + margin-left: 8.33333333%; + } + .offset-md-2 { + margin-left: 16.66666667%; + } + .offset-md-3 { + margin-left: 25%; + } + .offset-md-4 { + margin-left: 33.33333333%; + } + .offset-md-5 { + margin-left: 41.66666667%; + } + .offset-md-6 { + margin-left: 50%; + } + .offset-md-7 { + margin-left: 58.33333333%; + } + .offset-md-8 { + margin-left: 66.66666667%; + } + .offset-md-9 { + margin-left: 75%; + } + .offset-md-10 { + margin-left: 83.33333333%; + } + .offset-md-11 { + margin-left: 91.66666667%; + } + .g-md-0, +.gx-md-0 { + --bs-gutter-x: 0; + } + .g-md-0, +.gy-md-0 { + --bs-gutter-y: 0; + } + .g-md-1, +.gx-md-1 { + --bs-gutter-x: 0.25rem; + } + .g-md-1, +.gy-md-1 { + --bs-gutter-y: 0.25rem; + } + .g-md-2, +.gx-md-2 { + --bs-gutter-x: 0.5rem; + } + .g-md-2, +.gy-md-2 { + --bs-gutter-y: 0.5rem; + } + .g-md-3, +.gx-md-3 { + --bs-gutter-x: 1rem; + } + .g-md-3, +.gy-md-3 { + --bs-gutter-y: 1rem; + } + .g-md-4, +.gx-md-4 { + --bs-gutter-x: 1.5rem; + } + .g-md-4, +.gy-md-4 { + --bs-gutter-y: 1.5rem; + } + .g-md-5, +.gx-md-5 { + --bs-gutter-x: 3rem; + } + .g-md-5, +.gy-md-5 { + --bs-gutter-y: 3rem; + } +} +@media (min-width: 992px) { + .col-lg-auto { + flex: 0 0 auto; + width: auto; + } + .col-lg-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + .col-lg-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-lg-3 { + flex: 0 0 auto; + width: 25%; + } + .col-lg-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + .col-lg-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + .col-lg-6 { + flex: 0 0 auto; + width: 50%; + } + .col-lg-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + .col-lg-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + .col-lg-9 { + flex: 0 0 auto; + width: 75%; + } + .col-lg-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + .col-lg-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + .col-lg-12 { + flex: 0 0 auto; + width: 100%; + } + .offset-lg-0 { + margin-left: 0; + } + .offset-lg-1 { + margin-left: 8.33333333%; + } + .offset-lg-2 { + margin-left: 16.66666667%; + } + .offset-lg-3 { + margin-left: 25%; + } + .offset-lg-4 { + margin-left: 33.33333333%; + } + .offset-lg-5 { + margin-left: 41.66666667%; + } + .offset-lg-6 { + margin-left: 50%; + } + .offset-lg-7 { + margin-left: 58.33333333%; + } + .offset-lg-8 { + margin-left: 66.66666667%; + } + .offset-lg-9 { + margin-left: 75%; + } + .offset-lg-10 { + margin-left: 83.33333333%; + } + .offset-lg-11 { + margin-left: 91.66666667%; + } + .g-lg-0, +.gx-lg-0 { + --bs-gutter-x: 0; + } + .g-lg-0, +.gy-lg-0 { + --bs-gutter-y: 0; + } + .g-lg-1, +.gx-lg-1 { + --bs-gutter-x: 0.25rem; + } + .g-lg-1, +.gy-lg-1 { + --bs-gutter-y: 0.25rem; + } + .g-lg-2, +.gx-lg-2 { + --bs-gutter-x: 0.5rem; + } + .g-lg-2, +.gy-lg-2 { + --bs-gutter-y: 0.5rem; + } + .g-lg-3, +.gx-lg-3 { + --bs-gutter-x: 1rem; + } + .g-lg-3, +.gy-lg-3 { + --bs-gutter-y: 1rem; + } + .g-lg-4, +.gx-lg-4 { + --bs-gutter-x: 1.5rem; + } + .g-lg-4, +.gy-lg-4 { + --bs-gutter-y: 1.5rem; + } + .g-lg-5, +.gx-lg-5 { + --bs-gutter-x: 3rem; + } + .g-lg-5, +.gy-lg-5 { + --bs-gutter-y: 3rem; + } +} +@media (min-width: 1200px) { + .col-xl-auto { + flex: 0 0 auto; + width: auto; + } + .col-xl-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + .col-xl-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-xl-3 { + flex: 0 0 auto; + width: 25%; + } + .col-xl-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + .col-xl-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + .col-xl-6 { + flex: 0 0 auto; + width: 50%; + } + .col-xl-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + .col-xl-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + .col-xl-9 { + flex: 0 0 auto; + width: 75%; + } + .col-xl-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + .col-xl-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + .col-xl-12 { + flex: 0 0 auto; + width: 100%; + } + .offset-xl-0 { + margin-left: 0; + } + .offset-xl-1 { + margin-left: 8.33333333%; + } + .offset-xl-2 { + margin-left: 16.66666667%; + } + .offset-xl-3 { + margin-left: 25%; + } + .offset-xl-4 { + margin-left: 33.33333333%; + } + .offset-xl-5 { + margin-left: 41.66666667%; + } + .offset-xl-6 { + margin-left: 50%; + } + .offset-xl-7 { + margin-left: 58.33333333%; + } + .offset-xl-8 { + margin-left: 66.66666667%; + } + .offset-xl-9 { + margin-left: 75%; + } + .offset-xl-10 { + margin-left: 83.33333333%; + } + .offset-xl-11 { + margin-left: 91.66666667%; + } + .g-xl-0, +.gx-xl-0 { + --bs-gutter-x: 0; + } + .g-xl-0, +.gy-xl-0 { + --bs-gutter-y: 0; + } + .g-xl-1, +.gx-xl-1 { + --bs-gutter-x: 0.25rem; + } + .g-xl-1, +.gy-xl-1 { + --bs-gutter-y: 0.25rem; + } + .g-xl-2, +.gx-xl-2 { + --bs-gutter-x: 0.5rem; + } + .g-xl-2, +.gy-xl-2 { + --bs-gutter-y: 0.5rem; + } + .g-xl-3, +.gx-xl-3 { + --bs-gutter-x: 1rem; + } + .g-xl-3, +.gy-xl-3 { + --bs-gutter-y: 1rem; + } + .g-xl-4, +.gx-xl-4 { + --bs-gutter-x: 1.5rem; + } + .g-xl-4, +.gy-xl-4 { + --bs-gutter-y: 1.5rem; + } + .g-xl-5, +.gx-xl-5 { + --bs-gutter-x: 3rem; + } + .g-xl-5, +.gy-xl-5 { + --bs-gutter-y: 3rem; + } +} +@media (min-width: 1400px) { + .col-xxl-auto { + flex: 0 0 auto; + width: auto; + } + .col-xxl-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + .col-xxl-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-xxl-3 { + flex: 0 0 auto; + width: 25%; + } + .col-xxl-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + .col-xxl-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + .col-xxl-6 { + flex: 0 0 auto; + width: 50%; + } + .col-xxl-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + .col-xxl-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + .col-xxl-9 { + flex: 0 0 auto; + width: 75%; + } + .col-xxl-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + .col-xxl-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + .col-xxl-12 { + flex: 0 0 auto; + width: 100%; + } + .offset-xxl-0 { + margin-left: 0; + } + .offset-xxl-1 { + margin-left: 8.33333333%; + } + .offset-xxl-2 { + margin-left: 16.66666667%; + } + .offset-xxl-3 { + margin-left: 25%; + } + .offset-xxl-4 { + margin-left: 33.33333333%; + } + .offset-xxl-5 { + margin-left: 41.66666667%; + } + .offset-xxl-6 { + margin-left: 50%; + } + .offset-xxl-7 { + margin-left: 58.33333333%; + } + .offset-xxl-8 { + margin-left: 66.66666667%; + } + .offset-xxl-9 { + margin-left: 75%; + } + .offset-xxl-10 { + margin-left: 83.33333333%; + } + .offset-xxl-11 { + margin-left: 91.66666667%; + } + .g-xxl-0, +.gx-xxl-0 { + --bs-gutter-x: 0; + } + .g-xxl-0, +.gy-xxl-0 { + --bs-gutter-y: 0; + } + .g-xxl-1, +.gx-xxl-1 { + --bs-gutter-x: 0.25rem; + } + .g-xxl-1, +.gy-xxl-1 { + --bs-gutter-y: 0.25rem; + } + .g-xxl-2, +.gx-xxl-2 { + --bs-gutter-x: 0.5rem; + } + .g-xxl-2, +.gy-xxl-2 { + --bs-gutter-y: 0.5rem; + } + .g-xxl-3, +.gx-xxl-3 { + --bs-gutter-x: 1rem; + } + .g-xxl-3, +.gy-xxl-3 { + --bs-gutter-y: 1rem; + } + .g-xxl-4, +.gx-xxl-4 { + --bs-gutter-x: 1.5rem; + } + .g-xxl-4, +.gy-xxl-4 { + --bs-gutter-y: 1.5rem; + } + .g-xxl-5, +.gx-xxl-5 { + --bs-gutter-x: 3rem; + } + .g-xxl-5, +.gy-xxl-5 { + --bs-gutter-y: 3rem; + } +} +.table { + --bs-table-bg: transparent; + --bs-table-accent-bg: rgba(0, 0, 0, 0.03); + --bs-table-striped-color: #495057; + --bs-table-striped-bg: rgba(0, 0, 0, 0.05); + --bs-table-active-color: #495057; + --bs-table-active-bg: #e0f3ff; + --bs-table-hover-color: #495057; + --bs-table-hover-bg: #e0f3ff; + width: 100%; + margin-bottom: 1rem; + color: #495057; + vertical-align: top; + border-color: #e9ecef; +} +.table > :not(caption) > * > * { + padding: 0.5rem 0.5rem; + background-color: var(--bs-table-bg); + border-bottom-width: 1px; + box-shadow: inset 0 0 0 9999px var(--bs-table-accent-bg); +} +.table > tbody { + vertical-align: inherit; +} +.table > thead { + vertical-align: bottom; +} +.table > :not(:last-child) > :last-child > * { + border-bottom-color: currentColor; +} + +.caption-top { + caption-side: top; +} + +.table-sm > :not(caption) > * > * { + padding: 0.25rem 0.25rem; +} + +.table-bordered > :not(caption) > * { + border-width: 1px 0; +} +.table-bordered > :not(caption) > * > * { + border-width: 0 1px; +} + +.table-borderless > :not(caption) > * > * { + border-bottom-width: 0; +} + +.table-striped > tbody > tr:nth-of-type(odd) { + --bs-table-accent-bg: var(--bs-table-striped-bg); + color: var(--bs-table-striped-color); +} + +.table-active { + --bs-table-accent-bg: var(--bs-table-active-bg); + color: var(--bs-table-active-color); +} + +.table-hover > tbody > tr:hover { + --bs-table-accent-bg: var(--bs-table-hover-bg); + color: var(--bs-table-hover-color); +} + +.table-primary { + --bs-table-bg: #d9e1f7; + --bs-table-striped-bg: #ced6eb; + --bs-table-striped-color: #000; + --bs-table-active-bg: #c3cbde; + --bs-table-active-color: #000; + --bs-table-hover-bg: #c9d0e4; + --bs-table-hover-color: #000; + color: #000; + border-color: #c3cbde; +} + +.table-secondary { + --bs-table-bg: #e2e3e5; + --bs-table-striped-bg: #d7d8da; + --bs-table-striped-color: #000; + --bs-table-active-bg: #cbccce; + --bs-table-active-color: #000; + --bs-table-hover-bg: #d1d2d4; + --bs-table-hover-color: #000; + color: #000; + border-color: #cbccce; +} + +.table-success { + --bs-table-bg: #d8f3e5; + --bs-table-striped-bg: #cde7da; + --bs-table-striped-color: #000; + --bs-table-active-bg: #c2dbce; + --bs-table-active-color: #000; + --bs-table-hover-bg: #c8e1d4; + --bs-table-hover-color: #000; + color: #000; + border-color: #c2dbce; +} + +.table-info { + --bs-table-bg: #d0eeff; + --bs-table-striped-bg: #c6e2f2; + --bs-table-striped-color: #000; + --bs-table-active-bg: #bbd6e6; + --bs-table-active-color: #000; + --bs-table-hover-bg: #c0dcec; + --bs-table-hover-color: #000; + color: #000; + border-color: #bbd6e6; +} + +.table-warning { + --bs-table-bg: #fdf1d3; + --bs-table-striped-bg: #f0e5c8; + --bs-table-striped-color: #000; + --bs-table-active-bg: #e4d9be; + --bs-table-active-color: #000; + --bs-table-hover-bg: #eadfc3; + --bs-table-hover-color: #000; + color: #000; + border-color: #e4d9be; +} + +.table-danger { + --bs-table-bg: #f7d3dc; + --bs-table-striped-bg: #ebc8d1; + --bs-table-striped-color: #000; + --bs-table-active-bg: #debec6; + --bs-table-active-color: #000; + --bs-table-hover-bg: #e4c3cc; + --bs-table-hover-color: #000; + color: #000; + border-color: #debec6; +} + +.table-light { + --bs-table-bg: #eeeeee; + --bs-table-striped-bg: #e2e2e2; + --bs-table-striped-color: #000; + --bs-table-active-bg: #d6d6d6; + --bs-table-active-color: #000; + --bs-table-hover-bg: gainsboro; + --bs-table-hover-color: #000; + color: #000; + border-color: #d6d6d6; +} + +.table-dark { + --bs-table-bg: #343a40; + --bs-table-striped-bg: #3e444a; + --bs-table-striped-color: #fff; + --bs-table-active-bg: #484e53; + --bs-table-active-color: #fff; + --bs-table-hover-bg: #43494e; + --bs-table-hover-color: #fff; + color: #fff; + border-color: #484e53; +} + +.table-responsive { + overflow-x: auto; + -webkit-overflow-scrolling: touch; +} + +@media (max-width: 575.98px) { + .table-responsive-sm { + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } +} +@media (max-width: 767.98px) { + .table-responsive-md { + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } +} +@media (max-width: 991.98px) { + .table-responsive-lg { + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } +} +@media (max-width: 1199.98px) { + .table-responsive-xl { + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } +} +@media (max-width: 1399.98px) { + .table-responsive-xxl { + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } +} +.form-label { + margin-bottom: 0.5rem; +} + +.col-form-label { + padding-top: calc(0.375rem + 1px); + padding-bottom: calc(0.375rem + 1px); + margin-bottom: 0; + font-size: inherit; + line-height: 1.5; +} + +.col-form-label-lg { + padding-top: calc(0.5rem + 1px); + padding-bottom: calc(0.5rem + 1px); + font-size: 1.1rem; +} + +.col-form-label-sm { + padding-top: calc(0.25rem + 1px); + padding-bottom: calc(0.25rem + 1px); + font-size: 0.968rem; +} + +.form-text { + margin-top: 0.25rem; + font-size: 0.875em; + color: #6c757d; +} + +.form-control { + display: block; + width: 100%; + padding: 0.375rem 0.75rem; + font-size: 0.88rem; + font-weight: 400; + line-height: 1.5; + color: #495057; + background-color: #fff; + background-clip: padding-box; + border: 1px solid #ced4da; + appearance: none; + border-radius: 0.25rem; + transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .form-control { + transition: none; + } +} +.form-control[type=file] { + overflow: hidden; +} +.form-control[type=file]:not(:disabled):not([readonly]) { + cursor: pointer; +} +.form-control:focus { + color: #495057; + background-color: #fff; + border-color: #a9bcee; + outline: 0; + box-shadow: 0 0 0 0.25rem rgba(63, 106, 216, 0.25); +} +.form-control::-webkit-date-and-time-value { + height: 1.5em; +} +.form-control::placeholder { + color: #6c757d; + opacity: 1; +} +.form-control:disabled, .form-control[readonly] { + background-color: #e9ecef; + opacity: 1; +} +.form-control::file-selector-button { + padding: 0.375rem 0.75rem; + margin: -0.375rem -0.75rem; + margin-inline-end: 0.75rem; + color: #495057; + background-color: #eff9ff; + pointer-events: none; + border-color: inherit; + border-style: solid; + border-width: 0; + border-inline-end-width: 1px; + border-radius: 0; + transition: color 0.15s, background-color 0.15s, border-color 0.15s, box-shadow 0.15s; +} +@media (prefers-reduced-motion: reduce) { + .form-control::file-selector-button { + transition: none; + } +} +.form-control:hover:not(:disabled):not([readonly])::file-selector-button { + background-color: #e3edf2; +} +.form-control::-webkit-file-upload-button { + padding: 0.375rem 0.75rem; + margin: -0.375rem -0.75rem; + margin-inline-end: 0.75rem; + color: #495057; + background-color: #eff9ff; + pointer-events: none; + border-color: inherit; + border-style: solid; + border-width: 0; + border-inline-end-width: 1px; + border-radius: 0; + transition: color 0.15s, background-color 0.15s, border-color 0.15s, box-shadow 0.15s; +} +@media (prefers-reduced-motion: reduce) { + .form-control::-webkit-file-upload-button { + transition: none; + } +} +.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button { + background-color: #e3edf2; +} + +.form-control-plaintext { + display: block; + width: 100%; + padding: 0.375rem 0; + margin-bottom: 0; + line-height: 1.5; + color: #495057; + background-color: transparent; + border: solid transparent; + border-width: 1px 0; +} +.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg { + padding-right: 0; + padding-left: 0; +} + +.form-control-sm { + min-height: calc(1.5em + (0.5rem + 2px)); + padding: 0.25rem 0.5rem; + font-size: 0.968rem; + border-radius: 0.2rem; +} +.form-control-sm::file-selector-button { + padding: 0.25rem 0.5rem; + margin: -0.25rem -0.5rem; + margin-inline-end: 0.5rem; +} +.form-control-sm::-webkit-file-upload-button { + padding: 0.25rem 0.5rem; + margin: -0.25rem -0.5rem; + margin-inline-end: 0.5rem; +} + +.form-control-lg { + min-height: calc(1.5em + (1rem + 2px)); + padding: 0.5rem 1rem; + font-size: 1.1rem; + border-radius: 0.3rem; +} +.form-control-lg::file-selector-button { + padding: 0.5rem 1rem; + margin: -0.5rem -1rem; + margin-inline-end: 1rem; +} +.form-control-lg::-webkit-file-upload-button { + padding: 0.5rem 1rem; + margin: -0.5rem -1rem; + margin-inline-end: 1rem; +} + +textarea.form-control { + min-height: calc(1.5em + (0.75rem + 2px)); +} +textarea.form-control-sm { + min-height: calc(1.5em + (0.5rem + 2px)); +} +textarea.form-control-lg { + min-height: calc(1.5em + (1rem + 2px)); +} + +.form-control-color { + max-width: 3rem; + height: auto; + padding: 0.375rem; +} +.form-control-color:not(:disabled):not([readonly]) { + cursor: pointer; +} +.form-control-color::-moz-color-swatch { + height: 1.5em; + border-radius: 0.25rem; +} +.form-control-color::-webkit-color-swatch { + height: 1.5em; + border-radius: 0.25rem; +} + +.form-select { + display: block; + width: 100%; + padding: 0.375rem 2.25rem 0.375rem 0.75rem; + -moz-padding-start: calc(0.75rem - 3px); + font-size: 0.88rem; + font-weight: 400; + line-height: 1.5; + color: #495057; + background-color: #fff; + background-image: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27%3e%3cpath fill=%27none%27 stroke=%27%23343a40%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27 stroke-width=%272%27 d=%27M2 5l6 6 6-6%27/%3e%3c/svg%3e"); + background-repeat: no-repeat; + background-position: right 0.75rem center; + background-size: 16px 12px; + border: 1px solid #ced4da; + border-radius: 0.25rem; + transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + appearance: none; +} +@media (prefers-reduced-motion: reduce) { + .form-select { + transition: none; + } +} +.form-select:focus { + border-color: #a9bcee; + outline: 0; + box-shadow: 0 0 0 0.25rem rgba(63, 106, 216, 0.25); +} +.form-select[multiple], .form-select[size]:not([size="1"]) { + padding-right: 0.75rem; + background-image: none; +} +.form-select:disabled { + background-color: #e9ecef; +} +.form-select:-moz-focusring { + color: transparent; + text-shadow: 0 0 0 #495057; +} + +.form-select-sm { + padding-top: 0.25rem; + padding-bottom: 0.25rem; + padding-left: 0.5rem; + font-size: 0.968rem; +} + +.form-select-lg { + padding-top: 0.5rem; + padding-bottom: 0.5rem; + padding-left: 1rem; + font-size: 1.1rem; +} + +.form-check { + display: block; + min-height: 1.32rem; + padding-left: 1.5em; + margin-bottom: 0.125rem; +} +.form-check .form-check-input { + float: left; + margin-left: -1.5em; +} + +.form-check-input { + width: 1em; + height: 1em; + margin-top: 0.25em; + vertical-align: top; + background-color: #fff; + background-repeat: no-repeat; + background-position: center; + background-size: contain; + border: 1px solid rgba(0, 0, 0, 0.25); + appearance: none; + color-adjust: exact; +} +.form-check-input[type=checkbox] { + border-radius: 0.25em; +} +.form-check-input[type=radio] { + border-radius: 50%; +} +.form-check-input:active { + filter: brightness(90%); +} +.form-check-input:focus { + border-color: #a9bcee; + outline: 0; + box-shadow: 0 0 0 0.25rem rgba(63, 106, 216, 0.25); +} +.form-check-input:checked { + background-color: #3f6ad8; + border-color: #3f6ad8; +} +.form-check-input:checked[type=checkbox] { + background-image: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 20 20%27%3e%3cpath fill=%27none%27 stroke=%27%23fff%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27 stroke-width=%273%27 d=%27M6 10l3 3l6-6%27/%3e%3c/svg%3e"); +} +.form-check-input:checked[type=radio] { + background-image: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%27-4 -4 8 8%27%3e%3ccircle r=%272%27 fill=%27%23fff%27/%3e%3c/svg%3e"); +} +.form-check-input[type=checkbox]:indeterminate { + background-color: #3f6ad8; + border-color: #3f6ad8; + background-image: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 20 20%27%3e%3cpath fill=%27none%27 stroke=%27%23fff%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27 stroke-width=%273%27 d=%27M6 10h8%27/%3e%3c/svg%3e"); +} +.form-check-input:disabled { + pointer-events: none; + filter: none; + opacity: 0.5; +} +.form-check-input[disabled] ~ .form-check-label, .form-check-input:disabled ~ .form-check-label { + opacity: 0.5; +} + +.form-switch { + padding-left: 2.5em; +} +.form-switch .form-check-input { + width: 2em; + margin-left: -2.5em; + background-image: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%27-4 -4 8 8%27%3e%3ccircle r=%273%27 fill=%27rgba%280, 0, 0, 0.25%29%27/%3e%3c/svg%3e"); + background-position: left center; + border-radius: 2em; + transition: background-position 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .form-switch .form-check-input { + transition: none; + } +} +.form-switch .form-check-input:focus { + background-image: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%27-4 -4 8 8%27%3e%3ccircle r=%273%27 fill=%27%23a9bcee%27/%3e%3c/svg%3e"); +} +.form-switch .form-check-input:checked { + background-position: right center; + background-image: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%27-4 -4 8 8%27%3e%3ccircle r=%273%27 fill=%27%23fff%27/%3e%3c/svg%3e"); +} + +.form-check-inline { + display: inline-block; + margin-right: 1rem; +} + +.btn-check { + position: absolute; + clip: rect(0, 0, 0, 0); + pointer-events: none; +} +.btn-check[disabled] + .btn, .btn-check:disabled + .btn { + pointer-events: none; + filter: none; + opacity: 0.65; +} + +.form-range { + width: 100%; + height: 1.5rem; + padding: 0; + background-color: transparent; + appearance: none; +} +.form-range:focus { + outline: 0; +} +.form-range:focus::-webkit-slider-thumb { + box-shadow: 0 0 0 1px #fff, 0 0 0 0.25rem rgba(63, 106, 216, 0.25); +} +.form-range:focus::-moz-range-thumb { + box-shadow: 0 0 0 1px #fff, 0 0 0 0.25rem rgba(63, 106, 216, 0.25); +} +.form-range::-moz-focus-outer { + border: 0; +} +.form-range::-webkit-slider-thumb { + width: 1rem; + height: 1rem; + margin-top: -0.25rem; + background-color: #3f6ad8; + border: 0; + border-radius: 1rem; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + appearance: none; +} +@media (prefers-reduced-motion: reduce) { + .form-range::-webkit-slider-thumb { + transition: none; + } +} +.form-range::-webkit-slider-thumb:active { + background-color: #c5d2f3; +} +.form-range::-webkit-slider-runnable-track { + width: 100%; + height: 0.5rem; + color: transparent; + cursor: pointer; + background-color: #dee2e6; + border-color: transparent; + border-radius: 1rem; +} +.form-range::-moz-range-thumb { + width: 1rem; + height: 1rem; + background-color: #3f6ad8; + border: 0; + border-radius: 1rem; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + appearance: none; +} +@media (prefers-reduced-motion: reduce) { + .form-range::-moz-range-thumb { + transition: none; + } +} +.form-range::-moz-range-thumb:active { + background-color: #c5d2f3; +} +.form-range::-moz-range-track { + width: 100%; + height: 0.5rem; + color: transparent; + cursor: pointer; + background-color: #dee2e6; + border-color: transparent; + border-radius: 1rem; +} +.form-range:disabled { + pointer-events: none; +} +.form-range:disabled::-webkit-slider-thumb { + background-color: #adb5bd; +} +.form-range:disabled::-moz-range-thumb { + background-color: #adb5bd; +} + +.form-floating { + position: relative; +} +.form-floating > .form-control, +.form-floating > .form-select { + height: calc(3.5rem + 2px); + line-height: 1.25; +} +.form-floating > label { + position: absolute; + top: 0; + left: 0; + height: 100%; + padding: 1rem 0.75rem; + pointer-events: none; + border: 1px solid transparent; + transform-origin: 0 0; + transition: opacity 0.1s ease-in-out, transform 0.1s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .form-floating > label { + transition: none; + } +} +.form-floating > .form-control { + padding: 1rem 0.75rem; +} +.form-floating > .form-control::placeholder { + color: transparent; +} +.form-floating > .form-control:focus, .form-floating > .form-control:not(:placeholder-shown) { + padding-top: 1.625rem; + padding-bottom: 0.625rem; +} +.form-floating > .form-control:-webkit-autofill { + padding-top: 1.625rem; + padding-bottom: 0.625rem; +} +.form-floating > .form-select { + padding-top: 1.625rem; + padding-bottom: 0.625rem; +} +.form-floating > .form-control:focus ~ label, +.form-floating > .form-control:not(:placeholder-shown) ~ label, +.form-floating > .form-select ~ label { + opacity: 0.65; + transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem); +} +.form-floating > .form-control:-webkit-autofill ~ label { + opacity: 0.65; + transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem); +} + +.input-group { + position: relative; + display: flex; + flex-wrap: wrap; + align-items: stretch; + width: 100%; +} +.input-group > .form-control, +.input-group > .form-select { + position: relative; + flex: 1 1 auto; + width: 1%; + min-width: 0; +} +.input-group > .form-control:focus, +.input-group > .form-select:focus { + z-index: 3; +} +.input-group .btn { + position: relative; + z-index: 2; +} +.input-group .btn:focus { + z-index: 3; +} + +.input-group-text { + display: flex; + align-items: center; + padding: 0.375rem 0.75rem; + font-size: 0.88rem; + font-weight: 400; + line-height: 1.5; + color: #495057; + text-align: center; + white-space: nowrap; + background-color: #eff9ff; + border: 1px solid #ced4da; + border-radius: 0.25rem; +} + +.input-group-lg > .form-control, +.input-group-lg > .form-select, +.input-group-lg > .input-group-text, +.input-group-lg > .btn { + padding: 0.5rem 1rem; + font-size: 1.1rem; + border-radius: 0.3rem; +} + +.input-group-sm > .form-control, +.input-group-sm > .form-select, +.input-group-sm > .input-group-text, +.input-group-sm > .btn { + padding: 0.25rem 0.5rem; + font-size: 0.968rem; + border-radius: 0.2rem; +} + +.input-group-lg > .form-select, +.input-group-sm > .form-select { + padding-right: 3rem; +} + +.input-group:not(.has-validation) > :not(:last-child):not(.dropdown-toggle):not(.dropdown-menu), +.input-group:not(.has-validation) > .dropdown-toggle:nth-last-child(n+3) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.input-group.has-validation > :nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu), +.input-group.has-validation > .dropdown-toggle:nth-last-child(n+4) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.input-group > :not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback) { + margin-left: -1px; + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.valid-feedback { + display: none; + width: 100%; + margin-top: 0.25rem; + font-size: 0.875em; + color: #3ac47d; +} + +.valid-tooltip { + position: absolute; + top: 100%; + z-index: 5; + display: none; + max-width: 100%; + padding: 0.25rem 0.5rem; + margin-top: 0.1rem; + font-size: 0.968rem; + color: #000; + background-color: rgba(58, 196, 125, 0.9); + border-radius: 0.25rem; +} + +.was-validated :valid ~ .valid-feedback, +.was-validated :valid ~ .valid-tooltip, +.is-valid ~ .valid-feedback, +.is-valid ~ .valid-tooltip { + display: block; +} + +.was-validated .form-control:valid, .form-control.is-valid { + border-color: #3ac47d; + padding-right: calc(1.5em + 0.75rem); + background-image: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 8 8%27%3e%3cpath fill=%27%233ac47d%27 d=%27M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z%27/%3e%3c/svg%3e"); + background-repeat: no-repeat; + background-position: right calc(0.375em + 0.1875rem) center; + background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} +.was-validated .form-control:valid:focus, .form-control.is-valid:focus { + border-color: #3ac47d; + box-shadow: 0 0 0 0.25rem rgba(58, 196, 125, 0.25); +} + +.was-validated textarea.form-control:valid, textarea.form-control.is-valid { + padding-right: calc(1.5em + 0.75rem); + background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); +} + +.was-validated .form-select:valid, .form-select.is-valid { + border-color: #3ac47d; +} +.was-validated .form-select:valid:not([multiple]):not([size]), .was-validated .form-select:valid:not([multiple])[size="1"], .form-select.is-valid:not([multiple]):not([size]), .form-select.is-valid:not([multiple])[size="1"] { + padding-right: 4.125rem; + background-image: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27%3e%3cpath fill=%27none%27 stroke=%27%23343a40%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27 stroke-width=%272%27 d=%27M2 5l6 6 6-6%27/%3e%3c/svg%3e"), url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 8 8%27%3e%3cpath fill=%27%233ac47d%27 d=%27M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z%27/%3e%3c/svg%3e"); + background-position: right 0.75rem center, center right 2.25rem; + background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} +.was-validated .form-select:valid:focus, .form-select.is-valid:focus { + border-color: #3ac47d; + box-shadow: 0 0 0 0.25rem rgba(58, 196, 125, 0.25); +} + +.was-validated .form-check-input:valid, .form-check-input.is-valid { + border-color: #3ac47d; +} +.was-validated .form-check-input:valid:checked, .form-check-input.is-valid:checked { + background-color: #3ac47d; +} +.was-validated .form-check-input:valid:focus, .form-check-input.is-valid:focus { + box-shadow: 0 0 0 0.25rem rgba(58, 196, 125, 0.25); +} +.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label { + color: #3ac47d; +} + +.form-check-inline .form-check-input ~ .valid-feedback { + margin-left: 0.5em; +} + +.was-validated .input-group .form-control:valid, .input-group .form-control.is-valid, +.was-validated .input-group .form-select:valid, +.input-group .form-select.is-valid { + z-index: 1; +} +.was-validated .input-group .form-control:valid:focus, .input-group .form-control.is-valid:focus, +.was-validated .input-group .form-select:valid:focus, +.input-group .form-select.is-valid:focus { + z-index: 3; +} + +.invalid-feedback { + display: none; + width: 100%; + margin-top: 0.25rem; + font-size: 0.875em; + color: #d92550; +} + +.invalid-tooltip { + position: absolute; + top: 100%; + z-index: 5; + display: none; + max-width: 100%; + padding: 0.25rem 0.5rem; + margin-top: 0.1rem; + font-size: 0.968rem; + color: #fff; + background-color: rgba(217, 37, 80, 0.9); + border-radius: 0.25rem; +} + +.was-validated :invalid ~ .invalid-feedback, +.was-validated :invalid ~ .invalid-tooltip, +.is-invalid ~ .invalid-feedback, +.is-invalid ~ .invalid-tooltip { + display: block; +} + +.was-validated .form-control:invalid, .form-control.is-invalid { + border-color: #d92550; + padding-right: calc(1.5em + 0.75rem); + background-image: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 12 12%27 width=%2712%27 height=%2712%27 fill=%27none%27 stroke=%27%23d92550%27%3e%3ccircle cx=%276%27 cy=%276%27 r=%274.5%27/%3e%3cpath stroke-linejoin=%27round%27 d=%27M5.8 3.6h.4L6 6.5z%27/%3e%3ccircle cx=%276%27 cy=%278.2%27 r=%27.6%27 fill=%27%23d92550%27 stroke=%27none%27/%3e%3c/svg%3e"); + background-repeat: no-repeat; + background-position: right calc(0.375em + 0.1875rem) center; + background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} +.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus { + border-color: #d92550; + box-shadow: 0 0 0 0.25rem rgba(217, 37, 80, 0.25); +} + +.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid { + padding-right: calc(1.5em + 0.75rem); + background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); +} + +.was-validated .form-select:invalid, .form-select.is-invalid { + border-color: #d92550; +} +.was-validated .form-select:invalid:not([multiple]):not([size]), .was-validated .form-select:invalid:not([multiple])[size="1"], .form-select.is-invalid:not([multiple]):not([size]), .form-select.is-invalid:not([multiple])[size="1"] { + padding-right: 4.125rem; + background-image: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27%3e%3cpath fill=%27none%27 stroke=%27%23343a40%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27 stroke-width=%272%27 d=%27M2 5l6 6 6-6%27/%3e%3c/svg%3e"), url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 12 12%27 width=%2712%27 height=%2712%27 fill=%27none%27 stroke=%27%23d92550%27%3e%3ccircle cx=%276%27 cy=%276%27 r=%274.5%27/%3e%3cpath stroke-linejoin=%27round%27 d=%27M5.8 3.6h.4L6 6.5z%27/%3e%3ccircle cx=%276%27 cy=%278.2%27 r=%27.6%27 fill=%27%23d92550%27 stroke=%27none%27/%3e%3c/svg%3e"); + background-position: right 0.75rem center, center right 2.25rem; + background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} +.was-validated .form-select:invalid:focus, .form-select.is-invalid:focus { + border-color: #d92550; + box-shadow: 0 0 0 0.25rem rgba(217, 37, 80, 0.25); +} + +.was-validated .form-check-input:invalid, .form-check-input.is-invalid { + border-color: #d92550; +} +.was-validated .form-check-input:invalid:checked, .form-check-input.is-invalid:checked { + background-color: #d92550; +} +.was-validated .form-check-input:invalid:focus, .form-check-input.is-invalid:focus { + box-shadow: 0 0 0 0.25rem rgba(217, 37, 80, 0.25); +} +.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label { + color: #d92550; +} + +.form-check-inline .form-check-input ~ .invalid-feedback { + margin-left: 0.5em; +} + +.was-validated .input-group .form-control:invalid, .input-group .form-control.is-invalid, +.was-validated .input-group .form-select:invalid, +.input-group .form-select.is-invalid { + z-index: 2; +} +.was-validated .input-group .form-control:invalid:focus, .input-group .form-control.is-invalid:focus, +.was-validated .input-group .form-select:invalid:focus, +.input-group .form-select.is-invalid:focus { + z-index: 3; +} + +.btn { + display: inline-block; + font-weight: 400; + line-height: 1.5; + color: #495057; + text-align: center; + text-decoration: none; + vertical-align: middle; + cursor: pointer; + user-select: none; + background-color: transparent; + border: 1px solid transparent; + padding: 0.375rem 0.75rem; + font-size: 0.88rem; + border-radius: 0.25rem; + transition: color 0.15s, background-color 0.15s, border-color 0.15s, box-shadow 0.15s; +} +@media (prefers-reduced-motion: reduce) { + .btn { + transition: none; + } +} +.btn:hover { + color: #495057; +} +.btn-check:focus + .btn, .btn:focus { + outline: 0; + box-shadow: none; +} +.btn:disabled, .btn.disabled, fieldset:disabled .btn { + pointer-events: none; + opacity: 0.65; +} + +.btn-primary { + color: #fff; + background-color: #3f6ad8; + border-color: #3f6ad8; +} +.btn-primary:hover { + color: #fff; + background-color: #365ab8; + border-color: #3255ad; +} +.btn-check:focus + .btn-primary, .btn-primary:focus { + color: #fff; + background-color: #365ab8; + border-color: #3255ad; + box-shadow: 0 0 0 0 rgba(92, 128, 222, 0.5); +} +.btn-check:checked + .btn-primary, .btn-check:active + .btn-primary, .btn-primary:active, .btn-primary.active, .show > .btn-primary.dropdown-toggle { + color: #fff; + background-color: #3255ad; + border-color: #2f50a2; +} +.btn-check:checked + .btn-primary:focus, .btn-check:active + .btn-primary:focus, .btn-primary:active:focus, .btn-primary.active:focus, .show > .btn-primary.dropdown-toggle:focus { + box-shadow: 0 0 0 0 rgba(92, 128, 222, 0.5); +} +.btn-primary:disabled, .btn-primary.disabled { + color: #fff; + background-color: #3f6ad8; + border-color: #3f6ad8; +} + +.btn-secondary { + color: #fff; + background-color: #6c757d; + border-color: #6c757d; +} +.btn-secondary:hover { + color: #fff; + background-color: #5c636a; + border-color: #565e64; +} +.btn-check:focus + .btn-secondary, .btn-secondary:focus { + color: #fff; + background-color: #5c636a; + border-color: #565e64; + box-shadow: 0 0 0 0 rgba(130, 138, 145, 0.5); +} +.btn-check:checked + .btn-secondary, .btn-check:active + .btn-secondary, .btn-secondary:active, .btn-secondary.active, .show > .btn-secondary.dropdown-toggle { + color: #fff; + background-color: #565e64; + border-color: #51585e; +} +.btn-check:checked + .btn-secondary:focus, .btn-check:active + .btn-secondary:focus, .btn-secondary:active:focus, .btn-secondary.active:focus, .show > .btn-secondary.dropdown-toggle:focus { + box-shadow: 0 0 0 0 rgba(130, 138, 145, 0.5); +} +.btn-secondary:disabled, .btn-secondary.disabled { + color: #fff; + background-color: #6c757d; + border-color: #6c757d; +} + +.btn-success { + color: #000; + background-color: #3ac47d; + border-color: #3ac47d; +} +.btn-success:hover { + color: #000; + background-color: #58cd91; + border-color: #4eca8a; +} +.btn-check:focus + .btn-success, .btn-success:focus { + color: #000; + background-color: #58cd91; + border-color: #4eca8a; + box-shadow: 0 0 0 0 rgba(49, 167, 106, 0.5); +} +.btn-check:checked + .btn-success, .btn-check:active + .btn-success, .btn-success:active, .btn-success.active, .show > .btn-success.dropdown-toggle { + color: #000; + background-color: #61d097; + border-color: #4eca8a; +} +.btn-check:checked + .btn-success:focus, .btn-check:active + .btn-success:focus, .btn-success:active:focus, .btn-success.active:focus, .show > .btn-success.dropdown-toggle:focus { + box-shadow: 0 0 0 0 rgba(49, 167, 106, 0.5); +} +.btn-success:disabled, .btn-success.disabled { + color: #000; + background-color: #3ac47d; + border-color: #3ac47d; +} + +.btn-info { + color: #000; + background-color: #16aaff; + border-color: #16aaff; +} +.btn-info:hover { + color: #000; + background-color: #39b7ff; + border-color: #2db3ff; +} +.btn-check:focus + .btn-info, .btn-info:focus { + color: #000; + background-color: #39b7ff; + border-color: #2db3ff; + box-shadow: 0 0 0 0 rgba(19, 145, 217, 0.5); +} +.btn-check:checked + .btn-info, .btn-check:active + .btn-info, .btn-info:active, .btn-info.active, .show > .btn-info.dropdown-toggle { + color: #000; + background-color: #45bbff; + border-color: #2db3ff; +} +.btn-check:checked + .btn-info:focus, .btn-check:active + .btn-info:focus, .btn-info:active:focus, .btn-info.active:focus, .show > .btn-info.dropdown-toggle:focus { + box-shadow: 0 0 0 0 rgba(19, 145, 217, 0.5); +} +.btn-info:disabled, .btn-info.disabled { + color: #000; + background-color: #16aaff; + border-color: #16aaff; +} + +.btn-warning { + color: #000; + background-color: #f7b924; + border-color: #f7b924; +} +.btn-warning:hover { + color: #000; + background-color: #f8c445; + border-color: #f8c03a; +} +.btn-check:focus + .btn-warning, .btn-warning:focus { + color: #000; + background-color: #f8c445; + border-color: #f8c03a; + box-shadow: 0 0 0 0 rgba(210, 157, 31, 0.5); +} +.btn-check:checked + .btn-warning, .btn-check:active + .btn-warning, .btn-warning:active, .btn-warning.active, .show > .btn-warning.dropdown-toggle { + color: #000; + background-color: #f9c750; + border-color: #f8c03a; +} +.btn-check:checked + .btn-warning:focus, .btn-check:active + .btn-warning:focus, .btn-warning:active:focus, .btn-warning.active:focus, .show > .btn-warning.dropdown-toggle:focus { + box-shadow: 0 0 0 0 rgba(210, 157, 31, 0.5); +} +.btn-warning:disabled, .btn-warning.disabled { + color: #000; + background-color: #f7b924; + border-color: #f7b924; +} + +.btn-danger { + color: #fff; + background-color: #d92550; + border-color: #d92550; +} +.btn-danger:hover { + color: #fff; + background-color: #b81f44; + border-color: #ae1e40; +} +.btn-check:focus + .btn-danger, .btn-danger:focus { + color: #fff; + background-color: #b81f44; + border-color: #ae1e40; + box-shadow: 0 0 0 0 rgba(223, 70, 106, 0.5); +} +.btn-check:checked + .btn-danger, .btn-check:active + .btn-danger, .btn-danger:active, .btn-danger.active, .show > .btn-danger.dropdown-toggle { + color: #fff; + background-color: #ae1e40; + border-color: #a31c3c; +} +.btn-check:checked + .btn-danger:focus, .btn-check:active + .btn-danger:focus, .btn-danger:active:focus, .btn-danger.active:focus, .show > .btn-danger.dropdown-toggle:focus { + box-shadow: 0 0 0 0 rgba(223, 70, 106, 0.5); +} +.btn-danger:disabled, .btn-danger.disabled { + color: #fff; + background-color: #d92550; + border-color: #d92550; +} + +.btn-light { + color: #000; + background-color: #eeeeee; + border-color: #eeeeee; +} +.btn-light:hover { + color: #000; + background-color: #f1f1f1; + border-color: #f0f0f0; +} +.btn-check:focus + .btn-light, .btn-light:focus { + color: #000; + background-color: #f1f1f1; + border-color: #f0f0f0; + box-shadow: 0 0 0 0 rgba(202, 202, 202, 0.5); +} +.btn-check:checked + .btn-light, .btn-check:active + .btn-light, .btn-light:active, .btn-light.active, .show > .btn-light.dropdown-toggle { + color: #000; + background-color: #f1f1f1; + border-color: #f0f0f0; +} +.btn-check:checked + .btn-light:focus, .btn-check:active + .btn-light:focus, .btn-light:active:focus, .btn-light.active:focus, .show > .btn-light.dropdown-toggle:focus { + box-shadow: 0 0 0 0 rgba(202, 202, 202, 0.5); +} +.btn-light:disabled, .btn-light.disabled { + color: #000; + background-color: #eeeeee; + border-color: #eeeeee; +} + +.btn-dark { + color: #fff; + background-color: #343a40; + border-color: #343a40; +} +.btn-dark:hover { + color: #fff; + background-color: #2c3136; + border-color: #2a2e33; +} +.btn-check:focus + .btn-dark, .btn-dark:focus { + color: #fff; + background-color: #2c3136; + border-color: #2a2e33; + box-shadow: 0 0 0 0 rgba(82, 88, 93, 0.5); +} +.btn-check:checked + .btn-dark, .btn-check:active + .btn-dark, .btn-dark:active, .btn-dark.active, .show > .btn-dark.dropdown-toggle { + color: #fff; + background-color: #2a2e33; + border-color: #272c30; +} +.btn-check:checked + .btn-dark:focus, .btn-check:active + .btn-dark:focus, .btn-dark:active:focus, .btn-dark.active:focus, .show > .btn-dark.dropdown-toggle:focus { + box-shadow: 0 0 0 0 rgba(82, 88, 93, 0.5); +} +.btn-dark:disabled, .btn-dark.disabled { + color: #fff; + background-color: #343a40; + border-color: #343a40; +} + +.btn-focus { + color: #fff; + background-color: #444054; + border-color: #444054; +} +.btn-focus:hover { + color: #fff; + background-color: #3a3647; + border-color: #363343; +} +.btn-check:focus + .btn-focus, .btn-focus:focus { + color: #fff; + background-color: #3a3647; + border-color: #363343; + box-shadow: 0 0 0 0 rgba(96, 93, 110, 0.5); +} +.btn-check:checked + .btn-focus, .btn-check:active + .btn-focus, .btn-focus:active, .btn-focus.active, .show > .btn-focus.dropdown-toggle { + color: #fff; + background-color: #363343; + border-color: #33303f; +} +.btn-check:checked + .btn-focus:focus, .btn-check:active + .btn-focus:focus, .btn-focus:active:focus, .btn-focus.active:focus, .show > .btn-focus.dropdown-toggle:focus { + box-shadow: 0 0 0 0 rgba(96, 93, 110, 0.5); +} +.btn-focus:disabled, .btn-focus.disabled { + color: #fff; + background-color: #444054; + border-color: #444054; +} + +.btn-alternate { + color: #fff; + background-color: #794c8a; + border-color: #794c8a; +} +.btn-alternate:hover { + color: #fff; + background-color: #674175; + border-color: #613d6e; +} +.btn-check:focus + .btn-alternate, .btn-alternate:focus { + color: #fff; + background-color: #674175; + border-color: #613d6e; + box-shadow: 0 0 0 0 rgba(141, 103, 156, 0.5); +} +.btn-check:checked + .btn-alternate, .btn-check:active + .btn-alternate, .btn-alternate:active, .btn-alternate.active, .show > .btn-alternate.dropdown-toggle { + color: #fff; + background-color: #613d6e; + border-color: #5b3968; +} +.btn-check:checked + .btn-alternate:focus, .btn-check:active + .btn-alternate:focus, .btn-alternate:active:focus, .btn-alternate.active:focus, .show > .btn-alternate.dropdown-toggle:focus { + box-shadow: 0 0 0 0 rgba(141, 103, 156, 0.5); +} +.btn-alternate:disabled, .btn-alternate.disabled { + color: #fff; + background-color: #794c8a; + border-color: #794c8a; +} + +.btn-outline-primary { + color: #3f6ad8; + border-color: #3f6ad8; +} +.btn-outline-primary:hover { + color: #fff; + background-color: #3f6ad8; + border-color: #3f6ad8; +} +.btn-check:focus + .btn-outline-primary, .btn-outline-primary:focus { + box-shadow: 0 0 0 0 rgba(63, 106, 216, 0.5); +} +.btn-check:checked + .btn-outline-primary, .btn-check:active + .btn-outline-primary, .btn-outline-primary:active, .btn-outline-primary.active, .btn-outline-primary.dropdown-toggle.show { + color: #fff; + background-color: #3f6ad8; + border-color: #3f6ad8; +} +.btn-check:checked + .btn-outline-primary:focus, .btn-check:active + .btn-outline-primary:focus, .btn-outline-primary:active:focus, .btn-outline-primary.active:focus, .btn-outline-primary.dropdown-toggle.show:focus { + box-shadow: 0 0 0 0 rgba(63, 106, 216, 0.5); +} +.btn-outline-primary:disabled, .btn-outline-primary.disabled { + color: #3f6ad8; + background-color: transparent; +} + +.btn-outline-secondary { + color: #6c757d; + border-color: #6c757d; +} +.btn-outline-secondary:hover { + color: #fff; + background-color: #6c757d; + border-color: #6c757d; +} +.btn-check:focus + .btn-outline-secondary, .btn-outline-secondary:focus { + box-shadow: 0 0 0 0 rgba(108, 117, 125, 0.5); +} +.btn-check:checked + .btn-outline-secondary, .btn-check:active + .btn-outline-secondary, .btn-outline-secondary:active, .btn-outline-secondary.active, .btn-outline-secondary.dropdown-toggle.show { + color: #fff; + background-color: #6c757d; + border-color: #6c757d; +} +.btn-check:checked + .btn-outline-secondary:focus, .btn-check:active + .btn-outline-secondary:focus, .btn-outline-secondary:active:focus, .btn-outline-secondary.active:focus, .btn-outline-secondary.dropdown-toggle.show:focus { + box-shadow: 0 0 0 0 rgba(108, 117, 125, 0.5); +} +.btn-outline-secondary:disabled, .btn-outline-secondary.disabled { + color: #6c757d; + background-color: transparent; +} + +.btn-outline-success { + color: #3ac47d; + border-color: #3ac47d; +} +.btn-outline-success:hover { + color: #000; + background-color: #3ac47d; + border-color: #3ac47d; +} +.btn-check:focus + .btn-outline-success, .btn-outline-success:focus { + box-shadow: 0 0 0 0 rgba(58, 196, 125, 0.5); +} +.btn-check:checked + .btn-outline-success, .btn-check:active + .btn-outline-success, .btn-outline-success:active, .btn-outline-success.active, .btn-outline-success.dropdown-toggle.show { + color: #000; + background-color: #3ac47d; + border-color: #3ac47d; +} +.btn-check:checked + .btn-outline-success:focus, .btn-check:active + .btn-outline-success:focus, .btn-outline-success:active:focus, .btn-outline-success.active:focus, .btn-outline-success.dropdown-toggle.show:focus { + box-shadow: 0 0 0 0 rgba(58, 196, 125, 0.5); +} +.btn-outline-success:disabled, .btn-outline-success.disabled { + color: #3ac47d; + background-color: transparent; +} + +.btn-outline-info { + color: #16aaff; + border-color: #16aaff; +} +.btn-outline-info:hover { + color: #000; + background-color: #16aaff; + border-color: #16aaff; +} +.btn-check:focus + .btn-outline-info, .btn-outline-info:focus { + box-shadow: 0 0 0 0 rgba(22, 170, 255, 0.5); +} +.btn-check:checked + .btn-outline-info, .btn-check:active + .btn-outline-info, .btn-outline-info:active, .btn-outline-info.active, .btn-outline-info.dropdown-toggle.show { + color: #000; + background-color: #16aaff; + border-color: #16aaff; +} +.btn-check:checked + .btn-outline-info:focus, .btn-check:active + .btn-outline-info:focus, .btn-outline-info:active:focus, .btn-outline-info.active:focus, .btn-outline-info.dropdown-toggle.show:focus { + box-shadow: 0 0 0 0 rgba(22, 170, 255, 0.5); +} +.btn-outline-info:disabled, .btn-outline-info.disabled { + color: #16aaff; + background-color: transparent; +} + +.btn-outline-warning { + color: #f7b924; + border-color: #f7b924; +} +.btn-outline-warning:hover { + color: #000; + background-color: #f7b924; + border-color: #f7b924; +} +.btn-check:focus + .btn-outline-warning, .btn-outline-warning:focus { + box-shadow: 0 0 0 0 rgba(247, 185, 36, 0.5); +} +.btn-check:checked + .btn-outline-warning, .btn-check:active + .btn-outline-warning, .btn-outline-warning:active, .btn-outline-warning.active, .btn-outline-warning.dropdown-toggle.show { + color: #000; + background-color: #f7b924; + border-color: #f7b924; +} +.btn-check:checked + .btn-outline-warning:focus, .btn-check:active + .btn-outline-warning:focus, .btn-outline-warning:active:focus, .btn-outline-warning.active:focus, .btn-outline-warning.dropdown-toggle.show:focus { + box-shadow: 0 0 0 0 rgba(247, 185, 36, 0.5); +} +.btn-outline-warning:disabled, .btn-outline-warning.disabled { + color: #f7b924; + background-color: transparent; +} + +.btn-outline-danger { + color: #d92550; + border-color: #d92550; +} +.btn-outline-danger:hover { + color: #fff; + background-color: #d92550; + border-color: #d92550; +} +.btn-check:focus + .btn-outline-danger, .btn-outline-danger:focus { + box-shadow: 0 0 0 0 rgba(217, 37, 80, 0.5); +} +.btn-check:checked + .btn-outline-danger, .btn-check:active + .btn-outline-danger, .btn-outline-danger:active, .btn-outline-danger.active, .btn-outline-danger.dropdown-toggle.show { + color: #fff; + background-color: #d92550; + border-color: #d92550; +} +.btn-check:checked + .btn-outline-danger:focus, .btn-check:active + .btn-outline-danger:focus, .btn-outline-danger:active:focus, .btn-outline-danger.active:focus, .btn-outline-danger.dropdown-toggle.show:focus { + box-shadow: 0 0 0 0 rgba(217, 37, 80, 0.5); +} +.btn-outline-danger:disabled, .btn-outline-danger.disabled { + color: #d92550; + background-color: transparent; +} + +.btn-outline-light { + color: #eeeeee; + border-color: #eeeeee; +} +.btn-outline-light:hover { + color: #000; + background-color: #eeeeee; + border-color: #eeeeee; +} +.btn-check:focus + .btn-outline-light, .btn-outline-light:focus { + box-shadow: 0 0 0 0 rgba(238, 238, 238, 0.5); +} +.btn-check:checked + .btn-outline-light, .btn-check:active + .btn-outline-light, .btn-outline-light:active, .btn-outline-light.active, .btn-outline-light.dropdown-toggle.show { + color: #000; + background-color: #eeeeee; + border-color: #eeeeee; +} +.btn-check:checked + .btn-outline-light:focus, .btn-check:active + .btn-outline-light:focus, .btn-outline-light:active:focus, .btn-outline-light.active:focus, .btn-outline-light.dropdown-toggle.show:focus { + box-shadow: 0 0 0 0 rgba(238, 238, 238, 0.5); +} +.btn-outline-light:disabled, .btn-outline-light.disabled { + color: #eeeeee; + background-color: transparent; +} + +.btn-outline-dark { + color: #343a40; + border-color: #343a40; +} +.btn-outline-dark:hover { + color: #fff; + background-color: #343a40; + border-color: #343a40; +} +.btn-check:focus + .btn-outline-dark, .btn-outline-dark:focus { + box-shadow: 0 0 0 0 rgba(52, 58, 64, 0.5); +} +.btn-check:checked + .btn-outline-dark, .btn-check:active + .btn-outline-dark, .btn-outline-dark:active, .btn-outline-dark.active, .btn-outline-dark.dropdown-toggle.show { + color: #fff; + background-color: #343a40; + border-color: #343a40; +} +.btn-check:checked + .btn-outline-dark:focus, .btn-check:active + .btn-outline-dark:focus, .btn-outline-dark:active:focus, .btn-outline-dark.active:focus, .btn-outline-dark.dropdown-toggle.show:focus { + 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-focus { + color: #444054; + border-color: #444054; +} +.btn-outline-focus:hover { + color: #fff; + background-color: #444054; + border-color: #444054; +} +.btn-check:focus + .btn-outline-focus, .btn-outline-focus:focus { + box-shadow: 0 0 0 0 rgba(68, 64, 84, 0.5); +} +.btn-check:checked + .btn-outline-focus, .btn-check:active + .btn-outline-focus, .btn-outline-focus:active, .btn-outline-focus.active, .btn-outline-focus.dropdown-toggle.show { + color: #fff; + background-color: #444054; + border-color: #444054; +} +.btn-check:checked + .btn-outline-focus:focus, .btn-check:active + .btn-outline-focus:focus, .btn-outline-focus:active:focus, .btn-outline-focus.active:focus, .btn-outline-focus.dropdown-toggle.show:focus { + box-shadow: 0 0 0 0 rgba(68, 64, 84, 0.5); +} +.btn-outline-focus:disabled, .btn-outline-focus.disabled { + color: #444054; + background-color: transparent; +} + +.btn-outline-alternate { + color: #794c8a; + border-color: #794c8a; +} +.btn-outline-alternate:hover { + color: #fff; + background-color: #794c8a; + border-color: #794c8a; +} +.btn-check:focus + .btn-outline-alternate, .btn-outline-alternate:focus { + box-shadow: 0 0 0 0 rgba(121, 76, 138, 0.5); +} +.btn-check:checked + .btn-outline-alternate, .btn-check:active + .btn-outline-alternate, .btn-outline-alternate:active, .btn-outline-alternate.active, .btn-outline-alternate.dropdown-toggle.show { + color: #fff; + background-color: #794c8a; + border-color: #794c8a; +} +.btn-check:checked + .btn-outline-alternate:focus, .btn-check:active + .btn-outline-alternate:focus, .btn-outline-alternate:active:focus, .btn-outline-alternate.active:focus, .btn-outline-alternate.dropdown-toggle.show:focus { + box-shadow: 0 0 0 0 rgba(121, 76, 138, 0.5); +} +.btn-outline-alternate:disabled, .btn-outline-alternate.disabled { + color: #794c8a; + background-color: transparent; +} + +.btn-link { + font-weight: 400; + color: #3f6ad8; + text-decoration: underline; +} +.btn-link:hover { + color: #3255ad; +} +.btn-link:disabled, .btn-link.disabled { + color: #6c757d; +} + +.btn-lg, .btn-group-lg > .btn { + padding: 0.5rem 1rem; + font-size: 1.1rem; + border-radius: 0.3rem; +} + +.btn-sm, .btn-group-sm > .btn { + padding: 0.25rem 0.5rem; + font-size: 0.968rem; + border-radius: 0.2rem; +} + +.fade { + transition: opacity 0.15s linear; +} +@media (prefers-reduced-motion: reduce) { + .fade { + transition: none; + } +} +.fade:not(.show) { + opacity: 0; +} + +.collapse:not(.show) { + display: none; +} + +.collapsing { + height: 0; + overflow: hidden; + transition: height 0.35s ease; +} +@media (prefers-reduced-motion: reduce) { + .collapsing { + transition: none; + } +} + +.dropup, +.dropend, +.dropdown, +.dropstart { + position: relative; +} + +.dropdown-toggle { + white-space: nowrap; +} +.dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid; + border-right: 0.3em solid transparent; + border-bottom: 0; + border-left: 0.3em solid transparent; +} +.dropdown-toggle:empty::after { + margin-left: 0; +} + +.dropdown-menu { + position: absolute; + z-index: 1000; + display: none; + min-width: 15rem; + padding: 0.65rem 0; + margin: 0; + font-size: 0.88rem; + color: #495057; + text-align: left; + list-style: none; + background-color: #fff; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.15); + border-radius: 0.25rem; +} +.dropdown-menu[data-bs-popper] { + top: 100%; + left: 0; + margin-top: 0.125rem; +} + +.dropdown-menu-start { + --bs-position: start; +} +.dropdown-menu-start[data-bs-popper] { + right: auto; + left: 0; +} + +.dropdown-menu-end { + --bs-position: end; +} +.dropdown-menu-end[data-bs-popper] { + right: 0; + left: auto; +} + +@media (min-width: 576px) { + .dropdown-menu-sm-start { + --bs-position: start; + } + .dropdown-menu-sm-start[data-bs-popper] { + right: auto; + left: 0; + } + .dropdown-menu-sm-end { + --bs-position: end; + } + .dropdown-menu-sm-end[data-bs-popper] { + right: 0; + left: auto; + } +} +@media (min-width: 768px) { + .dropdown-menu-md-start { + --bs-position: start; + } + .dropdown-menu-md-start[data-bs-popper] { + right: auto; + left: 0; + } + .dropdown-menu-md-end { + --bs-position: end; + } + .dropdown-menu-md-end[data-bs-popper] { + right: 0; + left: auto; + } +} +@media (min-width: 992px) { + .dropdown-menu-lg-start { + --bs-position: start; + } + .dropdown-menu-lg-start[data-bs-popper] { + right: auto; + left: 0; + } + .dropdown-menu-lg-end { + --bs-position: end; + } + .dropdown-menu-lg-end[data-bs-popper] { + right: 0; + left: auto; + } +} +@media (min-width: 1200px) { + .dropdown-menu-xl-start { + --bs-position: start; + } + .dropdown-menu-xl-start[data-bs-popper] { + right: auto; + left: 0; + } + .dropdown-menu-xl-end { + --bs-position: end; + } + .dropdown-menu-xl-end[data-bs-popper] { + right: 0; + left: auto; + } +} +@media (min-width: 1400px) { + .dropdown-menu-xxl-start { + --bs-position: start; + } + .dropdown-menu-xxl-start[data-bs-popper] { + right: auto; + left: 0; + } + .dropdown-menu-xxl-end { + --bs-position: end; + } + .dropdown-menu-xxl-end[data-bs-popper] { + right: 0; + left: auto; + } +} +.dropup .dropdown-menu[data-bs-popper] { + top: auto; + bottom: 100%; + margin-top: 0; + margin-bottom: 0.125rem; +} +.dropup .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0; + border-right: 0.3em solid transparent; + border-bottom: 0.3em solid; + border-left: 0.3em solid transparent; +} +.dropup .dropdown-toggle:empty::after { + margin-left: 0; +} + +.dropend .dropdown-menu[data-bs-popper] { + top: 0; + right: auto; + left: 100%; + margin-top: 0; + margin-left: 0.125rem; +} +.dropend .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid transparent; + border-right: 0; + border-bottom: 0.3em solid transparent; + border-left: 0.3em solid; +} +.dropend .dropdown-toggle:empty::after { + margin-left: 0; +} +.dropend .dropdown-toggle::after { + vertical-align: 0; +} + +.dropstart .dropdown-menu[data-bs-popper] { + top: 0; + right: 100%; + left: auto; + margin-top: 0; + margin-right: 0.125rem; +} +.dropstart .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; +} +.dropstart .dropdown-toggle::after { + display: none; +} +.dropstart .dropdown-toggle::before { + display: inline-block; + margin-right: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid transparent; + border-right: 0.3em solid; + border-bottom: 0.3em solid transparent; +} +.dropstart .dropdown-toggle:empty::after { + margin-left: 0; +} +.dropstart .dropdown-toggle::before { + vertical-align: 0; +} + +.dropdown-divider { + height: 0; + margin: 0.5rem 0; + overflow: hidden; + border-top: 1px solid rgba(0, 0, 0, 0.15); +} + +.dropdown-item { + display: block; + width: 100%; + padding: 0.4rem 1rem; + clear: both; + font-weight: 400; + color: #212529; + text-align: inherit; + text-decoration: none; + white-space: nowrap; + background-color: transparent; + border: 0; +} +.dropdown-item:hover, .dropdown-item:focus { + color: #1e2125; + background-color: #e0f3ff; +} +.dropdown-item.active, .dropdown-item:active { + color: #fff; + text-decoration: none; + background-color: #3f6ad8; +} +.dropdown-item.disabled, .dropdown-item:disabled { + color: #adb5bd; + pointer-events: none; + background-color: transparent; +} + +.dropdown-menu.show { + display: block; +} + +.dropdown-header { + display: block; + padding: 0.65rem 1rem; + margin-bottom: 0; + font-size: 0.968rem; + color: #6c757d; + white-space: nowrap; +} + +.dropdown-item-text { + display: block; + padding: 0.4rem 1rem; + color: #212529; +} + +.dropdown-menu-dark { + color: #dee2e6; + background-color: #343a40; + border-color: rgba(0, 0, 0, 0.15); +} +.dropdown-menu-dark .dropdown-item { + color: #dee2e6; +} +.dropdown-menu-dark .dropdown-item:hover, .dropdown-menu-dark .dropdown-item:focus { + color: #fff; + background-color: rgba(255, 255, 255, 0.15); +} +.dropdown-menu-dark .dropdown-item.active, .dropdown-menu-dark .dropdown-item:active { + color: #fff; + background-color: #3f6ad8; +} +.dropdown-menu-dark .dropdown-item.disabled, .dropdown-menu-dark .dropdown-item:disabled { + color: #adb5bd; +} +.dropdown-menu-dark .dropdown-divider { + border-color: rgba(0, 0, 0, 0.15); +} +.dropdown-menu-dark .dropdown-item-text { + color: #dee2e6; +} +.dropdown-menu-dark .dropdown-header { + color: #adb5bd; +} + +.btn-group, +.btn-group-vertical { + position: relative; + display: inline-flex; + vertical-align: middle; +} +.btn-group > .btn, +.btn-group-vertical > .btn { + position: relative; + flex: 1 1 auto; +} +.btn-group > .btn-check:checked + .btn, +.btn-group > .btn-check:focus + .btn, +.btn-group > .btn:hover, +.btn-group > .btn:focus, +.btn-group > .btn:active, +.btn-group > .btn.active, +.btn-group-vertical > .btn-check:checked + .btn, +.btn-group-vertical > .btn-check:focus + .btn, +.btn-group-vertical > .btn:hover, +.btn-group-vertical > .btn:focus, +.btn-group-vertical > .btn:active, +.btn-group-vertical > .btn.active { + z-index: 1; +} + +.btn-toolbar { + display: flex; + flex-wrap: wrap; + justify-content: flex-start; +} +.btn-toolbar .input-group { + width: auto; +} + +.btn-group > .btn:not(:first-child), +.btn-group > .btn-group:not(:first-child) { + margin-left: -1px; +} +.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:nth-child(n+3), +.btn-group > :not(.btn-check) + .btn, +.btn-group > .btn-group:not(:first-child) > .btn { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.dropdown-toggle-split { + padding-right: 0.5625rem; + padding-left: 0.5625rem; +} +.dropdown-toggle-split::after, .dropup .dropdown-toggle-split::after, .dropend .dropdown-toggle-split::after { + margin-left: 0; +} +.dropstart .dropdown-toggle-split::before { + margin-right: 0; +} + +.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split { + padding-right: 0.375rem; + padding-left: 0.375rem; +} + +.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split { + padding-right: 0.75rem; + padding-left: 0.75rem; +} + +.btn-group-vertical { + flex-direction: column; + align-items: flex-start; + justify-content: center; +} +.btn-group-vertical > .btn, +.btn-group-vertical > .btn-group { + width: 100%; +} +.btn-group-vertical > .btn:not(:first-child), +.btn-group-vertical > .btn-group:not(:first-child) { + margin-top: -1px; +} +.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle), +.btn-group-vertical > .btn-group:not(:last-child) > .btn { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} +.btn-group-vertical > .btn ~ .btn, +.btn-group-vertical > .btn-group:not(:first-child) > .btn { + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.nav { + display: flex; + flex-wrap: wrap; + padding-left: 0; + margin-bottom: 0; + list-style: none; +} + +.nav-link { + display: block; + padding: 0.5rem 1rem; + color: #3f6ad8; + text-decoration: none; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .nav-link { + transition: none; + } +} +.nav-link:hover, .nav-link:focus { + color: #3255ad; +} +.nav-link.disabled { + color: #6c757d; + pointer-events: none; + cursor: default; +} + +.nav-tabs { + border-bottom: 1px solid #dee2e6; +} +.nav-tabs .nav-link { + margin-bottom: -1px; + background: none; + border: 1px solid transparent; + border-top-left-radius: 0.25rem; + border-top-right-radius: 0.25rem; +} +.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus { + border-color: #e9ecef #e9ecef #dee2e6; + isolation: isolate; +} +.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: -1px; + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.nav-pills .nav-link { + background: none; + border: 0; + border-radius: 0.25rem; +} +.nav-pills .nav-link.active, +.nav-pills .show > .nav-link { + color: #fff; + background-color: #3f6ad8; +} + +.nav-fill > .nav-link, +.nav-fill .nav-item { + flex: 1 1 auto; + text-align: center; +} + +.nav-justified > .nav-link, +.nav-justified .nav-item { + flex-basis: 0; + flex-grow: 1; + text-align: center; +} + +.nav-fill .nav-item .nav-link, +.nav-justified .nav-item .nav-link { + width: 100%; +} + +.tab-content > .tab-pane { + display: none; +} +.tab-content > .active { + display: block; +} + +.navbar { + position: relative; + display: flex; + flex-wrap: wrap; + align-items: center; + justify-content: space-between; + padding-top: 0.5rem; + padding-bottom: 0.5rem; +} +.navbar > .container, +.navbar > .container-fluid, +.navbar > .container-sm, +.navbar > .container-md, +.navbar > .container-lg, +.navbar > .container-xl, +.navbar > .container-xxl { + display: flex; + flex-wrap: inherit; + align-items: center; + justify-content: space-between; +} +.navbar-brand { + padding-top: 0.335rem; + padding-bottom: 0.335rem; + margin-right: 1rem; + font-size: 1.1rem; + text-decoration: none; + white-space: nowrap; +} +.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; +} + +.navbar-text { + padding-top: 0.5rem; + padding-bottom: 0.5rem; +} + +.navbar-collapse { + flex-basis: 100%; + flex-grow: 1; + align-items: center; +} + +.navbar-toggler { + padding: 0.25rem 0.75rem; + font-size: 1.1rem; + line-height: 1; + background-color: transparent; + border: 1px solid transparent; + border-radius: 0.25rem; + transition: box-shadow 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .navbar-toggler { + transition: none; + } +} +.navbar-toggler:hover { + text-decoration: none; +} +.navbar-toggler:focus { + text-decoration: none; + outline: 0; + box-shadow: 0 0 0 0; +} + +.navbar-toggler-icon { + display: inline-block; + width: 1.5em; + height: 1.5em; + vertical-align: middle; + background-repeat: no-repeat; + background-position: center; + background-size: 100%; +} + +.navbar-nav-scroll { + max-height: var(--bs-scroll-height, 75vh); + overflow-y: auto; +} + +@media (min-width: 576px) { + .navbar-expand-sm { + flex-wrap: nowrap; + justify-content: flex-start; + } + .navbar-expand-sm .navbar-nav { + flex-direction: row; + } + .navbar-expand-sm .navbar-nav .dropdown-menu { + position: absolute; + } + .navbar-expand-sm .navbar-nav .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; + } + .navbar-expand-sm .navbar-nav-scroll { + overflow: visible; + } + .navbar-expand-sm .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + .navbar-expand-sm .navbar-toggler { + display: none; + } +} +@media (min-width: 768px) { + .navbar-expand-md { + flex-wrap: nowrap; + justify-content: flex-start; + } + .navbar-expand-md .navbar-nav { + flex-direction: row; + } + .navbar-expand-md .navbar-nav .dropdown-menu { + position: absolute; + } + .navbar-expand-md .navbar-nav .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; + } + .navbar-expand-md .navbar-nav-scroll { + overflow: visible; + } + .navbar-expand-md .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + .navbar-expand-md .navbar-toggler { + display: none; + } +} +@media (min-width: 992px) { + .navbar-expand-lg { + flex-wrap: nowrap; + justify-content: flex-start; + } + .navbar-expand-lg .navbar-nav { + flex-direction: row; + } + .navbar-expand-lg .navbar-nav .dropdown-menu { + position: absolute; + } + .navbar-expand-lg .navbar-nav .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; + } + .navbar-expand-lg .navbar-nav-scroll { + overflow: visible; + } + .navbar-expand-lg .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + .navbar-expand-lg .navbar-toggler { + display: none; + } +} +@media (min-width: 1200px) { + .navbar-expand-xl { + flex-wrap: nowrap; + justify-content: flex-start; + } + .navbar-expand-xl .navbar-nav { + flex-direction: row; + } + .navbar-expand-xl .navbar-nav .dropdown-menu { + position: absolute; + } + .navbar-expand-xl .navbar-nav .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; + } + .navbar-expand-xl .navbar-nav-scroll { + overflow: visible; + } + .navbar-expand-xl .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + .navbar-expand-xl .navbar-toggler { + display: none; + } +} +@media (min-width: 1400px) { + .navbar-expand-xxl { + flex-wrap: nowrap; + justify-content: flex-start; + } + .navbar-expand-xxl .navbar-nav { + flex-direction: row; + } + .navbar-expand-xxl .navbar-nav .dropdown-menu { + position: absolute; + } + .navbar-expand-xxl .navbar-nav .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; + } + .navbar-expand-xxl .navbar-nav-scroll { + overflow: visible; + } + .navbar-expand-xxl .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + .navbar-expand-xxl .navbar-toggler { + display: none; + } +} +.navbar-expand { + flex-wrap: nowrap; + justify-content: flex-start; +} +.navbar-expand .navbar-nav { + flex-direction: row; +} +.navbar-expand .navbar-nav .dropdown-menu { + position: absolute; +} +.navbar-expand .navbar-nav .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; +} +.navbar-expand .navbar-nav-scroll { + overflow: visible; +} +.navbar-expand .navbar-collapse { + display: flex !important; + flex-basis: auto; +} +.navbar-expand .navbar-toggler { + display: none; +} + +.navbar-light .navbar-brand { + color: rgba(0, 0, 0, 0.9); +} +.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus { + color: rgba(0, 0, 0, 0.9); +} +.navbar-light .navbar-nav .nav-link { + color: rgba(0, 0, 0, 0.55); +} +.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus { + color: rgba(0, 0, 0, 0.7); +} +.navbar-light .navbar-nav .nav-link.disabled { + color: rgba(0, 0, 0, 0.3); +} +.navbar-light .navbar-nav .show > .nav-link, +.navbar-light .navbar-nav .nav-link.active { + color: rgba(0, 0, 0, 0.9); +} +.navbar-light .navbar-toggler { + color: rgba(0, 0, 0, 0.55); + border-color: rgba(0, 0, 0, 0.1); +} +.navbar-light .navbar-toggler-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 30 30%27%3e%3cpath stroke=%27rgba%280, 0, 0, 0.55%29%27 stroke-linecap=%27round%27 stroke-miterlimit=%2710%27 stroke-width=%272%27 d=%27M4 7h22M4 15h22M4 23h22%27/%3e%3c/svg%3e"); +} +.navbar-light .navbar-text { + color: rgba(0, 0, 0, 0.55); +} +.navbar-light .navbar-text a, +.navbar-light .navbar-text a:hover, +.navbar-light .navbar-text a:focus { + color: rgba(0, 0, 0, 0.9); +} + +.navbar-dark .navbar-brand { + color: #fff; +} +.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus { + color: #fff; +} +.navbar-dark .navbar-nav .nav-link { + color: rgba(255, 255, 255, 0.55); +} +.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus { + color: rgba(255, 255, 255, 0.75); +} +.navbar-dark .navbar-nav .nav-link.disabled { + color: rgba(255, 255, 255, 0.25); +} +.navbar-dark .navbar-nav .show > .nav-link, +.navbar-dark .navbar-nav .nav-link.active { + color: #fff; +} +.navbar-dark .navbar-toggler { + color: rgba(255, 255, 255, 0.55); + border-color: rgba(255, 255, 255, 0.1); +} +.navbar-dark .navbar-toggler-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 30 30%27%3e%3cpath stroke=%27rgba%28255, 255, 255, 0.55%29%27 stroke-linecap=%27round%27 stroke-miterlimit=%2710%27 stroke-width=%272%27 d=%27M4 7h22M4 15h22M4 23h22%27/%3e%3c/svg%3e"); +} +.navbar-dark .navbar-text { + color: rgba(255, 255, 255, 0.55); +} +.navbar-dark .navbar-text a, +.navbar-dark .navbar-text a:hover, +.navbar-dark .navbar-text a:focus { + color: #fff; +} + +.card { + position: relative; + display: flex; + flex-direction: column; + min-width: 0; + word-wrap: break-word; + background-color: #fff; + background-clip: border-box; + border: 1px solid rgba(26, 54, 126, 0.125); + border-radius: 0.25rem; +} +.card > hr { + margin-right: 0; + margin-left: 0; +} +.card > .list-group { + border-top: inherit; + border-bottom: inherit; +} +.card > .list-group:first-child { + border-top-width: 0; + border-top-left-radius: calc(0.25rem - 1px); + border-top-right-radius: calc(0.25rem - 1px); +} +.card > .list-group:last-child { + border-bottom-width: 0; + border-bottom-right-radius: calc(0.25rem - 1px); + border-bottom-left-radius: calc(0.25rem - 1px); +} +.card > .card-header + .list-group, +.card > .list-group + .card-footer { + border-top: 0; +} + +.card-body { + flex: 1 1 auto; + padding: 1rem 1rem; +} + +.card-title { + margin-bottom: 0.5rem; +} + +.card-subtitle { + margin-top: -0.25rem; + margin-bottom: 0; +} + +.card-text:last-child { + margin-bottom: 0; +} + +.card-link:hover { + text-decoration: none; +} +.card-link + .card-link { + margin-left: 1rem; +} + +.card-header { + padding: 0.5rem 1rem; + margin-bottom: 0; + background-color: #fff; + border-bottom: 1px solid rgba(26, 54, 126, 0.125); +} +.card-header:first-child { + border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0; +} + +.card-footer { + padding: 0.5rem 1rem; + background-color: #fff; + border-top: 1px solid rgba(26, 54, 126, 0.125); +} +.card-footer:last-child { + border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px); +} + +.card-header-tabs { + margin-right: -0.5rem; + margin-bottom: -0.5rem; + margin-left: -0.5rem; + border-bottom: 0; +} + +.card-header-pills { + margin-right: -0.5rem; + margin-left: -0.5rem; +} + +.card-img-overlay { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + padding: 1rem; + border-radius: calc(0.25rem - 1px); +} + +.card-img, +.card-img-top, +.card-img-bottom { + width: 100%; +} + +.card-img, +.card-img-top { + border-top-left-radius: calc(0.25rem - 1px); + border-top-right-radius: calc(0.25rem - 1px); +} + +.card-img, +.card-img-bottom { + border-bottom-right-radius: calc(0.25rem - 1px); + border-bottom-left-radius: calc(0.25rem - 1px); +} + +.card-group > .card { + margin-bottom: 0.75rem; +} +@media (min-width: 576px) { + .card-group { + display: flex; + 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:not(:last-child) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; + } + .card-group > .card:not(:last-child) .card-img-top, +.card-group > .card:not(:last-child) .card-header { + border-top-right-radius: 0; + } + .card-group > .card:not(:last-child) .card-img-bottom, +.card-group > .card:not(:last-child) .card-footer { + border-bottom-right-radius: 0; + } + .card-group > .card:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; + } + .card-group > .card:not(:first-child) .card-img-top, +.card-group > .card:not(:first-child) .card-header { + border-top-left-radius: 0; + } + .card-group > .card:not(:first-child) .card-img-bottom, +.card-group > .card:not(:first-child) .card-footer { + border-bottom-left-radius: 0; + } +} + +.accordion-button { + position: relative; + display: flex; + align-items: center; + width: 100%; + padding: 1rem 1.25rem; + font-size: 0.88rem; + color: #495057; + text-align: left; + background-color: #fff; + border: 0; + border-radius: 0; + overflow-anchor: none; + transition: color 0.15s, background-color 0.15s, border-color 0.15s, box-shadow 0.15s, border-radius 0.15s ease; +} +@media (prefers-reduced-motion: reduce) { + .accordion-button { + transition: none; + } +} +.accordion-button:not(.collapsed) { + color: #395fc2; + background-color: #ecf0fb; + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.125); +} +.accordion-button:not(.collapsed)::after { + background-image: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27 fill=%27%23395fc2%27%3e%3cpath fill-rule=%27evenodd%27 d=%27M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z%27/%3e%3c/svg%3e"); + transform: rotate(-180deg); +} +.accordion-button::after { + flex-shrink: 0; + width: 1.25rem; + height: 1.25rem; + margin-left: auto; + content: ""; + background-image: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27 fill=%27%23495057%27%3e%3cpath fill-rule=%27evenodd%27 d=%27M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z%27/%3e%3c/svg%3e"); + background-repeat: no-repeat; + background-size: 1.25rem; + transition: transform 0.2s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .accordion-button::after { + transition: none; + } +} +.accordion-button:hover { + z-index: 2; +} +.accordion-button:focus { + z-index: 3; + border-color: #a9bcee; + outline: 0; + box-shadow: none; +} + +.accordion-header { + margin-bottom: 0; +} + +.accordion-item { + background-color: #fff; + border: 1px solid rgba(0, 0, 0, 0.125); +} +.accordion-item:first-of-type { + border-top-left-radius: 0.25rem; + border-top-right-radius: 0.25rem; +} +.accordion-item:first-of-type .accordion-button { + border-top-left-radius: calc(0.25rem - 1px); + border-top-right-radius: calc(0.25rem - 1px); +} +.accordion-item:not(:first-of-type) { + border-top: 0; +} +.accordion-item:last-of-type { + border-bottom-right-radius: 0.25rem; + border-bottom-left-radius: 0.25rem; +} +.accordion-item:last-of-type .accordion-button.collapsed { + border-bottom-right-radius: calc(0.25rem - 1px); + border-bottom-left-radius: calc(0.25rem - 1px); +} +.accordion-item:last-of-type .accordion-collapse { + border-bottom-right-radius: 0.25rem; + border-bottom-left-radius: 0.25rem; +} + +.accordion-body { + padding: 1rem 1.25rem; +} + +.accordion-flush .accordion-collapse { + border-width: 0; +} +.accordion-flush .accordion-item { + border-right: 0; + border-left: 0; + border-radius: 0; +} +.accordion-flush .accordion-item:first-child { + border-top: 0; +} +.accordion-flush .accordion-item:last-child { + border-bottom: 0; +} +.accordion-flush .accordion-item .accordion-button { + border-radius: 0; +} + +.breadcrumb { + display: flex; + flex-wrap: wrap; + padding: 0 0; + margin-bottom: 1rem; + list-style: none; +} + +.breadcrumb-item + .breadcrumb-item { + padding-left: 0.5rem; +} +.breadcrumb-item + .breadcrumb-item::before { + float: left; + padding-right: 0.5rem; + color: #6c757d; + content: var(--bs-breadcrumb-divider, "/") /* rtl: var(--bs-breadcrumb-divider, "/") */; +} +.breadcrumb-item.active { + color: #6c757d; +} + +.pagination { + display: flex; + padding-left: 0; + list-style: none; +} + +.page-link { + position: relative; + display: block; + color: #3f6ad8; + text-decoration: none; + background-color: #fff; + border: 1px solid #dee2e6; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .page-link { + transition: none; + } +} +.page-link:hover { + z-index: 2; + color: #3255ad; + background-color: #e9ecef; + border-color: #dee2e6; +} +.page-link:focus { + z-index: 3; + color: #3255ad; + background-color: #e9ecef; + outline: 0; + box-shadow: none; +} + +.page-item:not(:first-child) .page-link, .pagination .page-number:not(:first-child) .page-link { + margin-left: -1px; +} +.page-item.active .page-link, .pagination .active.page-number .page-link { + z-index: 3; + color: #fff; + background-color: #3f6ad8; + border-color: #3f6ad8; +} +.page-item.disabled .page-link, .pagination .disabled.page-number .page-link { + color: #6c757d; + pointer-events: none; + background-color: #fff; + border-color: #dee2e6; +} + +.page-link { + padding: 0.375rem 0.75rem; +} + +.page-item:first-child .page-link, .pagination .page-number:first-child .page-link { + border-top-left-radius: 0.25rem; + border-bottom-left-radius: 0.25rem; +} +.page-item:last-child .page-link, .pagination .page-number:last-child .page-link { + border-top-right-radius: 0.25rem; + border-bottom-right-radius: 0.25rem; +} + +.pagination-lg .page-link { + padding: 0.75rem 1.5rem; + font-size: 1.1rem; +} +.pagination-lg .page-item:first-child .page-link, .pagination-lg .pagination .page-number:first-child .page-link, .pagination .pagination-lg .page-number:first-child .page-link { + border-top-left-radius: 0.3rem; + border-bottom-left-radius: 0.3rem; +} +.pagination-lg .page-item:last-child .page-link, .pagination-lg .pagination .page-number:last-child .page-link, .pagination .pagination-lg .page-number:last-child .page-link { + border-top-right-radius: 0.3rem; + border-bottom-right-radius: 0.3rem; +} + +.pagination-sm .page-link { + padding: 0.25rem 0.5rem; + font-size: 0.968rem; +} +.pagination-sm .page-item:first-child .page-link, .pagination-sm .pagination .page-number:first-child .page-link, .pagination .pagination-sm .page-number:first-child .page-link { + border-top-left-radius: 0.2rem; + border-bottom-left-radius: 0.2rem; +} +.pagination-sm .page-item:last-child .page-link, .pagination-sm .pagination .page-number:last-child .page-link, .pagination .pagination-sm .page-number:last-child .page-link { + border-top-right-radius: 0.2rem; + border-bottom-right-radius: 0.2rem; +} + +.badge { + display: inline-block; + padding: 0.35em 0.65em; + font-size: 0.75em; + font-weight: 700; + line-height: 1; + color: #fff; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: 0.25rem; +} +.badge:empty { + display: none; +} + +.btn .badge { + position: relative; + top: -1px; +} + +.alert { + position: relative; + padding: 1rem 1rem; + margin-bottom: 1rem; + border: 1px solid transparent; + border-radius: 0.25rem; +} + +.alert-heading { + color: inherit; +} + +.alert-link { + font-weight: 700; +} + +.alert-dismissible { + padding-right: 3rem; +} +.alert-dismissible .btn-close { + position: absolute; + top: 0; + right: 0; + z-index: 2; + padding: 1.25rem 1rem; +} + +.alert-primary { + color: #264082; + background-color: #d9e1f7; + border-color: #c5d2f3; +} +.alert-primary .alert-link { + color: #1e3368; +} + +.alert-secondary { + color: #41464b; + background-color: #e2e3e5; + border-color: #d3d6d8; +} +.alert-secondary .alert-link { + color: #34383c; +} + +.alert-success { + color: #23764b; + background-color: #d8f3e5; + border-color: #c4edd8; +} +.alert-success .alert-link { + color: #1c5e3c; +} + +.alert-info { + color: #0d6699; + background-color: #d0eeff; + border-color: #b9e6ff; +} +.alert-info .alert-link { + color: #0a527a; +} + +.alert-warning { + color: #634a0e; + background-color: #fdf1d3; + border-color: #fdeabd; +} +.alert-warning .alert-link { + color: #4f3b0b; +} + +.alert-danger { + color: #821630; + background-color: #f7d3dc; + border-color: #f4becb; +} +.alert-danger .alert-link { + color: #681226; +} + +.alert-light { + color: #5f5f5f; + background-color: #fcfcfc; + border-color: #fafafa; +} +.alert-light .alert-link { + color: #4c4c4c; +} + +.alert-dark { + color: #1f2326; + background-color: #d6d8d9; + border-color: #c2c4c6; +} +.alert-dark .alert-link { + color: #191c1e; +} + +.alert-focus { + color: #292632; + background-color: #dad9dd; + border-color: #c7c6cc; +} +.alert-focus .alert-link { + color: #211e28; +} + +.alert-alternate { + color: #492e53; + background-color: #e4dbe8; + border-color: #d7c9dc; +} +.alert-alternate .alert-link { + color: #3a2542; +} + +@keyframes progress-bar-stripes { + 0% { + background-position-x: 1rem; + } +} +.progress { + display: flex; + height: 1rem; + overflow: hidden; + font-size: 0.66rem; + background-color: #e9ecef; + border-radius: 0.25rem; +} + +.progress-bar { + display: flex; + flex-direction: column; + justify-content: center; + overflow: hidden; + color: #fff; + text-align: center; + white-space: nowrap; + background-color: #3f6ad8; + transition: width 0.6s ease; +} +@media (prefers-reduced-motion: reduce) { + .progress-bar { + transition: none; + } +} + +.progress-bar-striped { + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-size: 1rem 1rem; +} + +.progress-bar-animated { + animation: 1s linear infinite progress-bar-stripes; +} +@media (prefers-reduced-motion: reduce) { + .progress-bar-animated { + animation: none; + } +} + +.list-group { + display: flex; + flex-direction: column; + padding-left: 0; + margin-bottom: 0; + border-radius: 0.25rem; +} + +.list-group-numbered { + list-style-type: none; + counter-reset: section; +} +.list-group-numbered > li::before { + content: counters(section, ".") ". "; + counter-increment: section; +} + +.list-group-item-action { + width: 100%; + color: #495057; + text-align: inherit; +} +.list-group-item-action:hover, .list-group-item-action:focus { + z-index: 1; + color: #495057; + text-decoration: none; + background-color: #f8f9fa; +} +.list-group-item-action:active { + color: #495057; + background-color: #e9ecef; +} + +.list-group-item { + position: relative; + display: block; + padding: 0.5rem 1rem; + color: #212529; + text-decoration: none; + background-color: #fff; + border: 1px solid rgba(63, 106, 216, 0.08); +} +.list-group-item:first-child { + border-top-left-radius: inherit; + border-top-right-radius: inherit; +} +.list-group-item:last-child { + border-bottom-right-radius: inherit; + border-bottom-left-radius: inherit; +} +.list-group-item.disabled, .list-group-item:disabled { + color: #6c757d; + pointer-events: none; + background-color: #fff; +} +.list-group-item.active { + z-index: 2; + color: #fff; + background-color: #3f6ad8; + border-color: #3f6ad8; +} +.list-group-item + .list-group-item { + border-top-width: 0; +} +.list-group-item + .list-group-item.active { + margin-top: -1px; + border-top-width: 1px; +} + +.list-group-horizontal { + flex-direction: row; +} +.list-group-horizontal > .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; +} +.list-group-horizontal > .list-group-item:last-child { + border-top-right-radius: 0.25rem; + border-bottom-left-radius: 0; +} +.list-group-horizontal > .list-group-item.active { + margin-top: 0; +} +.list-group-horizontal > .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0; +} +.list-group-horizontal > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; +} + +@media (min-width: 576px) { + .list-group-horizontal-sm { + flex-direction: row; + } + .list-group-horizontal-sm > .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; + } + .list-group-horizontal-sm > .list-group-item:last-child { + border-top-right-radius: 0.25rem; + border-bottom-left-radius: 0; + } + .list-group-horizontal-sm > .list-group-item.active { + margin-top: 0; + } + .list-group-horizontal-sm > .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0; + } + .list-group-horizontal-sm > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; + } +} +@media (min-width: 768px) { + .list-group-horizontal-md { + flex-direction: row; + } + .list-group-horizontal-md > .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; + } + .list-group-horizontal-md > .list-group-item:last-child { + border-top-right-radius: 0.25rem; + border-bottom-left-radius: 0; + } + .list-group-horizontal-md > .list-group-item.active { + margin-top: 0; + } + .list-group-horizontal-md > .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0; + } + .list-group-horizontal-md > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; + } +} +@media (min-width: 992px) { + .list-group-horizontal-lg { + flex-direction: row; + } + .list-group-horizontal-lg > .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; + } + .list-group-horizontal-lg > .list-group-item:last-child { + border-top-right-radius: 0.25rem; + border-bottom-left-radius: 0; + } + .list-group-horizontal-lg > .list-group-item.active { + margin-top: 0; + } + .list-group-horizontal-lg > .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0; + } + .list-group-horizontal-lg > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; + } +} +@media (min-width: 1200px) { + .list-group-horizontal-xl { + flex-direction: row; + } + .list-group-horizontal-xl > .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; + } + .list-group-horizontal-xl > .list-group-item:last-child { + border-top-right-radius: 0.25rem; + border-bottom-left-radius: 0; + } + .list-group-horizontal-xl > .list-group-item.active { + margin-top: 0; + } + .list-group-horizontal-xl > .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0; + } + .list-group-horizontal-xl > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; + } +} +@media (min-width: 1400px) { + .list-group-horizontal-xxl { + flex-direction: row; + } + .list-group-horizontal-xxl > .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; + } + .list-group-horizontal-xxl > .list-group-item:last-child { + border-top-right-radius: 0.25rem; + border-bottom-left-radius: 0; + } + .list-group-horizontal-xxl > .list-group-item.active { + margin-top: 0; + } + .list-group-horizontal-xxl > .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0; + } + .list-group-horizontal-xxl > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; + } +} +.list-group-flush { + border-radius: 0; +} +.list-group-flush > .list-group-item { + border-width: 0 0 1px; +} +.list-group-flush > .list-group-item:last-child { + border-bottom-width: 0; +} + +.list-group-item-primary { + color: #264082; + background-color: #d9e1f7; +} +.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus { + color: #264082; + background-color: #c3cbde; +} +.list-group-item-primary.list-group-item-action.active { + color: #fff; + background-color: #264082; + border-color: #264082; +} + +.list-group-item-secondary { + color: #41464b; + background-color: #e2e3e5; +} +.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus { + color: #41464b; + background-color: #cbccce; +} +.list-group-item-secondary.list-group-item-action.active { + color: #fff; + background-color: #41464b; + border-color: #41464b; +} + +.list-group-item-success { + color: #23764b; + background-color: #d8f3e5; +} +.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus { + color: #23764b; + background-color: #c2dbce; +} +.list-group-item-success.list-group-item-action.active { + color: #fff; + background-color: #23764b; + border-color: #23764b; +} + +.list-group-item-info { + color: #0d6699; + background-color: #d0eeff; +} +.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus { + color: #0d6699; + background-color: #bbd6e6; +} +.list-group-item-info.list-group-item-action.active { + color: #fff; + background-color: #0d6699; + border-color: #0d6699; +} + +.list-group-item-warning { + color: #634a0e; + background-color: #fdf1d3; +} +.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus { + color: #634a0e; + background-color: #e4d9be; +} +.list-group-item-warning.list-group-item-action.active { + color: #fff; + background-color: #634a0e; + border-color: #634a0e; +} + +.list-group-item-danger { + color: #821630; + background-color: #f7d3dc; +} +.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus { + color: #821630; + background-color: #debec6; +} +.list-group-item-danger.list-group-item-action.active { + color: #fff; + background-color: #821630; + border-color: #821630; +} + +.list-group-item-light { + color: #5f5f5f; + background-color: #fcfcfc; +} +.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus { + color: #5f5f5f; + background-color: #e3e3e3; +} +.list-group-item-light.list-group-item-action.active { + color: #fff; + background-color: #5f5f5f; + border-color: #5f5f5f; +} + +.list-group-item-dark { + color: #1f2326; + background-color: #d6d8d9; +} +.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus { + color: #1f2326; + background-color: #c1c2c3; +} +.list-group-item-dark.list-group-item-action.active { + color: #fff; + background-color: #1f2326; + border-color: #1f2326; +} + +.list-group-item-focus { + color: #292632; + background-color: #dad9dd; +} +.list-group-item-focus.list-group-item-action:hover, .list-group-item-focus.list-group-item-action:focus { + color: #292632; + background-color: #c4c3c7; +} +.list-group-item-focus.list-group-item-action.active { + color: #fff; + background-color: #292632; + border-color: #292632; +} + +.list-group-item-alternate { + color: #492e53; + background-color: #e4dbe8; +} +.list-group-item-alternate.list-group-item-action:hover, .list-group-item-alternate.list-group-item-action:focus { + color: #492e53; + background-color: #cdc5d1; +} +.list-group-item-alternate.list-group-item-action.active { + color: #fff; + background-color: #492e53; + border-color: #492e53; +} + +.btn-close { + box-sizing: content-box; + width: 1em; + height: 1em; + padding: 0.25em 0.25em; + color: #000; + background: transparent url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27 fill=%27%23000%27%3e%3cpath d=%27M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z%27/%3e%3c/svg%3e") center/1em auto no-repeat; + border: 0; + border-radius: 0.25rem; + opacity: 0.5; +} +.btn-close:hover { + color: #000; + text-decoration: none; + opacity: 0.75; +} +.btn-close:focus { + outline: 0; + box-shadow: 0 0 0 0.25rem rgba(63, 106, 216, 0.25); + opacity: 1; +} +.btn-close:disabled, .btn-close.disabled { + pointer-events: none; + user-select: none; + opacity: 0.25; +} + +.btn-close-white { + filter: invert(1) grayscale(100%) brightness(200%); +} + +.toast { + width: 350px; + max-width: 100%; + font-size: 0.875rem; + pointer-events: auto; + background-color: rgba(255, 255, 255, 0.85); + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.1); + box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); + border-radius: 0.25rem; +} +.toast:not(.showing):not(.show) { + opacity: 0; +} +.toast.hide { + display: none; +} + +.toast-container { + width: max-content; + max-width: 100%; + pointer-events: none; +} +.toast-container > :not(:last-child) { + margin-bottom: 0.75rem; +} + +.toast-header { + display: flex; + align-items: center; + padding: 0.5rem 0.75rem; + color: #6c757d; + background-color: rgba(255, 255, 255, 0.85); + background-clip: padding-box; + border-bottom: 1px solid rgba(0, 0, 0, 0.05); + border-top-left-radius: calc(0.25rem - 1px); + border-top-right-radius: calc(0.25rem - 1px); +} +.toast-header .btn-close { + margin-right: -0.375rem; + margin-left: 0.75rem; +} + +.toast-body { + padding: 0.75rem; + word-wrap: break-word; +} + +.modal { + position: fixed; + top: 0; + left: 0; + z-index: 1060; + display: none; + width: 100%; + height: 100%; + overflow-x: hidden; + overflow-y: auto; + outline: 0; +} + +.modal-dialog { + position: relative; + width: auto; + margin: 0.5rem; + pointer-events: none; +} +.modal.fade .modal-dialog { + transition: transform 0.3s ease-out; + transform: translate(0, -50px); +} +@media (prefers-reduced-motion: reduce) { + .modal.fade .modal-dialog { + transition: none; + } +} +.modal.show .modal-dialog { + transform: none; +} +.modal.modal-static .modal-dialog { + transform: scale(1.02); +} + +.modal-dialog-scrollable { + height: calc(100% - 1rem); +} +.modal-dialog-scrollable .modal-content { + max-height: 100%; + overflow: hidden; +} +.modal-dialog-scrollable .modal-body { + overflow-y: auto; +} + +.modal-dialog-centered { + display: flex; + align-items: center; + min-height: calc(100% - 1rem); +} + +.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: 0.3rem; + outline: 0; +} + +.modal-backdrop { + position: fixed; + top: 0; + left: 0; + z-index: 1040; + width: 100vw; + height: 100vh; + background-color: #000; +} +.modal-backdrop.fade { + opacity: 0; +} +.modal-backdrop.show { + opacity: 0.5; +} + +.modal-header { + display: flex; + flex-shrink: 0; + align-items: center; + justify-content: space-between; + padding: 1rem 1rem; + border-bottom: 1px solid #dee2e6; + border-top-left-radius: calc(0.3rem - 1px); + border-top-right-radius: calc(0.3rem - 1px); +} +.modal-header .btn-close { + padding: 0.5rem 0.5rem; + margin: -0.5rem -0.5rem -0.5rem auto; +} + +.modal-title { + margin-bottom: 0; + line-height: 1.5; +} + +.modal-body { + position: relative; + flex: 1 1 auto; + padding: 1rem; +} + +.modal-footer { + display: flex; + flex-wrap: wrap; + flex-shrink: 0; + align-items: center; + justify-content: flex-end; + padding: 0.75rem; + border-top: 1px solid #dee2e6; + border-bottom-right-radius: calc(0.3rem - 1px); + border-bottom-left-radius: calc(0.3rem - 1px); +} +.modal-footer > * { + margin: 0.25rem; +} + +@media (min-width: 576px) { + .modal-dialog { + max-width: 500px; + margin: 1.75rem auto; + } + .modal-dialog-scrollable { + height: calc(100% - 3.5rem); + } + .modal-dialog-centered { + min-height: calc(100% - 3.5rem); + } + .modal-sm { + max-width: 300px; + } +} +@media (min-width: 992px) { + .modal-lg, +.modal-xl { + max-width: 800px; + } +} +@media (min-width: 1200px) { + .modal-xl { + max-width: 1140px; + } +} +.modal-fullscreen { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; +} +.modal-fullscreen .modal-content { + height: 100%; + border: 0; + border-radius: 0; +} +.modal-fullscreen .modal-header { + border-radius: 0; +} +.modal-fullscreen .modal-body { + overflow-y: auto; +} +.modal-fullscreen .modal-footer { + border-radius: 0; +} + +@media (max-width: 575.98px) { + .modal-fullscreen-sm-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + .modal-fullscreen-sm-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; + } + .modal-fullscreen-sm-down .modal-header { + border-radius: 0; + } + .modal-fullscreen-sm-down .modal-body { + overflow-y: auto; + } + .modal-fullscreen-sm-down .modal-footer { + border-radius: 0; + } +} +@media (max-width: 767.98px) { + .modal-fullscreen-md-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + .modal-fullscreen-md-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; + } + .modal-fullscreen-md-down .modal-header { + border-radius: 0; + } + .modal-fullscreen-md-down .modal-body { + overflow-y: auto; + } + .modal-fullscreen-md-down .modal-footer { + border-radius: 0; + } +} +@media (max-width: 991.98px) { + .modal-fullscreen-lg-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + .modal-fullscreen-lg-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; + } + .modal-fullscreen-lg-down .modal-header { + border-radius: 0; + } + .modal-fullscreen-lg-down .modal-body { + overflow-y: auto; + } + .modal-fullscreen-lg-down .modal-footer { + border-radius: 0; + } +} +@media (max-width: 1199.98px) { + .modal-fullscreen-xl-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + .modal-fullscreen-xl-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; + } + .modal-fullscreen-xl-down .modal-header { + border-radius: 0; + } + .modal-fullscreen-xl-down .modal-body { + overflow-y: auto; + } + .modal-fullscreen-xl-down .modal-footer { + border-radius: 0; + } +} +@media (max-width: 1399.98px) { + .modal-fullscreen-xxl-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + .modal-fullscreen-xxl-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; + } + .modal-fullscreen-xxl-down .modal-header { + border-radius: 0; + } + .modal-fullscreen-xxl-down .modal-body { + overflow-y: auto; + } + .modal-fullscreen-xxl-down .modal-footer { + border-radius: 0; + } +} +.tooltip { + position: absolute; + z-index: 1080; + display: block; + margin: 0; + font-family: var(--bs-font-sans-serif); + font-style: normal; + font-weight: 400; + line-height: 1.5; + text-align: 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: 0.968rem; + word-wrap: break-word; + opacity: 0; +} +.tooltip.show { + opacity: 0.9; +} +.tooltip .tooltip-arrow { + position: absolute; + display: block; + width: 0.8rem; + height: 0.4rem; +} +.tooltip .tooltip-arrow::before { + position: absolute; + content: ""; + border-color: transparent; + border-style: solid; +} + +.bs-tooltip-top, .bs-tooltip-auto[data-popper-placement^=top] { + padding: 0.4rem 0; +} +.bs-tooltip-top .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow { + bottom: 0; +} +.bs-tooltip-top .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before { + top: -1px; + border-width: 0.4rem 0.4rem 0; + border-top-color: #000; +} + +.bs-tooltip-end, .bs-tooltip-auto[data-popper-placement^=right] { + padding: 0 0.4rem; +} +.bs-tooltip-end .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow { + left: 0; + width: 0.4rem; + height: 0.8rem; +} +.bs-tooltip-end .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before { + right: -1px; + border-width: 0.4rem 0.4rem 0.4rem 0; + border-right-color: #000; +} + +.bs-tooltip-bottom, .bs-tooltip-auto[data-popper-placement^=bottom] { + padding: 0.4rem 0; +} +.bs-tooltip-bottom .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow { + top: 0; +} +.bs-tooltip-bottom .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before { + bottom: -1px; + border-width: 0 0.4rem 0.4rem; + border-bottom-color: #000; +} + +.bs-tooltip-start, .bs-tooltip-auto[data-popper-placement^=left] { + padding: 0 0.4rem; +} +.bs-tooltip-start .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow { + right: 0; + width: 0.4rem; + height: 0.8rem; +} +.bs-tooltip-start .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before { + left: -1px; + border-width: 0.4rem 0 0.4rem 0.4rem; + border-left-color: #000; +} + +.tooltip-inner { + max-width: 200px; + padding: 0.25rem 0.5rem; + color: #fff; + text-align: center; + background-color: #000; + border-radius: 0.25rem; +} + +.popover { + position: absolute; + top: 0; + left: 0 /* rtl:ignore */; + z-index: 1070; + display: block; + max-width: 320px; + font-family: var(--bs-font-sans-serif); + font-style: normal; + font-weight: 400; + line-height: 1.5; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + word-spacing: normal; + white-space: normal; + line-break: auto; + font-size: 0.968rem; + word-wrap: break-word; + background-color: #fff; + background-clip: padding-box; + border: 1px solid rgba(26, 54, 126, 0.125); + border-radius: 0.3rem; +} +.popover .popover-arrow { + position: absolute; + display: block; + width: 1rem; + height: 0.5rem; +} +.popover .popover-arrow::before, .popover .popover-arrow::after { + position: absolute; + display: block; + content: ""; + border-color: transparent; + border-style: solid; +} + +.bs-popover-top > .popover-arrow, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow { + bottom: calc(-0.5rem - 1px); +} +.bs-popover-top > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::before { + bottom: 0; + border-width: 0.5rem 0.5rem 0; + border-top-color: rgba(26, 54, 126, 0.175); +} +.bs-popover-top > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::after { + bottom: 1px; + border-width: 0.5rem 0.5rem 0; + border-top-color: #fff; +} + +.bs-popover-end > .popover-arrow, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow { + left: calc(-0.5rem - 1px); + width: 0.5rem; + height: 1rem; +} +.bs-popover-end > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::before { + left: 0; + border-width: 0.5rem 0.5rem 0.5rem 0; + border-right-color: rgba(26, 54, 126, 0.175); +} +.bs-popover-end > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::after { + left: 1px; + border-width: 0.5rem 0.5rem 0.5rem 0; + border-right-color: #fff; +} + +.bs-popover-bottom > .popover-arrow, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow { + top: calc(-0.5rem - 1px); +} +.bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::before { + top: 0; + border-width: 0 0.5rem 0.5rem 0.5rem; + border-bottom-color: rgba(26, 54, 126, 0.175); +} +.bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::after { + top: 1px; + border-width: 0 0.5rem 0.5rem 0.5rem; + border-bottom-color: #fff; +} +.bs-popover-bottom .popover-header::before, .bs-popover-auto[data-popper-placement^=bottom] .popover-header::before { + position: absolute; + top: 0; + left: 50%; + display: block; + width: 1rem; + margin-left: -0.5rem; + content: ""; + border-bottom: 1px solid #fff; +} + +.bs-popover-start > .popover-arrow, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow { + right: calc(-0.5rem - 1px); + width: 0.5rem; + height: 1rem; +} +.bs-popover-start > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::before { + right: 0; + border-width: 0.5rem 0 0.5rem 0.5rem; + border-left-color: rgba(26, 54, 126, 0.175); +} +.bs-popover-start > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::after { + right: 1px; + border-width: 0.5rem 0 0.5rem 0.5rem; + border-left-color: #fff; +} + +.popover-header { + padding: 0.5rem 1rem; + margin-bottom: 0; + font-size: 0.88rem; + background-color: #fff; + border-bottom: 1px solid rgba(26, 54, 126, 0.125); + border-top-left-radius: calc(0.3rem - 1px); + border-top-right-radius: calc(0.3rem - 1px); +} +.popover-header:empty { + display: none; +} + +.popover-body { + padding: 1rem 1rem; + color: #495057; +} + +.carousel { + position: relative; +} + +.carousel.pointer-event { + touch-action: pan-y; +} + +.carousel-inner { + position: relative; + width: 100%; + overflow: hidden; +} +.carousel-inner::after { + display: block; + clear: both; + content: ""; +} + +.carousel-item { + position: relative; + display: none; + float: left; + width: 100%; + margin-right: -100%; + backface-visibility: hidden; + transition: transform 0.6s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .carousel-item { + transition: none; + } +} + +.carousel-item.active, +.carousel-item-next, +.carousel-item-prev { + display: block; +} + +/* rtl:begin:ignore */ +.carousel-item-next:not(.carousel-item-start), +.active.carousel-item-end { + transform: translateX(100%); +} + +.carousel-item-prev:not(.carousel-item-end), +.active.carousel-item-start { + transform: translateX(-100%); +} + +/* rtl:end:ignore */ +.carousel-fade .carousel-item { + opacity: 0; + transition-property: opacity; + transform: none; +} +.carousel-fade .carousel-item.active, +.carousel-fade .carousel-item-next.carousel-item-start, +.carousel-fade .carousel-item-prev.carousel-item-end { + z-index: 1; + opacity: 1; +} +.carousel-fade .active.carousel-item-start, +.carousel-fade .active.carousel-item-end { + z-index: 0; + opacity: 0; + transition: opacity 0s 0.6s; +} +@media (prefers-reduced-motion: reduce) { + .carousel-fade .active.carousel-item-start, +.carousel-fade .active.carousel-item-end { + transition: none; + } +} + +.carousel-control-prev, +.carousel-control-next { + position: absolute; + top: 0; + bottom: 0; + z-index: 1; + display: flex; + align-items: center; + justify-content: center; + width: 15%; + padding: 0; + color: #fff; + text-align: center; + background: none; + border: 0; + opacity: 0.5; + transition: opacity 0.15s ease; +} +@media (prefers-reduced-motion: reduce) { + .carousel-control-prev, +.carousel-control-next { + transition: none; + } +} +.carousel-control-prev:hover, .carousel-control-prev:focus, +.carousel-control-next:hover, +.carousel-control-next:focus { + color: #fff; + text-decoration: none; + outline: 0; + opacity: 0.9; +} + +.carousel-control-prev { + left: 0; +} + +.carousel-control-next { + right: 0; +} + +.carousel-control-prev-icon, +.carousel-control-next-icon { + display: inline-block; + width: 2rem; + height: 2rem; + background-repeat: no-repeat; + background-position: 50%; + background-size: 100% 100%; +} + +/* rtl:options: { + "autoRename": true, + "stringMap":[ { + "name" : "prev-next", + "search" : "prev", + "replace" : "next" + } ] +} */ +.carousel-control-prev-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27 fill=%27%23fff%27%3e%3cpath d=%27M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z%27/%3e%3c/svg%3e"); +} + +.carousel-control-next-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27 fill=%27%23fff%27%3e%3cpath d=%27M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z%27/%3e%3c/svg%3e"); +} + +.carousel-indicators { + position: absolute; + right: 0; + bottom: 0; + left: 0; + z-index: 2; + display: flex; + justify-content: center; + padding: 0; + margin-right: 15%; + margin-bottom: 1rem; + margin-left: 15%; + list-style: none; +} +.carousel-indicators [data-bs-target] { + box-sizing: content-box; + flex: 0 1 auto; + width: 30px; + height: 3px; + padding: 0; + margin-right: 3px; + margin-left: 3px; + text-indent: -999px; + cursor: pointer; + background-color: #fff; + background-clip: padding-box; + border: 0; + border-top: 10px solid transparent; + border-bottom: 10px solid transparent; + opacity: 0.5; + transition: opacity 0.6s ease; +} +@media (prefers-reduced-motion: reduce) { + .carousel-indicators [data-bs-target] { + transition: none; + } +} +.carousel-indicators .active { + opacity: 1; +} + +.carousel-caption { + position: absolute; + right: 15%; + bottom: 1.25rem; + left: 15%; + padding-top: 1.25rem; + padding-bottom: 1.25rem; + color: #fff; + text-align: center; +} + +.carousel-dark .carousel-control-prev-icon, +.carousel-dark .carousel-control-next-icon { + filter: invert(1) grayscale(100); +} +.carousel-dark .carousel-indicators [data-bs-target] { + background-color: #000; +} +.carousel-dark .carousel-caption { + color: #000; +} + +@keyframes spinner-border { + to { + transform: rotate(360deg) /* rtl:ignore */; + } +} +.spinner-border { + display: inline-block; + width: 2rem; + height: 2rem; + vertical-align: -0.125em; + border: 0.25em solid currentColor; + border-right-color: transparent; + border-radius: 50%; + animation: 0.75s linear infinite spinner-border; +} + +.spinner-border-sm { + width: 1rem; + height: 1rem; + border-width: 0.2em; +} + +@keyframes spinner-grow { + 0% { + transform: scale(0); + } + 50% { + opacity: 1; + transform: none; + } +} +.spinner-grow { + display: inline-block; + width: 2rem; + height: 2rem; + vertical-align: -0.125em; + background-color: currentColor; + border-radius: 50%; + opacity: 0; + animation: 0.75s linear infinite spinner-grow; +} + +.spinner-grow-sm { + width: 1rem; + height: 1rem; +} + +@media (prefers-reduced-motion: reduce) { + .spinner-border, +.spinner-grow { + animation-duration: 1.5s; + } +} +.offcanvas { + position: fixed; + bottom: 0; + z-index: 1050; + display: flex; + flex-direction: column; + max-width: 100%; + visibility: hidden; + background-color: #fff; + background-clip: padding-box; + outline: 0; + transition: transform 0.3s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .offcanvas { + transition: none; + } +} + +.offcanvas-header { + display: flex; + align-items: center; + justify-content: space-between; + padding: 1rem 1rem; +} +.offcanvas-header .btn-close { + padding: 0.5rem 0.5rem; + margin-top: -0.5rem; + margin-right: -0.5rem; + margin-bottom: -0.5rem; +} + +.offcanvas-title { + margin-bottom: 0; + line-height: 1.5; +} + +.offcanvas-body { + flex-grow: 1; + padding: 1rem 1rem; + overflow-y: auto; +} + +.offcanvas-start { + top: 0; + left: 0; + width: 400px; + border-right: 1px solid rgba(0, 0, 0, 0.2); + transform: translateX(-100%); +} + +.offcanvas-end { + top: 0; + right: 0; + width: 400px; + border-left: 1px solid rgba(0, 0, 0, 0.2); + transform: translateX(100%); +} + +.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: 30vh; + max-height: 100%; + border-bottom: 1px solid rgba(0, 0, 0, 0.2); + transform: translateY(-100%); +} + +.offcanvas-bottom { + right: 0; + left: 0; + height: 30vh; + max-height: 100%; + border-top: 1px solid rgba(0, 0, 0, 0.2); + transform: translateY(100%); +} + +.offcanvas.show { + transform: none; +} + +.jumbotron { + padding: 2rem 1rem; + margin-bottom: 2rem; + background-color: #e9ecef; + border-radius: 0.3rem; +} +@media (min-width: 576px) { + .jumbotron { + padding: 4rem 2rem; + } +} + +.jumbotron-fluid { + padding-right: 0; + padding-left: 0; + border-radius: 0; +} + +.clearfix::after { + display: block; + clear: both; + content: ""; +} + +.link-primary { + color: #3f6ad8; +} +.link-primary:hover, .link-primary:focus { + color: #3255ad; +} + +.link-secondary { + color: #6c757d; +} +.link-secondary:hover, .link-secondary:focus { + color: #565e64; +} + +.link-success { + color: #3ac47d; +} +.link-success:hover, .link-success:focus { + color: #61d097; +} + +.link-info { + color: #16aaff; +} +.link-info:hover, .link-info:focus { + color: #45bbff; +} + +.link-warning { + color: #f7b924; +} +.link-warning:hover, .link-warning:focus { + color: #f9c750; +} + +.link-danger { + color: #d92550; +} +.link-danger:hover, .link-danger:focus { + color: #ae1e40; +} + +.link-light { + color: #eeeeee; +} +.link-light:hover, .link-light:focus { + color: #f1f1f1; +} + +.link-dark { + color: #343a40; +} +.link-dark:hover, .link-dark:focus { + color: #2a2e33; +} + +.link-focus { + color: #444054; +} +.link-focus:hover, .link-focus:focus { + color: #363343; +} + +.link-alternate { + color: #794c8a; +} +.link-alternate:hover, .link-alternate:focus { + color: #613d6e; +} + +.ratio { + position: relative; + width: 100%; +} +.ratio::before { + display: block; + padding-top: var(--bs-aspect-ratio); + content: ""; +} +.ratio > * { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; +} + +.ratio-1x1 { + --bs-aspect-ratio: 100%; +} + +.ratio-4x3 { + --bs-aspect-ratio: 75%; +} + +.ratio-16x9 { + --bs-aspect-ratio: 56.25%; +} + +.ratio-21x9 { + --bs-aspect-ratio: 42.8571428571%; +} + +.fixed-top { + position: fixed; + top: 0; + right: 0; + left: 0; + z-index: 1030; +} + +.fixed-bottom { + position: fixed; + right: 0; + bottom: 0; + left: 0; + z-index: 1030; +} + +.sticky-top { + position: sticky; + top: 0; + z-index: 1020; +} + +@media (min-width: 576px) { + .sticky-sm-top { + position: sticky; + top: 0; + z-index: 1020; + } +} +@media (min-width: 768px) { + .sticky-md-top { + position: sticky; + top: 0; + z-index: 1020; + } +} +@media (min-width: 992px) { + .sticky-lg-top { + position: sticky; + top: 0; + z-index: 1020; + } +} +@media (min-width: 1200px) { + .sticky-xl-top { + position: sticky; + top: 0; + z-index: 1020; + } +} +@media (min-width: 1400px) { + .sticky-xxl-top { + position: sticky; + top: 0; + z-index: 1020; + } +} +.visually-hidden, +.visually-hidden-focusable:not(:focus):not(:focus-within) { + position: absolute !important; + width: 1px !important; + height: 1px !important; + padding: 0 !important; + margin: -1px !important; + overflow: hidden !important; + clip: rect(0, 0, 0, 0) !important; + white-space: nowrap !important; + border: 0 !important; +} + +.stretched-link::after { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1; + content: ""; +} + +.text-truncate { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.align-baseline { + vertical-align: baseline !important; +} + +.align-top { + vertical-align: top !important; +} + +.align-middle { + vertical-align: middle !important; +} + +.align-bottom { + vertical-align: bottom !important; +} + +.align-text-bottom { + vertical-align: text-bottom !important; +} + +.align-text-top { + vertical-align: text-top !important; +} + +.float-start { + float: left !important; +} + +.float-end { + float: right !important; +} + +.float-none { + float: none !important; +} + +.overflow-auto { + overflow: auto !important; +} + +.overflow-hidden { + overflow: hidden !important; +} + +.overflow-visible { + overflow: visible !important; +} + +.overflow-scroll { + overflow: scroll !important; +} + +.d-inline { + display: inline !important; +} + +.d-inline-block { + display: inline-block !important; +} + +.d-block { + display: block !important; +} + +.d-grid { + display: grid !important; +} + +.d-table { + display: table !important; +} + +.d-table-row { + display: table-row !important; +} + +.d-table-cell { + display: table-cell !important; +} + +.d-flex { + display: flex !important; +} + +.d-inline-flex { + display: inline-flex !important; +} + +.d-none { + display: none !important; +} + +.shadow { + box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important; +} + +.shadow-sm { + box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important; +} + +.shadow-lg { + box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important; +} + +.shadow-none { + box-shadow: none !important; +} + +.position-static { + position: static !important; +} + +.position-relative { + position: relative !important; +} + +.position-absolute { + position: absolute !important; +} + +.position-fixed { + position: fixed !important; +} + +.position-sticky { + position: sticky !important; +} + +.top-0 { + top: 0 !important; +} + +.top-50 { + top: 50% !important; +} + +.top-100 { + top: 100% !important; +} + +.bottom-0 { + bottom: 0 !important; +} + +.bottom-50 { + bottom: 50% !important; +} + +.bottom-100 { + bottom: 100% !important; +} + +.start-0 { + left: 0 !important; +} + +.start-50 { + left: 50% !important; +} + +.start-100 { + left: 100% !important; +} + +.end-0 { + right: 0 !important; +} + +.end-50 { + right: 50% !important; +} + +.end-100 { + right: 100% !important; +} + +.translate-middle { + transform: translate(-50%, -50%) !important; +} + +.translate-middle-x { + transform: translateX(-50%) !important; +} + +.translate-middle-y { + transform: translateY(-50%) !important; +} + +.border { + border: 1px solid #dee2e6 !important; +} + +.border-0 { + border: 0 !important; +} + +.border-top { + border-top: 1px solid #dee2e6 !important; +} + +.border-top-0 { + border-top: 0 !important; +} + +.border-end { + border-right: 1px solid #dee2e6 !important; +} + +.border-end-0 { + border-right: 0 !important; +} + +.border-bottom { + border-bottom: 1px solid #dee2e6 !important; +} + +.border-bottom-0 { + border-bottom: 0 !important; +} + +.border-start { + border-left: 1px solid #dee2e6 !important; +} + +.border-start-0 { + border-left: 0 !important; +} + +.border-primary { + border-color: #3f6ad8 !important; +} + +.border-secondary { + border-color: #6c757d !important; +} + +.border-success { + border-color: #3ac47d !important; +} + +.border-info { + border-color: #16aaff !important; +} + +.border-warning { + border-color: #f7b924 !important; +} + +.border-danger { + border-color: #d92550 !important; +} + +.border-light { + border-color: #eeeeee !important; +} + +.border-dark { + border-color: #343a40 !important; +} + +.border-focus { + border-color: #444054 !important; +} + +.border-alternate { + border-color: #794c8a !important; +} + +.border-white { + border-color: #fff !important; +} + +.border-1 { + border-width: 1px !important; +} + +.border-2 { + border-width: 2px !important; +} + +.border-3 { + border-width: 3px !important; +} + +.border-4 { + border-width: 4px !important; +} + +.border-5 { + border-width: 5px !important; +} + +.w-25 { + width: 25% !important; +} + +.w-50 { + width: 50% !important; +} + +.w-75 { + width: 75% !important; +} + +.w-100 { + width: 100% !important; +} + +.w-auto { + width: auto !important; +} + +.mw-100 { + max-width: 100% !important; +} + +.vw-100 { + width: 100vw !important; +} + +.min-vw-100 { + min-width: 100vw !important; +} + +.h-25 { + height: 25% !important; +} + +.h-50 { + height: 50% !important; +} + +.h-75 { + height: 75% !important; +} + +.h-100 { + height: 100% !important; +} + +.h-auto { + height: auto !important; +} + +.mh-100 { + max-height: 100% !important; +} + +.vh-100 { + height: 100vh !important; +} + +.min-vh-100 { + min-height: 100vh !important; +} + +.flex-fill { + flex: 1 1 auto !important; +} + +.flex-row { + flex-direction: row !important; +} + +.flex-column { + flex-direction: column !important; +} + +.flex-row-reverse { + flex-direction: row-reverse !important; +} + +.flex-column-reverse { + flex-direction: column-reverse !important; +} + +.flex-grow-0 { + flex-grow: 0 !important; +} + +.flex-grow-1 { + flex-grow: 1 !important; +} + +.flex-shrink-0 { + flex-shrink: 0 !important; +} + +.flex-shrink-1 { + flex-shrink: 1 !important; +} + +.flex-wrap { + flex-wrap: wrap !important; +} + +.flex-nowrap { + flex-wrap: nowrap !important; +} + +.flex-wrap-reverse { + flex-wrap: wrap-reverse !important; +} + +.gap-0 { + gap: 0 !important; +} + +.gap-1 { + gap: 0.25rem !important; +} + +.gap-2 { + gap: 0.5rem !important; +} + +.gap-3 { + gap: 1rem !important; +} + +.gap-4 { + gap: 1.5rem !important; +} + +.gap-5 { + gap: 3rem !important; +} + +.justify-content-start { + justify-content: flex-start !important; +} + +.justify-content-end { + justify-content: flex-end !important; +} + +.justify-content-center { + justify-content: center !important; +} + +.justify-content-between { + justify-content: space-between !important; +} + +.justify-content-around { + justify-content: space-around !important; +} + +.justify-content-evenly { + justify-content: space-evenly !important; +} + +.align-items-start { + align-items: flex-start !important; +} + +.align-items-end { + align-items: flex-end !important; +} + +.align-items-center { + align-items: center !important; +} + +.align-items-baseline { + align-items: baseline !important; +} + +.align-items-stretch { + align-items: stretch !important; +} + +.align-content-start { + align-content: flex-start !important; +} + +.align-content-end { + align-content: flex-end !important; +} + +.align-content-center { + align-content: center !important; +} + +.align-content-between { + align-content: space-between !important; +} + +.align-content-around { + align-content: space-around !important; +} + +.align-content-stretch { + align-content: stretch !important; +} + +.align-self-auto { + align-self: auto !important; +} + +.align-self-start { + align-self: flex-start !important; +} + +.align-self-end { + align-self: flex-end !important; +} + +.align-self-center { + align-self: center !important; +} + +.align-self-baseline { + align-self: baseline !important; +} + +.align-self-stretch { + align-self: stretch !important; +} + +.order-first { + order: -1 !important; +} + +.order-0 { + order: 0 !important; +} + +.order-1 { + order: 1 !important; +} + +.order-2 { + order: 2 !important; +} + +.order-3 { + order: 3 !important; +} + +.order-4 { + order: 4 !important; +} + +.order-5 { + order: 5 !important; +} + +.order-last { + order: 6 !important; +} + +.m-0 { + margin: 0 !important; +} + +.m-1 { + margin: 0.25rem !important; +} + +.m-2 { + margin: 0.5rem !important; +} + +.m-3 { + margin: 1rem !important; +} + +.m-4 { + margin: 1.5rem !important; +} + +.m-5 { + margin: 3rem !important; +} + +.m-auto { + margin: auto !important; +} + +.mx-0 { + margin-right: 0 !important; + margin-left: 0 !important; +} + +.mx-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; +} + +.mx-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; +} + +.mx-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; +} + +.mx-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; +} + +.mx-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; +} + +.mx-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.my-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; +} + +.my-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; +} + +.my-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; +} + +.my-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; +} + +.my-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; +} + +.my-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; +} + +.my-auto { + margin-top: auto !important; + margin-bottom: auto !important; +} + +.mt-0 { + margin-top: 0 !important; +} + +.mt-1 { + margin-top: 0.25rem !important; +} + +.mt-2 { + margin-top: 0.5rem !important; +} + +.mt-3 { + margin-top: 1rem !important; +} + +.mt-4 { + margin-top: 1.5rem !important; +} + +.mt-5 { + margin-top: 3rem !important; +} + +.mt-auto { + margin-top: auto !important; +} + +.me-0 { + margin-right: 0 !important; +} + +.me-1 { + margin-right: 0.25rem !important; +} + +.me-2 { + margin-right: 0.5rem !important; +} + +.me-3 { + margin-right: 1rem !important; +} + +.me-4 { + margin-right: 1.5rem !important; +} + +.me-5 { + margin-right: 3rem !important; +} + +.me-auto { + margin-right: auto !important; +} + +.mb-0 { + margin-bottom: 0 !important; +} + +.mb-1 { + margin-bottom: 0.25rem !important; +} + +.mb-2 { + margin-bottom: 0.5rem !important; +} + +.mb-3 { + margin-bottom: 1rem !important; +} + +.mb-4 { + margin-bottom: 1.5rem !important; +} + +.mb-5 { + margin-bottom: 3rem !important; +} + +.mb-auto { + margin-bottom: auto !important; +} + +.ms-0 { + margin-left: 0 !important; +} + +.ms-1 { + margin-left: 0.25rem !important; +} + +.ms-2 { + margin-left: 0.5rem !important; +} + +.ms-3 { + margin-left: 1rem !important; +} + +.ms-4 { + margin-left: 1.5rem !important; +} + +.ms-5 { + margin-left: 3rem !important; +} + +.ms-auto { + margin-left: auto !important; +} + +.p-0 { + padding: 0 !important; +} + +.p-1 { + padding: 0.25rem !important; +} + +.p-2 { + padding: 0.5rem !important; +} + +.p-3 { + padding: 1rem !important; +} + +.p-4 { + padding: 1.5rem !important; +} + +.p-5 { + padding: 3rem !important; +} + +.px-0 { + padding-right: 0 !important; + padding-left: 0 !important; +} + +.px-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; +} + +.px-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; +} + +.px-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; +} + +.px-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; +} + +.px-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; +} + +.py-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; +} + +.py-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; +} + +.py-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; +} + +.py-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; +} + +.py-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; +} + +.py-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; +} + +.pt-0 { + padding-top: 0 !important; +} + +.pt-1 { + padding-top: 0.25rem !important; +} + +.pt-2 { + padding-top: 0.5rem !important; +} + +.pt-3 { + padding-top: 1rem !important; +} + +.pt-4 { + padding-top: 1.5rem !important; +} + +.pt-5 { + padding-top: 3rem !important; +} + +.pe-0 { + padding-right: 0 !important; +} + +.pe-1 { + padding-right: 0.25rem !important; +} + +.pe-2 { + padding-right: 0.5rem !important; +} + +.pe-3 { + padding-right: 1rem !important; +} + +.pe-4 { + padding-right: 1.5rem !important; +} + +.pe-5 { + padding-right: 3rem !important; +} + +.pb-0 { + padding-bottom: 0 !important; +} + +.pb-1 { + padding-bottom: 0.25rem !important; +} + +.pb-2 { + padding-bottom: 0.5rem !important; +} + +.pb-3 { + padding-bottom: 1rem !important; +} + +.pb-4 { + padding-bottom: 1.5rem !important; +} + +.pb-5 { + padding-bottom: 3rem !important; +} + +.ps-0 { + padding-left: 0 !important; +} + +.ps-1 { + padding-left: 0.25rem !important; +} + +.ps-2 { + padding-left: 0.5rem !important; +} + +.ps-3 { + padding-left: 1rem !important; +} + +.ps-4 { + padding-left: 1.5rem !important; +} + +.ps-5 { + padding-left: 3rem !important; +} + +.font-monospace { + font-family: var(--bs-font-monospace) !important; +} + +.fs-1 { + font-size: calc(1.345rem + 1.14vw) !important; +} + +.fs-2 { + font-size: calc(1.301rem + 0.612vw) !important; +} + +.fs-3 { + font-size: calc(1.279rem + 0.348vw) !important; +} + +.fs-4 { + font-size: calc(1.257rem + 0.084vw) !important; +} + +.fs-5 { + font-size: 1.1rem !important; +} + +.fs-6 { + font-size: 0.88rem !important; +} + +.fst-italic { + font-style: italic !important; +} + +.fst-normal { + font-style: normal !important; +} + +.fw-light { + font-weight: 300 !important; +} + +.fw-lighter { + font-weight: lighter !important; +} + +.fw-normal { + font-weight: 400 !important; +} + +.fw-bold { + font-weight: 700 !important; +} + +.fw-bolder { + font-weight: bolder !important; +} + +.lh-1 { + line-height: 1 !important; +} + +.lh-sm { + line-height: 1.25 !important; +} + +.lh-base { + line-height: 1.5 !important; +} + +.lh-lg { + line-height: 2 !important; +} + +.text-start { + text-align: left !important; +} + +.text-end { + text-align: right !important; +} + +.text-center { + text-align: center !important; +} + +.text-decoration-none { + text-decoration: none !important; +} + +.text-decoration-underline { + text-decoration: underline !important; +} + +.text-decoration-line-through { + text-decoration: line-through !important; +} + +.text-lowercase { + text-transform: lowercase !important; +} + +.text-uppercase { + text-transform: uppercase !important; +} + +.text-capitalize { + text-transform: capitalize !important; +} + +.text-wrap { + white-space: normal !important; +} + +.text-nowrap { + white-space: nowrap !important; +} + +/* rtl:begin:remove */ +.text-break { + word-wrap: break-word !important; + word-break: break-word !important; +} + +/* rtl:end:remove */ +.text-primary { + color: #3f6ad8 !important; +} + +.text-secondary { + color: #6c757d !important; +} + +.text-success { + color: #3ac47d !important; +} + +.text-info { + color: #16aaff !important; +} + +.text-warning { + color: #f7b924 !important; +} + +.text-danger { + color: #d92550 !important; +} + +.text-light { + color: #eeeeee !important; +} + +.text-dark { + color: #343a40 !important; +} + +.text-focus { + color: #444054 !important; +} + +.text-alternate { + color: #794c8a !important; +} + +.text-white { + color: #fff !important; +} + +.text-body { + color: #495057 !important; +} + +.text-muted { + color: #6c757d !important; +} + +.text-black-50 { + color: rgba(0, 0, 0, 0.5) !important; +} + +.text-white-50 { + color: rgba(255, 255, 255, 0.5) !important; +} + +.text-reset { + color: inherit !important; +} + +.bg-primary { + background-color: #3f6ad8 !important; +} + +.bg-secondary { + background-color: #6c757d !important; +} + +.bg-success { + background-color: #3ac47d !important; +} + +.bg-info { + background-color: #16aaff !important; +} + +.bg-warning { + background-color: #f7b924 !important; +} + +.bg-danger { + background-color: #d92550 !important; +} + +.bg-light { + background-color: #eeeeee !important; +} + +.bg-dark { + background-color: #343a40 !important; +} + +.bg-focus { + background-color: #444054 !important; +} + +.bg-alternate { + background-color: #794c8a !important; +} + +.bg-body { + background-color: #fff !important; +} + +.bg-white { + background-color: #fff !important; +} + +.bg-transparent { + background-color: transparent !important; +} + +.bg-gradient { + background-image: var(--bs-gradient) !important; +} + +.user-select-all { + user-select: all !important; +} + +.user-select-auto { + user-select: auto !important; +} + +.user-select-none { + user-select: none !important; +} + +.pe-none { + pointer-events: none !important; +} + +.pe-auto { + pointer-events: auto !important; +} + +.rounded { + border-radius: 0.25rem !important; +} + +.rounded-0 { + border-radius: 0 !important; +} + +.rounded-1 { + border-radius: 0.2rem !important; +} + +.rounded-2 { + border-radius: 0.25rem !important; +} + +.rounded-3 { + border-radius: 0.3rem !important; +} + +.rounded-circle { + border-radius: 50% !important; +} + +.rounded-pill { + border-radius: 50rem !important; +} + +.rounded-top { + border-top-left-radius: 0.25rem !important; + border-top-right-radius: 0.25rem !important; +} + +.rounded-end { + border-top-right-radius: 0.25rem !important; + border-bottom-right-radius: 0.25rem !important; +} + +.rounded-bottom { + border-bottom-right-radius: 0.25rem !important; + border-bottom-left-radius: 0.25rem !important; +} + +.rounded-start { + border-bottom-left-radius: 0.25rem !important; + border-top-left-radius: 0.25rem !important; +} + +.visible { + visibility: visible !important; +} + +.invisible { + visibility: hidden !important; +} + +@media (min-width: 576px) { + .float-sm-start { + float: left !important; + } + .float-sm-end { + float: right !important; + } + .float-sm-none { + float: none !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-block { + display: block !important; + } + .d-sm-grid { + display: grid !important; + } + .d-sm-table { + display: table !important; + } + .d-sm-table-row { + display: table-row !important; + } + .d-sm-table-cell { + display: table-cell !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline-flex { + display: inline-flex !important; + } + .d-sm-none { + display: none !important; + } + .flex-sm-fill { + flex: 1 1 auto !important; + } + .flex-sm-row { + flex-direction: row !important; + } + .flex-sm-column { + flex-direction: column !important; + } + .flex-sm-row-reverse { + flex-direction: row-reverse !important; + } + .flex-sm-column-reverse { + flex-direction: column-reverse !important; + } + .flex-sm-grow-0 { + flex-grow: 0 !important; + } + .flex-sm-grow-1 { + flex-grow: 1 !important; + } + .flex-sm-shrink-0 { + flex-shrink: 0 !important; + } + .flex-sm-shrink-1 { + flex-shrink: 1 !important; + } + .flex-sm-wrap { + flex-wrap: wrap !important; + } + .flex-sm-nowrap { + flex-wrap: nowrap !important; + } + .flex-sm-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .gap-sm-0 { + gap: 0 !important; + } + .gap-sm-1 { + gap: 0.25rem !important; + } + .gap-sm-2 { + gap: 0.5rem !important; + } + .gap-sm-3 { + gap: 1rem !important; + } + .gap-sm-4 { + gap: 1.5rem !important; + } + .gap-sm-5 { + gap: 3rem !important; + } + .justify-content-sm-start { + justify-content: flex-start !important; + } + .justify-content-sm-end { + justify-content: flex-end !important; + } + .justify-content-sm-center { + justify-content: center !important; + } + .justify-content-sm-between { + justify-content: space-between !important; + } + .justify-content-sm-around { + justify-content: space-around !important; + } + .justify-content-sm-evenly { + justify-content: space-evenly !important; + } + .align-items-sm-start { + align-items: flex-start !important; + } + .align-items-sm-end { + align-items: flex-end !important; + } + .align-items-sm-center { + align-items: center !important; + } + .align-items-sm-baseline { + align-items: baseline !important; + } + .align-items-sm-stretch { + align-items: stretch !important; + } + .align-content-sm-start { + align-content: flex-start !important; + } + .align-content-sm-end { + align-content: flex-end !important; + } + .align-content-sm-center { + align-content: center !important; + } + .align-content-sm-between { + align-content: space-between !important; + } + .align-content-sm-around { + align-content: space-around !important; + } + .align-content-sm-stretch { + align-content: stretch !important; + } + .align-self-sm-auto { + align-self: auto !important; + } + .align-self-sm-start { + align-self: flex-start !important; + } + .align-self-sm-end { + align-self: flex-end !important; + } + .align-self-sm-center { + align-self: center !important; + } + .align-self-sm-baseline { + align-self: baseline !important; + } + .align-self-sm-stretch { + align-self: stretch !important; + } + .order-sm-first { + order: -1 !important; + } + .order-sm-0 { + order: 0 !important; + } + .order-sm-1 { + order: 1 !important; + } + .order-sm-2 { + order: 2 !important; + } + .order-sm-3 { + order: 3 !important; + } + .order-sm-4 { + order: 4 !important; + } + .order-sm-5 { + order: 5 !important; + } + .order-sm-last { + order: 6 !important; + } + .m-sm-0 { + margin: 0 !important; + } + .m-sm-1 { + margin: 0.25rem !important; + } + .m-sm-2 { + margin: 0.5rem !important; + } + .m-sm-3 { + margin: 1rem !important; + } + .m-sm-4 { + margin: 1.5rem !important; + } + .m-sm-5 { + margin: 3rem !important; + } + .m-sm-auto { + margin: auto !important; + } + .mx-sm-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .mx-sm-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .mx-sm-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .mx-sm-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .mx-sm-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .mx-sm-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .mx-sm-auto { + margin-right: auto !important; + margin-left: auto !important; + } + .my-sm-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .my-sm-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-sm-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .my-sm-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .my-sm-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .my-sm-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .my-sm-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + .mt-sm-0 { + margin-top: 0 !important; + } + .mt-sm-1 { + margin-top: 0.25rem !important; + } + .mt-sm-2 { + margin-top: 0.5rem !important; + } + .mt-sm-3 { + margin-top: 1rem !important; + } + .mt-sm-4 { + margin-top: 1.5rem !important; + } + .mt-sm-5 { + margin-top: 3rem !important; + } + .mt-sm-auto { + margin-top: auto !important; + } + .me-sm-0 { + margin-right: 0 !important; + } + .me-sm-1 { + margin-right: 0.25rem !important; + } + .me-sm-2 { + margin-right: 0.5rem !important; + } + .me-sm-3 { + margin-right: 1rem !important; + } + .me-sm-4 { + margin-right: 1.5rem !important; + } + .me-sm-5 { + margin-right: 3rem !important; + } + .me-sm-auto { + margin-right: auto !important; + } + .mb-sm-0 { + margin-bottom: 0 !important; + } + .mb-sm-1 { + margin-bottom: 0.25rem !important; + } + .mb-sm-2 { + margin-bottom: 0.5rem !important; + } + .mb-sm-3 { + margin-bottom: 1rem !important; + } + .mb-sm-4 { + margin-bottom: 1.5rem !important; + } + .mb-sm-5 { + margin-bottom: 3rem !important; + } + .mb-sm-auto { + margin-bottom: auto !important; + } + .ms-sm-0 { + margin-left: 0 !important; + } + .ms-sm-1 { + margin-left: 0.25rem !important; + } + .ms-sm-2 { + margin-left: 0.5rem !important; + } + .ms-sm-3 { + margin-left: 1rem !important; + } + .ms-sm-4 { + margin-left: 1.5rem !important; + } + .ms-sm-5 { + margin-left: 3rem !important; + } + .ms-sm-auto { + margin-left: auto !important; + } + .p-sm-0 { + padding: 0 !important; + } + .p-sm-1 { + padding: 0.25rem !important; + } + .p-sm-2 { + padding: 0.5rem !important; + } + .p-sm-3 { + padding: 1rem !important; + } + .p-sm-4 { + padding: 1.5rem !important; + } + .p-sm-5 { + padding: 3rem !important; + } + .px-sm-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .px-sm-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .px-sm-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .px-sm-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .px-sm-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .px-sm-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-sm-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .py-sm-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-sm-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .py-sm-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .py-sm-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .py-sm-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .pt-sm-0 { + padding-top: 0 !important; + } + .pt-sm-1 { + padding-top: 0.25rem !important; + } + .pt-sm-2 { + padding-top: 0.5rem !important; + } + .pt-sm-3 { + padding-top: 1rem !important; + } + .pt-sm-4 { + padding-top: 1.5rem !important; + } + .pt-sm-5 { + padding-top: 3rem !important; + } + .pe-sm-0 { + padding-right: 0 !important; + } + .pe-sm-1 { + padding-right: 0.25rem !important; + } + .pe-sm-2 { + padding-right: 0.5rem !important; + } + .pe-sm-3 { + padding-right: 1rem !important; + } + .pe-sm-4 { + padding-right: 1.5rem !important; + } + .pe-sm-5 { + padding-right: 3rem !important; + } + .pb-sm-0 { + padding-bottom: 0 !important; + } + .pb-sm-1 { + padding-bottom: 0.25rem !important; + } + .pb-sm-2 { + padding-bottom: 0.5rem !important; + } + .pb-sm-3 { + padding-bottom: 1rem !important; + } + .pb-sm-4 { + padding-bottom: 1.5rem !important; + } + .pb-sm-5 { + padding-bottom: 3rem !important; + } + .ps-sm-0 { + padding-left: 0 !important; + } + .ps-sm-1 { + padding-left: 0.25rem !important; + } + .ps-sm-2 { + padding-left: 0.5rem !important; + } + .ps-sm-3 { + padding-left: 1rem !important; + } + .ps-sm-4 { + padding-left: 1.5rem !important; + } + .ps-sm-5 { + padding-left: 3rem !important; + } + .text-sm-start { + text-align: left !important; + } + .text-sm-end { + text-align: right !important; + } + .text-sm-center { + text-align: center !important; + } +} +@media (min-width: 768px) { + .float-md-start { + float: left !important; + } + .float-md-end { + float: right !important; + } + .float-md-none { + float: none !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-block { + display: block !important; + } + .d-md-grid { + display: grid !important; + } + .d-md-table { + display: table !important; + } + .d-md-table-row { + display: table-row !important; + } + .d-md-table-cell { + display: table-cell !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline-flex { + display: inline-flex !important; + } + .d-md-none { + display: none !important; + } + .flex-md-fill { + flex: 1 1 auto !important; + } + .flex-md-row { + flex-direction: row !important; + } + .flex-md-column { + flex-direction: column !important; + } + .flex-md-row-reverse { + flex-direction: row-reverse !important; + } + .flex-md-column-reverse { + flex-direction: column-reverse !important; + } + .flex-md-grow-0 { + flex-grow: 0 !important; + } + .flex-md-grow-1 { + flex-grow: 1 !important; + } + .flex-md-shrink-0 { + flex-shrink: 0 !important; + } + .flex-md-shrink-1 { + flex-shrink: 1 !important; + } + .flex-md-wrap { + flex-wrap: wrap !important; + } + .flex-md-nowrap { + flex-wrap: nowrap !important; + } + .flex-md-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .gap-md-0 { + gap: 0 !important; + } + .gap-md-1 { + gap: 0.25rem !important; + } + .gap-md-2 { + gap: 0.5rem !important; + } + .gap-md-3 { + gap: 1rem !important; + } + .gap-md-4 { + gap: 1.5rem !important; + } + .gap-md-5 { + gap: 3rem !important; + } + .justify-content-md-start { + justify-content: flex-start !important; + } + .justify-content-md-end { + justify-content: flex-end !important; + } + .justify-content-md-center { + justify-content: center !important; + } + .justify-content-md-between { + justify-content: space-between !important; + } + .justify-content-md-around { + justify-content: space-around !important; + } + .justify-content-md-evenly { + justify-content: space-evenly !important; + } + .align-items-md-start { + align-items: flex-start !important; + } + .align-items-md-end { + align-items: flex-end !important; + } + .align-items-md-center { + align-items: center !important; + } + .align-items-md-baseline { + align-items: baseline !important; + } + .align-items-md-stretch { + align-items: stretch !important; + } + .align-content-md-start { + align-content: flex-start !important; + } + .align-content-md-end { + align-content: flex-end !important; + } + .align-content-md-center { + align-content: center !important; + } + .align-content-md-between { + align-content: space-between !important; + } + .align-content-md-around { + align-content: space-around !important; + } + .align-content-md-stretch { + align-content: stretch !important; + } + .align-self-md-auto { + align-self: auto !important; + } + .align-self-md-start { + align-self: flex-start !important; + } + .align-self-md-end { + align-self: flex-end !important; + } + .align-self-md-center { + align-self: center !important; + } + .align-self-md-baseline { + align-self: baseline !important; + } + .align-self-md-stretch { + align-self: stretch !important; + } + .order-md-first { + order: -1 !important; + } + .order-md-0 { + order: 0 !important; + } + .order-md-1 { + order: 1 !important; + } + .order-md-2 { + order: 2 !important; + } + .order-md-3 { + order: 3 !important; + } + .order-md-4 { + order: 4 !important; + } + .order-md-5 { + order: 5 !important; + } + .order-md-last { + order: 6 !important; + } + .m-md-0 { + margin: 0 !important; + } + .m-md-1 { + margin: 0.25rem !important; + } + .m-md-2 { + margin: 0.5rem !important; + } + .m-md-3 { + margin: 1rem !important; + } + .m-md-4 { + margin: 1.5rem !important; + } + .m-md-5 { + margin: 3rem !important; + } + .m-md-auto { + margin: auto !important; + } + .mx-md-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .mx-md-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .mx-md-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .mx-md-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .mx-md-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .mx-md-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .mx-md-auto { + margin-right: auto !important; + margin-left: auto !important; + } + .my-md-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .my-md-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-md-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .my-md-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .my-md-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .my-md-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .my-md-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + .mt-md-0 { + margin-top: 0 !important; + } + .mt-md-1 { + margin-top: 0.25rem !important; + } + .mt-md-2 { + margin-top: 0.5rem !important; + } + .mt-md-3 { + margin-top: 1rem !important; + } + .mt-md-4 { + margin-top: 1.5rem !important; + } + .mt-md-5 { + margin-top: 3rem !important; + } + .mt-md-auto { + margin-top: auto !important; + } + .me-md-0 { + margin-right: 0 !important; + } + .me-md-1 { + margin-right: 0.25rem !important; + } + .me-md-2 { + margin-right: 0.5rem !important; + } + .me-md-3 { + margin-right: 1rem !important; + } + .me-md-4 { + margin-right: 1.5rem !important; + } + .me-md-5 { + margin-right: 3rem !important; + } + .me-md-auto { + margin-right: auto !important; + } + .mb-md-0 { + margin-bottom: 0 !important; + } + .mb-md-1 { + margin-bottom: 0.25rem !important; + } + .mb-md-2 { + margin-bottom: 0.5rem !important; + } + .mb-md-3 { + margin-bottom: 1rem !important; + } + .mb-md-4 { + margin-bottom: 1.5rem !important; + } + .mb-md-5 { + margin-bottom: 3rem !important; + } + .mb-md-auto { + margin-bottom: auto !important; + } + .ms-md-0 { + margin-left: 0 !important; + } + .ms-md-1 { + margin-left: 0.25rem !important; + } + .ms-md-2 { + margin-left: 0.5rem !important; + } + .ms-md-3 { + margin-left: 1rem !important; + } + .ms-md-4 { + margin-left: 1.5rem !important; + } + .ms-md-5 { + margin-left: 3rem !important; + } + .ms-md-auto { + margin-left: auto !important; + } + .p-md-0 { + padding: 0 !important; + } + .p-md-1 { + padding: 0.25rem !important; + } + .p-md-2 { + padding: 0.5rem !important; + } + .p-md-3 { + padding: 1rem !important; + } + .p-md-4 { + padding: 1.5rem !important; + } + .p-md-5 { + padding: 3rem !important; + } + .px-md-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .px-md-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .px-md-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .px-md-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .px-md-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .px-md-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-md-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .py-md-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-md-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .py-md-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .py-md-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .py-md-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .pt-md-0 { + padding-top: 0 !important; + } + .pt-md-1 { + padding-top: 0.25rem !important; + } + .pt-md-2 { + padding-top: 0.5rem !important; + } + .pt-md-3 { + padding-top: 1rem !important; + } + .pt-md-4 { + padding-top: 1.5rem !important; + } + .pt-md-5 { + padding-top: 3rem !important; + } + .pe-md-0 { + padding-right: 0 !important; + } + .pe-md-1 { + padding-right: 0.25rem !important; + } + .pe-md-2 { + padding-right: 0.5rem !important; + } + .pe-md-3 { + padding-right: 1rem !important; + } + .pe-md-4 { + padding-right: 1.5rem !important; + } + .pe-md-5 { + padding-right: 3rem !important; + } + .pb-md-0 { + padding-bottom: 0 !important; + } + .pb-md-1 { + padding-bottom: 0.25rem !important; + } + .pb-md-2 { + padding-bottom: 0.5rem !important; + } + .pb-md-3 { + padding-bottom: 1rem !important; + } + .pb-md-4 { + padding-bottom: 1.5rem !important; + } + .pb-md-5 { + padding-bottom: 3rem !important; + } + .ps-md-0 { + padding-left: 0 !important; + } + .ps-md-1 { + padding-left: 0.25rem !important; + } + .ps-md-2 { + padding-left: 0.5rem !important; + } + .ps-md-3 { + padding-left: 1rem !important; + } + .ps-md-4 { + padding-left: 1.5rem !important; + } + .ps-md-5 { + padding-left: 3rem !important; + } + .text-md-start { + text-align: left !important; + } + .text-md-end { + text-align: right !important; + } + .text-md-center { + text-align: center !important; + } +} +@media (min-width: 992px) { + .float-lg-start { + float: left !important; + } + .float-lg-end { + float: right !important; + } + .float-lg-none { + float: none !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-block { + display: block !important; + } + .d-lg-grid { + display: grid !important; + } + .d-lg-table { + display: table !important; + } + .d-lg-table-row { + display: table-row !important; + } + .d-lg-table-cell { + display: table-cell !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline-flex { + display: inline-flex !important; + } + .d-lg-none { + display: none !important; + } + .flex-lg-fill { + flex: 1 1 auto !important; + } + .flex-lg-row { + flex-direction: row !important; + } + .flex-lg-column { + flex-direction: column !important; + } + .flex-lg-row-reverse { + flex-direction: row-reverse !important; + } + .flex-lg-column-reverse { + flex-direction: column-reverse !important; + } + .flex-lg-grow-0 { + flex-grow: 0 !important; + } + .flex-lg-grow-1 { + flex-grow: 1 !important; + } + .flex-lg-shrink-0 { + flex-shrink: 0 !important; + } + .flex-lg-shrink-1 { + flex-shrink: 1 !important; + } + .flex-lg-wrap { + flex-wrap: wrap !important; + } + .flex-lg-nowrap { + flex-wrap: nowrap !important; + } + .flex-lg-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .gap-lg-0 { + gap: 0 !important; + } + .gap-lg-1 { + gap: 0.25rem !important; + } + .gap-lg-2 { + gap: 0.5rem !important; + } + .gap-lg-3 { + gap: 1rem !important; + } + .gap-lg-4 { + gap: 1.5rem !important; + } + .gap-lg-5 { + gap: 3rem !important; + } + .justify-content-lg-start { + justify-content: flex-start !important; + } + .justify-content-lg-end { + justify-content: flex-end !important; + } + .justify-content-lg-center { + justify-content: center !important; + } + .justify-content-lg-between { + justify-content: space-between !important; + } + .justify-content-lg-around { + justify-content: space-around !important; + } + .justify-content-lg-evenly { + justify-content: space-evenly !important; + } + .align-items-lg-start { + align-items: flex-start !important; + } + .align-items-lg-end { + align-items: flex-end !important; + } + .align-items-lg-center { + align-items: center !important; + } + .align-items-lg-baseline { + align-items: baseline !important; + } + .align-items-lg-stretch { + align-items: stretch !important; + } + .align-content-lg-start { + align-content: flex-start !important; + } + .align-content-lg-end { + align-content: flex-end !important; + } + .align-content-lg-center { + align-content: center !important; + } + .align-content-lg-between { + align-content: space-between !important; + } + .align-content-lg-around { + align-content: space-around !important; + } + .align-content-lg-stretch { + align-content: stretch !important; + } + .align-self-lg-auto { + align-self: auto !important; + } + .align-self-lg-start { + align-self: flex-start !important; + } + .align-self-lg-end { + align-self: flex-end !important; + } + .align-self-lg-center { + align-self: center !important; + } + .align-self-lg-baseline { + align-self: baseline !important; + } + .align-self-lg-stretch { + align-self: stretch !important; + } + .order-lg-first { + order: -1 !important; + } + .order-lg-0 { + order: 0 !important; + } + .order-lg-1 { + order: 1 !important; + } + .order-lg-2 { + order: 2 !important; + } + .order-lg-3 { + order: 3 !important; + } + .order-lg-4 { + order: 4 !important; + } + .order-lg-5 { + order: 5 !important; + } + .order-lg-last { + order: 6 !important; + } + .m-lg-0 { + margin: 0 !important; + } + .m-lg-1 { + margin: 0.25rem !important; + } + .m-lg-2 { + margin: 0.5rem !important; + } + .m-lg-3 { + margin: 1rem !important; + } + .m-lg-4 { + margin: 1.5rem !important; + } + .m-lg-5 { + margin: 3rem !important; + } + .m-lg-auto { + margin: auto !important; + } + .mx-lg-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .mx-lg-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .mx-lg-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .mx-lg-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .mx-lg-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .mx-lg-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .mx-lg-auto { + margin-right: auto !important; + margin-left: auto !important; + } + .my-lg-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .my-lg-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-lg-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .my-lg-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .my-lg-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .my-lg-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .my-lg-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + .mt-lg-0 { + margin-top: 0 !important; + } + .mt-lg-1 { + margin-top: 0.25rem !important; + } + .mt-lg-2 { + margin-top: 0.5rem !important; + } + .mt-lg-3 { + margin-top: 1rem !important; + } + .mt-lg-4 { + margin-top: 1.5rem !important; + } + .mt-lg-5 { + margin-top: 3rem !important; + } + .mt-lg-auto { + margin-top: auto !important; + } + .me-lg-0 { + margin-right: 0 !important; + } + .me-lg-1 { + margin-right: 0.25rem !important; + } + .me-lg-2 { + margin-right: 0.5rem !important; + } + .me-lg-3 { + margin-right: 1rem !important; + } + .me-lg-4 { + margin-right: 1.5rem !important; + } + .me-lg-5 { + margin-right: 3rem !important; + } + .me-lg-auto { + margin-right: auto !important; + } + .mb-lg-0 { + margin-bottom: 0 !important; + } + .mb-lg-1 { + margin-bottom: 0.25rem !important; + } + .mb-lg-2 { + margin-bottom: 0.5rem !important; + } + .mb-lg-3 { + margin-bottom: 1rem !important; + } + .mb-lg-4 { + margin-bottom: 1.5rem !important; + } + .mb-lg-5 { + margin-bottom: 3rem !important; + } + .mb-lg-auto { + margin-bottom: auto !important; + } + .ms-lg-0 { + margin-left: 0 !important; + } + .ms-lg-1 { + margin-left: 0.25rem !important; + } + .ms-lg-2 { + margin-left: 0.5rem !important; + } + .ms-lg-3 { + margin-left: 1rem !important; + } + .ms-lg-4 { + margin-left: 1.5rem !important; + } + .ms-lg-5 { + margin-left: 3rem !important; + } + .ms-lg-auto { + margin-left: auto !important; + } + .p-lg-0 { + padding: 0 !important; + } + .p-lg-1 { + padding: 0.25rem !important; + } + .p-lg-2 { + padding: 0.5rem !important; + } + .p-lg-3 { + padding: 1rem !important; + } + .p-lg-4 { + padding: 1.5rem !important; + } + .p-lg-5 { + padding: 3rem !important; + } + .px-lg-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .px-lg-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .px-lg-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .px-lg-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .px-lg-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .px-lg-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-lg-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .py-lg-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-lg-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .py-lg-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .py-lg-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .py-lg-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .pt-lg-0 { + padding-top: 0 !important; + } + .pt-lg-1 { + padding-top: 0.25rem !important; + } + .pt-lg-2 { + padding-top: 0.5rem !important; + } + .pt-lg-3 { + padding-top: 1rem !important; + } + .pt-lg-4 { + padding-top: 1.5rem !important; + } + .pt-lg-5 { + padding-top: 3rem !important; + } + .pe-lg-0 { + padding-right: 0 !important; + } + .pe-lg-1 { + padding-right: 0.25rem !important; + } + .pe-lg-2 { + padding-right: 0.5rem !important; + } + .pe-lg-3 { + padding-right: 1rem !important; + } + .pe-lg-4 { + padding-right: 1.5rem !important; + } + .pe-lg-5 { + padding-right: 3rem !important; + } + .pb-lg-0 { + padding-bottom: 0 !important; + } + .pb-lg-1 { + padding-bottom: 0.25rem !important; + } + .pb-lg-2 { + padding-bottom: 0.5rem !important; + } + .pb-lg-3 { + padding-bottom: 1rem !important; + } + .pb-lg-4 { + padding-bottom: 1.5rem !important; + } + .pb-lg-5 { + padding-bottom: 3rem !important; + } + .ps-lg-0 { + padding-left: 0 !important; + } + .ps-lg-1 { + padding-left: 0.25rem !important; + } + .ps-lg-2 { + padding-left: 0.5rem !important; + } + .ps-lg-3 { + padding-left: 1rem !important; + } + .ps-lg-4 { + padding-left: 1.5rem !important; + } + .ps-lg-5 { + padding-left: 3rem !important; + } + .text-lg-start { + text-align: left !important; + } + .text-lg-end { + text-align: right !important; + } + .text-lg-center { + text-align: center !important; + } +} +@media (min-width: 1200px) { + .float-xl-start { + float: left !important; + } + .float-xl-end { + float: right !important; + } + .float-xl-none { + float: none !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-block { + display: block !important; + } + .d-xl-grid { + display: grid !important; + } + .d-xl-table { + display: table !important; + } + .d-xl-table-row { + display: table-row !important; + } + .d-xl-table-cell { + display: table-cell !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline-flex { + display: inline-flex !important; + } + .d-xl-none { + display: none !important; + } + .flex-xl-fill { + flex: 1 1 auto !important; + } + .flex-xl-row { + flex-direction: row !important; + } + .flex-xl-column { + flex-direction: column !important; + } + .flex-xl-row-reverse { + flex-direction: row-reverse !important; + } + .flex-xl-column-reverse { + flex-direction: column-reverse !important; + } + .flex-xl-grow-0 { + flex-grow: 0 !important; + } + .flex-xl-grow-1 { + flex-grow: 1 !important; + } + .flex-xl-shrink-0 { + flex-shrink: 0 !important; + } + .flex-xl-shrink-1 { + flex-shrink: 1 !important; + } + .flex-xl-wrap { + flex-wrap: wrap !important; + } + .flex-xl-nowrap { + flex-wrap: nowrap !important; + } + .flex-xl-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .gap-xl-0 { + gap: 0 !important; + } + .gap-xl-1 { + gap: 0.25rem !important; + } + .gap-xl-2 { + gap: 0.5rem !important; + } + .gap-xl-3 { + gap: 1rem !important; + } + .gap-xl-4 { + gap: 1.5rem !important; + } + .gap-xl-5 { + gap: 3rem !important; + } + .justify-content-xl-start { + justify-content: flex-start !important; + } + .justify-content-xl-end { + justify-content: flex-end !important; + } + .justify-content-xl-center { + justify-content: center !important; + } + .justify-content-xl-between { + justify-content: space-between !important; + } + .justify-content-xl-around { + justify-content: space-around !important; + } + .justify-content-xl-evenly { + justify-content: space-evenly !important; + } + .align-items-xl-start { + align-items: flex-start !important; + } + .align-items-xl-end { + align-items: flex-end !important; + } + .align-items-xl-center { + align-items: center !important; + } + .align-items-xl-baseline { + align-items: baseline !important; + } + .align-items-xl-stretch { + align-items: stretch !important; + } + .align-content-xl-start { + align-content: flex-start !important; + } + .align-content-xl-end { + align-content: flex-end !important; + } + .align-content-xl-center { + align-content: center !important; + } + .align-content-xl-between { + align-content: space-between !important; + } + .align-content-xl-around { + align-content: space-around !important; + } + .align-content-xl-stretch { + align-content: stretch !important; + } + .align-self-xl-auto { + align-self: auto !important; + } + .align-self-xl-start { + align-self: flex-start !important; + } + .align-self-xl-end { + align-self: flex-end !important; + } + .align-self-xl-center { + align-self: center !important; + } + .align-self-xl-baseline { + align-self: baseline !important; + } + .align-self-xl-stretch { + align-self: stretch !important; + } + .order-xl-first { + order: -1 !important; + } + .order-xl-0 { + order: 0 !important; + } + .order-xl-1 { + order: 1 !important; + } + .order-xl-2 { + order: 2 !important; + } + .order-xl-3 { + order: 3 !important; + } + .order-xl-4 { + order: 4 !important; + } + .order-xl-5 { + order: 5 !important; + } + .order-xl-last { + order: 6 !important; + } + .m-xl-0 { + margin: 0 !important; + } + .m-xl-1 { + margin: 0.25rem !important; + } + .m-xl-2 { + margin: 0.5rem !important; + } + .m-xl-3 { + margin: 1rem !important; + } + .m-xl-4 { + margin: 1.5rem !important; + } + .m-xl-5 { + margin: 3rem !important; + } + .m-xl-auto { + margin: auto !important; + } + .mx-xl-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .mx-xl-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .mx-xl-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .mx-xl-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .mx-xl-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .mx-xl-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .mx-xl-auto { + margin-right: auto !important; + margin-left: auto !important; + } + .my-xl-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .my-xl-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-xl-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .my-xl-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .my-xl-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .my-xl-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .my-xl-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + .mt-xl-0 { + margin-top: 0 !important; + } + .mt-xl-1 { + margin-top: 0.25rem !important; + } + .mt-xl-2 { + margin-top: 0.5rem !important; + } + .mt-xl-3 { + margin-top: 1rem !important; + } + .mt-xl-4 { + margin-top: 1.5rem !important; + } + .mt-xl-5 { + margin-top: 3rem !important; + } + .mt-xl-auto { + margin-top: auto !important; + } + .me-xl-0 { + margin-right: 0 !important; + } + .me-xl-1 { + margin-right: 0.25rem !important; + } + .me-xl-2 { + margin-right: 0.5rem !important; + } + .me-xl-3 { + margin-right: 1rem !important; + } + .me-xl-4 { + margin-right: 1.5rem !important; + } + .me-xl-5 { + margin-right: 3rem !important; + } + .me-xl-auto { + margin-right: auto !important; + } + .mb-xl-0 { + margin-bottom: 0 !important; + } + .mb-xl-1 { + margin-bottom: 0.25rem !important; + } + .mb-xl-2 { + margin-bottom: 0.5rem !important; + } + .mb-xl-3 { + margin-bottom: 1rem !important; + } + .mb-xl-4 { + margin-bottom: 1.5rem !important; + } + .mb-xl-5 { + margin-bottom: 3rem !important; + } + .mb-xl-auto { + margin-bottom: auto !important; + } + .ms-xl-0 { + margin-left: 0 !important; + } + .ms-xl-1 { + margin-left: 0.25rem !important; + } + .ms-xl-2 { + margin-left: 0.5rem !important; + } + .ms-xl-3 { + margin-left: 1rem !important; + } + .ms-xl-4 { + margin-left: 1.5rem !important; + } + .ms-xl-5 { + margin-left: 3rem !important; + } + .ms-xl-auto { + margin-left: auto !important; + } + .p-xl-0 { + padding: 0 !important; + } + .p-xl-1 { + padding: 0.25rem !important; + } + .p-xl-2 { + padding: 0.5rem !important; + } + .p-xl-3 { + padding: 1rem !important; + } + .p-xl-4 { + padding: 1.5rem !important; + } + .p-xl-5 { + padding: 3rem !important; + } + .px-xl-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .px-xl-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .px-xl-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .px-xl-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .px-xl-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .px-xl-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-xl-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .py-xl-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-xl-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .py-xl-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .py-xl-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .py-xl-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .pt-xl-0 { + padding-top: 0 !important; + } + .pt-xl-1 { + padding-top: 0.25rem !important; + } + .pt-xl-2 { + padding-top: 0.5rem !important; + } + .pt-xl-3 { + padding-top: 1rem !important; + } + .pt-xl-4 { + padding-top: 1.5rem !important; + } + .pt-xl-5 { + padding-top: 3rem !important; + } + .pe-xl-0 { + padding-right: 0 !important; + } + .pe-xl-1 { + padding-right: 0.25rem !important; + } + .pe-xl-2 { + padding-right: 0.5rem !important; + } + .pe-xl-3 { + padding-right: 1rem !important; + } + .pe-xl-4 { + padding-right: 1.5rem !important; + } + .pe-xl-5 { + padding-right: 3rem !important; + } + .pb-xl-0 { + padding-bottom: 0 !important; + } + .pb-xl-1 { + padding-bottom: 0.25rem !important; + } + .pb-xl-2 { + padding-bottom: 0.5rem !important; + } + .pb-xl-3 { + padding-bottom: 1rem !important; + } + .pb-xl-4 { + padding-bottom: 1.5rem !important; + } + .pb-xl-5 { + padding-bottom: 3rem !important; + } + .ps-xl-0 { + padding-left: 0 !important; + } + .ps-xl-1 { + padding-left: 0.25rem !important; + } + .ps-xl-2 { + padding-left: 0.5rem !important; + } + .ps-xl-3 { + padding-left: 1rem !important; + } + .ps-xl-4 { + padding-left: 1.5rem !important; + } + .ps-xl-5 { + padding-left: 3rem !important; + } + .text-xl-start { + text-align: left !important; + } + .text-xl-end { + text-align: right !important; + } + .text-xl-center { + text-align: center !important; + } +} +@media (min-width: 1400px) { + .float-xxl-start { + float: left !important; + } + .float-xxl-end { + float: right !important; + } + .float-xxl-none { + float: none !important; + } + .d-xxl-inline { + display: inline !important; + } + .d-xxl-inline-block { + display: inline-block !important; + } + .d-xxl-block { + display: block !important; + } + .d-xxl-grid { + display: grid !important; + } + .d-xxl-table { + display: table !important; + } + .d-xxl-table-row { + display: table-row !important; + } + .d-xxl-table-cell { + display: table-cell !important; + } + .d-xxl-flex { + display: flex !important; + } + .d-xxl-inline-flex { + display: inline-flex !important; + } + .d-xxl-none { + display: none !important; + } + .flex-xxl-fill { + flex: 1 1 auto !important; + } + .flex-xxl-row { + flex-direction: row !important; + } + .flex-xxl-column { + flex-direction: column !important; + } + .flex-xxl-row-reverse { + flex-direction: row-reverse !important; + } + .flex-xxl-column-reverse { + flex-direction: column-reverse !important; + } + .flex-xxl-grow-0 { + flex-grow: 0 !important; + } + .flex-xxl-grow-1 { + flex-grow: 1 !important; + } + .flex-xxl-shrink-0 { + flex-shrink: 0 !important; + } + .flex-xxl-shrink-1 { + flex-shrink: 1 !important; + } + .flex-xxl-wrap { + flex-wrap: wrap !important; + } + .flex-xxl-nowrap { + flex-wrap: nowrap !important; + } + .flex-xxl-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .gap-xxl-0 { + gap: 0 !important; + } + .gap-xxl-1 { + gap: 0.25rem !important; + } + .gap-xxl-2 { + gap: 0.5rem !important; + } + .gap-xxl-3 { + gap: 1rem !important; + } + .gap-xxl-4 { + gap: 1.5rem !important; + } + .gap-xxl-5 { + gap: 3rem !important; + } + .justify-content-xxl-start { + justify-content: flex-start !important; + } + .justify-content-xxl-end { + justify-content: flex-end !important; + } + .justify-content-xxl-center { + justify-content: center !important; + } + .justify-content-xxl-between { + justify-content: space-between !important; + } + .justify-content-xxl-around { + justify-content: space-around !important; + } + .justify-content-xxl-evenly { + justify-content: space-evenly !important; + } + .align-items-xxl-start { + align-items: flex-start !important; + } + .align-items-xxl-end { + align-items: flex-end !important; + } + .align-items-xxl-center { + align-items: center !important; + } + .align-items-xxl-baseline { + align-items: baseline !important; + } + .align-items-xxl-stretch { + align-items: stretch !important; + } + .align-content-xxl-start { + align-content: flex-start !important; + } + .align-content-xxl-end { + align-content: flex-end !important; + } + .align-content-xxl-center { + align-content: center !important; + } + .align-content-xxl-between { + align-content: space-between !important; + } + .align-content-xxl-around { + align-content: space-around !important; + } + .align-content-xxl-stretch { + align-content: stretch !important; + } + .align-self-xxl-auto { + align-self: auto !important; + } + .align-self-xxl-start { + align-self: flex-start !important; + } + .align-self-xxl-end { + align-self: flex-end !important; + } + .align-self-xxl-center { + align-self: center !important; + } + .align-self-xxl-baseline { + align-self: baseline !important; + } + .align-self-xxl-stretch { + align-self: stretch !important; + } + .order-xxl-first { + order: -1 !important; + } + .order-xxl-0 { + order: 0 !important; + } + .order-xxl-1 { + order: 1 !important; + } + .order-xxl-2 { + order: 2 !important; + } + .order-xxl-3 { + order: 3 !important; + } + .order-xxl-4 { + order: 4 !important; + } + .order-xxl-5 { + order: 5 !important; + } + .order-xxl-last { + order: 6 !important; + } + .m-xxl-0 { + margin: 0 !important; + } + .m-xxl-1 { + margin: 0.25rem !important; + } + .m-xxl-2 { + margin: 0.5rem !important; + } + .m-xxl-3 { + margin: 1rem !important; + } + .m-xxl-4 { + margin: 1.5rem !important; + } + .m-xxl-5 { + margin: 3rem !important; + } + .m-xxl-auto { + margin: auto !important; + } + .mx-xxl-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .mx-xxl-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .mx-xxl-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .mx-xxl-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .mx-xxl-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .mx-xxl-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .mx-xxl-auto { + margin-right: auto !important; + margin-left: auto !important; + } + .my-xxl-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .my-xxl-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-xxl-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .my-xxl-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .my-xxl-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .my-xxl-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .my-xxl-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + .mt-xxl-0 { + margin-top: 0 !important; + } + .mt-xxl-1 { + margin-top: 0.25rem !important; + } + .mt-xxl-2 { + margin-top: 0.5rem !important; + } + .mt-xxl-3 { + margin-top: 1rem !important; + } + .mt-xxl-4 { + margin-top: 1.5rem !important; + } + .mt-xxl-5 { + margin-top: 3rem !important; + } + .mt-xxl-auto { + margin-top: auto !important; + } + .me-xxl-0 { + margin-right: 0 !important; + } + .me-xxl-1 { + margin-right: 0.25rem !important; + } + .me-xxl-2 { + margin-right: 0.5rem !important; + } + .me-xxl-3 { + margin-right: 1rem !important; + } + .me-xxl-4 { + margin-right: 1.5rem !important; + } + .me-xxl-5 { + margin-right: 3rem !important; + } + .me-xxl-auto { + margin-right: auto !important; + } + .mb-xxl-0 { + margin-bottom: 0 !important; + } + .mb-xxl-1 { + margin-bottom: 0.25rem !important; + } + .mb-xxl-2 { + margin-bottom: 0.5rem !important; + } + .mb-xxl-3 { + margin-bottom: 1rem !important; + } + .mb-xxl-4 { + margin-bottom: 1.5rem !important; + } + .mb-xxl-5 { + margin-bottom: 3rem !important; + } + .mb-xxl-auto { + margin-bottom: auto !important; + } + .ms-xxl-0 { + margin-left: 0 !important; + } + .ms-xxl-1 { + margin-left: 0.25rem !important; + } + .ms-xxl-2 { + margin-left: 0.5rem !important; + } + .ms-xxl-3 { + margin-left: 1rem !important; + } + .ms-xxl-4 { + margin-left: 1.5rem !important; + } + .ms-xxl-5 { + margin-left: 3rem !important; + } + .ms-xxl-auto { + margin-left: auto !important; + } + .p-xxl-0 { + padding: 0 !important; + } + .p-xxl-1 { + padding: 0.25rem !important; + } + .p-xxl-2 { + padding: 0.5rem !important; + } + .p-xxl-3 { + padding: 1rem !important; + } + .p-xxl-4 { + padding: 1.5rem !important; + } + .p-xxl-5 { + padding: 3rem !important; + } + .px-xxl-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .px-xxl-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .px-xxl-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .px-xxl-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .px-xxl-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .px-xxl-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-xxl-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .py-xxl-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-xxl-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .py-xxl-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .py-xxl-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .py-xxl-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .pt-xxl-0 { + padding-top: 0 !important; + } + .pt-xxl-1 { + padding-top: 0.25rem !important; + } + .pt-xxl-2 { + padding-top: 0.5rem !important; + } + .pt-xxl-3 { + padding-top: 1rem !important; + } + .pt-xxl-4 { + padding-top: 1.5rem !important; + } + .pt-xxl-5 { + padding-top: 3rem !important; + } + .pe-xxl-0 { + padding-right: 0 !important; + } + .pe-xxl-1 { + padding-right: 0.25rem !important; + } + .pe-xxl-2 { + padding-right: 0.5rem !important; + } + .pe-xxl-3 { + padding-right: 1rem !important; + } + .pe-xxl-4 { + padding-right: 1.5rem !important; + } + .pe-xxl-5 { + padding-right: 3rem !important; + } + .pb-xxl-0 { + padding-bottom: 0 !important; + } + .pb-xxl-1 { + padding-bottom: 0.25rem !important; + } + .pb-xxl-2 { + padding-bottom: 0.5rem !important; + } + .pb-xxl-3 { + padding-bottom: 1rem !important; + } + .pb-xxl-4 { + padding-bottom: 1.5rem !important; + } + .pb-xxl-5 { + padding-bottom: 3rem !important; + } + .ps-xxl-0 { + padding-left: 0 !important; + } + .ps-xxl-1 { + padding-left: 0.25rem !important; + } + .ps-xxl-2 { + padding-left: 0.5rem !important; + } + .ps-xxl-3 { + padding-left: 1rem !important; + } + .ps-xxl-4 { + padding-left: 1.5rem !important; + } + .ps-xxl-5 { + padding-left: 3rem !important; + } + .text-xxl-start { + text-align: left !important; + } + .text-xxl-end { + text-align: right !important; + } + .text-xxl-center { + text-align: center !important; + } +} +@media (min-width: 1200px) { + .fs-1 { + font-size: 2.2rem !important; + } + .fs-2 { + font-size: 1.76rem !important; + } + .fs-3 { + font-size: 1.54rem !important; + } + .fs-4 { + font-size: 1.32rem !important; + } +} +@media print { + .d-print-inline { + display: inline !important; + } + .d-print-inline-block { + display: inline-block !important; + } + .d-print-block { + display: block !important; + } + .d-print-grid { + display: grid !important; + } + .d-print-table { + display: table !important; + } + .d-print-table-row { + display: table-row !important; + } + .d-print-table-cell { + display: table-cell !important; + } + .d-print-flex { + display: flex !important; + } + .d-print-inline-flex { + display: inline-flex !important; + } + .d-print-none { + display: none !important; + } +} +a, +button, +.btn { + outline: none !important; +} + +.app-container { + display: flex; + min-height: 100vh; + flex-direction: column; + margin: 0; +} + +.table th, +.table td { + vertical-align: middle; +} + +.app-header { + height: 60px; + display: flex; + align-items: center; + align-content: center; + position: relative; + z-index: 10; + transition: all 0.2s; +} +.app-header.header-shadow { + box-shadow: 0 0.46875rem 2.1875rem rgba(4, 9, 20, 0.03), 0 0.9375rem 1.40625rem rgba(4, 9, 20, 0.03), 0 0.25rem 0.53125rem rgba(4, 9, 20, 0.05), 0 0.125rem 0.1875rem rgba(4, 9, 20, 0.03); +} +.app-header .app-header__content { + display: flex; + align-items: center; + align-content: center; + flex: 1; + padding: 0 1.5rem; + height: 60px; +} +.app-header .app-header__content .app-header-left { + display: flex; + align-items: center; +} +.app-header .app-header__content .header-menu .nav-link { + color: #6c757d; +} +.app-header .app-header__content .header-menu .nav-link i { + color: #adb5bd; +} +.app-header .app-header__content .header-menu .nav-link:hover { + color: #212529; +} +.app-header .app-header__content .app-header-right { + align-items: center; + display: flex; + margin-left: auto; +} +.app-header .header-user-info > .widget-heading, .app-header .header-user-info > .widget-subheading { + white-space: nowrap; +} +.app-header .header-user-info > .widget-subheading { + font-size: 0.8rem; +} + +.app-header__logo { + padding: 0 1.5rem; + height: 60px; + width: 280px; + display: flex; + align-items: center; + transition: width 0.2s; +} +.app-header__logo .logo-src { + height: 41.4px; + width: 97px; + background: url(5de49e582a3378e7a6f5.png); +} + +.app-header__menu, +.app-header__mobile-menu { + display: none; + padding: 0 1.5rem; + height: 60px; + align-items: center; +} + +.app-header.header-text-dark .app-header-left > .nav > li > .nav-link { + color: rgba(0, 0, 0, 0.7); +} +.app-header.header-text-dark .app-header-left > .nav > li > .nav-link .nav-link-icon { + color: rgba(0, 0, 0, 0.8); +} +.app-header.header-text-dark .app-header-left > .nav > li > .nav-link:hover { + color: rgb(0, 0, 0); +} +.app-header.header-text-dark .app-header-right .icon-wrapper-alt .fa, +.app-header.header-text-dark .app-header-right .icon-wrapper-alt .icon { + color: rgba(0, 0, 0, 0.7) !important; + transition: all 0.2s; +} +.app-header.header-text-dark .app-header-right .icon-wrapper-alt .icon-wrapper-bg { + background: rgba(0, 0, 0, 0.1) !important; + transition: all 0.2s; + opacity: 1; +} +.app-header.header-text-dark .app-header-right .icon-wrapper-alt:hover .fa, +.app-header.header-text-dark .app-header-right .icon-wrapper-alt:hover .icon { + color: rgba(0, 0, 0, 0.95) !important; +} +.app-header.header-text-dark .app-header-right .icon-wrapper-alt:hover .icon-wrapper-bg { + background: rgba(0, 0, 0, 0.15) !important; +} +.app-header.header-text-dark .app-header-right .icon-wrapper-alt .badge-dot { + border-color: transparent; +} +.app-header.header-text-dark .app-header-right > .header-btn-lg .widget-content-left .btn-group > .btn, +.app-header.header-text-dark .app-header-right > .header-btn-lg .widget-heading, +.app-header.header-text-dark .app-header-right > .header-btn-lg .widget-subheading { + color: rgba(0, 0, 0, 0.8); +} +.app-header.header-text-dark .app-header-right > .header-btn-lg .header-user-info > .btn-shadow { + box-shadow: 0 0.125rem 0.625rem rgba(0, 0, 0, 0.1), 0 0.0625rem 0.125rem rgba(0, 0, 0, 0.2); +} +.app-header.header-text-dark .search-wrapper .input-holder .search-icon { + background: rgba(0, 0, 0, 0.1); +} +.app-header.header-text-dark .search-wrapper.active .input-holder { + background: rgba(0, 0, 0, 0.1); +} +.app-header.header-text-dark .search-wrapper.active .input-holder .search-input { + color: rgba(0, 0, 0, 0.8); +} +.app-header.header-text-dark .search-wrapper.active .input-holder .search-icon { + background: rgba(0, 0, 0, 0.1); +} +.app-header.header-text-dark .header-btn-lg::before { + background: rgba(0, 0, 0, 0.2); +} +.app-header.header-text-dark .header-btn-lg .hamburger-inner, +.app-header.header-text-dark .header-btn-lg .hamburger.is-active .hamburger-inner, +.app-header.header-text-dark .header-btn-lg .hamburger-inner::before, +.app-header.header-text-dark .header-btn-lg .hamburger-inner::after, +.app-header.header-text-dark .header__pane .hamburger-inner, +.app-header.header-text-dark .header__pane .hamburger.is-active .hamburger-inner, +.app-header.header-text-dark .header__pane .hamburger-inner::before, +.app-header.header-text-dark .header__pane .hamburger-inner::after { + background-color: rgba(0, 0, 0, 0.8) !important; +} +.app-header.header-text-dark .search-wrapper .input-holder .search-icon span::after { + border-color: rgba(0, 0, 0, 0.8); +} +.app-header.header-text-dark .search-wrapper .btn-close::before, +.app-header.header-text-dark .search-wrapper .btn-close::after, +.app-header.header-text-dark .search-wrapper .input-holder .search-icon span::before { + background: rgba(0, 0, 0, 0.8); +} +.app-header.header-text-dark .app-header__logo .logo-src { + background: url(5de49e582a3378e7a6f5.png); +} + +.app-sidebar { + width: 280px; + display: flex; + z-index: 11; + overflow: hidden; + min-width: 280px; + position: relative; + flex: 0 0 280px; + margin-top: -60px; + padding-top: 60px; + transition: all 0.2s; +} +.app-sidebar .app-sidebar__inner { + padding: 2px 1.5rem 1.5rem; +} +.app-sidebar .scrollbar-sidebar { + z-index: 15; + width: 100%; +} +.app-sidebar .app-sidebar-bg { + position: absolute; + left: 0; + top: 0; + height: 100%; + width: 100%; + opacity: 0.05; + background-size: cover; + z-index: 10; +} +.app-sidebar .app-header__logo { + position: absolute; + left: 0; + top: 0; + display: none; + z-index: 11; +} +.app-sidebar.sidebar-shadow { + box-shadow: 7px 0 60px rgba(0, 0, 0, 0.05); +} + +.app-sidebar__heading { + text-transform: uppercase; + font-size: 0.8rem; + margin: 0.75rem 0; + font-weight: bold; + color: #3f6ad8; + white-space: nowrap; + position: relative; +} + +.sidebar-mobile-overlay { + display: none; + position: fixed; + width: 100%; + height: 100%; + background: #333; + opacity: 0.6; + left: 0; + top: 0; + z-index: 12; +} + +.vertical-nav-menu { + margin: 0; + padding: 0; + position: relative; + list-style: none; +} +.vertical-nav-menu::after { + content: " "; + pointer-events: none; + position: absolute; + bottom: 0; + left: 0; + right: 0; + top: 0; +} +.vertical-nav-menu .mm-collapse:not(.mm-show) { + display: none; +} +.vertical-nav-menu .mm-collapsing { + position: relative; + height: 0; + overflow: hidden; + transition-timing-function: ease; + transition-duration: 0.25s; + transition-property: height, visibility; +} +.vertical-nav-menu ul { + margin: 0; + padding: 0; + position: relative; + list-style: none; +} +.vertical-nav-menu:before { + opacity: 0; + transition: opacity 300ms; +} +.vertical-nav-menu li a { + display: block; + line-height: 2.4rem; + height: 2.4rem; + padding: 0 1.5rem 0 45px; + position: relative; + border-radius: 0.25rem; + color: #343a40; + white-space: nowrap; + transition: all 0.2s; + margin: 0.1rem 0; +} +.vertical-nav-menu li a:hover { + background: #e0f3ff; + text-decoration: none; +} +.vertical-nav-menu li a:hover i.metismenu-icon { + opacity: 0.6; +} +.vertical-nav-menu li a:hover i.metismenu-state-icon { + opacity: 1; +} +.vertical-nav-menu li.mm-active > a { + font-weight: bold; +} +.vertical-nav-menu li.mm-active > a i.metismenu-state-icon { + transform: rotate(-180deg); +} +.vertical-nav-menu li a.mm-active { + color: #343a40; + background: #e0f3ff; + font-weight: bold; +} +.vertical-nav-menu i.metismenu-state-icon, +.vertical-nav-menu i.metismenu-icon { + text-align: center; + width: 34px; + height: 34px; + line-height: 34px; + position: absolute; + left: 5px; + top: 50%; + margin-top: -17px; + font-size: 1.5rem; + opacity: 0.3; + transition: color 300ms; +} +.vertical-nav-menu i.metismenu-state-icon { + transition: transform 300ms; + left: auto; + right: 0; +} +.vertical-nav-menu ul { + transition: padding 300ms; + padding: 0.5em 0 0 2rem; +} +.vertical-nav-menu ul:before { + content: ""; + height: 100%; + opacity: 1; + width: 3px; + background: #e0f3ff; + position: absolute; + left: 20px; + top: 0; + border-radius: 15px; +} +.vertical-nav-menu ul > li > a { + color: #6c757d; + height: 2rem; + line-height: 2rem; + padding: 0 1.5rem 0; +} +.vertical-nav-menu ul > li > a:hover { + color: #3f6ad8; +} +.vertical-nav-menu ul > li > a .metismenu-icon { + display: none; +} +.vertical-nav-menu ul > li > a.mm-active { + color: #3f6ad8; + background: #e0f3ff; + font-weight: bold; +} + +.app-sidebar.sidebar-text-dark { + border-right: 0 !important; +} +.app-sidebar.sidebar-text-dark .app-sidebar__heading { + color: rgba(0, 0, 0, 0.6); +} +.app-sidebar.sidebar-text-dark .app-sidebar__heading::before { + background: rgba(0, 0, 0, 0.5) !important; +} +.app-sidebar.sidebar-text-dark .vertical-nav-menu li a { + color: rgba(0, 0, 0, 0.6); +} +.app-sidebar.sidebar-text-dark .vertical-nav-menu li a i.metismenu-icon { + opacity: 0.5; +} +.app-sidebar.sidebar-text-dark .vertical-nav-menu li a i.metismenu-state-icon { + opacity: 0.5; +} +.app-sidebar.sidebar-text-dark .vertical-nav-menu li a:hover { + background: rgba(0, 0, 0, 0.15); + color: rgba(0, 0, 0, 0.7); +} +.app-sidebar.sidebar-text-dark .vertical-nav-menu li a:hover i.metismenu-icon { + opacity: 0.7; +} +.app-sidebar.sidebar-text-dark .vertical-nav-menu li a:hover i.metismenu-state-icon { + opacity: 1; +} +.app-sidebar.sidebar-text-dark .vertical-nav-menu li a.mm-active { + color: rgba(0, 0, 0, 0.7); + background: rgba(0, 0, 0, 0.15); +} +.app-sidebar.sidebar-text-dark .vertical-nav-menu ul:before { + background: rgba(0, 0, 0, 0.1); +} +.app-sidebar.sidebar-text-dark .vertical-nav-menu ul > li > a { + color: rgba(0, 0, 0, 0.4); +} +.app-sidebar.sidebar-text-dark .vertical-nav-menu ul > li > a:hover { + color: rgba(0, 0, 0, 0.7); +} +.app-sidebar.sidebar-text-dark .vertical-nav-menu ul > li > a.mm-active { + color: rgba(0, 0, 0, 0.7); + background: rgba(0, 0, 0, 0.15); +} +.app-sidebar.sidebar-text-dark .ps__thumb-y { + background: rgba(0, 0, 0, 0.3); +} +.app-sidebar.sidebar-text-dark .ps__rail-y:hover .ps__thumb-y { + background: rgba(0, 0, 0, 0.2); +} +.app-sidebar.sidebar-text-dark .app-header__logo .hamburger-inner, +.app-sidebar.sidebar-text-dark .app-header__logo .hamburger-inner::before, +.app-sidebar.sidebar-text-dark .app-header__logo .hamburger-inner::after { + background-color: rgba(0, 0, 0, 0.8); +} + +.closed-sidebar .app-sidebar { + transition: all 0.3s ease; + width: 80px; + min-width: 80px; + flex: 0 0 80px; + z-index: 13; +} +.closed-sidebar .app-sidebar .app-sidebar__inner .app-sidebar__heading { + text-indent: -999em; +} +.closed-sidebar .app-sidebar .app-sidebar__inner .app-sidebar__heading::before { + content: ""; + position: absolute; + top: 50%; + left: 0; + width: 100%; + height: 1px; + background: #e0f3ff; + text-indent: 1px; +} +.closed-sidebar .app-sidebar .app-sidebar__inner ul li a { + text-indent: -99rem; + padding: 0; +} +.closed-sidebar .app-sidebar .app-sidebar__inner .metismenu-icon { + text-indent: 0; + left: 50%; + margin-left: -17px; +} +.closed-sidebar .app-sidebar .app-sidebar__inner .metismenu-state-icon { + visibility: hidden; +} +.closed-sidebar .app-sidebar .app-sidebar__inner ul::before { + display: none; +} +.closed-sidebar .app-sidebar .app-sidebar__inner ul.mm-show { + padding: 0; +} +.closed-sidebar .app-sidebar .app-sidebar__inner ul.mm-show > li > a { + height: 0; +} +.closed-sidebar .app-sidebar:hover { + flex: 0 0 280px !important; + width: 280px !important; +} +.closed-sidebar .app-sidebar:hover .app-sidebar__inner .app-sidebar__heading { + text-indent: initial; +} +.closed-sidebar .app-sidebar:hover .app-sidebar__inner .app-sidebar__heading::before { + display: none; +} +.closed-sidebar .app-sidebar:hover .app-sidebar__inner ul::before { + display: block; +} +.closed-sidebar .app-sidebar:hover .app-sidebar__inner ul li a { + text-indent: initial; + padding: 0 1.5rem 0 45px; +} +.closed-sidebar .app-sidebar:hover .app-sidebar__inner .metismenu-icon { + text-indent: initial; + left: 5px; + margin-left: 0; +} +.closed-sidebar .app-sidebar:hover .app-sidebar__inner .metismenu-state-icon { + visibility: visible; +} +.closed-sidebar .app-sidebar:hover .app-sidebar__inner ul.mm-show { + padding: 0.5em 0 0 2rem; +} +.closed-sidebar .app-sidebar:hover .app-sidebar__inner ul.mm-show > li > a { + height: 2.3em; +} +.closed-sidebar .app-sidebar:hover .app-sidebar__inner ul ul li a { + padding-left: 1em; +} +.closed-sidebar:not(.sidebar-mobile-open) .app-sidebar .scrollbar-sidebar { + position: static; + height: auto; + overflow: initial !important; +} +.closed-sidebar:not(.sidebar-mobile-open) .app-sidebar:hover .scrollbar-sidebar { + position: absolute; + height: 100%; + overflow: hidden !important; +} +.closed-sidebar:not(.closed-sidebar-mobile) .app-header .app-header__logo { + width: 80px; +} +.closed-sidebar:not(.closed-sidebar-mobile) .app-header .app-header__logo .logo-src { + display: none; +} +.closed-sidebar:not(.closed-sidebar-mobile) .app-header .app-header__logo .header__pane { + margin-right: auto; +} +.closed-sidebar.fixed-sidebar .app-main__outer { + padding-left: 80px; +} +.closed-sidebar.fixed-header:not(.fixed-sidebar) .app-sidebar .app-header__logo { + visibility: hidden; +} +.closed-sidebar.closed-sidebar-mobile .app-sidebar .app-header__logo, +.closed-sidebar.closed-sidebar-mobile .app-header .app-header__logo { + width: auto; + display: flex; +} +.closed-sidebar.closed-sidebar-mobile .app-sidebar .app-header__logo .header__pane, +.closed-sidebar.closed-sidebar-mobile .app-header .app-header__logo .header__pane { + display: none; +} +.closed-sidebar.closed-sidebar-mobile .app-sidebar .app-header__logo { + display: flex; + width: 80px; + padding: 0 1.5rem !important; +} +.closed-sidebar.closed-sidebar-mobile .app-sidebar .app-header__logo .logo-src { + display: block !important; + margin: 0 auto; + width: 21px; +} +.closed-sidebar.closed-sidebar-mobile .app-sidebar .app-header__logo .header__pane { + display: none; +} +.closed-sidebar.closed-sidebar-mobile .app-sidebar:hover .app-header__logo { + width: 280px; +} +.closed-sidebar.closed-sidebar-mobile .app-sidebar:hover .app-header__logo .logo-src { + width: 97px; + margin: 0; +} +.closed-sidebar.closed-sidebar-mobile .app-header { + margin-left: 0 !important; +} +.closed-sidebar.fixed-footer .app-footer__inner { + margin-left: 0 !important; +} + +.app-main { + flex: 1; + display: flex; + z-index: 8; + position: relative; +} +.app-main .app-main__outer { + flex: 1; + flex-direction: column; + display: flex; + z-index: 12; +} +.app-main .app-main__inner { + padding: 1.5rem 1.5rem 0; + flex: 1; +} + +.app-theme-white.app-container { + background: #f1f4f6; +} +.app-theme-white .app-sidebar { + background: #ffffff; +} +.app-theme-white .app-page-title { + background: rgba(255, 255, 255, 0.45); +} +.app-theme-white .app-footer .app-footer__inner, +.app-theme-white .app-header { + background: #fafbfc; +} +.app-theme-white.fixed-header .app-header__logo { + background: rgba(250, 251, 252, 0.1); +} + +.app-footer { + height: 60px; +} +.app-footer .app-footer__inner { + padding: 0 1.5rem 0 0.75rem; + height: 60px; + display: flex; + align-content: center; + align-items: center; +} +.app-footer .app-footer__inner .app-footer-left { + display: flex; + align-items: center; +} +.app-footer .app-footer__inner .app-footer-right { + margin-left: auto; + display: flex; +} + +.fixed-footer .app-footer { + position: fixed; + width: 100%; + bottom: 0; + left: 0; + z-index: 7; +} +.fixed-footer .app-footer .app-footer__inner { + margin-left: 280px; + box-shadow: 0.3rem -0.46875rem 2.1875rem rgba(4, 9, 20, 0.02), 0.3rem -0.9375rem 1.40625rem rgba(4, 9, 20, 0.02), 0.3rem -0.25rem 0.53125rem rgba(4, 9, 20, 0.04), 0.3rem -0.125rem 0.1875rem rgba(4, 9, 20, 0.02); +} +.fixed-footer .app-main .app-main__outer { + padding-bottom: 60px; +} + +.app-page-title { + padding: 1.5rem; + margin: -1.5rem -1.5rem 1.5rem; + position: relative; +} +.app-page-title + .body-tabs-layout { + margin-top: -1.5rem !important; +} +.app-page-title .page-title-wrapper { + position: relative; + display: flex; + align-items: center; +} +.app-page-title .page-title-heading, +.app-page-title .page-title-subheading { + margin: 0; + padding: 0; +} +.app-page-title .page-title-heading { + font-size: 1.1rem; + font-weight: 400; + display: flex; + align-content: center; + align-items: center; +} +.app-page-title .page-title-subheading { + padding: 3px 0 0; + font-size: 0.88rem; + opacity: 0.6; +} +.app-page-title .page-title-subheading .breadcrumb { + padding: 0; + margin: 3px 0 0; + background: transparent; +} +.app-page-title .page-title-actions { + margin-left: auto; +} +.app-page-title .page-title-actions .breadcrumb { + margin: 0; + padding: 0; + background: transparent; +} +.app-page-title .page-title-icon { + font-size: 2rem; + display: flex; + align-items: center; + align-content: center; + text-align: center; + padding: 0.8333333333rem; + margin: 0 1.5rem 0 0; + background: #fff; + box-shadow: 0 0.46875rem 2.1875rem rgba(4, 9, 20, 0.03), 0 0.9375rem 1.40625rem rgba(4, 9, 20, 0.03), 0 0.25rem 0.53125rem rgba(4, 9, 20, 0.05), 0 0.125rem 0.1875rem rgba(4, 9, 20, 0.03); + border-radius: 0.25rem; + width: 60px; + height: 60px; +} +.app-page-title .page-title-icon i { + margin: auto; +} +.app-page-title .page-title-icon.rounded-circle { + margin: 0 1rem 0 0; +} +.app-page-title + .RRT__container { + margin-top: -1.1538461538rem; +} +.app-page-title.app-page-title-simple { + margin: 0; + background: none !important; + padding-left: 0; + padding-right: 0; + padding-top: 0; +} + +.page-title-icon-rounded .page-title-icon { + border-radius: 50px; +} + +.opacity-01 { + opacity: 0.01 !important; +} + +.opacity-02 { + opacity: 0.02 !important; +} + +.opacity-03 { + opacity: 0.03 !important; +} + +.opacity-04 { + opacity: 0.04 !important; +} + +.opacity-05 { + opacity: 0.05 !important; +} + +.opacity-06 { + opacity: 0.06 !important; +} + +.opacity-07 { + opacity: 0.07 !important; +} + +.opacity-08 { + opacity: 0.08 !important; +} + +.opacity-09 { + opacity: 0.09 !important; +} + +.opacity-1 { + opacity: 0.1 !important; +} + +.opacity-15 { + opacity: 0.15 !important; +} + +.opacity-2 { + opacity: 0.2 !important; +} + +.opacity-3 { + opacity: 0.3 !important; +} + +.opacity-4 { + opacity: 0.4 !important; +} + +.opacity-5 { + opacity: 0.5 !important; +} + +.opacity-6 { + opacity: 0.6 !important; +} + +.opacity-7 { + opacity: 0.7 !important; +} + +.opacity-8 { + opacity: 0.8 !important; +} + +.opacity-9 { + opacity: 0.9 !important; +} + +.opacity-10 { + opacity: 1 !important; +} + +.filter-grayscale-5 { + filter: grayscale(5%) !important; +} + +.filter-grayscale-10 { + filter: grayscale(10%) !important; +} + +.filter-grayscale-20 { + filter: grayscale(20%) !important; +} + +.filter-grayscale-30 { + filter: grayscale(30%) !important; +} + +.filter-grayscale-40 { + filter: grayscale(40%) !important; +} + +.filter-grayscale-50 { + filter: grayscale(50%) !important; +} + +.filter-grayscale-80 { + filter: grayscale(80%) !important; +} + +.filter-grayscale-100 { + filter: grayscale(100%) !important; +} + +.br-tl { + border-top-left-radius: 0.25rem !important; +} + +.br-tr { + border-top-right-radius: 0.25rem !important; +} + +.br-bl { + border-bottom-left-radius: 0.25rem !important; +} + +.br-br { + border-bottom-right-radius: 0.25rem !important; +} + +.b-radius-0 { + border-radius: 0 !important; +} + +.rm-border { + border-width: 0 !important; +} + +.br-a { + border-radius: 0.25rem; +} + +.margin-h-center { + margin-left: auto !important; + margin-right: auto !important; +} + +.center-svg { + margin: 0 auto; +} +.center-svg svg { + margin: 0 auto; +} + +.apexcharts-canvas { + margin: 0 auto; +} + +.apexcharts-donut { + display: flex; + align-items: center; + align-content: center; +} + +.icon-gradient { + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; + text-fill-color: transparent; +} + +.font-size-xlg { + font-size: 1.3rem !important; +} + +.font-size-md { + font-size: 0.9rem !important; +} + +.font-size-lg { + font-size: 1.1rem !important; +} + +.no-shadow { + box-shadow: 0 0 0 transparent !important; +} + +.h-100 { + height: 100vh !important; +} + +.he-auto { + height: auto !important; +} + +.he-100 { + height: 100%; +} + +.h-sm { + height: 150px; +} + +.text-nowrap { + white-space: nowrap; +} + +.fsize-1 { + font-size: 0.95rem !important; +} + +.fsize-2 { + font-size: 1.3rem !important; +} + +.fsize-3 { + font-size: 1.6rem !important; +} + +.fsize-4 { + font-size: 2rem !important; +} + +.z-index-6 { + z-index: 6; +} + +.line-height-1 { + line-height: 1; +} + +.center-elem { + display: flex; + align-items: center; + align-content: center; +} + +.flex2 { + flex: 2; +} + +.divider { + margin-top: 1rem; + margin-bottom: 1rem; + height: 1px; + overflow: hidden; + background: #e9ecef; +} + +.list-group-item:hover { + z-index: initial; +} + +.no-results { + padding: 1.5rem; + text-align: center; +} +.no-results .results-title { + color: #495057; + font-size: 1.1rem; +} +.no-results .results-subtitle { + color: #adb5bd; + font-size: 1.1rem; +} + +.bg-animation { + animation: bg-pan-left 8s both; +} + +@-webkit-keyframes bg-pan-left { + 0% { + background-position: 100% 50%; + } + 100% { + background-position: 0% 50%; + } +} +@keyframes bg-pan-left { + 0% { + background-position: 100% 50%; + } + 100% { + background-position: 0% 50%; + } +} +.w-100 { + width: 100%; +} + +.mb--2 { + margin-bottom: -1.5rem; +} + +.mbg-3 { + margin-bottom: 1.5rem; +} + +.circle-progress { + position: relative; +} +.circle-progress small, .circle-progress .small { + position: absolute; + height: 100%; + width: 100%; + font-weight: bold; + left: 0; + top: 0; + vertical-align: middle; + text-align: center; + display: flex; + align-items: center; + align-content: center; +} +.circle-progress small span, .circle-progress .small span { + margin: 0 auto; +} +.circle-progress canvas { + display: block; +} + +.btn-info, .btn-success { + color: #fff !important; +} + +.bg-warning { + color: #212529; +} + +.list-group-item { + border: 1px solid rgba(0, 0, 0, 0.125); +} + +.btn-link, a { + text-decoration: none !important; +} + +.bg-light { + color: #212529; +} + +.table { + --bs-table-accent-bg: none; +} + +.bg-warm-flame { + background-image: linear-gradient(45deg, #ff9a9e 0%, #fad0c4 99%, #fad0c4 100%) !important; +} + +.bg-night-fade { + background-image: linear-gradient(to top, #a18cd1 0%, #fbc2eb 100%) !important; +} + +.bg-sunny-morning { + background-image: linear-gradient(120deg, #f6d365 0%, #fda085 100%) !important; +} + +.bg-tempting-azure { + background-image: linear-gradient(120deg, #84fab0 0%, #8fd3f4 100%) !important; +} + +.bg-amy-crisp { + background-image: linear-gradient(120deg, #a6c0fe 0%, #f68084 100%) !important; +} + +.bg-heavy-rain { + background-image: linear-gradient(to top, #cfd9df 0%, #e2ebf0 100%) !important; +} + +.bg-mean-fruit { + background-image: linear-gradient(120deg, #fccb90 0%, #d57eeb 100%) !important; +} + +.bg-malibu-beach { + background-image: linear-gradient(to right, #4facfe 0%, #00f2fe 100%) !important; +} + +.bg-deep-blue { + background-image: linear-gradient(120deg, #e0c3fc 0%, #8ec5fc 100%) !important; +} + +.bg-ripe-malin { + background-image: linear-gradient(120deg, #f093fb 0%, #f5576c 100%) !important; +} + +.bg-arielle-smile { + background-image: radial-gradient(circle 248px at center, #16d9e3 0%, #30c7ec 47%, #46aef7 100%) !important; +} + +.bg-plum-plate { + background-image: linear-gradient(135deg, #667eea 0%, #764ba2 100%) !important; +} + +.bg-happy-fisher { + background-image: linear-gradient(120deg, #89f7fe 0%, #66a6ff 100%) !important; +} + +.bg-happy-itmeo { + background-image: linear-gradient(180deg, #2af598 0%, #009efd 100%) !important; +} + +.bg-mixed-hopes { + background-image: linear-gradient(to top, #c471f5 0%, #fa71cd 100%) !important; +} + +.bg-strong-bliss { + background-image: linear-gradient(to right, #f78ca0 0%, #f9748f 19%, #fd868c 60%, #fe9a8b 100%) !important; +} + +.bg-grow-early { + background-image: linear-gradient(to top, #0ba360 0%, #3cba92 100%) !important; +} + +.bg-love-kiss { + background-image: linear-gradient(to top, #ff0844 0%, #ffb199 100%) !important; +} + +.bg-premium-dark { + background-image: linear-gradient(to right, #434343 0%, black 100%) !important; +} + +.bg-happy-green { + background-image: linear-gradient(to bottom, #00b09b, #96c93d) !important; +} + +.bg-vicious-stance { + background-image: linear-gradient(60deg, #29323c 0%, #485563 100%) !important; +} + +.bg-midnight-bloom { + background-image: linear-gradient(-20deg, #2b5876 0%, #4e4376 100%) !important; +} + +.bg-night-sky { + background-image: linear-gradient(to top, #1e3c72 0%, #1e3c72 1%, #2a5298 100%) !important; +} + +.bg-slick-carbon { + background-image: linear-gradient(to bottom, #323232 0%, #3F3F3F 40%, #1C1C1C 150%), linear-gradient(to top, rgba(255, 255, 255, 0.4) 0%, rgba(0, 0, 0, 0.25) 200%) !important; + background-blend-mode: multiply; +} + +.bg-royal { + background-image: linear-gradient(to right, #141e30, #243b55) !important; +} + +.bg-asteroid { + background-image: linear-gradient(to right, #0f2027, #203a43, #2c5364) !important; +} + +.bg-transparent { + background: transparent !important; +} + +/*! +Animate.css - http://daneden.me/animate +Licensed under the MIT license - http://opensource.org/licenses/MIT +Copyright (c) 2015 Daniel Eden +*/ +body { + -webkit-backface-visibility: hidden; +} + +.animated { + -webkit-animation-duration: calc( 1s ); + animation-duration: calc( 1s ); + -webkit-animation-fill-mode: both; + animation-fill-mode: both; +} +.animated.infinite { + animation-iteration-count: infinite; +} +.animated.hinge { + -webkit-animation-duration: calc( 1s * 2 ); + animation-duration: calc( 1s * 2 ); +} +.animated.bounceIn, .animated.bounceOut { + -webkit-animation-duration: calc( 1s * 0.75 ); + animation-duration: calc( 1s * 0.75 ); +} +.animated.flipOutX, .animated.flipOutY { + -webkit-animation-duration: calc( 1s * 0.75 ); + animation-duration: calc( 1s * 0.75 ); +} + +@-webkit-keyframes bounce { + 0%, 20%, 50%, 80%, 100% { + -webkit-transform: translateY(0); + } + 40% { + -webkit-transform: translateY(-30px); + } + 60% { + -webkit-transform: translateY(-15px); + } +} +@keyframes bounce { + 0%, 20%, 50%, 80%, 100% { + transform: translateY(0); + } + 40% { + transform: translateY(-30px); + } + 60% { + transform: translateY(-15px); + } +} +.bounce { + -webkit-animation-name: bounce; + animation-name: bounce; +} + +@-webkit-keyframes flash { + 0%, 50%, 100% { + opacity: 1; + } + 25%, 75% { + opacity: 0; + } +} +@keyframes flash { + 0%, 50%, 100% { + opacity: 1; + } + 25%, 75% { + opacity: 0; + } +} +.flash { + -webkit-animation-name: flash; + animation-name: flash; +} + +@-webkit-keyframes pulse { + 0% { + -webkit-transform: scale(1); + } + 50% { + -webkit-transform: scale(1.1); + } + 100% { + -webkit-transform: scale(1); + } +} +@keyframes pulse { + 0% { + transform: scale(1); + } + 50% { + transform: scale(1.1); + } + 100% { + transform: scale(1); + } +} +.pulse { + -webkit-animation-name: pulse; + animation-name: pulse; +} + +@-webkit-keyframes shake { + 0%, 100% { + -webkit-transform: translateX(0); + } + 10%, 30%, 50%, 70%, 90% { + -webkit-transform: translateX(-10px); + } + 20%, 40%, 60%, 80% { + -webkit-transform: translateX(10px); + } +} +@keyframes shake { + 0%, 100% { + transform: translateX(0); + } + 10%, 30%, 50%, 70%, 90% { + transform: translateX(-10px); + } + 20%, 40%, 60%, 80% { + transform: translateX(10px); + } +} +.shake { + -webkit-animation-name: shake; + animation-name: shake; +} + +@-webkit-keyframes swing { + 20%, 40%, 60%, 80%, 100% { + -webkit-transform-origin: top center; + } + 20% { + -webkit-transform: rotate(15deg); + } + 40% { + -webkit-transform: rotate(-10deg); + } + 60% { + -webkit-transform: rotate(5deg); + } + 80% { + -webkit-transform: rotate(-5deg); + } + 100% { + -webkit-transform: rotate(0deg); + } +} +@keyframes swing { + 20% { + transform: rotate(15deg); + } + 40% { + transform: rotate(-10deg); + } + 60% { + transform: rotate(5deg); + } + 80% { + transform: rotate(-5deg); + } + 100% { + transform: rotate(0deg); + } +} +.swing { + -webkit-transform-origin: top center; + transform-origin: top center; + -webkit-animation-name: swing; + animation-name: swing; +} + +@-webkit-keyframes wiggle { + 0% { + -webkit-transform: skewX(9deg); + } + 10% { + -webkit-transform: skewX(-8deg); + } + 20% { + -webkit-transform: skewX(7deg); + } + 30% { + -webkit-transform: skewX(-6deg); + } + 40% { + -webkit-transform: skewX(5deg); + } + 50% { + -webkit-transform: skewX(-4deg); + } + 60% { + -webkit-transform: skewX(3deg); + } + 70% { + -webkit-transform: skewX(-2deg); + } + 80% { + -webkit-transform: skewX(1deg); + } + 90% { + -webkit-transform: skewX(0deg); + } + 100% { + -webkit-transform: skewX(0deg); + } +} +@keyframes wiggle { + 0% { + transform: skewX(9deg); + } + 10% { + transform: skewX(-8deg); + } + 20% { + transform: skewX(7deg); + } + 30% { + transform: skewX(-6deg); + } + 40% { + transform: skewX(5deg); + } + 50% { + transform: skewX(-4deg); + } + 60% { + transform: skewX(3deg); + } + 70% { + transform: skewX(-2deg); + } + 80% { + transform: skewX(1deg); + } + 90% { + transform: skewX(0deg); + } + 100% { + transform: skewX(0deg); + } +} +.wiggle { + -webkit-animation-name: wiggle; + animation-name: wiggle; + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; +} + +@-webkit-keyframes wobble { + 0% { + -webkit-transform: translateX(0%); + } + 15% { + -webkit-transform: translateX(-25%) rotate(-5deg); + } + 30% { + -webkit-transform: translateX(20%) rotate(3deg); + } + 45% { + -webkit-transform: translateX(-15%) rotate(-3deg); + } + 60% { + -webkit-transform: translateX(10%) rotate(2deg); + } + 75% { + -webkit-transform: translateX(-5%) rotate(-1deg); + } + 100% { + -webkit-transform: translateX(0%); + } +} +@keyframes wobble { + 0% { + transform: translateX(0%); + } + 15% { + transform: translateX(-25%) rotate(-5deg); + } + 30% { + transform: translateX(20%) rotate(3deg); + } + 45% { + transform: translateX(-15%) rotate(-3deg); + } + 60% { + transform: translateX(10%) rotate(2deg); + } + 75% { + transform: translateX(-5%) rotate(-1deg); + } + 100% { + transform: translateX(0%); + } +} +.wobble { + -webkit-animation-name: wobble; + animation-name: wobble; +} + +@-webkit-keyframes tada { + 0% { + -webkit-transform: scale(1); + } + 10%, 20% { + -webkit-transform: scale(0.9) rotate(-3deg); + } + 30%, 50%, 70%, 90% { + -webkit-transform: scale(1.1) rotate(3deg); + } + 40%, 60%, 80% { + -webkit-transform: scale(1.1) rotate(-3deg); + } + 100% { + -webkit-transform: scale(1) rotate(0); + } +} +@keyframes tada { + 0% { + transform: scale(1); + } + 10%, 20% { + transform: scale(0.9) rotate(-3deg); + } + 30%, 50%, 70%, 90% { + transform: scale(1.1) rotate(3deg); + } + 40%, 60%, 80% { + transform: scale(1.1) rotate(-3deg); + } + 100% { + transform: scale(1) rotate(0); + } +} +.tada { + -webkit-animation-name: tada; + animation-name: tada; +} + +@-webkit-keyframes bounceIn { + 0% { + opacity: 0; + -webkit-transform: scale(0.3); + } + 50% { + opacity: 1; + -webkit-transform: scale(1.05); + } + 70% { + -webkit-transform: scale(0.9); + } + 100% { + -webkit-transform: scale(1); + } +} +@keyframes bounceIn { + 0% { + opacity: 0; + transform: scale(0.3); + } + 50% { + opacity: 1; + transform: scale(1.05); + } + 70% { + transform: scale(0.9); + } + 100% { + transform: scale(1); + } +} +.bounceIn { + -webkit-animation-name: bounceIn; + animation-name: bounceIn; +} + +@-webkit-keyframes bounceInDown { + 0% { + opacity: 0; + -webkit-transform: translateY(-2000px); + } + 60% { + opacity: 1; + -webkit-transform: translateY(30px); + } + 80% { + -webkit-transform: translateY(-10px); + } + 100% { + -webkit-transform: translateY(0); + } +} +@keyframes bounceInDown { + 0% { + opacity: 0; + transform: translateY(-2000px); + } + 60% { + opacity: 1; + transform: translateY(30px); + } + 80% { + transform: translateY(-10px); + } + 100% { + transform: translateY(0); + } +} +.bounceInDown { + -webkit-animation-name: bounceInDown; + animation-name: bounceInDown; +} + +@-webkit-keyframes bounceInLeft { + 0% { + opacity: 0; + -webkit-transform: translateX(-2000px); + } + 60% { + opacity: 1; + -webkit-transform: translateX(30px); + } + 80% { + -webkit-transform: translateX(-10px); + } + 100% { + -webkit-transform: translateX(0); + } +} +@keyframes bounceInLeft { + 0% { + opacity: 0; + transform: translateX(-2000px); + } + 60% { + opacity: 1; + transform: translateX(30px); + } + 80% { + transform: translateX(-10px); + } + 100% { + transform: translateX(0); + } +} +.bounceInLeft { + -webkit-animation-name: bounceInLeft; + animation-name: bounceInLeft; +} + +@-webkit-keyframes bounceInRight { + 0% { + opacity: 0; + -webkit-transform: translateX(2000px); + } + 60% { + opacity: 1; + -webkit-transform: translateX(-30px); + } + 80% { + -webkit-transform: translateX(10px); + } + 100% { + -webkit-transform: translateX(0); + } +} +@keyframes bounceInRight { + 0% { + opacity: 0; + transform: translateX(2000px); + } + 60% { + opacity: 1; + transform: translateX(-30px); + } + 80% { + transform: translateX(10px); + } + 100% { + transform: translateX(0); + } +} +.bounceInRight { + -webkit-animation-name: bounceInRight; + animation-name: bounceInRight; +} + +@-webkit-keyframes bounceInUp { + 0% { + opacity: 0; + -webkit-transform: translateY(2000px); + } + 60% { + opacity: 1; + -webkit-transform: translateY(-30px); + } + 80% { + -webkit-transform: translateY(10px); + } + 100% { + -webkit-transform: translateY(0); + } +} +@keyframes bounceInUp { + 0% { + opacity: 0; + transform: translateY(2000px); + } + 60% { + opacity: 1; + transform: translateY(-30px); + } + 80% { + transform: translateY(10px); + } + 100% { + transform: translateY(0); + } +} +.bounceInUp { + -webkit-animation-name: bounceInUp; + animation-name: bounceInUp; +} + +@-webkit-keyframes bounceOut { + 0% { + -webkit-transform: scale(1); + } + 25% { + -webkit-transform: scale(0.95); + } + 50% { + opacity: 1; + -webkit-transform: scale(1.1); + } + 100% { + opacity: 0; + -webkit-transform: scale(0.3); + } +} +@keyframes bounceOut { + 0% { + transform: scale(1); + } + 25% { + transform: scale(0.95); + } + 50% { + opacity: 1; + transform: scale(1.1); + } + 100% { + opacity: 0; + transform: scale(0.3); + } +} +.bounceOut { + -webkit-animation-name: bounceOut; + animation-name: bounceOut; +} + +@-webkit-keyframes bounceOutDown { + 0% { + -webkit-transform: translateY(0); + } + 20% { + opacity: 1; + -webkit-transform: translateY(-20px); + } + 100% { + opacity: 0; + -webkit-transform: translateY(2000px); + } +} +@keyframes bounceOutDown { + 0% { + transform: translateY(0); + } + 20% { + opacity: 1; + transform: translateY(-20px); + } + 100% { + opacity: 0; + transform: translateY(2000px); + } +} +.bounceOutDown { + -webkit-animation-name: bounceOutDown; + animation-name: bounceOutDown; +} + +@-webkit-keyframes bounceOutLeft { + 0% { + -webkit-transform: translateX(0); + } + 20% { + opacity: 1; + -webkit-transform: translateX(20px); + } + 100% { + opacity: 0; + -webkit-transform: translateX(-2000px); + } +} +@keyframes bounceOutLeft { + 0% { + transform: translateX(0); + } + 20% { + opacity: 1; + transform: translateX(20px); + } + 100% { + opacity: 0; + transform: translateX(-2000px); + } +} +.bounceOutLeft { + -webkit-animation-name: bounceOutLeft; + animation-name: bounceOutLeft; +} + +@-webkit-keyframes bounceOutRight { + 0% { + -webkit-transform: translateX(0); + } + 20% { + opacity: 1; + -webkit-transform: translateX(-20px); + } + 100% { + opacity: 0; + -webkit-transform: translateX(2000px); + } +} +@keyframes bounceOutRight { + 0% { + transform: translateX(0); + } + 20% { + opacity: 1; + transform: translateX(-20px); + } + 100% { + opacity: 0; + transform: translateX(2000px); + } +} +.bounceOutRight { + -webkit-animation-name: bounceOutRight; + animation-name: bounceOutRight; +} + +@-webkit-keyframes bounceOutUp { + 0% { + -webkit-transform: translateY(0); + } + 20% { + opacity: 1; + -webkit-transform: translateY(20px); + } + 100% { + opacity: 0; + -webkit-transform: translateY(-2000px); + } +} +@keyframes bounceOutUp { + 0% { + transform: translateY(0); + } + 20% { + opacity: 1; + transform: translateY(20px); + } + 100% { + opacity: 0; + transform: translateY(-2000px); + } +} +.bounceOutUp { + -webkit-animation-name: bounceOutUp; + animation-name: bounceOutUp; +} + +@-webkit-keyframes fadeIn { + 0% { + opacity: 0; + } + 100% { + opacity: 1; + } +} +@keyframes fadeIn { + 0% { + opacity: 0; + } + 100% { + opacity: 1; + } +} +.fadeIn { + -webkit-animation-name: fadeIn; + animation-name: fadeIn; +} + +@-webkit-keyframes fadeInDown { + 0% { + opacity: 0; + -webkit-transform: translateY(-20px); + } + 100% { + opacity: 1; + -webkit-transform: translateY(0); + } +} +@keyframes fadeInDown { + 0% { + opacity: 0; + transform: translateY(-20px); + } + 100% { + opacity: 1; + transform: translateY(0); + } +} +.fadeInDown { + -webkit-animation-name: fadeInDown; + animation-name: fadeInDown; +} + +@-webkit-keyframes fadeInDownBig { + 0% { + opacity: 0; + -webkit-transform: translateY(-2000px); + } + 100% { + opacity: 1; + -webkit-transform: translateY(0); + } +} +@keyframes fadeInDownBig { + 0% { + opacity: 0; + transform: translateY(-2000px); + } + 100% { + opacity: 1; + transform: translateY(0); + } +} +.fadeInDownBig { + -webkit-animation-name: fadeInDownBig; + animation-name: fadeInDownBig; +} + +@-webkit-keyframes fadeInLeft { + 0% { + opacity: 0; + -webkit-transform: translateX(-20px); + } + 100% { + opacity: 1; + -webkit-transform: translateX(0); + } +} +@keyframes fadeInLeft { + 0% { + opacity: 0; + transform: translateX(-20px); + } + 100% { + opacity: 1; + transform: translateX(0); + } +} +.fadeInLeft { + -webkit-animation-name: fadeInLeft; + animation-name: fadeInLeft; +} + +@-webkit-keyframes fadeInLeftBig { + 0% { + opacity: 0; + -webkit-transform: translateX(-2000px); + } + 100% { + opacity: 1; + -webkit-transform: translateX(0); + } +} +@keyframes fadeInLeftBig { + 0% { + opacity: 0; + transform: translateX(-2000px); + } + 100% { + opacity: 1; + transform: translateX(0); + } +} +.fadeInLeftBig { + -webkit-animation-name: fadeInLeftBig; + animation-name: fadeInLeftBig; +} + +@-webkit-keyframes fadeInRight { + 0% { + opacity: 0; + -webkit-transform: translateX(20px); + } + 100% { + opacity: 1; + -webkit-transform: translateX(0); + } +} +@keyframes fadeInRight { + 0% { + opacity: 0; + transform: translateX(20px); + } + 100% { + opacity: 1; + transform: translateX(0); + } +} +.fadeInRight { + -webkit-animation-name: fadeInRight; + animation-name: fadeInRight; +} + +@-webkit-keyframes fadeInRightBig { + 0% { + opacity: 0; + -webkit-transform: translateX(2000px); + } + 100% { + opacity: 1; + -webkit-transform: translateX(0); + } +} +@keyframes fadeInRightBig { + 0% { + opacity: 0; + transform: translateX(2000px); + } + 100% { + opacity: 1; + transform: translateX(0); + } +} +.fadeInRightBig { + -webkit-animation-name: fadeInRightBig; + animation-name: fadeInRightBig; +} + +@-webkit-keyframes fadeInUp { + 0% { + opacity: 0; + -webkit-transform: translateY(20px); + } + 100% { + opacity: 1; + -webkit-transform: translateY(0); + } +} +@keyframes fadeInUp { + 0% { + opacity: 0; + transform: translateY(20px); + } + 100% { + opacity: 1; + transform: translateY(0); + } +} +.fadeInUp { + -webkit-animation-name: fadeInUp; + animation-name: fadeInUp; +} + +@-webkit-keyframes fadeInUpBig { + 0% { + opacity: 0; + -webkit-transform: translateY(2000px); + } + 100% { + opacity: 1; + -webkit-transform: translateY(0); + } +} +@keyframes fadeInUpBig { + 0% { + opacity: 0; + transform: translateY(2000px); + } + 100% { + opacity: 1; + transform: translateY(0); + } +} +.fadeInUpBig { + -webkit-animation-name: fadeInUpBig; + animation-name: fadeInUpBig; +} + +@-webkit-keyframes fadeOut { + 0% { + opacity: 1; + } + 100% { + opacity: 0; + } +} +@keyframes fadeOut { + 0% { + opacity: 1; + } + 100% { + opacity: 0; + } +} +.fadeOut { + -webkit-animation-name: fadeOut; + animation-name: fadeOut; +} + +@-webkit-keyframes fadeOutDown { + 0% { + opacity: 1; + -webkit-transform: translateY(0); + } + 100% { + opacity: 0; + -webkit-transform: translateY(20px); + } +} +@keyframes fadeOutDown { + 0% { + opacity: 1; + transform: translateY(0); + } + 100% { + opacity: 0; + transform: translateY(20px); + } +} +.fadeOutDown { + -webkit-animation-name: fadeOutDown; + animation-name: fadeOutDown; +} + +@-webkit-keyframes fadeOutDownBig { + 0% { + opacity: 1; + -webkit-transform: translateY(0); + } + 100% { + opacity: 0; + -webkit-transform: translateY(2000px); + } +} +@keyframes fadeOutDownBig { + 0% { + opacity: 1; + transform: translateY(0); + } + 100% { + opacity: 0; + transform: translateY(2000px); + } +} +.fadeOutDownBig { + -webkit-animation-name: fadeOutDownBig; + animation-name: fadeOutDownBig; +} + +@-webkit-keyframes fadeOutLeft { + 0% { + opacity: 1; + -webkit-transform: translateX(0); + } + 100% { + opacity: 0; + -webkit-transform: translateX(-20px); + } +} +@keyframes fadeOutLeft { + 0% { + opacity: 1; + transform: translateX(0); + } + 100% { + opacity: 0; + transform: translateX(-20px); + } +} +.fadeOutLeft { + -webkit-animation-name: fadeOutLeft; + animation-name: fadeOutLeft; +} + +@-webkit-keyframes fadeOutLeftBig { + 0% { + opacity: 1; + -webkit-transform: translateX(0); + } + 100% { + opacity: 0; + -webkit-transform: translateX(-2000px); + } +} +@keyframes fadeOutLeftBig { + 0% { + opacity: 1; + transform: translateX(0); + } + 100% { + opacity: 0; + transform: translateX(-2000px); + } +} +.fadeOutLeftBig { + -webkit-animation-name: fadeOutLeftBig; + animation-name: fadeOutLeftBig; +} + +@-webkit-keyframes fadeOutRight { + 0% { + opacity: 1; + -webkit-transform: translateX(0); + } + 100% { + opacity: 0; + -webkit-transform: translateX(20px); + } +} +@keyframes fadeOutRight { + 0% { + opacity: 1; + transform: translateX(0); + } + 100% { + opacity: 0; + transform: translateX(20px); + } +} +.fadeOutRight { + -webkit-animation-name: fadeOutRight; + animation-name: fadeOutRight; +} + +@-webkit-keyframes fadeOutRightBig { + 0% { + opacity: 1; + -webkit-transform: translateX(0); + } + 100% { + opacity: 0; + -webkit-transform: translateX(2000px); + } +} +@keyframes fadeOutRightBig { + 0% { + opacity: 1; + transform: translateX(0); + } + 100% { + opacity: 0; + transform: translateX(2000px); + } +} +.fadeOutRightBig { + -webkit-animation-name: fadeOutRightBig; + animation-name: fadeOutRightBig; +} + +@-webkit-keyframes fadeOutUp { + 0% { + opacity: 1; + -webkit-transform: translateY(0); + } + 100% { + opacity: 0; + -webkit-transform: translateY(-20px); + } +} +@keyframes fadeOutUp { + 0% { + opacity: 1; + transform: translateY(0); + } + 100% { + opacity: 0; + transform: translateY(-20px); + } +} +.fadeOutUp { + -webkit-animation-name: fadeOutUp; + animation-name: fadeOutUp; +} + +@-webkit-keyframes fadeOutUpBig { + 0% { + opacity: 1; + -webkit-transform: translateY(0); + } + 100% { + opacity: 0; + -webkit-transform: translateY(-2000px); + } +} +@keyframes fadeOutUpBig { + 0% { + opacity: 1; + transform: translateY(0); + } + 100% { + opacity: 0; + transform: translateY(-2000px); + } +} +.fadeOutUpBig { + -webkit-animation-name: fadeOutUpBig; + animation-name: fadeOutUpBig; +} + +@-webkit-keyframes flip { + 0% { + -webkit-transform: perspective(400px) rotateY(0); + -webkit-animation-timing-function: ease-out; + } + 40% { + -webkit-transform: perspective(400px) translateZ(150px) rotateY(170deg); + -webkit-animation-timing-function: ease-out; + } + 50% { + -webkit-transform: perspective(400px) translateZ(150px) rotateY(190deg) scale(1); + -webkit-animation-timing-function: ease-in; + } + 80% { + -webkit-transform: perspective(400px) rotateY(360deg) scale(0.95); + -webkit-animation-timing-function: ease-in; + } + 100% { + -webkit-transform: perspective(400px) scale(1); + -webkit-animation-timing-function: ease-in; + } +} +@keyframes flip { + 0% { + transform: perspective(400px) rotateY(0); + animation-timing-function: ease-out; + } + 40% { + transform: perspective(400px) translateZ(150px) rotateY(170deg); + animation-timing-function: ease-out; + } + 50% { + transform: perspective(400px) translateZ(150px) rotateY(190deg) scale(1); + animation-timing-function: ease-in; + } + 80% { + transform: perspective(400px) rotateY(360deg) scale(0.95); + animation-timing-function: ease-in; + } + 100% { + transform: perspective(400px) scale(1); + animation-timing-function: ease-in; + } +} +.flip { + -webkit-transform-style: preserve-3d; + transform-style: preserve-3d; + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important; + -webkit-animation-name: flip; + animation-name: flip; +} + +@-webkit-keyframes flipInX { + 0% { + -webkit-transform: perspective(400px) rotateX(90deg); + opacity: 0; + } + 40% { + -webkit-transform: perspective(400px) rotateX(-10deg); + } + 70% { + -webkit-transform: perspective(400px) rotateX(10deg); + } + 100% { + -webkit-transform: perspective(400px) rotateX(0deg); + opacity: 1; + } +} +@keyframes flipInX { + 0% { + transform: perspective(400px) rotateX(90deg); + opacity: 0; + } + 40% { + transform: perspective(400px) rotateX(-10deg); + } + 70% { + transform: perspective(400px) rotateX(10deg); + } + 100% { + transform: perspective(400px) rotateX(0deg); + opacity: 1; + } +} +.flipInX { + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important; + -webkit-animation-name: flipInX; + animation-name: flipInX; +} + +@-webkit-keyframes flipInY { + 0% { + -webkit-transform: perspective(400px) rotateY(90deg); + opacity: 0; + } + 40% { + -webkit-transform: perspective(400px) rotateY(-10deg); + } + 70% { + -webkit-transform: perspective(400px) rotateY(10deg); + } + 100% { + -webkit-transform: perspective(400px) rotateY(0deg); + opacity: 1; + } +} +@keyframes flipInY { + 0% { + transform: perspective(400px) rotateY(90deg); + opacity: 0; + } + 40% { + transform: perspective(400px) rotateY(-10deg); + } + 70% { + transform: perspective(400px) rotateY(10deg); + } + 100% { + transform: perspective(400px) rotateY(0deg); + opacity: 1; + } +} +.flipInY { + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important; + -webkit-animation-name: flipInY; + animation-name: flipInY; +} + +@-webkit-keyframes flipOutX { + 0% { + -webkit-transform: perspective(400px) rotateX(0deg); + opacity: 1; + } + 100% { + -webkit-transform: perspective(400px) rotateX(90deg); + opacity: 0; + } +} +@keyframes flipOutX { + 0% { + transform: perspective(400px) rotateX(0deg); + opacity: 1; + } + 100% { + transform: perspective(400px) rotateX(90deg); + opacity: 0; + } +} +.flipOutX { + -webkit-animation-name: flipOutX; + animation-name: flipOutX; + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important; +} + +@-webkit-keyframes flipOutY { + 0% { + -webkit-transform: perspective(400px) rotateY(0deg); + opacity: 1; + } + 100% { + -webkit-transform: perspective(400px) rotateY(90deg); + opacity: 0; + } +} +@keyframes flipOutY { + 0% { + transform: perspective(400px) rotateY(0deg); + opacity: 1; + } + 100% { + transform: perspective(400px) rotateY(90deg); + opacity: 0; + } +} +.flipOutY { + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important; + -webkit-animation-name: flipOutY; + animation-name: flipOutY; +} + +@-webkit-keyframes lightSpeedIn { + 0% { + -webkit-transform: translateX(100%) skewX(-30deg); + opacity: 0; + } + 60% { + -webkit-transform: translateX(-20%) skewX(30deg); + opacity: 1; + } + 80% { + -webkit-transform: translateX(0%) skewX(-15deg); + opacity: 1; + } + 100% { + -webkit-transform: translateX(0%) skewX(0deg); + opacity: 1; + } +} +@keyframes lightSpeedIn { + 0% { + transform: translateX(100%) skewX(-30deg); + opacity: 0; + } + 60% { + transform: translateX(-20%) skewX(30deg); + opacity: 1; + } + 80% { + transform: translateX(0%) skewX(-15deg); + opacity: 1; + } + 100% { + transform: translateX(0%) skewX(0deg); + opacity: 1; + } +} +.lightSpeedIn { + -webkit-animation-name: lightSpeedIn; + animation-name: lightSpeedIn; + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; +} + +@-webkit-keyframes lightSpeedOut { + 0% { + -webkit-transform: translateX(0%) skewX(0deg); + opacity: 1; + } + 100% { + -webkit-transform: translateX(100%) skewX(-30deg); + opacity: 0; + } +} +@keyframes lightSpeedOut { + 0% { + transform: translateX(0%) skewX(0deg); + opacity: 1; + } + 100% { + transform: translateX(100%) skewX(-30deg); + opacity: 0; + } +} +.lightSpeedOut { + -webkit-animation-name: lightSpeedOut; + animation-name: lightSpeedOut; + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; +} + +@-webkit-keyframes rotateIn { + 0% { + -webkit-transform-origin: center center; + -webkit-transform: rotate(-200deg); + opacity: 0; + } + 100% { + -webkit-transform-origin: center center; + -webkit-transform: rotate(0); + opacity: 1; + } +} +@keyframes rotateIn { + 0% { + transform-origin: center center; + transform: rotate(-200deg); + opacity: 0; + } + 100% { + transform-origin: center center; + transform: rotate(0); + opacity: 1; + } +} +.rotateIn { + -webkit-animation-name: rotateIn; + animation-name: rotateIn; +} + +@-webkit-keyframes rotateInDownLeft { + 0% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate(-90deg); + opacity: 0; + } + 100% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate(0); + opacity: 1; + } +} +@keyframes rotateInDownLeft { + 0% { + transform-origin: left bottom; + transform: rotate(-90deg); + opacity: 0; + } + 100% { + transform-origin: left bottom; + transform: rotate(0); + opacity: 1; + } +} +.rotateInDownLeft { + -webkit-animation-name: rotateInDownLeft; + animation-name: rotateInDownLeft; +} + +@-webkit-keyframes rotateInDownRight { + 0% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate(90deg); + opacity: 0; + } + 100% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate(0); + opacity: 1; + } +} +@keyframes rotateInDownRight { + 0% { + transform-origin: right bottom; + transform: rotate(90deg); + opacity: 0; + } + 100% { + transform-origin: right bottom; + transform: rotate(0); + opacity: 1; + } +} +.rotateInDownRight { + -webkit-animation-name: rotateInDownRight; + animation-name: rotateInDownRight; +} + +@-webkit-keyframes rotateInUpLeft { + 0% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate(90deg); + opacity: 0; + } + 100% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate(0); + opacity: 1; + } +} +@keyframes rotateInUpLeft { + 0% { + transform-origin: left bottom; + transform: rotate(90deg); + opacity: 0; + } + 100% { + transform-origin: left bottom; + transform: rotate(0); + opacity: 1; + } +} +.rotateInUpLeft { + -webkit-animation-name: rotateInUpLeft; + animation-name: rotateInUpLeft; +} + +@-webkit-keyframes rotateInUpRight { + 0% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate(-90deg); + opacity: 0; + } + 100% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate(0); + opacity: 1; + } +} +@keyframes rotateInUpRight { + 0% { + transform-origin: right bottom; + transform: rotate(-90deg); + opacity: 0; + } + 100% { + transform-origin: right bottom; + transform: rotate(0); + opacity: 1; + } +} +.rotateInUpRight { + -webkit-animation-name: rotateInUpRight; + animation-name: rotateInUpRight; +} + +@-webkit-keyframes rotateOut { + 0% { + -webkit-transform-origin: center center; + -webkit-transform: rotate(0); + opacity: 1; + } + 100% { + -webkit-transform-origin: center center; + -webkit-transform: rotate(200deg); + opacity: 0; + } +} +@keyframes rotateOut { + 0% { + transform-origin: center center; + transform: rotate(0); + opacity: 1; + } + 100% { + transform-origin: center center; + transform: rotate(200deg); + opacity: 0; + } +} +.rotateOut { + -webkit-animation-name: rotateOut; + animation-name: rotateOut; +} + +@-webkit-keyframes rotateOutDownLeft { + 0% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate(0); + opacity: 1; + } + 100% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate(90deg); + opacity: 0; + } +} +@keyframes rotateOutDownLeft { + 0% { + transform-origin: left bottom; + transform: rotate(0); + opacity: 1; + } + 100% { + transform-origin: left bottom; + transform: rotate(90deg); + opacity: 0; + } +} +.rotateOutDownLeft { + -webkit-animation-name: rotateOutDownLeft; + animation-name: rotateOutDownLeft; +} + +@-webkit-keyframes rotateOutDownRight { + 0% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate(0); + opacity: 1; + } + 100% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate(-90deg); + opacity: 0; + } +} +@keyframes rotateOutDownRight { + 0% { + transform-origin: right bottom; + transform: rotate(0); + opacity: 1; + } + 100% { + transform-origin: right bottom; + transform: rotate(-90deg); + opacity: 0; + } +} +.rotateOutDownRight { + -webkit-animation-name: rotateOutDownRight; + animation-name: rotateOutDownRight; +} + +@-webkit-keyframes rotateOutUpLeft { + 0% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate(0); + opacity: 1; + } + 100% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate(-90deg); + opacity: 0; + } +} +@keyframes rotateOutUpLeft { + 0% { + transform-origin: left bottom; + transform: rotate(0); + opacity: 1; + } + 100% { + -transform-origin: left bottom; + -transform: rotate(-90deg); + opacity: 0; + } +} +.rotateOutUpLeft { + -webkit-animation-name: rotateOutUpLeft; + animation-name: rotateOutUpLeft; +} + +@-webkit-keyframes rotateOutUpRight { + 0% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate(0); + opacity: 1; + } + 100% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate(90deg); + opacity: 0; + } +} +@keyframes rotateOutUpRight { + 0% { + transform-origin: right bottom; + transform: rotate(0); + opacity: 1; + } + 100% { + transform-origin: right bottom; + transform: rotate(90deg); + opacity: 0; + } +} +.rotateOutUpRight { + -webkit-animation-name: rotateOutUpRight; + animation-name: rotateOutUpRight; +} + +@-webkit-keyframes slideInDown { + 0% { + -webkit-transform: translate3d(0, -100%, 0); + visibility: visible; + } + 100% { + -webkit-transform: translate3d(0, 0, 0); + } +} +@keyframes slideInDown { + 0% { + transform: translate3d(0, -100%, 0); + visibility: visible; + } + 100% { + transform: translate3d(0, 0, 0); + } +} +.slideInDown { + -webkit-animation-name: slideInDown; + animation-name: slideInDown; +} + +@-webkit-keyframes slideInLeft { + 0% { + -webkit-transform: translate3d(-100%, 0, 0); + visibility: visible; + } + 100% { + -webkit-transform: translate3d(0, 0, 0); + } +} +@keyframes slideInLeft { + 0% { + transform: translate3d(-100%, 0, 0); + visibility: visible; + } + 100% { + transform: translate3d(0, 0, 0); + } +} +.slideInLeft { + -webkit-animation-name: slideInLeft; + animation-name: slideInLeft; +} + +@-webkit-keyframes slideInRight { + 0% { + -webkit-transform: translate3d(100%, 0, 0); + visibility: visible; + } + 100% { + -webkit-transform: translate3d(0, 0, 0); + } +} +@keyframes slideInRight { + 0% { + transform: translate3d(100%, 0, 0); + visibility: visible; + } + 100% { + transform: translate3d(0, 0, 0); + } +} +.slideInRight { + -webkit-animation-name: slideInRight; + animation-name: slideInRight; +} + +@-webkit-keyframes slideInUp { + 0% { + -webkit-transform: translate3d(0, 100%, 0); + visibility: visible; + } + 100% { + -webkit-transform: translate3d(0, 0, 0); + } +} +@keyframes slideInUp { + 0% { + transform: translate3d(0, 100%, 0); + visibility: visible; + } + 100% { + transform: translate3d(0, 0, 0); + } +} +.slideInUp { + -webkit-animation-name: slideInUp; + animation-name: slideInUp; +} + +@-webkit-keyframes slideOutDown { + 0% { + -webkit-transform: translate3d(0, 0, 0); + visibility: visible; + } + 100% { + -webkit-transform: translate3d(0, 100%, 0); + } +} +@keyframes slideOutDown { + 0% { + transform: translate3d(0, 0, 0); + visibility: visible; + } + 100% { + transform: translate3d(0, 100%, 0); + } +} +.slideOutDown { + -webkit-animation-name: slideOutDown; + animation-name: slideOutDown; +} + +@-webkit-keyframes slideOutLeft { + 0% { + -webkit-transform: translate3d(0, 0, 0); + visibility: visible; + } + 100% { + -webkit-transform: translate3d(-100%, 0, 0); + } +} +@keyframes slideOutLeft { + 0% { + transform: translate3d(0, 0, 0); + visibility: visible; + } + 100% { + transform: translate3d(-100%, 0, 0); + } +} +.slideOutLeft { + -webkit-animation-name: slideOutLeft; + animation-name: slideOutLeft; +} + +@-webkit-keyframes slideOutRight { + 0% { + -webkit-transform: translate3d(0, 0, 0); + visibility: visible; + } + 100% { + -webkit-transform: translate3d(100%, 0, 0); + } +} +@keyframes slideOutRight { + 0% { + transform: translate3d(0, 0, 0); + visibility: visible; + } + 100% { + transform: translate3d(100%, 0, 0); + } +} +.slideOutRight { + -webkit-animation-name: slideOutRight; + animation-name: slideOutRight; +} + +@-webkit-keyframes slideOutUp { + 0% { + -webkit-transform: translate3d(0, 0, 0); + visibility: visible; + } + 100% { + -webkit-transform: translate3d(0, -100%, 0); + } +} +@keyframes slideOutUp { + 0% { + transform: translate3d(0, 0, 0); + visibility: visible; + } + 100% { + transform: translate3d(0, -100%, 0); + } +} +.slideOutUp { + -webkit-animation-name: slideOutUp; + animation-name: slideOutUp; +} + +@-webkit-keyframes hinge { + 0% { + -webkit-transform: rotate(0); + -webkit-transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + } + 20%, 60% { + -webkit-transform: rotate(80deg); + -webkit-transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + } + 40% { + -webkit-transform: rotate(60deg); + -webkit-transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + } + 80% { + -webkit-transform: rotate(60deg) translateY(0); + opacity: 1; + -webkit-transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + } + 100% { + -webkit-transform: translateY(700px); + opacity: 0; + } +} +@keyframes hinge { + 0% { + transform: rotate(0); + transform-origin: top left; + animation-timing-function: ease-in-out; + } + 20%, 60% { + transform: rotate(80deg); + transform-origin: top left; + animation-timing-function: ease-in-out; + } + 40% { + transform: rotate(60deg); + transform-origin: top left; + animation-timing-function: ease-in-out; + } + 80% { + transform: rotate(60deg) translateY(0); + opacity: 1; + transform-origin: top left; + animation-timing-function: ease-in-out; + } + 100% { + transform: translateY(700px); + opacity: 0; + } +} +.hinge { + -webkit-animation-name: hinge; + animation-name: hinge; +} + +@-webkit-keyframes rollIn { + 0% { + opacity: 0; + -webkit-transform: translateX(-100%) rotate(-120deg); + } + 100% { + opacity: 1; + -webkit-transform: translateX(0px) rotate(0deg); + } +} +@keyframes rollIn { + 0% { + opacity: 0; + transform: translateX(-100%) rotate(-120deg); + } + 100% { + opacity: 1; + transform: translateX(0px) rotate(0deg); + } +} +.rollIn { + -webkit-animation-name: rollIn; + animation-name: rollIn; +} + +@-webkit-keyframes rollOut { + 0% { + opacity: 1; + -webkit-transform: translateX(0px) rotate(0deg); + } + 100% { + opacity: 0; + -webkit-transform: translateX(100%) rotate(120deg); + } +} +@keyframes rollOut { + 0% { + opacity: 1; + transform: translateX(0px) rotate(0deg); + } + 100% { + opacity: 0; + transform: translateX(100%) rotate(120deg); + } +} +.rollOut { + -webkit-animation-name: rollOut; + animation-name: rollOut; +} + +@-webkit-keyframes zoomIn { + 0% { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + } + 50% { + opacity: 1; + } +} +@keyframes zoomIn { + 0% { + opacity: 0; + transform: scale3d(0.3, 0.3, 0.3); + } + 50% { + opacity: 1; + } +} +.zoomIn { + -webkit-animation-name: zoomIn; + animation-name: zoomIn; +} + +@-webkit-keyframes zoomInDown { + 0% { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} +@keyframes zoomInDown { + 0% { + opacity: 0; + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + 60% { + opacity: 1; + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} +.zoomInDown { + -webkit-animation-name: zoomInDown; + animation-name: zoomInDown; +} + +@-webkit-keyframes zoomInLeft { + 0% { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} +@keyframes zoomInLeft { + 0% { + opacity: 0; + transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + 60% { + opacity: 1; + transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} +.zoomInLeft { + -webkit-animation-name: zoomInLeft; + animation-name: zoomInLeft; +} + +@-webkit-keyframes zoomInRight { + 0% { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} +@keyframes zoomInRight { + 0% { + opacity: 0; + transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + 60% { + opacity: 1; + transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} +.zoomInRight { + -webkit-animation-name: zoomInRight; + animation-name: zoomInRight; +} + +@-webkit-keyframes zoomInUp { + 0% { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} +@keyframes zoomInUp { + 0% { + opacity: 0; + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + 60% { + opacity: 1; + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} +.zoomInUp { + -webkit-animation-name: zoomInUp; + animation-name: zoomInUp; +} + +@-webkit-keyframes zoomOut { + 0% { + opacity: 1; + } + 50% { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + } + 100% { + opacity: 0; + } +} +@keyframes zoomOut { + 0% { + opacity: 1; + } + 50% { + opacity: 0; + transform: scale3d(0.3, 0.3, 0.3); + } + 100% { + opacity: 0; + } +} +.zoomOut { + -webkit-animation-name: zoomOut; + animation-name: zoomOut; +} + +@-webkit-keyframes zoomOutDown { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + 100% { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0); + -webkit-transform-origin: center bottom; + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} +@keyframes zoomOutDown { + 40% { + opacity: 1; + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + 100% { + opacity: 0; + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0); + transform-origin: center bottom; + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} +.zoomOutDown { + -webkit-animation-name: zoomOutDown; + animation-name: zoomOutDown; +} + +@-webkit-keyframes zoomOutLeft { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0); + } + 100% { + opacity: 0; + -webkit-transform: scale3d(0.1) translate3d(-2000px, 0, 0); + -webkit-transform-origin: left center; + } +} +@keyframes zoomOutLeft { + 40% { + opacity: 1; + transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0); + } + 100% { + opacity: 0; + transform: scale3d(0.1) translate3d(-2000px, 0, 0); + transform-origin: left center; + } +} +.zoomOutLeft { + -webkit-animation-name: zoomOutLeft; + animation-name: zoomOutLeft; +} + +@-webkit-keyframes zoomOutRight { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0); + } + 100% { + opacity: 0; + -webkit-transform: scale3d(0.1) translate3d(2000px, 0, 0); + -webkit-transform-origin: right center; + } +} +@keyframes zoomOutRight { + 40% { + opacity: 1; + transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0); + } + 100% { + opacity: 0; + transform: scale3d(0.1) translate3d(2000px, 0, 0); + transform-origin: right center; + } +} +.zoomOutRight { + -webkit-animation-name: zoomOutRight; + animation-name: zoomOutRight; +} + +@-webkit-keyframes zoomOutUp { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + 100% { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0); + -webkit-transform-origin: center bottom; + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} +@keyframes zoomOutUp { + 40% { + opacity: 1; + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + 100% { + opacity: 0; + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0); + transform-origin: center bottom; + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} +.zoomOutUp { + -webkit-animation-name: zoomOutUp; + animation-name: zoomOutUp; +} + +.dropdown-menu.show { + animation: fade-in2 0.2s cubic-bezier(0.39, 0.575, 0.565, 1) both; +} + +.popover:not([data-placement^=top]).show { + animation: fade-in2 0.2s cubic-bezier(0.39, 0.575, 0.565, 1) both; +} + +.dropdown-menu[data-placement^=top].show { + animation: fade-in3 0.2s cubic-bezier(0.39, 0.575, 0.565, 1) both; + bottom: auto !important; + top: auto !important; +} + +@keyframes fade-in2 { + 0% { + margin-top: -50px; + visibility: hidden; + opacity: 0; + } + 100% { + margin-top: 0px; + visibility: visible; + opacity: 1; + } +} +.form-control { + transition: all 0.2s; +} + +.dropdown-toggle::after { + position: relative; + top: 2px; + opacity: 0.8; +} + +.dropright .dropdown-toggle::after { + top: 0; +} + +.dropdown-toggle-split { + border-left: rgba(255, 255, 255, 0.1) solid 1px; +} + +.btn-outline-primary { + color: #3f6ad8; + border-color: #3f6ad8; +} +.btn-outline-primary:hover { + color: #fff; + background-color: #3f6ad8; + border-color: #3f6ad8; +} +.btn-check:focus + .btn-outline-primary, .btn-outline-primary:focus { + box-shadow: 0 0 0 0 rgba(63, 106, 216, 0.5); +} +.btn-check:checked + .btn-outline-primary, .btn-check:active + .btn-outline-primary, .btn-outline-primary:active, .btn-outline-primary.active, .btn-outline-primary.dropdown-toggle.show { + color: #fff; + background-color: #3f6ad8; + border-color: #3f6ad8; +} +.btn-check:checked + .btn-outline-primary:focus, .btn-check:active + .btn-outline-primary:focus, .btn-outline-primary:active:focus, .btn-outline-primary.active:focus, .btn-outline-primary.dropdown-toggle.show:focus { + box-shadow: 0 0 0 0 rgba(63, 106, 216, 0.5); +} +.btn-outline-primary:disabled, .btn-outline-primary.disabled { + color: #3f6ad8; + background-color: transparent; +} +.btn-outline-primary.btn-shadow { + box-shadow: 0 0.125rem 0.625rem rgba(63, 106, 216, 0.4), 0 0.0625rem 0.125rem rgba(63, 106, 216, 0.5); +} +.btn-outline-primary.btn-shadow.active:hover, .btn-outline-primary.btn-shadow.disabled:hover, .btn-outline-primary.btn-shadow:active:hover, .btn-outline-primary.btn-shadow:disabled:hover { + box-shadow: 0 0.125rem 0.625rem rgba(63, 106, 216, 0.5), 0 0.0625rem 0.125rem rgba(63, 106, 216, 0.6); +} +.btn-outline-primary.btn-shadow:hover { + box-shadow: 0px 5px 15px 2px rgba(63, 106, 216, 0.19); +} + +.btn-outline-secondary { + color: #6c757d; + border-color: #6c757d; +} +.btn-outline-secondary:hover { + color: #fff; + background-color: #6c757d; + border-color: #6c757d; +} +.btn-check:focus + .btn-outline-secondary, .btn-outline-secondary:focus { + box-shadow: 0 0 0 0 rgba(108, 117, 125, 0.5); +} +.btn-check:checked + .btn-outline-secondary, .btn-check:active + .btn-outline-secondary, .btn-outline-secondary:active, .btn-outline-secondary.active, .btn-outline-secondary.dropdown-toggle.show { + color: #fff; + background-color: #6c757d; + border-color: #6c757d; +} +.btn-check:checked + .btn-outline-secondary:focus, .btn-check:active + .btn-outline-secondary:focus, .btn-outline-secondary:active:focus, .btn-outline-secondary.active:focus, .btn-outline-secondary.dropdown-toggle.show:focus { + box-shadow: 0 0 0 0 rgba(108, 117, 125, 0.5); +} +.btn-outline-secondary:disabled, .btn-outline-secondary.disabled { + color: #6c757d; + background-color: transparent; +} +.btn-outline-secondary.btn-shadow { + box-shadow: 0 0.125rem 0.625rem rgba(108, 117, 125, 0.4), 0 0.0625rem 0.125rem rgba(108, 117, 125, 0.5); +} +.btn-outline-secondary.btn-shadow.active:hover, .btn-outline-secondary.btn-shadow.disabled:hover, .btn-outline-secondary.btn-shadow:active:hover, .btn-outline-secondary.btn-shadow:disabled:hover { + box-shadow: 0 0.125rem 0.625rem rgba(108, 117, 125, 0.5), 0 0.0625rem 0.125rem rgba(108, 117, 125, 0.6); +} +.btn-outline-secondary.btn-shadow:hover { + box-shadow: 0px 5px 15px 2px rgba(108, 117, 125, 0.19); +} + +.btn-outline-success { + color: #3ac47d; + border-color: #3ac47d; +} +.btn-outline-success:hover { + color: #000; + background-color: #3ac47d; + border-color: #3ac47d; +} +.btn-check:focus + .btn-outline-success, .btn-outline-success:focus { + box-shadow: 0 0 0 0 rgba(58, 196, 125, 0.5); +} +.btn-check:checked + .btn-outline-success, .btn-check:active + .btn-outline-success, .btn-outline-success:active, .btn-outline-success.active, .btn-outline-success.dropdown-toggle.show { + color: #000; + background-color: #3ac47d; + border-color: #3ac47d; +} +.btn-check:checked + .btn-outline-success:focus, .btn-check:active + .btn-outline-success:focus, .btn-outline-success:active:focus, .btn-outline-success.active:focus, .btn-outline-success.dropdown-toggle.show:focus { + box-shadow: 0 0 0 0 rgba(58, 196, 125, 0.5); +} +.btn-outline-success:disabled, .btn-outline-success.disabled { + color: #3ac47d; + background-color: transparent; +} +.btn-outline-success.btn-shadow { + box-shadow: 0 0.125rem 0.625rem rgba(58, 196, 125, 0.4), 0 0.0625rem 0.125rem rgba(58, 196, 125, 0.5); +} +.btn-outline-success.btn-shadow.active:hover, .btn-outline-success.btn-shadow.disabled:hover, .btn-outline-success.btn-shadow:active:hover, .btn-outline-success.btn-shadow:disabled:hover { + box-shadow: 0 0.125rem 0.625rem rgba(58, 196, 125, 0.5), 0 0.0625rem 0.125rem rgba(58, 196, 125, 0.6); +} +.btn-outline-success.btn-shadow:hover { + box-shadow: 0px 5px 15px 2px rgba(58, 196, 125, 0.19); +} + +.btn-outline-info { + color: #16aaff; + border-color: #16aaff; +} +.btn-outline-info:hover { + color: #000; + background-color: #16aaff; + border-color: #16aaff; +} +.btn-check:focus + .btn-outline-info, .btn-outline-info:focus { + box-shadow: 0 0 0 0 rgba(22, 170, 255, 0.5); +} +.btn-check:checked + .btn-outline-info, .btn-check:active + .btn-outline-info, .btn-outline-info:active, .btn-outline-info.active, .btn-outline-info.dropdown-toggle.show { + color: #000; + background-color: #16aaff; + border-color: #16aaff; +} +.btn-check:checked + .btn-outline-info:focus, .btn-check:active + .btn-outline-info:focus, .btn-outline-info:active:focus, .btn-outline-info.active:focus, .btn-outline-info.dropdown-toggle.show:focus { + box-shadow: 0 0 0 0 rgba(22, 170, 255, 0.5); +} +.btn-outline-info:disabled, .btn-outline-info.disabled { + color: #16aaff; + background-color: transparent; +} +.btn-outline-info.btn-shadow { + box-shadow: 0 0.125rem 0.625rem rgba(22, 170, 255, 0.4), 0 0.0625rem 0.125rem rgba(22, 170, 255, 0.5); +} +.btn-outline-info.btn-shadow.active:hover, .btn-outline-info.btn-shadow.disabled:hover, .btn-outline-info.btn-shadow:active:hover, .btn-outline-info.btn-shadow:disabled:hover { + box-shadow: 0 0.125rem 0.625rem rgba(22, 170, 255, 0.5), 0 0.0625rem 0.125rem rgba(22, 170, 255, 0.6); +} +.btn-outline-info.btn-shadow:hover { + box-shadow: 0px 5px 15px 2px rgba(22, 170, 255, 0.19); +} + +.btn-outline-warning { + color: #f7b924; + border-color: #f7b924; +} +.btn-outline-warning:hover { + color: #000; + background-color: #f7b924; + border-color: #f7b924; +} +.btn-check:focus + .btn-outline-warning, .btn-outline-warning:focus { + box-shadow: 0 0 0 0 rgba(247, 185, 36, 0.5); +} +.btn-check:checked + .btn-outline-warning, .btn-check:active + .btn-outline-warning, .btn-outline-warning:active, .btn-outline-warning.active, .btn-outline-warning.dropdown-toggle.show { + color: #000; + background-color: #f7b924; + border-color: #f7b924; +} +.btn-check:checked + .btn-outline-warning:focus, .btn-check:active + .btn-outline-warning:focus, .btn-outline-warning:active:focus, .btn-outline-warning.active:focus, .btn-outline-warning.dropdown-toggle.show:focus { + box-shadow: 0 0 0 0 rgba(247, 185, 36, 0.5); +} +.btn-outline-warning:disabled, .btn-outline-warning.disabled { + color: #f7b924; + background-color: transparent; +} +.btn-outline-warning.btn-shadow { + box-shadow: 0 0.125rem 0.625rem rgba(247, 185, 36, 0.4), 0 0.0625rem 0.125rem rgba(247, 185, 36, 0.5); +} +.btn-outline-warning.btn-shadow.active:hover, .btn-outline-warning.btn-shadow.disabled:hover, .btn-outline-warning.btn-shadow:active:hover, .btn-outline-warning.btn-shadow:disabled:hover { + box-shadow: 0 0.125rem 0.625rem rgba(247, 185, 36, 0.5), 0 0.0625rem 0.125rem rgba(247, 185, 36, 0.6); +} +.btn-outline-warning.btn-shadow:hover { + box-shadow: 0px 5px 15px 2px rgba(247, 185, 36, 0.19); +} + +.btn-outline-danger { + color: #d92550; + border-color: #d92550; +} +.btn-outline-danger:hover { + color: #fff; + background-color: #d92550; + border-color: #d92550; +} +.btn-check:focus + .btn-outline-danger, .btn-outline-danger:focus { + box-shadow: 0 0 0 0 rgba(217, 37, 80, 0.5); +} +.btn-check:checked + .btn-outline-danger, .btn-check:active + .btn-outline-danger, .btn-outline-danger:active, .btn-outline-danger.active, .btn-outline-danger.dropdown-toggle.show { + color: #fff; + background-color: #d92550; + border-color: #d92550; +} +.btn-check:checked + .btn-outline-danger:focus, .btn-check:active + .btn-outline-danger:focus, .btn-outline-danger:active:focus, .btn-outline-danger.active:focus, .btn-outline-danger.dropdown-toggle.show:focus { + box-shadow: 0 0 0 0 rgba(217, 37, 80, 0.5); +} +.btn-outline-danger:disabled, .btn-outline-danger.disabled { + color: #d92550; + background-color: transparent; +} +.btn-outline-danger.btn-shadow { + box-shadow: 0 0.125rem 0.625rem rgba(217, 37, 80, 0.4), 0 0.0625rem 0.125rem rgba(217, 37, 80, 0.5); +} +.btn-outline-danger.btn-shadow.active:hover, .btn-outline-danger.btn-shadow.disabled:hover, .btn-outline-danger.btn-shadow:active:hover, .btn-outline-danger.btn-shadow:disabled:hover { + box-shadow: 0 0.125rem 0.625rem rgba(217, 37, 80, 0.5), 0 0.0625rem 0.125rem rgba(217, 37, 80, 0.6); +} +.btn-outline-danger.btn-shadow:hover { + box-shadow: 0px 5px 15px 2px rgba(217, 37, 80, 0.19); +} + +.btn-outline-light { + color: #eeeeee; + border-color: #eeeeee; +} +.btn-outline-light:hover { + color: #000; + background-color: #eeeeee; + border-color: #eeeeee; +} +.btn-check:focus + .btn-outline-light, .btn-outline-light:focus { + box-shadow: 0 0 0 0 rgba(238, 238, 238, 0.5); +} +.btn-check:checked + .btn-outline-light, .btn-check:active + .btn-outline-light, .btn-outline-light:active, .btn-outline-light.active, .btn-outline-light.dropdown-toggle.show { + color: #000; + background-color: #eeeeee; + border-color: #eeeeee; +} +.btn-check:checked + .btn-outline-light:focus, .btn-check:active + .btn-outline-light:focus, .btn-outline-light:active:focus, .btn-outline-light.active:focus, .btn-outline-light.dropdown-toggle.show:focus { + box-shadow: 0 0 0 0 rgba(238, 238, 238, 0.5); +} +.btn-outline-light:disabled, .btn-outline-light.disabled { + color: #eeeeee; + background-color: transparent; +} +.btn-outline-light.btn-shadow { + box-shadow: 0 0.125rem 0.625rem rgba(238, 238, 238, 0.4), 0 0.0625rem 0.125rem rgba(238, 238, 238, 0.5); +} +.btn-outline-light.btn-shadow.active:hover, .btn-outline-light.btn-shadow.disabled:hover, .btn-outline-light.btn-shadow:active:hover, .btn-outline-light.btn-shadow:disabled:hover { + box-shadow: 0 0.125rem 0.625rem rgba(238, 238, 238, 0.5), 0 0.0625rem 0.125rem rgba(238, 238, 238, 0.6); +} +.btn-outline-light.btn-shadow:hover { + box-shadow: 0px 5px 15px 2px rgba(238, 238, 238, 0.19); +} + +.btn-outline-dark { + color: #343a40; + border-color: #343a40; +} +.btn-outline-dark:hover { + color: #fff; + background-color: #343a40; + border-color: #343a40; +} +.btn-check:focus + .btn-outline-dark, .btn-outline-dark:focus { + box-shadow: 0 0 0 0 rgba(52, 58, 64, 0.5); +} +.btn-check:checked + .btn-outline-dark, .btn-check:active + .btn-outline-dark, .btn-outline-dark:active, .btn-outline-dark.active, .btn-outline-dark.dropdown-toggle.show { + color: #fff; + background-color: #343a40; + border-color: #343a40; +} +.btn-check:checked + .btn-outline-dark:focus, .btn-check:active + .btn-outline-dark:focus, .btn-outline-dark:active:focus, .btn-outline-dark.active:focus, .btn-outline-dark.dropdown-toggle.show:focus { + 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.btn-shadow { + box-shadow: 0 0.125rem 0.625rem rgba(52, 58, 64, 0.4), 0 0.0625rem 0.125rem rgba(52, 58, 64, 0.5); +} +.btn-outline-dark.btn-shadow.active:hover, .btn-outline-dark.btn-shadow.disabled:hover, .btn-outline-dark.btn-shadow:active:hover, .btn-outline-dark.btn-shadow:disabled:hover { + box-shadow: 0 0.125rem 0.625rem rgba(52, 58, 64, 0.5), 0 0.0625rem 0.125rem rgba(52, 58, 64, 0.6); +} +.btn-outline-dark.btn-shadow:hover { + box-shadow: 0px 5px 15px 2px rgba(52, 58, 64, 0.19); +} + +.btn-outline-focus { + color: #444054; + border-color: #444054; +} +.btn-outline-focus:hover { + color: #fff; + background-color: #444054; + border-color: #444054; +} +.btn-check:focus + .btn-outline-focus, .btn-outline-focus:focus { + box-shadow: 0 0 0 0 rgba(68, 64, 84, 0.5); +} +.btn-check:checked + .btn-outline-focus, .btn-check:active + .btn-outline-focus, .btn-outline-focus:active, .btn-outline-focus.active, .btn-outline-focus.dropdown-toggle.show { + color: #fff; + background-color: #444054; + border-color: #444054; +} +.btn-check:checked + .btn-outline-focus:focus, .btn-check:active + .btn-outline-focus:focus, .btn-outline-focus:active:focus, .btn-outline-focus.active:focus, .btn-outline-focus.dropdown-toggle.show:focus { + box-shadow: 0 0 0 0 rgba(68, 64, 84, 0.5); +} +.btn-outline-focus:disabled, .btn-outline-focus.disabled { + color: #444054; + background-color: transparent; +} +.btn-outline-focus.btn-shadow { + box-shadow: 0 0.125rem 0.625rem rgba(68, 64, 84, 0.4), 0 0.0625rem 0.125rem rgba(68, 64, 84, 0.5); +} +.btn-outline-focus.btn-shadow.active:hover, .btn-outline-focus.btn-shadow.disabled:hover, .btn-outline-focus.btn-shadow:active:hover, .btn-outline-focus.btn-shadow:disabled:hover { + box-shadow: 0 0.125rem 0.625rem rgba(68, 64, 84, 0.5), 0 0.0625rem 0.125rem rgba(68, 64, 84, 0.6); +} +.btn-outline-focus.btn-shadow:hover { + box-shadow: 0px 5px 15px 2px rgba(68, 64, 84, 0.19); +} + +.btn-outline-alternate { + color: #794c8a; + border-color: #794c8a; +} +.btn-outline-alternate:hover { + color: #fff; + background-color: #794c8a; + border-color: #794c8a; +} +.btn-check:focus + .btn-outline-alternate, .btn-outline-alternate:focus { + box-shadow: 0 0 0 0 rgba(121, 76, 138, 0.5); +} +.btn-check:checked + .btn-outline-alternate, .btn-check:active + .btn-outline-alternate, .btn-outline-alternate:active, .btn-outline-alternate.active, .btn-outline-alternate.dropdown-toggle.show { + color: #fff; + background-color: #794c8a; + border-color: #794c8a; +} +.btn-check:checked + .btn-outline-alternate:focus, .btn-check:active + .btn-outline-alternate:focus, .btn-outline-alternate:active:focus, .btn-outline-alternate.active:focus, .btn-outline-alternate.dropdown-toggle.show:focus { + box-shadow: 0 0 0 0 rgba(121, 76, 138, 0.5); +} +.btn-outline-alternate:disabled, .btn-outline-alternate.disabled { + color: #794c8a; + background-color: transparent; +} +.btn-outline-alternate.btn-shadow { + box-shadow: 0 0.125rem 0.625rem rgba(121, 76, 138, 0.4), 0 0.0625rem 0.125rem rgba(121, 76, 138, 0.5); +} +.btn-outline-alternate.btn-shadow.active:hover, .btn-outline-alternate.btn-shadow.disabled:hover, .btn-outline-alternate.btn-shadow:active:hover, .btn-outline-alternate.btn-shadow:disabled:hover { + box-shadow: 0 0.125rem 0.625rem rgba(121, 76, 138, 0.5), 0 0.0625rem 0.125rem rgba(121, 76, 138, 0.6); +} +.btn-outline-alternate.btn-shadow:hover { + box-shadow: 0px 5px 15px 2px rgba(121, 76, 138, 0.19); +} + +.btn { + position: relative; + transition: color 0.15s, background-color 0.15s, border-color 0.15s, box-shadow 0.15s; + font-size: 0.8rem; +} +@media (prefers-reduced-motion: reduce) { + .btn { + transition: none; + } +} + +.btn-light { + border-color: gainsboro; +} + +.btn-outline-light { + color: #8f8f8f; +} + +.dropdown-menu { + box-shadow: 0 0.46875rem 2.1875rem rgba(4, 9, 20, 0.03), 0 0.9375rem 1.40625rem rgba(4, 9, 20, 0.03), 0 0.25rem 0.53125rem rgba(4, 9, 20, 0.05), 0 0.125rem 0.1875rem rgba(4, 9, 20, 0.03); + margin: 0.125rem; +} +.dropdown-menu.dropdown-menu-right { + right: 0 !important; +} +.dropdown-menu .dropdown-header { + text-transform: uppercase; + font-size: 0.7333333333rem; + color: #3f6ad8; + font-weight: bold; +} +.dropdown-menu .dropdown-item { + font-size: 0.88rem; + display: flex; + align-items: center; + transition: background-color 0.3s ease, color 0.3s ease; + cursor: pointer; + z-index: 6; + position: relative; +} +.dropdown-menu .dropdown-item .dropdown-icon { + font-size: 1rem; + margin-right: 0.325rem; + width: 30px; + text-align: center; + opacity: 0.3; + margin-left: -10px; +} +.dropdown-menu .dropdown-item:hover .dropdown-icon { + opacity: 0.7; +} +.dropdown-menu.dropdown-menu-shadow { + box-shadow: 0 0.66875rem 2.3875rem rgba(4, 9, 20, 0.03), 0 1.1375rem 1.60625rem rgba(4, 9, 20, 0.03), 0 0.45rem 0.73125rem rgba(4, 9, 20, 0.05), 0 0.325rem 0.3875rem rgba(4, 9, 20, 0.03); +} + +.dropdown-toggle::after { + position: relative; + top: 2px; + opacity: 0.8; + margin-left: 5px; +} + +.dropdown-toggle-split::after { + margin-left: 0; +} + +.dropright .dropdown-toggle::after { + top: 0; +} + +.dropdown-toggle-split { + border-left: rgba(255, 255, 255, 0.1) solid 2px; +} + +.badge { + font-weight: bold; + text-transform: uppercase; + padding: 5px 10px; + min-width: 19px; +} + +.badge-light { + background: #fff; +} + +.btn .badge { + margin-left: 8px; +} + +.btn-sm .rounded-pill, .btn-group-sm > .btn .rounded-pill { + position: absolute; + top: -4px; + right: -4px; +} + +.badge-abs { + position: absolute; + right: -3px; + top: -3px; +} + +.card { + box-shadow: 0 0.46875rem 2.1875rem rgba(4, 9, 20, 0.03), 0 0.9375rem 1.40625rem rgba(4, 9, 20, 0.03), 0 0.25rem 0.53125rem rgba(4, 9, 20, 0.05), 0 0.125rem 0.1875rem rgba(4, 9, 20, 0.03); + border-width: 0; + transition: all 0.2s; +} +.card > .dropdown-menu-header { + margin: 0; +} +.card > .dropdown-menu-header .dropdown-menu-header-inner { + border-top-left-radius: 0.25rem; + border-top-right-radius: 0.25rem; +} +.card.text-dark.text-white .card-footer, +.card.text-dark.text-white .card-header, .card.text-white .card-footer, +.card.text-white .card-header { + background: rgba(255, 255, 255, 0.1); + color: rgba(255, 255, 255, 0.9); +} +.card.text-dark.text-white .card-footer, +.card.text-dark.text-white .card-header { + color: rgba(0, 0, 0, 0.9); +} +.card .card-footer { + display: flex; + align-items: center; +} + +.btn-actions-pane-right { + margin-left: auto; + white-space: nowrap; +} +.btn-actions-pane-right a { + text-transform: none; +} + +.btn-actions-pane-left { + margin-right: auto; +} + +.actions-icon-btn .btn-icon-only { + padding-left: 0; + padding-right: 0; + color: #495057; +} +.actions-icon-btn .btn-icon-only .btn-icon-wrapper { + font-size: 1.3rem; + width: 30px; + text-align: center; +} +.actions-icon-btn .btn-icon-only:hover { + color: #3f6ad8; +} + +.card-header, +.card-title { + text-transform: uppercase; + color: rgba(13, 27, 62, 0.7); + font-weight: bold; + font-size: 0.88rem; +} + +.card-header { + display: flex; + align-items: center; + border-bottom-width: 1px; + padding-top: 0; + padding-bottom: 0; + padding-right: 0.5rem; + height: 3.5rem; +} +.card-header.no-border { + border: 0; + padding: 0; + height: auto; +} +.card-header .menu-header-subtitle { + display: block; +} +.card-header.card-header-tab .nav { + width: auto; + margin-left: auto; +} +.card-header.card-header-tab .card-header-title { + display: flex; + align-items: center; + white-space: nowrap; +} +.card-header .header-icon { + font-size: 1.65rem; + margin-right: 0.5rem; +} +.card-header > .nav { + margin-left: -0.5rem; + height: 100%; + width: 100%; +} +.card-header > .nav .nav-item { + position: relative; + height: 100%; + display: flex; + align-items: center; +} +.card-header > .nav .nav-link { + text-transform: none; + width: 100%; + display: block; + color: #495057; +} +.card-header > .nav .nav-link::before { + content: ""; + border-radius: 15px; + background: #3f6ad8; + transition: all 0.2s; + height: 4px; + width: 100%; + position: absolute; + left: 0; + bottom: -2px; + opacity: 0; +} +.card-header > .nav .nav-link:hover { + color: #3f6ad8; +} +.card-header > .nav .nav-link.active { + color: #3f6ad8; +} +.card-header > .nav .nav-link.active::before { + opacity: 1; +} + +.card-border { + box-shadow: 0 0 0 transparent; + border-width: 1px; +} + +.card-subtitle { + margin-bottom: 1rem; + font-size: 0.968rem; + color: rgba(13, 27, 62, 0.55); +} + +.card-shadow-primary { + box-shadow: 0 0.46875rem 2.1875rem rgba(63, 106, 216, 0.03), 0 0.9375rem 1.40625rem rgba(63, 106, 216, 0.03), 0 0.25rem 0.53125rem rgba(63, 106, 216, 0.05), 0 0.125rem 0.1875rem rgba(63, 106, 216, 0.03); +} + +.card-shadow-secondary { + box-shadow: 0 0.46875rem 2.1875rem rgba(108, 117, 125, 0.03), 0 0.9375rem 1.40625rem rgba(108, 117, 125, 0.03), 0 0.25rem 0.53125rem rgba(108, 117, 125, 0.05), 0 0.125rem 0.1875rem rgba(108, 117, 125, 0.03); +} + +.card-shadow-success { + box-shadow: 0 0.46875rem 2.1875rem rgba(58, 196, 125, 0.03), 0 0.9375rem 1.40625rem rgba(58, 196, 125, 0.03), 0 0.25rem 0.53125rem rgba(58, 196, 125, 0.05), 0 0.125rem 0.1875rem rgba(58, 196, 125, 0.03); +} + +.card-shadow-info { + box-shadow: 0 0.46875rem 2.1875rem rgba(22, 170, 255, 0.03), 0 0.9375rem 1.40625rem rgba(22, 170, 255, 0.03), 0 0.25rem 0.53125rem rgba(22, 170, 255, 0.05), 0 0.125rem 0.1875rem rgba(22, 170, 255, 0.03); +} + +.card-shadow-warning { + box-shadow: 0 0.46875rem 2.1875rem rgba(247, 185, 36, 0.03), 0 0.9375rem 1.40625rem rgba(247, 185, 36, 0.03), 0 0.25rem 0.53125rem rgba(247, 185, 36, 0.05), 0 0.125rem 0.1875rem rgba(247, 185, 36, 0.03); +} + +.card-shadow-danger { + box-shadow: 0 0.46875rem 2.1875rem rgba(217, 37, 80, 0.03), 0 0.9375rem 1.40625rem rgba(217, 37, 80, 0.03), 0 0.25rem 0.53125rem rgba(217, 37, 80, 0.05), 0 0.125rem 0.1875rem rgba(217, 37, 80, 0.03); +} + +.card-shadow-light { + box-shadow: 0 0.46875rem 2.1875rem rgba(238, 238, 238, 0.03), 0 0.9375rem 1.40625rem rgba(238, 238, 238, 0.03), 0 0.25rem 0.53125rem rgba(238, 238, 238, 0.05), 0 0.125rem 0.1875rem rgba(238, 238, 238, 0.03); +} + +.card-shadow-dark { + box-shadow: 0 0.46875rem 2.1875rem rgba(52, 58, 64, 0.03), 0 0.9375rem 1.40625rem rgba(52, 58, 64, 0.03), 0 0.25rem 0.53125rem rgba(52, 58, 64, 0.05), 0 0.125rem 0.1875rem rgba(52, 58, 64, 0.03); +} + +.card-shadow-focus { + box-shadow: 0 0.46875rem 2.1875rem rgba(68, 64, 84, 0.03), 0 0.9375rem 1.40625rem rgba(68, 64, 84, 0.03), 0 0.25rem 0.53125rem rgba(68, 64, 84, 0.05), 0 0.125rem 0.1875rem rgba(68, 64, 84, 0.03); +} + +.card-shadow-alternate { + box-shadow: 0 0.46875rem 2.1875rem rgba(121, 76, 138, 0.03), 0 0.9375rem 1.40625rem rgba(121, 76, 138, 0.03), 0 0.25rem 0.53125rem rgba(121, 76, 138, 0.05), 0 0.125rem 0.1875rem rgba(121, 76, 138, 0.03); +} + +.card-header-lg { + padding: 2rem 2rem; + height: auto; +} + +.nav-pills, +.nav-tabs { + margin-bottom: 1rem; +} + +.nav-link { + font-weight: bold; +} +.nav-link:hover { + cursor: pointer; +} + +.nav-tabs .nav-link:hover { + color: #3f6ad8 !important; +} +.nav-tabs .nav-link.active { + color: #3f6ad8; +} + +.nav-pills .nav-link:hover { + color: #3f6ad8 !important; +} +.nav-pills .nav-link.active { + background: #3f6ad8; +} +.nav-pills .nav-link.active:hover { + color: #fff !important; +} + +.tabs-animated .nav-link { + position: relative; + padding: 1rem; + margin: 0 0.75rem 0 0; + color: #495057; +} +.tabs-animated .nav-link::before { + transform: scale(0); + opacity: 1; + width: 100%; + left: 0; + bottom: -2px; + content: ""; + position: absolute; + display: block; + border-radius: 0.25rem; + background: #3f6ad8; + transition: all 0.2s; + height: 4px; +} +.tabs-animated .nav-link.active, .tabs-animated .nav-link:hover { + color: #3f6ad8; +} +.tabs-animated .nav-link.active::before, .tabs-animated .nav-link:hover::before { + transform: scale(1); +} + +.tabs-animated-shadow .nav-link { + padding: 0.5rem 0.75rem; + margin-bottom: 0.75rem; +} +.tabs-animated-shadow .nav-link span { + position: relative; + z-index: 5; + display: inline-block; + width: 100%; +} +.tabs-animated-shadow .nav-link::before { + height: 100%; + top: 0; + z-index: 4; + bottom: auto; + box-shadow: 0 16px 26px -10px rgba(63, 106, 216, 0.56), 0 4px 25px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(63, 106, 216, 0.2); + border-radius: 100%; + opacity: 0.5; +} +.tabs-animated-shadow .nav-link.active, .tabs-animated-shadow .nav-link:hover { + color: #fff; +} +.tabs-animated-shadow .nav-link.active::before, .tabs-animated-shadow .nav-link:hover::before { + border-radius: 0.25rem; + opacity: 1; +} +.tabs-animated-shadow .nav-item:last-child .nav-link { + margin-right: 0; +} +.tabs-animated-shadow.tabs-shadow-bordered { + border-bottom: rgba(26, 54, 126, 0.125) solid 1px; +} +.tabs-animated-shadow.tabs-shadow-bordered .nav-link { + margin-bottom: 0; +} + +.body-tabs-shadow .body-tabs-animated { + padding: 0.75rem 0; +} +.body-tabs-shadow .body-tabs-animated .nav-link span { + position: relative; + z-index: 5; +} +.body-tabs-shadow .body-tabs-animated .nav-link::before { + height: 70%; + top: 15%; + z-index: 4; + bottom: auto; + box-shadow: 0 16px 26px -10px rgba(63, 106, 216, 0.56), 0 4px 25px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(63, 106, 216, 0.2); + border-radius: 100%; + opacity: 0.5; +} +.body-tabs-shadow .body-tabs-animated .nav-link.active, .body-tabs-shadow .body-tabs-animated .nav-link:hover { + color: #fff; +} +.body-tabs-shadow .body-tabs-animated .nav-link.active::before, .body-tabs-shadow .body-tabs-animated .nav-link:hover::before { + border-radius: 0.25rem; + opacity: 1; +} + +.body-tabs-line .body-tabs-layout { + margin: 0 -1.5rem; + padding: 0 1.5rem; + margin-bottom: 1.5rem; + border-bottom: #dee2e6 solid 1px; +} + +.accordion-wrapper { + border-radius: 0.25rem; + border: #e9ecef solid 1px; +} +.accordion-wrapper > .card { + box-shadow: 0 0 0 0 transparent; +} +.accordion-wrapper > .card > .card-header { + padding: 1rem; + height: auto; +} +.accordion-wrapper > .card > .card-header .btn:active, +.accordion-wrapper > .card > .card-header .btn:focus, +.accordion-wrapper > .card > .card-header .btn:hover { + text-decoration: none; +} +.accordion-wrapper > .card > .card-header .form-heading p { + margin: 0; +} +.accordion-wrapper > .card .collapse { + border-bottom: transparent solid 1px; +} +.accordion-wrapper > .card .collapse.show { + border-bottom-color: #e9ecef; +} + +.modal-header, +.modal-footer { + background: #f8f9fa; +} + +.modal-footer { + border-bottom-right-radius: 0.25rem; + border-bottom-left-radius: 0.25rem; +} + +.modal-dialog { + box-shadow: 0 0.76875rem 2.4875rem rgba(52, 58, 64, 0.3), 0 1.3375rem 1.70625rem rgba(52, 58, 64, 0.3), 0 0.55rem 0.53125rem rgba(0, 0, 0, 0.05), 0 0.225rem 0.4375rem rgba(52, 58, 64, 0.3); + border-radius: 0.25rem; +} + +.nav-item .nav-link { + font-weight: normal; +} + +.nav-link { + display: flex; + align-items: center; + transition: background-color 0.3s ease, color 0.3s ease; + cursor: pointer; +} +.nav-link .nav-link-icon { + color: #3f6ad8; + font-size: 1rem; + width: 30px; + text-align: center; + opacity: 0.45; + margin-left: -10px; +} +.nav-link:hover { + color: #495057; +} +.nav-link:hover .nav-link-icon { + opacity: 0.9; + color: #3f6ad8; +} +.nav-link:disabled .nav-link-icon, .nav-link.disabled .nav-link-icon { + opacity: 0.3; +} + +.nav-item.nav-item-header { + text-transform: uppercase; + font-size: 0.7333333333rem; + color: #6c757d; + font-weight: bold; + padding: 0.5rem 1rem; +} +.nav-item.nav-item-btn { + padding: 0.5rem 1rem; +} +.nav-item.nav-item-divider { + margin: 0.5rem 0; + height: 1px; + overflow: hidden; + background: #dee2e6; +} + +.nav .badge { + margin-left: 8px; +} + +.nav-pills .nav-link.active, .nav-pills .nav-link.active:hover { + color: #fff; +} +.nav-pills .nav-link.active .nav-link-icon, .nav-pills .nav-link.active:hover .nav-link-icon { + color: #fff; + opacity: 0.8; +} +.nav-pills .nav-link:hover { + color: #495057 !important; +} + +.nav-justified .nav-link .nav-text { + display: block; + width: 100%; + text-align: center; +} + +.list-group-flush + .card-footer { + border-top: 0; +} + +.rm-list-borders .list-group-item { + border: 0; + padding: 0.6666666667rem 0; +} + +.rm-list-borders-scroll .list-group-item { + border: 0; + padding-right: 1.5rem; +} + +legend { + font-size: 0.88rem; + font-weight: bold; +} + +.form-heading { + font-size: 1.1rem; + margin: 0; + color: #3f6ad8; +} +.form-heading p { + color: #6c757d; + padding: 0.3rem 0 0; + font-size: 0.88rem; +} + +.custom-select { + -webkit-appearance: none; + -moz-appearance: none; +} + +.pagination li a { + position: relative; + display: block; + padding: 0.375rem 0.75rem; + margin-left: -1px; + color: #3f6ad8; + background-color: #fff; + border: 1px solid #dee2e6; +} +.pagination li a:hover { + z-index: 2; + color: #3255ad; + text-decoration: none; + background-color: #e9ecef; + border-color: #dee2e6; +} +.pagination li a:focus { + z-index: 2; + outline: 0; + box-shadow: none; +} +.pagination li a:not(:disabled):not(.disabled) { + cursor: pointer; +} +.pagination li:first-child a { + margin-left: 0; + border-top-left-radius: 0.25rem; + border-bottom-left-radius: 0.25rem; +} +.pagination li:last-child a { + border-top-right-radius: 0.25rem; + border-bottom-right-radius: 0.25rem; +} +.pagination li.active a { + z-index: 1; + color: #fff; + background-color: #3f6ad8; + border-color: #3f6ad8; +} +.pagination li.active a:hover { + color: #fff; +} +.pagination li.disabled a { + color: #6c757d; + pointer-events: none; + cursor: auto; + background-color: #fff; + border-color: #dee2e6; +} + +.widget-content { + padding: 1rem; + flex-direction: row; + align-items: center; +} +.widget-content .widget-content-wrapper { + display: flex; + flex: 1; + position: relative; + align-items: center; +} +.widget-content .widget-content-left .widget-heading { + opacity: 0.8; + font-weight: bold; +} +.widget-content .widget-content-left .widget-subheading { + opacity: 0.5; +} +.widget-content .widget-content-right { + margin-left: auto; +} +.widget-content .widget-numbers { + font-weight: bold; + font-size: 1.8rem; + display: block; +} +.widget-content .widget-content-outer { + display: flex; + flex: 1; + flex-direction: column; +} +.widget-content .widget-progress-wrapper { + margin-top: 1rem; +} +.widget-content .widget-progress-wrapper .progress-sub-label { + margin-top: 0.3333333333rem; + opacity: 0.5; + display: flex; + align-content: center; + align-items: center; +} +.widget-content .widget-progress-wrapper .progress-sub-label .sub-label-right { + margin-left: auto; +} +.widget-content .widget-content-right.widget-content-actions { + visibility: hidden; + opacity: 0; + transition: opacity 0.2s; +} +.widget-content:hover .widget-content-right.widget-content-actions { + visibility: visible; + opacity: 1; +} + +/* + * Container style + */ +.ps { + overflow: hidden !important; + overflow-anchor: none; + touch-action: auto; +} + +/* + * Scrollbar rail styles + */ +.ps__rail-x { + display: none !important; + opacity: 0; + transition: background-color 0.2s linear, opacity 0.2s linear; + height: 15px; + /* there must be 'bottom' or 'top' for ps__rail-x */ + bottom: 0; + /* please don't change 'position' */ + position: absolute; + z-index: 7; +} + +.ps__rail-y { + display: none; + opacity: 0; + transition: background-color 0.2s linear, opacity 0.2s linear; + width: 15px; + /* there must be 'right' or 'left' for ps__rail-y */ + right: 0; + /* please don't change 'position' */ + position: absolute; + border-radius: 50px; + z-index: 7; +} + +.ps--active-x > .ps__rail-x, +.ps--active-y > .ps__rail-y { + display: block; + background-color: transparent; +} + +.ps:hover > .ps__rail-x, +.ps:hover > .ps__rail-y, +.ps--focus > .ps__rail-x, +.ps--focus > .ps__rail-y, +.ps--scrolling-x > .ps__rail-x, +.ps--scrolling-y > .ps__rail-y { + opacity: 0.6; +} + +.ps__rail-x:hover, +.ps__rail-y:hover, +.ps__rail-x:focus, +.ps__rail-y:focus { + background-color: rgba(0, 0, 0, 0.1); + opacity: 0.9; +} + +/* + * Scrollbar thumb styles + */ +.ps__thumb-x { + background-color: rgba(0, 0, 0, 0.1); + border-radius: 6px; + transition: background-color 0.2s linear, height 0.2s ease-in-out; + height: 6px; + /* there must be 'bottom' for ps__thumb-x */ + bottom: 2px; + /* please don't change 'position' */ + position: absolute; +} + +.ps__thumb-y { + background-color: rgba(0, 0, 0, 0.1); + border-radius: 6px; + transition: background-color 0.2s linear, width 0.2s ease-in-out; + width: 6px; + /* there must be 'right' for ps__thumb-y */ + right: 2px; + /* please don't change 'position' */ + position: absolute; +} + +.ps__rail-x:hover > .ps__thumb-x, +.ps__rail-x:focus > .ps__thumb-x { + background-color: rgba(0, 0, 0, 0.12); + height: 11px; +} + +.ps__rail-y:hover > .ps__thumb-y, +.ps__rail-y:focus > .ps__thumb-y { + background-color: rgba(0, 0, 0, 0.12); + width: 11px; +} + +/* MS supports */ +@supports (-ms-overflow-style: none) { + .ps { + overflow: auto !important; + } +} +@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) { + .ps { + overflow: auto !important; + } +} +.scrollbar-sidebar, +.scrollbar-container { + position: relative; + height: 100%; +} + +.scroll-area { + overflow-x: hidden; + height: 400px; +} + +.scroll-area-xs { + height: 150px; + overflow-x: hidden; +} + +.scroll-area-sm { + height: 200px; + overflow-x: hidden; +} + +.scroll-area-md { + height: 300px; + overflow-x: hidden; +} + +.scroll-area-lg { + height: 400px; + overflow-x: hidden; +} + +.scroll-area-x { + overflow-x: auto; + width: 100%; + max-width: 100%; +} + +.shadow-overflow { + position: relative; +} +.shadow-overflow::after, .shadow-overflow::before { + width: 100%; + bottom: auto; + top: 0; + left: 0; + height: 1.5rem; + position: absolute; + z-index: 10; + content: ""; + background: linear-gradient(to bottom, rgb(255, 255, 255) 20%, rgba(255, 255, 255, 0) 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#ffffff", endColorstr="#00ffffff", GradientType=0); +} +.shadow-overflow::after { + bottom: 0; + top: auto; + background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, rgb(255, 255, 255) 80%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#00ffffff", endColorstr="#ffffff", GradientType=0); +} + +/*! + * Font Awesome Free 6.1.1 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + * Copyright 2022 Fonticons, Inc. + */ +.fa { + font-family: var(--fa-style-family, "Font Awesome 6 Free"); + font-weight: var(--fa-style, 900); +} + +.fa, +.fas, +.fa-solid, +.far, +.fa-regular, +.fal, +.fa-light, +.fat, +.fa-thin, +.fad, +.fa-duotone, +.fab, +.fa-brands { + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + display: var(--fa-display, inline-block); + font-style: normal; + font-variant: normal; + line-height: 1; + text-rendering: auto; +} + +.fa-1x { + font-size: 1em; +} + +.fa-2x { + font-size: 2em; +} + +.fa-3x { + font-size: 3em; +} + +.fa-4x { + font-size: 4em; +} + +.fa-5x { + font-size: 5em; +} + +.fa-6x { + font-size: 6em; +} + +.fa-7x { + font-size: 7em; +} + +.fa-8x { + font-size: 8em; +} + +.fa-9x { + font-size: 9em; +} + +.fa-10x { + font-size: 10em; +} + +.fa-2xs { + font-size: 0.625em; + line-height: 0.1em; + vertical-align: 0.225em; +} + +.fa-xs { + font-size: 0.75em; + line-height: 0.0833333337em; + vertical-align: 0.125em; +} + +.fa-sm { + font-size: 0.875em; + line-height: 0.0714285718em; + vertical-align: 0.0535714295em; +} + +.fa-lg { + font-size: 1.25em; + line-height: 0.05em; + vertical-align: -0.075em; +} + +.fa-xl { + font-size: 1.5em; + line-height: 0.0416666682em; + vertical-align: -0.125em; +} + +.fa-2xl { + font-size: 2em; + line-height: 0.03125em; + vertical-align: -0.1875em; +} + +.fa-fw { + text-align: center; + width: 1.25em; +} + +.fa-ul { + list-style-type: none; + margin-left: var(--fa-li-margin, 2.5em); + padding-left: 0; +} +.fa-ul > li { + position: relative; +} + +.fa-li { + left: calc(var(--fa-li-width, 2em) * -1); + position: absolute; + text-align: center; + width: var(--fa-li-width, 2em); + line-height: inherit; +} + +.fa-border { + border-color: var(--fa-border-color, #eee); + border-radius: var(--fa-border-radius, 0.1em); + border-style: var(--fa-border-style, solid); + border-width: var(--fa-border-width, 0.08em); + padding: var(--fa-border-padding, 0.2em 0.25em 0.15em); +} + +.fa-pull-left { + float: left; + margin-right: var(--fa-pull-margin, 0.3em); +} + +.fa-pull-right { + float: right; + margin-left: var(--fa-pull-margin, 0.3em); +} + +.fa-beat { + animation-name: fa-beat; + animation-delay: var(--fa-animation-delay, 0); + animation-direction: var(--fa-animation-direction, normal); + animation-duration: var(--fa-animation-duration, 1s); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-timing-function: var(--fa-animation-timing, ease-in-out); +} + +.fa-bounce { + animation-name: fa-bounce; + animation-delay: var(--fa-animation-delay, 0); + animation-direction: var(--fa-animation-direction, normal); + animation-duration: var(--fa-animation-duration, 1s); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1)); +} + +.fa-fade { + animation-name: fa-fade; + animation-delay: var(--fa-animation-delay, 0); + animation-direction: var(--fa-animation-direction, normal); + animation-duration: var(--fa-animation-duration, 1s); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); +} + +.fa-beat-fade { + animation-name: fa-beat-fade; + animation-delay: var(--fa-animation-delay, 0); + animation-direction: var(--fa-animation-direction, normal); + animation-duration: var(--fa-animation-duration, 1s); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); +} + +.fa-flip { + animation-name: fa-flip; + animation-delay: var(--fa-animation-delay, 0); + animation-direction: var(--fa-animation-direction, normal); + animation-duration: var(--fa-animation-duration, 1s); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-timing-function: var(--fa-animation-timing, ease-in-out); +} + +.fa-shake { + animation-name: fa-shake; + animation-delay: var(--fa-animation-delay, 0); + animation-direction: var(--fa-animation-direction, normal); + animation-duration: var(--fa-animation-duration, 1s); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-timing-function: var(--fa-animation-timing, linear); +} + +.fa-spin { + animation-name: fa-spin; + animation-delay: var(--fa-animation-delay, 0); + animation-direction: var(--fa-animation-direction, normal); + animation-duration: var(--fa-animation-duration, 2s); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-timing-function: var(--fa-animation-timing, linear); +} + +.fa-spin-reverse { + --fa-animation-direction: reverse; +} + +.fa-pulse, +.fa-spin-pulse { + animation-name: fa-spin; + animation-direction: var(--fa-animation-direction, normal); + animation-duration: var(--fa-animation-duration, 1s); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-timing-function: var(--fa-animation-timing, steps(8)); +} + +@media (prefers-reduced-motion: reduce) { + .fa-beat, +.fa-bounce, +.fa-fade, +.fa-beat-fade, +.fa-flip, +.fa-pulse, +.fa-shake, +.fa-spin, +.fa-spin-pulse { + animation-delay: -1ms; + animation-duration: 1ms; + animation-iteration-count: 1; + transition-delay: 0s; + transition-duration: 0s; + } +} +@keyframes fa-beat { + 0%, 90% { + transform: scale(1); + } + 45% { + transform: scale(var(--fa-beat-scale, 1.25)); + } +} +@keyframes fa-bounce { + 0% { + transform: scale(1, 1) translateY(0); + } + 10% { + transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); + } + 30% { + transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); + } + 50% { + transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); + } + 57% { + transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); + } + 64% { + transform: scale(1, 1) translateY(0); + } + 100% { + transform: scale(1, 1) translateY(0); + } +} +@keyframes fa-fade { + 50% { + opacity: var(--fa-fade-opacity, 0.4); + } +} +@keyframes fa-beat-fade { + 0%, 100% { + opacity: var(--fa-beat-fade-opacity, 0.4); + transform: scale(1); + } + 50% { + opacity: 1; + transform: scale(var(--fa-beat-fade-scale, 1.125)); + } +} +@keyframes fa-flip { + 50% { + transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); + } +} +@keyframes fa-shake { + 0% { + transform: rotate(-15deg); + } + 4% { + transform: rotate(15deg); + } + 8%, 24% { + transform: rotate(-18deg); + } + 12%, 28% { + transform: rotate(18deg); + } + 16% { + transform: rotate(-22deg); + } + 20% { + transform: rotate(22deg); + } + 32% { + transform: rotate(-12deg); + } + 36% { + transform: rotate(12deg); + } + 40%, 100% { + transform: rotate(0deg); + } +} +@keyframes fa-spin { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(360deg); + } +} +.fa-rotate-90 { + transform: rotate(90deg); +} + +.fa-rotate-180 { + transform: rotate(180deg); +} + +.fa-rotate-270 { + transform: rotate(270deg); +} + +.fa-flip-horizontal { + transform: scale(-1, 1); +} + +.fa-flip-vertical { + transform: scale(1, -1); +} + +.fa-flip-both, +.fa-flip-horizontal.fa-flip-vertical { + transform: scale(-1, -1); +} + +.fa-rotate-by { + transform: rotate(var(--fa-rotate-angle, none)); +} + +.fa-stack { + display: inline-block; + height: 2em; + line-height: 2em; + position: relative; + vertical-align: middle; + width: 2.5em; +} + +.fa-stack-1x, +.fa-stack-2x { + left: 0; + position: absolute; + text-align: center; + width: 100%; + z-index: var(--fa-stack-z-index, auto); +} + +.fa-stack-1x { + line-height: inherit; +} + +.fa-stack-2x { + font-size: 2em; +} + +.fa-inverse { + color: var(--fa-inverse, #fff); +} + +/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen +readers do not read off random characters that represent icons */ +.fa-0::before { + content: "\30 "; +} + +.fa-1::before { + content: "\31 "; +} + +.fa-2::before { + content: "\32 "; +} + +.fa-3::before { + content: "\33 "; +} + +.fa-4::before { + content: "\34 "; +} + +.fa-5::before { + content: "\35 "; +} + +.fa-6::before { + content: "\36 "; +} + +.fa-7::before { + content: "\37 "; +} + +.fa-8::before { + content: "\38 "; +} + +.fa-9::before { + content: "\39 "; +} + +.fa-a::before { + content: "A"; +} + +.fa-address-book::before { + content: "\f2b9"; +} + +.fa-contact-book::before { + content: "\f2b9"; +} + +.fa-address-card::before { + content: "\f2bb"; +} + +.fa-contact-card::before { + content: "\f2bb"; +} + +.fa-vcard::before { + content: "\f2bb"; +} + +.fa-align-center::before { + content: "\f037"; +} + +.fa-align-justify::before { + content: "\f039"; +} + +.fa-align-left::before { + content: "\f036"; +} + +.fa-align-right::before { + content: "\f038"; +} + +.fa-anchor::before { + content: "\f13d"; +} + +.fa-anchor-circle-check::before { + content: "\e4aa"; +} + +.fa-anchor-circle-exclamation::before { + content: "\e4ab"; +} + +.fa-anchor-circle-xmark::before { + content: "\e4ac"; +} + +.fa-anchor-lock::before { + content: "\e4ad"; +} + +.fa-angle-down::before { + content: "\f107"; +} + +.fa-angle-left::before { + content: "\f104"; +} + +.fa-angle-right::before { + content: "\f105"; +} + +.fa-angle-up::before { + content: "\f106"; +} + +.fa-angles-down::before { + content: "\f103"; +} + +.fa-angle-double-down::before { + content: "\f103"; +} + +.fa-angles-left::before { + content: "\f100"; +} + +.fa-angle-double-left::before { + content: "\f100"; +} + +.fa-angles-right::before { + content: "\f101"; +} + +.fa-angle-double-right::before { + content: "\f101"; +} + +.fa-angles-up::before { + content: "\f102"; +} + +.fa-angle-double-up::before { + content: "\f102"; +} + +.fa-ankh::before { + content: "\f644"; +} + +.fa-apple-whole::before { + content: "\f5d1"; +} + +.fa-apple-alt::before { + content: "\f5d1"; +} + +.fa-archway::before { + content: "\f557"; +} + +.fa-arrow-down::before { + content: "\f063"; +} + +.fa-arrow-down-1-9::before { + content: "\f162"; +} + +.fa-sort-numeric-asc::before { + content: "\f162"; +} + +.fa-sort-numeric-down::before { + content: "\f162"; +} + +.fa-arrow-down-9-1::before { + content: "\f886"; +} + +.fa-sort-numeric-desc::before { + content: "\f886"; +} + +.fa-sort-numeric-down-alt::before { + content: "\f886"; +} + +.fa-arrow-down-a-z::before { + content: "\f15d"; +} + +.fa-sort-alpha-asc::before { + content: "\f15d"; +} + +.fa-sort-alpha-down::before { + content: "\f15d"; +} + +.fa-arrow-down-long::before { + content: "\f175"; +} + +.fa-long-arrow-down::before { + content: "\f175"; +} + +.fa-arrow-down-short-wide::before { + content: "\f884"; +} + +.fa-sort-amount-desc::before { + content: "\f884"; +} + +.fa-sort-amount-down-alt::before { + content: "\f884"; +} + +.fa-arrow-down-up-across-line::before { + content: "\e4af"; +} + +.fa-arrow-down-up-lock::before { + content: "\e4b0"; +} + +.fa-arrow-down-wide-short::before { + content: "\f160"; +} + +.fa-sort-amount-asc::before { + content: "\f160"; +} + +.fa-sort-amount-down::before { + content: "\f160"; +} + +.fa-arrow-down-z-a::before { + content: "\f881"; +} + +.fa-sort-alpha-desc::before { + content: "\f881"; +} + +.fa-sort-alpha-down-alt::before { + content: "\f881"; +} + +.fa-arrow-left::before { + content: "\f060"; +} + +.fa-arrow-left-long::before { + content: "\f177"; +} + +.fa-long-arrow-left::before { + content: "\f177"; +} + +.fa-arrow-pointer::before { + content: "\f245"; +} + +.fa-mouse-pointer::before { + content: "\f245"; +} + +.fa-arrow-right::before { + content: "\f061"; +} + +.fa-arrow-right-arrow-left::before { + content: "\f0ec"; +} + +.fa-exchange::before { + content: "\f0ec"; +} + +.fa-arrow-right-from-bracket::before { + content: "\f08b"; +} + +.fa-sign-out::before { + content: "\f08b"; +} + +.fa-arrow-right-long::before { + content: "\f178"; +} + +.fa-long-arrow-right::before { + content: "\f178"; +} + +.fa-arrow-right-to-bracket::before { + content: "\f090"; +} + +.fa-sign-in::before { + content: "\f090"; +} + +.fa-arrow-right-to-city::before { + content: "\e4b3"; +} + +.fa-arrow-rotate-left::before { + content: "\f0e2"; +} + +.fa-arrow-left-rotate::before { + content: "\f0e2"; +} + +.fa-arrow-rotate-back::before { + content: "\f0e2"; +} + +.fa-arrow-rotate-backward::before { + content: "\f0e2"; +} + +.fa-undo::before { + content: "\f0e2"; +} + +.fa-arrow-rotate-right::before { + content: "\f01e"; +} + +.fa-arrow-right-rotate::before { + content: "\f01e"; +} + +.fa-arrow-rotate-forward::before { + content: "\f01e"; +} + +.fa-redo::before { + content: "\f01e"; +} + +.fa-arrow-trend-down::before { + content: "\e097"; +} + +.fa-arrow-trend-up::before { + content: "\e098"; +} + +.fa-arrow-turn-down::before { + content: "\f149"; +} + +.fa-level-down::before { + content: "\f149"; +} + +.fa-arrow-turn-up::before { + content: "\f148"; +} + +.fa-level-up::before { + content: "\f148"; +} + +.fa-arrow-up::before { + content: "\f062"; +} + +.fa-arrow-up-1-9::before { + content: "\f163"; +} + +.fa-sort-numeric-up::before { + content: "\f163"; +} + +.fa-arrow-up-9-1::before { + content: "\f887"; +} + +.fa-sort-numeric-up-alt::before { + content: "\f887"; +} + +.fa-arrow-up-a-z::before { + content: "\f15e"; +} + +.fa-sort-alpha-up::before { + content: "\f15e"; +} + +.fa-arrow-up-from-bracket::before { + content: "\e09a"; +} + +.fa-arrow-up-from-ground-water::before { + content: "\e4b5"; +} + +.fa-arrow-up-from-water-pump::before { + content: "\e4b6"; +} + +.fa-arrow-up-long::before { + content: "\f176"; +} + +.fa-long-arrow-up::before { + content: "\f176"; +} + +.fa-arrow-up-right-dots::before { + content: "\e4b7"; +} + +.fa-arrow-up-right-from-square::before { + content: "\f08e"; +} + +.fa-external-link::before { + content: "\f08e"; +} + +.fa-arrow-up-short-wide::before { + content: "\f885"; +} + +.fa-sort-amount-up-alt::before { + content: "\f885"; +} + +.fa-arrow-up-wide-short::before { + content: "\f161"; +} + +.fa-sort-amount-up::before { + content: "\f161"; +} + +.fa-arrow-up-z-a::before { + content: "\f882"; +} + +.fa-sort-alpha-up-alt::before { + content: "\f882"; +} + +.fa-arrows-down-to-line::before { + content: "\e4b8"; +} + +.fa-arrows-down-to-people::before { + content: "\e4b9"; +} + +.fa-arrows-left-right::before { + content: "\f07e"; +} + +.fa-arrows-h::before { + content: "\f07e"; +} + +.fa-arrows-left-right-to-line::before { + content: "\e4ba"; +} + +.fa-arrows-rotate::before { + content: "\f021"; +} + +.fa-refresh::before { + content: "\f021"; +} + +.fa-sync::before { + content: "\f021"; +} + +.fa-arrows-spin::before { + content: "\e4bb"; +} + +.fa-arrows-split-up-and-left::before { + content: "\e4bc"; +} + +.fa-arrows-to-circle::before { + content: "\e4bd"; +} + +.fa-arrows-to-dot::before { + content: "\e4be"; +} + +.fa-arrows-to-eye::before { + content: "\e4bf"; +} + +.fa-arrows-turn-right::before { + content: "\e4c0"; +} + +.fa-arrows-turn-to-dots::before { + content: "\e4c1"; +} + +.fa-arrows-up-down::before { + content: "\f07d"; +} + +.fa-arrows-v::before { + content: "\f07d"; +} + +.fa-arrows-up-down-left-right::before { + content: "\f047"; +} + +.fa-arrows::before { + content: "\f047"; +} + +.fa-arrows-up-to-line::before { + content: "\e4c2"; +} + +.fa-asterisk::before { + content: "\*"; +} + +.fa-at::before { + content: "\@"; +} + +.fa-atom::before { + content: "\f5d2"; +} + +.fa-audio-description::before { + content: "\f29e"; +} + +.fa-austral-sign::before { + content: "\e0a9"; +} + +.fa-award::before { + content: "\f559"; +} + +.fa-b::before { + content: "B"; +} + +.fa-baby::before { + content: "\f77c"; +} + +.fa-baby-carriage::before { + content: "\f77d"; +} + +.fa-carriage-baby::before { + content: "\f77d"; +} + +.fa-backward::before { + content: "\f04a"; +} + +.fa-backward-fast::before { + content: "\f049"; +} + +.fa-fast-backward::before { + content: "\f049"; +} + +.fa-backward-step::before { + content: "\f048"; +} + +.fa-step-backward::before { + content: "\f048"; +} + +.fa-bacon::before { + content: "\f7e5"; +} + +.fa-bacteria::before { + content: "\e059"; +} + +.fa-bacterium::before { + content: "\e05a"; +} + +.fa-bag-shopping::before { + content: "\f290"; +} + +.fa-shopping-bag::before { + content: "\f290"; +} + +.fa-bahai::before { + content: "\f666"; +} + +.fa-baht-sign::before { + content: "\e0ac"; +} + +.fa-ban::before { + content: "\f05e"; +} + +.fa-cancel::before { + content: "\f05e"; +} + +.fa-ban-smoking::before { + content: "\f54d"; +} + +.fa-smoking-ban::before { + content: "\f54d"; +} + +.fa-bandage::before { + content: "\f462"; +} + +.fa-band-aid::before { + content: "\f462"; +} + +.fa-barcode::before { + content: "\f02a"; +} + +.fa-bars::before { + content: "\f0c9"; +} + +.fa-navicon::before { + content: "\f0c9"; +} + +.fa-bars-progress::before { + content: "\f828"; +} + +.fa-tasks-alt::before { + content: "\f828"; +} + +.fa-bars-staggered::before { + content: "\f550"; +} + +.fa-reorder::before { + content: "\f550"; +} + +.fa-stream::before { + content: "\f550"; +} + +.fa-baseball::before { + content: "\f433"; +} + +.fa-baseball-ball::before { + content: "\f433"; +} + +.fa-baseball-bat-ball::before { + content: "\f432"; +} + +.fa-basket-shopping::before { + content: "\f291"; +} + +.fa-shopping-basket::before { + content: "\f291"; +} + +.fa-basketball::before { + content: "\f434"; +} + +.fa-basketball-ball::before { + content: "\f434"; +} + +.fa-bath::before { + content: "\f2cd"; +} + +.fa-bathtub::before { + content: "\f2cd"; +} + +.fa-battery-empty::before { + content: "\f244"; +} + +.fa-battery-0::before { + content: "\f244"; +} + +.fa-battery-full::before { + content: "\f240"; +} + +.fa-battery::before { + content: "\f240"; +} + +.fa-battery-5::before { + content: "\f240"; +} + +.fa-battery-half::before { + content: "\f242"; +} + +.fa-battery-3::before { + content: "\f242"; +} + +.fa-battery-quarter::before { + content: "\f243"; +} + +.fa-battery-2::before { + content: "\f243"; +} + +.fa-battery-three-quarters::before { + content: "\f241"; +} + +.fa-battery-4::before { + content: "\f241"; +} + +.fa-bed::before { + content: "\f236"; +} + +.fa-bed-pulse::before { + content: "\f487"; +} + +.fa-procedures::before { + content: "\f487"; +} + +.fa-beer-mug-empty::before { + content: "\f0fc"; +} + +.fa-beer::before { + content: "\f0fc"; +} + +.fa-bell::before { + content: "\f0f3"; +} + +.fa-bell-concierge::before { + content: "\f562"; +} + +.fa-concierge-bell::before { + content: "\f562"; +} + +.fa-bell-slash::before { + content: "\f1f6"; +} + +.fa-bezier-curve::before { + content: "\f55b"; +} + +.fa-bicycle::before { + content: "\f206"; +} + +.fa-binoculars::before { + content: "\f1e5"; +} + +.fa-biohazard::before { + content: "\f780"; +} + +.fa-bitcoin-sign::before { + content: "\e0b4"; +} + +.fa-blender::before { + content: "\f517"; +} + +.fa-blender-phone::before { + content: "\f6b6"; +} + +.fa-blog::before { + content: "\f781"; +} + +.fa-bold::before { + content: "\f032"; +} + +.fa-bolt::before { + content: "\f0e7"; +} + +.fa-zap::before { + content: "\f0e7"; +} + +.fa-bolt-lightning::before { + content: "\e0b7"; +} + +.fa-bomb::before { + content: "\f1e2"; +} + +.fa-bone::before { + content: "\f5d7"; +} + +.fa-bong::before { + content: "\f55c"; +} + +.fa-book::before { + content: "\f02d"; +} + +.fa-book-atlas::before { + content: "\f558"; +} + +.fa-atlas::before { + content: "\f558"; +} + +.fa-book-bible::before { + content: "\f647"; +} + +.fa-bible::before { + content: "\f647"; +} + +.fa-book-bookmark::before { + content: "\e0bb"; +} + +.fa-book-journal-whills::before { + content: "\f66a"; +} + +.fa-journal-whills::before { + content: "\f66a"; +} + +.fa-book-medical::before { + content: "\f7e6"; +} + +.fa-book-open::before { + content: "\f518"; +} + +.fa-book-open-reader::before { + content: "\f5da"; +} + +.fa-book-reader::before { + content: "\f5da"; +} + +.fa-book-quran::before { + content: "\f687"; +} + +.fa-quran::before { + content: "\f687"; +} + +.fa-book-skull::before { + content: "\f6b7"; +} + +.fa-book-dead::before { + content: "\f6b7"; +} + +.fa-bookmark::before { + content: "\f02e"; +} + +.fa-border-all::before { + content: "\f84c"; +} + +.fa-border-none::before { + content: "\f850"; +} + +.fa-border-top-left::before { + content: "\f853"; +} + +.fa-border-style::before { + content: "\f853"; +} + +.fa-bore-hole::before { + content: "\e4c3"; +} + +.fa-bottle-droplet::before { + content: "\e4c4"; +} + +.fa-bottle-water::before { + content: "\e4c5"; +} + +.fa-bowl-food::before { + content: "\e4c6"; +} + +.fa-bowl-rice::before { + content: "\e2eb"; +} + +.fa-bowling-ball::before { + content: "\f436"; +} + +.fa-box::before { + content: "\f466"; +} + +.fa-box-archive::before { + content: "\f187"; +} + +.fa-archive::before { + content: "\f187"; +} + +.fa-box-open::before { + content: "\f49e"; +} + +.fa-box-tissue::before { + content: "\e05b"; +} + +.fa-boxes-packing::before { + content: "\e4c7"; +} + +.fa-boxes-stacked::before { + content: "\f468"; +} + +.fa-boxes::before { + content: "\f468"; +} + +.fa-boxes-alt::before { + content: "\f468"; +} + +.fa-braille::before { + content: "\f2a1"; +} + +.fa-brain::before { + content: "\f5dc"; +} + +.fa-brazilian-real-sign::before { + content: "\e46c"; +} + +.fa-bread-slice::before { + content: "\f7ec"; +} + +.fa-bridge::before { + content: "\e4c8"; +} + +.fa-bridge-circle-check::before { + content: "\e4c9"; +} + +.fa-bridge-circle-exclamation::before { + content: "\e4ca"; +} + +.fa-bridge-circle-xmark::before { + content: "\e4cb"; +} + +.fa-bridge-lock::before { + content: "\e4cc"; +} + +.fa-bridge-water::before { + content: "\e4ce"; +} + +.fa-briefcase::before { + content: "\f0b1"; +} + +.fa-briefcase-medical::before { + content: "\f469"; +} + +.fa-broom::before { + content: "\f51a"; +} + +.fa-broom-ball::before { + content: "\f458"; +} + +.fa-quidditch::before { + content: "\f458"; +} + +.fa-quidditch-broom-ball::before { + content: "\f458"; +} + +.fa-brush::before { + content: "\f55d"; +} + +.fa-bucket::before { + content: "\e4cf"; +} + +.fa-bug::before { + content: "\f188"; +} + +.fa-bug-slash::before { + content: "\e490"; +} + +.fa-bugs::before { + content: "\e4d0"; +} + +.fa-building::before { + content: "\f1ad"; +} + +.fa-building-circle-arrow-right::before { + content: "\e4d1"; +} + +.fa-building-circle-check::before { + content: "\e4d2"; +} + +.fa-building-circle-exclamation::before { + content: "\e4d3"; +} + +.fa-building-circle-xmark::before { + content: "\e4d4"; +} + +.fa-building-columns::before { + content: "\f19c"; +} + +.fa-bank::before { + content: "\f19c"; +} + +.fa-institution::before { + content: "\f19c"; +} + +.fa-museum::before { + content: "\f19c"; +} + +.fa-university::before { + content: "\f19c"; +} + +.fa-building-flag::before { + content: "\e4d5"; +} + +.fa-building-lock::before { + content: "\e4d6"; +} + +.fa-building-ngo::before { + content: "\e4d7"; +} + +.fa-building-shield::before { + content: "\e4d8"; +} + +.fa-building-un::before { + content: "\e4d9"; +} + +.fa-building-user::before { + content: "\e4da"; +} + +.fa-building-wheat::before { + content: "\e4db"; +} + +.fa-bullhorn::before { + content: "\f0a1"; +} + +.fa-bullseye::before { + content: "\f140"; +} + +.fa-burger::before { + content: "\f805"; +} + +.fa-hamburger::before { + content: "\f805"; +} + +.fa-burst::before { + content: "\e4dc"; +} + +.fa-bus::before { + content: "\f207"; +} + +.fa-bus-simple::before { + content: "\f55e"; +} + +.fa-bus-alt::before { + content: "\f55e"; +} + +.fa-business-time::before { + content: "\f64a"; +} + +.fa-briefcase-clock::before { + content: "\f64a"; +} + +.fa-c::before { + content: "C"; +} + +.fa-cake-candles::before { + content: "\f1fd"; +} + +.fa-birthday-cake::before { + content: "\f1fd"; +} + +.fa-cake::before { + content: "\f1fd"; +} + +.fa-calculator::before { + content: "\f1ec"; +} + +.fa-calendar::before { + content: "\f133"; +} + +.fa-calendar-check::before { + content: "\f274"; +} + +.fa-calendar-day::before { + content: "\f783"; +} + +.fa-calendar-days::before { + content: "\f073"; +} + +.fa-calendar-alt::before { + content: "\f073"; +} + +.fa-calendar-minus::before { + content: "\f272"; +} + +.fa-calendar-plus::before { + content: "\f271"; +} + +.fa-calendar-week::before { + content: "\f784"; +} + +.fa-calendar-xmark::before { + content: "\f273"; +} + +.fa-calendar-times::before { + content: "\f273"; +} + +.fa-camera::before { + content: "\f030"; +} + +.fa-camera-alt::before { + content: "\f030"; +} + +.fa-camera-retro::before { + content: "\f083"; +} + +.fa-camera-rotate::before { + content: "\e0d8"; +} + +.fa-campground::before { + content: "\f6bb"; +} + +.fa-candy-cane::before { + content: "\f786"; +} + +.fa-cannabis::before { + content: "\f55f"; +} + +.fa-capsules::before { + content: "\f46b"; +} + +.fa-car::before { + content: "\f1b9"; +} + +.fa-automobile::before { + content: "\f1b9"; +} + +.fa-car-battery::before { + content: "\f5df"; +} + +.fa-battery-car::before { + content: "\f5df"; +} + +.fa-car-burst::before { + content: "\f5e1"; +} + +.fa-car-crash::before { + content: "\f5e1"; +} + +.fa-car-on::before { + content: "\e4dd"; +} + +.fa-car-rear::before { + content: "\f5de"; +} + +.fa-car-alt::before { + content: "\f5de"; +} + +.fa-car-side::before { + content: "\f5e4"; +} + +.fa-car-tunnel::before { + content: "\e4de"; +} + +.fa-caravan::before { + content: "\f8ff"; +} + +.fa-caret-down::before { + content: "\f0d7"; +} + +.fa-caret-left::before { + content: "\f0d9"; +} + +.fa-caret-right::before { + content: "\f0da"; +} + +.fa-caret-up::before { + content: "\f0d8"; +} + +.fa-carrot::before { + content: "\f787"; +} + +.fa-cart-arrow-down::before { + content: "\f218"; +} + +.fa-cart-flatbed::before { + content: "\f474"; +} + +.fa-dolly-flatbed::before { + content: "\f474"; +} + +.fa-cart-flatbed-suitcase::before { + content: "\f59d"; +} + +.fa-luggage-cart::before { + content: "\f59d"; +} + +.fa-cart-plus::before { + content: "\f217"; +} + +.fa-cart-shopping::before { + content: "\f07a"; +} + +.fa-shopping-cart::before { + content: "\f07a"; +} + +.fa-cash-register::before { + content: "\f788"; +} + +.fa-cat::before { + content: "\f6be"; +} + +.fa-cedi-sign::before { + content: "\e0df"; +} + +.fa-cent-sign::before { + content: "\e3f5"; +} + +.fa-certificate::before { + content: "\f0a3"; +} + +.fa-chair::before { + content: "\f6c0"; +} + +.fa-chalkboard::before { + content: "\f51b"; +} + +.fa-blackboard::before { + content: "\f51b"; +} + +.fa-chalkboard-user::before { + content: "\f51c"; +} + +.fa-chalkboard-teacher::before { + content: "\f51c"; +} + +.fa-champagne-glasses::before { + content: "\f79f"; +} + +.fa-glass-cheers::before { + content: "\f79f"; +} + +.fa-charging-station::before { + content: "\f5e7"; +} + +.fa-chart-area::before { + content: "\f1fe"; +} + +.fa-area-chart::before { + content: "\f1fe"; +} + +.fa-chart-bar::before { + content: "\f080"; +} + +.fa-bar-chart::before { + content: "\f080"; +} + +.fa-chart-column::before { + content: "\e0e3"; +} + +.fa-chart-gantt::before { + content: "\e0e4"; +} + +.fa-chart-line::before { + content: "\f201"; +} + +.fa-line-chart::before { + content: "\f201"; +} + +.fa-chart-pie::before { + content: "\f200"; +} + +.fa-pie-chart::before { + content: "\f200"; +} + +.fa-chart-simple::before { + content: "\e473"; +} + +.fa-check::before { + content: "\f00c"; +} + +.fa-check-double::before { + content: "\f560"; +} + +.fa-check-to-slot::before { + content: "\f772"; +} + +.fa-vote-yea::before { + content: "\f772"; +} + +.fa-cheese::before { + content: "\f7ef"; +} + +.fa-chess::before { + content: "\f439"; +} + +.fa-chess-bishop::before { + content: "\f43a"; +} + +.fa-chess-board::before { + content: "\f43c"; +} + +.fa-chess-king::before { + content: "\f43f"; +} + +.fa-chess-knight::before { + content: "\f441"; +} + +.fa-chess-pawn::before { + content: "\f443"; +} + +.fa-chess-queen::before { + content: "\f445"; +} + +.fa-chess-rook::before { + content: "\f447"; +} + +.fa-chevron-down::before { + content: "\f078"; +} + +.fa-chevron-left::before { + content: "\f053"; +} + +.fa-chevron-right::before { + content: "\f054"; +} + +.fa-chevron-up::before { + content: "\f077"; +} + +.fa-child::before { + content: "\f1ae"; +} + +.fa-child-dress::before { + content: "\e59c"; +} + +.fa-child-reaching::before { + content: "\e59d"; +} + +.fa-child-rifle::before { + content: "\e4e0"; +} + +.fa-children::before { + content: "\e4e1"; +} + +.fa-church::before { + content: "\f51d"; +} + +.fa-circle::before { + content: "\f111"; +} + +.fa-circle-arrow-down::before { + content: "\f0ab"; +} + +.fa-arrow-circle-down::before { + content: "\f0ab"; +} + +.fa-circle-arrow-left::before { + content: "\f0a8"; +} + +.fa-arrow-circle-left::before { + content: "\f0a8"; +} + +.fa-circle-arrow-right::before { + content: "\f0a9"; +} + +.fa-arrow-circle-right::before { + content: "\f0a9"; +} + +.fa-circle-arrow-up::before { + content: "\f0aa"; +} + +.fa-arrow-circle-up::before { + content: "\f0aa"; +} + +.fa-circle-check::before { + content: "\f058"; +} + +.fa-check-circle::before { + content: "\f058"; +} + +.fa-circle-chevron-down::before { + content: "\f13a"; +} + +.fa-chevron-circle-down::before { + content: "\f13a"; +} + +.fa-circle-chevron-left::before { + content: "\f137"; +} + +.fa-chevron-circle-left::before { + content: "\f137"; +} + +.fa-circle-chevron-right::before { + content: "\f138"; +} + +.fa-chevron-circle-right::before { + content: "\f138"; +} + +.fa-circle-chevron-up::before { + content: "\f139"; +} + +.fa-chevron-circle-up::before { + content: "\f139"; +} + +.fa-circle-dollar-to-slot::before { + content: "\f4b9"; +} + +.fa-donate::before { + content: "\f4b9"; +} + +.fa-circle-dot::before { + content: "\f192"; +} + +.fa-dot-circle::before { + content: "\f192"; +} + +.fa-circle-down::before { + content: "\f358"; +} + +.fa-arrow-alt-circle-down::before { + content: "\f358"; +} + +.fa-circle-exclamation::before { + content: "\f06a"; +} + +.fa-exclamation-circle::before { + content: "\f06a"; +} + +.fa-circle-h::before { + content: "\f47e"; +} + +.fa-hospital-symbol::before { + content: "\f47e"; +} + +.fa-circle-half-stroke::before { + content: "\f042"; +} + +.fa-adjust::before { + content: "\f042"; +} + +.fa-circle-info::before { + content: "\f05a"; +} + +.fa-info-circle::before { + content: "\f05a"; +} + +.fa-circle-left::before { + content: "\f359"; +} + +.fa-arrow-alt-circle-left::before { + content: "\f359"; +} + +.fa-circle-minus::before { + content: "\f056"; +} + +.fa-minus-circle::before { + content: "\f056"; +} + +.fa-circle-nodes::before { + content: "\e4e2"; +} + +.fa-circle-notch::before { + content: "\f1ce"; +} + +.fa-circle-pause::before { + content: "\f28b"; +} + +.fa-pause-circle::before { + content: "\f28b"; +} + +.fa-circle-play::before { + content: "\f144"; +} + +.fa-play-circle::before { + content: "\f144"; +} + +.fa-circle-plus::before { + content: "\f055"; +} + +.fa-plus-circle::before { + content: "\f055"; +} + +.fa-circle-question::before { + content: "\f059"; +} + +.fa-question-circle::before { + content: "\f059"; +} + +.fa-circle-radiation::before { + content: "\f7ba"; +} + +.fa-radiation-alt::before { + content: "\f7ba"; +} + +.fa-circle-right::before { + content: "\f35a"; +} + +.fa-arrow-alt-circle-right::before { + content: "\f35a"; +} + +.fa-circle-stop::before { + content: "\f28d"; +} + +.fa-stop-circle::before { + content: "\f28d"; +} + +.fa-circle-up::before { + content: "\f35b"; +} + +.fa-arrow-alt-circle-up::before { + content: "\f35b"; +} + +.fa-circle-user::before { + content: "\f2bd"; +} + +.fa-user-circle::before { + content: "\f2bd"; +} + +.fa-circle-xmark::before { + content: "\f057"; +} + +.fa-times-circle::before { + content: "\f057"; +} + +.fa-xmark-circle::before { + content: "\f057"; +} + +.fa-city::before { + content: "\f64f"; +} + +.fa-clapperboard::before { + content: "\e131"; +} + +.fa-clipboard::before { + content: "\f328"; +} + +.fa-clipboard-check::before { + content: "\f46c"; +} + +.fa-clipboard-list::before { + content: "\f46d"; +} + +.fa-clipboard-question::before { + content: "\e4e3"; +} + +.fa-clipboard-user::before { + content: "\f7f3"; +} + +.fa-clock::before { + content: "\f017"; +} + +.fa-clock-four::before { + content: "\f017"; +} + +.fa-clock-rotate-left::before { + content: "\f1da"; +} + +.fa-history::before { + content: "\f1da"; +} + +.fa-clone::before { + content: "\f24d"; +} + +.fa-closed-captioning::before { + content: "\f20a"; +} + +.fa-cloud::before { + content: "\f0c2"; +} + +.fa-cloud-arrow-down::before { + content: "\f0ed"; +} + +.fa-cloud-download::before { + content: "\f0ed"; +} + +.fa-cloud-download-alt::before { + content: "\f0ed"; +} + +.fa-cloud-arrow-up::before { + content: "\f0ee"; +} + +.fa-cloud-upload::before { + content: "\f0ee"; +} + +.fa-cloud-upload-alt::before { + content: "\f0ee"; +} + +.fa-cloud-bolt::before { + content: "\f76c"; +} + +.fa-thunderstorm::before { + content: "\f76c"; +} + +.fa-cloud-meatball::before { + content: "\f73b"; +} + +.fa-cloud-moon::before { + content: "\f6c3"; +} + +.fa-cloud-moon-rain::before { + content: "\f73c"; +} + +.fa-cloud-rain::before { + content: "\f73d"; +} + +.fa-cloud-showers-heavy::before { + content: "\f740"; +} + +.fa-cloud-showers-water::before { + content: "\e4e4"; +} + +.fa-cloud-sun::before { + content: "\f6c4"; +} + +.fa-cloud-sun-rain::before { + content: "\f743"; +} + +.fa-clover::before { + content: "\e139"; +} + +.fa-code::before { + content: "\f121"; +} + +.fa-code-branch::before { + content: "\f126"; +} + +.fa-code-commit::before { + content: "\f386"; +} + +.fa-code-compare::before { + content: "\e13a"; +} + +.fa-code-fork::before { + content: "\e13b"; +} + +.fa-code-merge::before { + content: "\f387"; +} + +.fa-code-pull-request::before { + content: "\e13c"; +} + +.fa-coins::before { + content: "\f51e"; +} + +.fa-colon-sign::before { + content: "\e140"; +} + +.fa-comment::before { + content: "\f075"; +} + +.fa-comment-dollar::before { + content: "\f651"; +} + +.fa-comment-dots::before { + content: "\f4ad"; +} + +.fa-commenting::before { + content: "\f4ad"; +} + +.fa-comment-medical::before { + content: "\f7f5"; +} + +.fa-comment-slash::before { + content: "\f4b3"; +} + +.fa-comment-sms::before { + content: "\f7cd"; +} + +.fa-sms::before { + content: "\f7cd"; +} + +.fa-comments::before { + content: "\f086"; +} + +.fa-comments-dollar::before { + content: "\f653"; +} + +.fa-compact-disc::before { + content: "\f51f"; +} + +.fa-compass::before { + content: "\f14e"; +} + +.fa-compass-drafting::before { + content: "\f568"; +} + +.fa-drafting-compass::before { + content: "\f568"; +} + +.fa-compress::before { + content: "\f066"; +} + +.fa-computer::before { + content: "\e4e5"; +} + +.fa-computer-mouse::before { + content: "\f8cc"; +} + +.fa-mouse::before { + content: "\f8cc"; +} + +.fa-cookie::before { + content: "\f563"; +} + +.fa-cookie-bite::before { + content: "\f564"; +} + +.fa-copy::before { + content: "\f0c5"; +} + +.fa-copyright::before { + content: "\f1f9"; +} + +.fa-couch::before { + content: "\f4b8"; +} + +.fa-cow::before { + content: "\f6c8"; +} + +.fa-credit-card::before { + content: "\f09d"; +} + +.fa-credit-card-alt::before { + content: "\f09d"; +} + +.fa-crop::before { + content: "\f125"; +} + +.fa-crop-simple::before { + content: "\f565"; +} + +.fa-crop-alt::before { + content: "\f565"; +} + +.fa-cross::before { + content: "\f654"; +} + +.fa-crosshairs::before { + content: "\f05b"; +} + +.fa-crow::before { + content: "\f520"; +} + +.fa-crown::before { + content: "\f521"; +} + +.fa-crutch::before { + content: "\f7f7"; +} + +.fa-cruzeiro-sign::before { + content: "\e152"; +} + +.fa-cube::before { + content: "\f1b2"; +} + +.fa-cubes::before { + content: "\f1b3"; +} + +.fa-cubes-stacked::before { + content: "\e4e6"; +} + +.fa-d::before { + content: "D"; +} + +.fa-database::before { + content: "\f1c0"; +} + +.fa-delete-left::before { + content: "\f55a"; +} + +.fa-backspace::before { + content: "\f55a"; +} + +.fa-democrat::before { + content: "\f747"; +} + +.fa-desktop::before { + content: "\f390"; +} + +.fa-desktop-alt::before { + content: "\f390"; +} + +.fa-dharmachakra::before { + content: "\f655"; +} + +.fa-diagram-next::before { + content: "\e476"; +} + +.fa-diagram-predecessor::before { + content: "\e477"; +} + +.fa-diagram-project::before { + content: "\f542"; +} + +.fa-project-diagram::before { + content: "\f542"; +} + +.fa-diagram-successor::before { + content: "\e47a"; +} + +.fa-diamond::before { + content: "\f219"; +} + +.fa-diamond-turn-right::before { + content: "\f5eb"; +} + +.fa-directions::before { + content: "\f5eb"; +} + +.fa-dice::before { + content: "\f522"; +} + +.fa-dice-d20::before { + content: "\f6cf"; +} + +.fa-dice-d6::before { + content: "\f6d1"; +} + +.fa-dice-five::before { + content: "\f523"; +} + +.fa-dice-four::before { + content: "\f524"; +} + +.fa-dice-one::before { + content: "\f525"; +} + +.fa-dice-six::before { + content: "\f526"; +} + +.fa-dice-three::before { + content: "\f527"; +} + +.fa-dice-two::before { + content: "\f528"; +} + +.fa-disease::before { + content: "\f7fa"; +} + +.fa-display::before { + content: "\e163"; +} + +.fa-divide::before { + content: "\f529"; +} + +.fa-dna::before { + content: "\f471"; +} + +.fa-dog::before { + content: "\f6d3"; +} + +.fa-dollar-sign::before { + content: "\$"; +} + +.fa-dollar::before { + content: "\$"; +} + +.fa-usd::before { + content: "\$"; +} + +.fa-dolly::before { + content: "\f472"; +} + +.fa-dolly-box::before { + content: "\f472"; +} + +.fa-dong-sign::before { + content: "\e169"; +} + +.fa-door-closed::before { + content: "\f52a"; +} + +.fa-door-open::before { + content: "\f52b"; +} + +.fa-dove::before { + content: "\f4ba"; +} + +.fa-down-left-and-up-right-to-center::before { + content: "\f422"; +} + +.fa-compress-alt::before { + content: "\f422"; +} + +.fa-down-long::before { + content: "\f309"; +} + +.fa-long-arrow-alt-down::before { + content: "\f309"; +} + +.fa-download::before { + content: "\f019"; +} + +.fa-dragon::before { + content: "\f6d5"; +} + +.fa-draw-polygon::before { + content: "\f5ee"; +} + +.fa-droplet::before { + content: "\f043"; +} + +.fa-tint::before { + content: "\f043"; +} + +.fa-droplet-slash::before { + content: "\f5c7"; +} + +.fa-tint-slash::before { + content: "\f5c7"; +} + +.fa-drum::before { + content: "\f569"; +} + +.fa-drum-steelpan::before { + content: "\f56a"; +} + +.fa-drumstick-bite::before { + content: "\f6d7"; +} + +.fa-dumbbell::before { + content: "\f44b"; +} + +.fa-dumpster::before { + content: "\f793"; +} + +.fa-dumpster-fire::before { + content: "\f794"; +} + +.fa-dungeon::before { + content: "\f6d9"; +} + +.fa-e::before { + content: "E"; +} + +.fa-ear-deaf::before { + content: "\f2a4"; +} + +.fa-deaf::before { + content: "\f2a4"; +} + +.fa-deafness::before { + content: "\f2a4"; +} + +.fa-hard-of-hearing::before { + content: "\f2a4"; +} + +.fa-ear-listen::before { + content: "\f2a2"; +} + +.fa-assistive-listening-systems::before { + content: "\f2a2"; +} + +.fa-earth-africa::before { + content: "\f57c"; +} + +.fa-globe-africa::before { + content: "\f57c"; +} + +.fa-earth-americas::before { + content: "\f57d"; +} + +.fa-earth::before { + content: "\f57d"; +} + +.fa-earth-america::before { + content: "\f57d"; +} + +.fa-globe-americas::before { + content: "\f57d"; +} + +.fa-earth-asia::before { + content: "\f57e"; +} + +.fa-globe-asia::before { + content: "\f57e"; +} + +.fa-earth-europe::before { + content: "\f7a2"; +} + +.fa-globe-europe::before { + content: "\f7a2"; +} + +.fa-earth-oceania::before { + content: "\e47b"; +} + +.fa-globe-oceania::before { + content: "\e47b"; +} + +.fa-egg::before { + content: "\f7fb"; +} + +.fa-eject::before { + content: "\f052"; +} + +.fa-elevator::before { + content: "\e16d"; +} + +.fa-ellipsis::before { + content: "\f141"; +} + +.fa-ellipsis-h::before { + content: "\f141"; +} + +.fa-ellipsis-vertical::before { + content: "\f142"; +} + +.fa-ellipsis-v::before { + content: "\f142"; +} + +.fa-envelope::before { + content: "\f0e0"; +} + +.fa-envelope-circle-check::before { + content: "\e4e8"; +} + +.fa-envelope-open::before { + content: "\f2b6"; +} + +.fa-envelope-open-text::before { + content: "\f658"; +} + +.fa-envelopes-bulk::before { + content: "\f674"; +} + +.fa-mail-bulk::before { + content: "\f674"; +} + +.fa-equals::before { + content: "\="; +} + +.fa-eraser::before { + content: "\f12d"; +} + +.fa-ethernet::before { + content: "\f796"; +} + +.fa-euro-sign::before { + content: "\f153"; +} + +.fa-eur::before { + content: "\f153"; +} + +.fa-euro::before { + content: "\f153"; +} + +.fa-exclamation::before { + content: "\!"; +} + +.fa-expand::before { + content: "\f065"; +} + +.fa-explosion::before { + content: "\e4e9"; +} + +.fa-eye::before { + content: "\f06e"; +} + +.fa-eye-dropper::before { + content: "\f1fb"; +} + +.fa-eye-dropper-empty::before { + content: "\f1fb"; +} + +.fa-eyedropper::before { + content: "\f1fb"; +} + +.fa-eye-low-vision::before { + content: "\f2a8"; +} + +.fa-low-vision::before { + content: "\f2a8"; +} + +.fa-eye-slash::before { + content: "\f070"; +} + +.fa-f::before { + content: "F"; +} + +.fa-face-angry::before { + content: "\f556"; +} + +.fa-angry::before { + content: "\f556"; +} + +.fa-face-dizzy::before { + content: "\f567"; +} + +.fa-dizzy::before { + content: "\f567"; +} + +.fa-face-flushed::before { + content: "\f579"; +} + +.fa-flushed::before { + content: "\f579"; +} + +.fa-face-frown::before { + content: "\f119"; +} + +.fa-frown::before { + content: "\f119"; +} + +.fa-face-frown-open::before { + content: "\f57a"; +} + +.fa-frown-open::before { + content: "\f57a"; +} + +.fa-face-grimace::before { + content: "\f57f"; +} + +.fa-grimace::before { + content: "\f57f"; +} + +.fa-face-grin::before { + content: "\f580"; +} + +.fa-grin::before { + content: "\f580"; +} + +.fa-face-grin-beam::before { + content: "\f582"; +} + +.fa-grin-beam::before { + content: "\f582"; +} + +.fa-face-grin-beam-sweat::before { + content: "\f583"; +} + +.fa-grin-beam-sweat::before { + content: "\f583"; +} + +.fa-face-grin-hearts::before { + content: "\f584"; +} + +.fa-grin-hearts::before { + content: "\f584"; +} + +.fa-face-grin-squint::before { + content: "\f585"; +} + +.fa-grin-squint::before { + content: "\f585"; +} + +.fa-face-grin-squint-tears::before { + content: "\f586"; +} + +.fa-grin-squint-tears::before { + content: "\f586"; +} + +.fa-face-grin-stars::before { + content: "\f587"; +} + +.fa-grin-stars::before { + content: "\f587"; +} + +.fa-face-grin-tears::before { + content: "\f588"; +} + +.fa-grin-tears::before { + content: "\f588"; +} + +.fa-face-grin-tongue::before { + content: "\f589"; +} + +.fa-grin-tongue::before { + content: "\f589"; +} + +.fa-face-grin-tongue-squint::before { + content: "\f58a"; +} + +.fa-grin-tongue-squint::before { + content: "\f58a"; +} + +.fa-face-grin-tongue-wink::before { + content: "\f58b"; +} + +.fa-grin-tongue-wink::before { + content: "\f58b"; +} + +.fa-face-grin-wide::before { + content: "\f581"; +} + +.fa-grin-alt::before { + content: "\f581"; +} + +.fa-face-grin-wink::before { + content: "\f58c"; +} + +.fa-grin-wink::before { + content: "\f58c"; +} + +.fa-face-kiss::before { + content: "\f596"; +} + +.fa-kiss::before { + content: "\f596"; +} + +.fa-face-kiss-beam::before { + content: "\f597"; +} + +.fa-kiss-beam::before { + content: "\f597"; +} + +.fa-face-kiss-wink-heart::before { + content: "\f598"; +} + +.fa-kiss-wink-heart::before { + content: "\f598"; +} + +.fa-face-laugh::before { + content: "\f599"; +} + +.fa-laugh::before { + content: "\f599"; +} + +.fa-face-laugh-beam::before { + content: "\f59a"; +} + +.fa-laugh-beam::before { + content: "\f59a"; +} + +.fa-face-laugh-squint::before { + content: "\f59b"; +} + +.fa-laugh-squint::before { + content: "\f59b"; +} + +.fa-face-laugh-wink::before { + content: "\f59c"; +} + +.fa-laugh-wink::before { + content: "\f59c"; +} + +.fa-face-meh::before { + content: "\f11a"; +} + +.fa-meh::before { + content: "\f11a"; +} + +.fa-face-meh-blank::before { + content: "\f5a4"; +} + +.fa-meh-blank::before { + content: "\f5a4"; +} + +.fa-face-rolling-eyes::before { + content: "\f5a5"; +} + +.fa-meh-rolling-eyes::before { + content: "\f5a5"; +} + +.fa-face-sad-cry::before { + content: "\f5b3"; +} + +.fa-sad-cry::before { + content: "\f5b3"; +} + +.fa-face-sad-tear::before { + content: "\f5b4"; +} + +.fa-sad-tear::before { + content: "\f5b4"; +} + +.fa-face-smile::before { + content: "\f118"; +} + +.fa-smile::before { + content: "\f118"; +} + +.fa-face-smile-beam::before { + content: "\f5b8"; +} + +.fa-smile-beam::before { + content: "\f5b8"; +} + +.fa-face-smile-wink::before { + content: "\f4da"; +} + +.fa-smile-wink::before { + content: "\f4da"; +} + +.fa-face-surprise::before { + content: "\f5c2"; +} + +.fa-surprise::before { + content: "\f5c2"; +} + +.fa-face-tired::before { + content: "\f5c8"; +} + +.fa-tired::before { + content: "\f5c8"; +} + +.fa-fan::before { + content: "\f863"; +} + +.fa-faucet::before { + content: "\e005"; +} + +.fa-faucet-drip::before { + content: "\e006"; +} + +.fa-fax::before { + content: "\f1ac"; +} + +.fa-feather::before { + content: "\f52d"; +} + +.fa-feather-pointed::before { + content: "\f56b"; +} + +.fa-feather-alt::before { + content: "\f56b"; +} + +.fa-ferry::before { + content: "\e4ea"; +} + +.fa-file::before { + content: "\f15b"; +} + +.fa-file-arrow-down::before { + content: "\f56d"; +} + +.fa-file-download::before { + content: "\f56d"; +} + +.fa-file-arrow-up::before { + content: "\f574"; +} + +.fa-file-upload::before { + content: "\f574"; +} + +.fa-file-audio::before { + content: "\f1c7"; +} + +.fa-file-circle-check::before { + content: "\e493"; +} + +.fa-file-circle-exclamation::before { + content: "\e4eb"; +} + +.fa-file-circle-minus::before { + content: "\e4ed"; +} + +.fa-file-circle-plus::before { + content: "\e4ee"; +} + +.fa-file-circle-question::before { + content: "\e4ef"; +} + +.fa-file-circle-xmark::before { + content: "\e494"; +} + +.fa-file-code::before { + content: "\f1c9"; +} + +.fa-file-contract::before { + content: "\f56c"; +} + +.fa-file-csv::before { + content: "\f6dd"; +} + +.fa-file-excel::before { + content: "\f1c3"; +} + +.fa-file-export::before { + content: "\f56e"; +} + +.fa-arrow-right-from-file::before { + content: "\f56e"; +} + +.fa-file-image::before { + content: "\f1c5"; +} + +.fa-file-import::before { + content: "\f56f"; +} + +.fa-arrow-right-to-file::before { + content: "\f56f"; +} + +.fa-file-invoice::before { + content: "\f570"; +} + +.fa-file-invoice-dollar::before { + content: "\f571"; +} + +.fa-file-lines::before { + content: "\f15c"; +} + +.fa-file-alt::before { + content: "\f15c"; +} + +.fa-file-text::before { + content: "\f15c"; +} + +.fa-file-medical::before { + content: "\f477"; +} + +.fa-file-pdf::before { + content: "\f1c1"; +} + +.fa-file-pen::before { + content: "\f31c"; +} + +.fa-file-edit::before { + content: "\f31c"; +} + +.fa-file-powerpoint::before { + content: "\f1c4"; +} + +.fa-file-prescription::before { + content: "\f572"; +} + +.fa-file-shield::before { + content: "\e4f0"; +} + +.fa-file-signature::before { + content: "\f573"; +} + +.fa-file-video::before { + content: "\f1c8"; +} + +.fa-file-waveform::before { + content: "\f478"; +} + +.fa-file-medical-alt::before { + content: "\f478"; +} + +.fa-file-word::before { + content: "\f1c2"; +} + +.fa-file-zipper::before { + content: "\f1c6"; +} + +.fa-file-archive::before { + content: "\f1c6"; +} + +.fa-fill::before { + content: "\f575"; +} + +.fa-fill-drip::before { + content: "\f576"; +} + +.fa-film::before { + content: "\f008"; +} + +.fa-filter::before { + content: "\f0b0"; +} + +.fa-filter-circle-dollar::before { + content: "\f662"; +} + +.fa-funnel-dollar::before { + content: "\f662"; +} + +.fa-filter-circle-xmark::before { + content: "\e17b"; +} + +.fa-fingerprint::before { + content: "\f577"; +} + +.fa-fire::before { + content: "\f06d"; +} + +.fa-fire-burner::before { + content: "\e4f1"; +} + +.fa-fire-extinguisher::before { + content: "\f134"; +} + +.fa-fire-flame-curved::before { + content: "\f7e4"; +} + +.fa-fire-alt::before { + content: "\f7e4"; +} + +.fa-fire-flame-simple::before { + content: "\f46a"; +} + +.fa-burn::before { + content: "\f46a"; +} + +.fa-fish::before { + content: "\f578"; +} + +.fa-fish-fins::before { + content: "\e4f2"; +} + +.fa-flag::before { + content: "\f024"; +} + +.fa-flag-checkered::before { + content: "\f11e"; +} + +.fa-flag-usa::before { + content: "\f74d"; +} + +.fa-flask::before { + content: "\f0c3"; +} + +.fa-flask-vial::before { + content: "\e4f3"; +} + +.fa-floppy-disk::before { + content: "\f0c7"; +} + +.fa-save::before { + content: "\f0c7"; +} + +.fa-florin-sign::before { + content: "\e184"; +} + +.fa-folder::before { + content: "\f07b"; +} + +.fa-folder-blank::before { + content: "\f07b"; +} + +.fa-folder-closed::before { + content: "\e185"; +} + +.fa-folder-minus::before { + content: "\f65d"; +} + +.fa-folder-open::before { + content: "\f07c"; +} + +.fa-folder-plus::before { + content: "\f65e"; +} + +.fa-folder-tree::before { + content: "\f802"; +} + +.fa-font::before { + content: "\f031"; +} + +.fa-football::before { + content: "\f44e"; +} + +.fa-football-ball::before { + content: "\f44e"; +} + +.fa-forward::before { + content: "\f04e"; +} + +.fa-forward-fast::before { + content: "\f050"; +} + +.fa-fast-forward::before { + content: "\f050"; +} + +.fa-forward-step::before { + content: "\f051"; +} + +.fa-step-forward::before { + content: "\f051"; +} + +.fa-franc-sign::before { + content: "\e18f"; +} + +.fa-frog::before { + content: "\f52e"; +} + +.fa-futbol::before { + content: "\f1e3"; +} + +.fa-futbol-ball::before { + content: "\f1e3"; +} + +.fa-soccer-ball::before { + content: "\f1e3"; +} + +.fa-g::before { + content: "G"; +} + +.fa-gamepad::before { + content: "\f11b"; +} + +.fa-gas-pump::before { + content: "\f52f"; +} + +.fa-gauge::before { + content: "\f624"; +} + +.fa-dashboard::before { + content: "\f624"; +} + +.fa-gauge-med::before { + content: "\f624"; +} + +.fa-tachometer-alt-average::before { + content: "\f624"; +} + +.fa-gauge-high::before { + content: "\f625"; +} + +.fa-tachometer-alt::before { + content: "\f625"; +} + +.fa-tachometer-alt-fast::before { + content: "\f625"; +} + +.fa-gauge-simple::before { + content: "\f629"; +} + +.fa-gauge-simple-med::before { + content: "\f629"; +} + +.fa-tachometer-average::before { + content: "\f629"; +} + +.fa-gauge-simple-high::before { + content: "\f62a"; +} + +.fa-tachometer::before { + content: "\f62a"; +} + +.fa-tachometer-fast::before { + content: "\f62a"; +} + +.fa-gavel::before { + content: "\f0e3"; +} + +.fa-legal::before { + content: "\f0e3"; +} + +.fa-gear::before { + content: "\f013"; +} + +.fa-cog::before { + content: "\f013"; +} + +.fa-gears::before { + content: "\f085"; +} + +.fa-cogs::before { + content: "\f085"; +} + +.fa-gem::before { + content: "\f3a5"; +} + +.fa-genderless::before { + content: "\f22d"; +} + +.fa-ghost::before { + content: "\f6e2"; +} + +.fa-gift::before { + content: "\f06b"; +} + +.fa-gifts::before { + content: "\f79c"; +} + +.fa-glass-water::before { + content: "\e4f4"; +} + +.fa-glass-water-droplet::before { + content: "\e4f5"; +} + +.fa-glasses::before { + content: "\f530"; +} + +.fa-globe::before { + content: "\f0ac"; +} + +.fa-golf-ball-tee::before { + content: "\f450"; +} + +.fa-golf-ball::before { + content: "\f450"; +} + +.fa-gopuram::before { + content: "\f664"; +} + +.fa-graduation-cap::before { + content: "\f19d"; +} + +.fa-mortar-board::before { + content: "\f19d"; +} + +.fa-greater-than::before { + content: "\>"; +} + +.fa-greater-than-equal::before { + content: "\f532"; +} + +.fa-grip::before { + content: "\f58d"; +} + +.fa-grip-horizontal::before { + content: "\f58d"; +} + +.fa-grip-lines::before { + content: "\f7a4"; +} + +.fa-grip-lines-vertical::before { + content: "\f7a5"; +} + +.fa-grip-vertical::before { + content: "\f58e"; +} + +.fa-group-arrows-rotate::before { + content: "\e4f6"; +} + +.fa-guarani-sign::before { + content: "\e19a"; +} + +.fa-guitar::before { + content: "\f7a6"; +} + +.fa-gun::before { + content: "\e19b"; +} + +.fa-h::before { + content: "H"; +} + +.fa-hammer::before { + content: "\f6e3"; +} + +.fa-hamsa::before { + content: "\f665"; +} + +.fa-hand::before { + content: "\f256"; +} + +.fa-hand-paper::before { + content: "\f256"; +} + +.fa-hand-back-fist::before { + content: "\f255"; +} + +.fa-hand-rock::before { + content: "\f255"; +} + +.fa-hand-dots::before { + content: "\f461"; +} + +.fa-allergies::before { + content: "\f461"; +} + +.fa-hand-fist::before { + content: "\f6de"; +} + +.fa-fist-raised::before { + content: "\f6de"; +} + +.fa-hand-holding::before { + content: "\f4bd"; +} + +.fa-hand-holding-dollar::before { + content: "\f4c0"; +} + +.fa-hand-holding-usd::before { + content: "\f4c0"; +} + +.fa-hand-holding-droplet::before { + content: "\f4c1"; +} + +.fa-hand-holding-water::before { + content: "\f4c1"; +} + +.fa-hand-holding-hand::before { + content: "\e4f7"; +} + +.fa-hand-holding-heart::before { + content: "\f4be"; +} + +.fa-hand-holding-medical::before { + content: "\e05c"; +} + +.fa-hand-lizard::before { + content: "\f258"; +} + +.fa-hand-middle-finger::before { + content: "\f806"; +} + +.fa-hand-peace::before { + content: "\f25b"; +} + +.fa-hand-point-down::before { + content: "\f0a7"; +} + +.fa-hand-point-left::before { + content: "\f0a5"; +} + +.fa-hand-point-right::before { + content: "\f0a4"; +} + +.fa-hand-point-up::before { + content: "\f0a6"; +} + +.fa-hand-pointer::before { + content: "\f25a"; +} + +.fa-hand-scissors::before { + content: "\f257"; +} + +.fa-hand-sparkles::before { + content: "\e05d"; +} + +.fa-hand-spock::before { + content: "\f259"; +} + +.fa-handcuffs::before { + content: "\e4f8"; +} + +.fa-hands::before { + content: "\f2a7"; +} + +.fa-sign-language::before { + content: "\f2a7"; +} + +.fa-signing::before { + content: "\f2a7"; +} + +.fa-hands-asl-interpreting::before { + content: "\f2a3"; +} + +.fa-american-sign-language-interpreting::before { + content: "\f2a3"; +} + +.fa-asl-interpreting::before { + content: "\f2a3"; +} + +.fa-hands-american-sign-language-interpreting::before { + content: "\f2a3"; +} + +.fa-hands-bound::before { + content: "\e4f9"; +} + +.fa-hands-bubbles::before { + content: "\e05e"; +} + +.fa-hands-wash::before { + content: "\e05e"; +} + +.fa-hands-clapping::before { + content: "\e1a8"; +} + +.fa-hands-holding::before { + content: "\f4c2"; +} + +.fa-hands-holding-child::before { + content: "\e4fa"; +} + +.fa-hands-holding-circle::before { + content: "\e4fb"; +} + +.fa-hands-praying::before { + content: "\f684"; +} + +.fa-praying-hands::before { + content: "\f684"; +} + +.fa-handshake::before { + content: "\f2b5"; +} + +.fa-handshake-angle::before { + content: "\f4c4"; +} + +.fa-hands-helping::before { + content: "\f4c4"; +} + +.fa-handshake-simple::before { + content: "\f4c6"; +} + +.fa-handshake-alt::before { + content: "\f4c6"; +} + +.fa-handshake-simple-slash::before { + content: "\e05f"; +} + +.fa-handshake-alt-slash::before { + content: "\e05f"; +} + +.fa-handshake-slash::before { + content: "\e060"; +} + +.fa-hanukiah::before { + content: "\f6e6"; +} + +.fa-hard-drive::before { + content: "\f0a0"; +} + +.fa-hdd::before { + content: "\f0a0"; +} + +.fa-hashtag::before { + content: "\#"; +} + +.fa-hat-cowboy::before { + content: "\f8c0"; +} + +.fa-hat-cowboy-side::before { + content: "\f8c1"; +} + +.fa-hat-wizard::before { + content: "\f6e8"; +} + +.fa-head-side-cough::before { + content: "\e061"; +} + +.fa-head-side-cough-slash::before { + content: "\e062"; +} + +.fa-head-side-mask::before { + content: "\e063"; +} + +.fa-head-side-virus::before { + content: "\e064"; +} + +.fa-heading::before { + content: "\f1dc"; +} + +.fa-header::before { + content: "\f1dc"; +} + +.fa-headphones::before { + content: "\f025"; +} + +.fa-headphones-simple::before { + content: "\f58f"; +} + +.fa-headphones-alt::before { + content: "\f58f"; +} + +.fa-headset::before { + content: "\f590"; +} + +.fa-heart::before { + content: "\f004"; +} + +.fa-heart-circle-bolt::before { + content: "\e4fc"; +} + +.fa-heart-circle-check::before { + content: "\e4fd"; +} + +.fa-heart-circle-exclamation::before { + content: "\e4fe"; +} + +.fa-heart-circle-minus::before { + content: "\e4ff"; +} + +.fa-heart-circle-plus::before { + content: "\e500"; +} + +.fa-heart-circle-xmark::before { + content: "\e501"; +} + +.fa-heart-crack::before { + content: "\f7a9"; +} + +.fa-heart-broken::before { + content: "\f7a9"; +} + +.fa-heart-pulse::before { + content: "\f21e"; +} + +.fa-heartbeat::before { + content: "\f21e"; +} + +.fa-helicopter::before { + content: "\f533"; +} + +.fa-helicopter-symbol::before { + content: "\e502"; +} + +.fa-helmet-safety::before { + content: "\f807"; +} + +.fa-hard-hat::before { + content: "\f807"; +} + +.fa-hat-hard::before { + content: "\f807"; +} + +.fa-helmet-un::before { + content: "\e503"; +} + +.fa-highlighter::before { + content: "\f591"; +} + +.fa-hill-avalanche::before { + content: "\e507"; +} + +.fa-hill-rockslide::before { + content: "\e508"; +} + +.fa-hippo::before { + content: "\f6ed"; +} + +.fa-hockey-puck::before { + content: "\f453"; +} + +.fa-holly-berry::before { + content: "\f7aa"; +} + +.fa-horse::before { + content: "\f6f0"; +} + +.fa-horse-head::before { + content: "\f7ab"; +} + +.fa-hospital::before { + content: "\f0f8"; +} + +.fa-hospital-alt::before { + content: "\f0f8"; +} + +.fa-hospital-wide::before { + content: "\f0f8"; +} + +.fa-hospital-user::before { + content: "\f80d"; +} + +.fa-hot-tub-person::before { + content: "\f593"; +} + +.fa-hot-tub::before { + content: "\f593"; +} + +.fa-hotdog::before { + content: "\f80f"; +} + +.fa-hotel::before { + content: "\f594"; +} + +.fa-hourglass::before { + content: "\f254"; +} + +.fa-hourglass-2::before { + content: "\f254"; +} + +.fa-hourglass-half::before { + content: "\f254"; +} + +.fa-hourglass-empty::before { + content: "\f252"; +} + +.fa-hourglass-end::before { + content: "\f253"; +} + +.fa-hourglass-3::before { + content: "\f253"; +} + +.fa-hourglass-start::before { + content: "\f251"; +} + +.fa-hourglass-1::before { + content: "\f251"; +} + +.fa-house::before { + content: "\f015"; +} + +.fa-home::before { + content: "\f015"; +} + +.fa-home-alt::before { + content: "\f015"; +} + +.fa-home-lg-alt::before { + content: "\f015"; +} + +.fa-house-chimney::before { + content: "\e3af"; +} + +.fa-home-lg::before { + content: "\e3af"; +} + +.fa-house-chimney-crack::before { + content: "\f6f1"; +} + +.fa-house-damage::before { + content: "\f6f1"; +} + +.fa-house-chimney-medical::before { + content: "\f7f2"; +} + +.fa-clinic-medical::before { + content: "\f7f2"; +} + +.fa-house-chimney-user::before { + content: "\e065"; +} + +.fa-house-chimney-window::before { + content: "\e00d"; +} + +.fa-house-circle-check::before { + content: "\e509"; +} + +.fa-house-circle-exclamation::before { + content: "\e50a"; +} + +.fa-house-circle-xmark::before { + content: "\e50b"; +} + +.fa-house-crack::before { + content: "\e3b1"; +} + +.fa-house-fire::before { + content: "\e50c"; +} + +.fa-house-flag::before { + content: "\e50d"; +} + +.fa-house-flood-water::before { + content: "\e50e"; +} + +.fa-house-flood-water-circle-arrow-right::before { + content: "\e50f"; +} + +.fa-house-laptop::before { + content: "\e066"; +} + +.fa-laptop-house::before { + content: "\e066"; +} + +.fa-house-lock::before { + content: "\e510"; +} + +.fa-house-medical::before { + content: "\e3b2"; +} + +.fa-house-medical-circle-check::before { + content: "\e511"; +} + +.fa-house-medical-circle-exclamation::before { + content: "\e512"; +} + +.fa-house-medical-circle-xmark::before { + content: "\e513"; +} + +.fa-house-medical-flag::before { + content: "\e514"; +} + +.fa-house-signal::before { + content: "\e012"; +} + +.fa-house-tsunami::before { + content: "\e515"; +} + +.fa-house-user::before { + content: "\e1b0"; +} + +.fa-home-user::before { + content: "\e1b0"; +} + +.fa-hryvnia-sign::before { + content: "\f6f2"; +} + +.fa-hryvnia::before { + content: "\f6f2"; +} + +.fa-hurricane::before { + content: "\f751"; +} + +.fa-i::before { + content: "I"; +} + +.fa-i-cursor::before { + content: "\f246"; +} + +.fa-ice-cream::before { + content: "\f810"; +} + +.fa-icicles::before { + content: "\f7ad"; +} + +.fa-icons::before { + content: "\f86d"; +} + +.fa-heart-music-camera-bolt::before { + content: "\f86d"; +} + +.fa-id-badge::before { + content: "\f2c1"; +} + +.fa-id-card::before { + content: "\f2c2"; +} + +.fa-drivers-license::before { + content: "\f2c2"; +} + +.fa-id-card-clip::before { + content: "\f47f"; +} + +.fa-id-card-alt::before { + content: "\f47f"; +} + +.fa-igloo::before { + content: "\f7ae"; +} + +.fa-image::before { + content: "\f03e"; +} + +.fa-image-portrait::before { + content: "\f3e0"; +} + +.fa-portrait::before { + content: "\f3e0"; +} + +.fa-images::before { + content: "\f302"; +} + +.fa-inbox::before { + content: "\f01c"; +} + +.fa-indent::before { + content: "\f03c"; +} + +.fa-indian-rupee-sign::before { + content: "\e1bc"; +} + +.fa-indian-rupee::before { + content: "\e1bc"; +} + +.fa-inr::before { + content: "\e1bc"; +} + +.fa-industry::before { + content: "\f275"; +} + +.fa-infinity::before { + content: "\f534"; +} + +.fa-info::before { + content: "\f129"; +} + +.fa-italic::before { + content: "\f033"; +} + +.fa-j::before { + content: "J"; +} + +.fa-jar::before { + content: "\e516"; +} + +.fa-jar-wheat::before { + content: "\e517"; +} + +.fa-jedi::before { + content: "\f669"; +} + +.fa-jet-fighter::before { + content: "\f0fb"; +} + +.fa-fighter-jet::before { + content: "\f0fb"; +} + +.fa-jet-fighter-up::before { + content: "\e518"; +} + +.fa-joint::before { + content: "\f595"; +} + +.fa-jug-detergent::before { + content: "\e519"; +} + +.fa-k::before { + content: "K"; +} + +.fa-kaaba::before { + content: "\f66b"; +} + +.fa-key::before { + content: "\f084"; +} + +.fa-keyboard::before { + content: "\f11c"; +} + +.fa-khanda::before { + content: "\f66d"; +} + +.fa-kip-sign::before { + content: "\e1c4"; +} + +.fa-kit-medical::before { + content: "\f479"; +} + +.fa-first-aid::before { + content: "\f479"; +} + +.fa-kitchen-set::before { + content: "\e51a"; +} + +.fa-kiwi-bird::before { + content: "\f535"; +} + +.fa-l::before { + content: "L"; +} + +.fa-land-mine-on::before { + content: "\e51b"; +} + +.fa-landmark::before { + content: "\f66f"; +} + +.fa-landmark-dome::before { + content: "\f752"; +} + +.fa-landmark-alt::before { + content: "\f752"; +} + +.fa-landmark-flag::before { + content: "\e51c"; +} + +.fa-language::before { + content: "\f1ab"; +} + +.fa-laptop::before { + content: "\f109"; +} + +.fa-laptop-code::before { + content: "\f5fc"; +} + +.fa-laptop-file::before { + content: "\e51d"; +} + +.fa-laptop-medical::before { + content: "\f812"; +} + +.fa-lari-sign::before { + content: "\e1c8"; +} + +.fa-layer-group::before { + content: "\f5fd"; +} + +.fa-leaf::before { + content: "\f06c"; +} + +.fa-left-long::before { + content: "\f30a"; +} + +.fa-long-arrow-alt-left::before { + content: "\f30a"; +} + +.fa-left-right::before { + content: "\f337"; +} + +.fa-arrows-alt-h::before { + content: "\f337"; +} + +.fa-lemon::before { + content: "\f094"; +} + +.fa-less-than::before { + content: "\<"; +} + +.fa-less-than-equal::before { + content: "\f537"; +} + +.fa-life-ring::before { + content: "\f1cd"; +} + +.fa-lightbulb::before { + content: "\f0eb"; +} + +.fa-lines-leaning::before { + content: "\e51e"; +} + +.fa-link::before { + content: "\f0c1"; +} + +.fa-chain::before { + content: "\f0c1"; +} + +.fa-link-slash::before { + content: "\f127"; +} + +.fa-chain-broken::before { + content: "\f127"; +} + +.fa-chain-slash::before { + content: "\f127"; +} + +.fa-unlink::before { + content: "\f127"; +} + +.fa-lira-sign::before { + content: "\f195"; +} + +.fa-list::before { + content: "\f03a"; +} + +.fa-list-squares::before { + content: "\f03a"; +} + +.fa-list-check::before { + content: "\f0ae"; +} + +.fa-tasks::before { + content: "\f0ae"; +} + +.fa-list-ol::before { + content: "\f0cb"; +} + +.fa-list-1-2::before { + content: "\f0cb"; +} + +.fa-list-numeric::before { + content: "\f0cb"; +} + +.fa-list-ul::before { + content: "\f0ca"; +} + +.fa-list-dots::before { + content: "\f0ca"; +} + +.fa-litecoin-sign::before { + content: "\e1d3"; +} + +.fa-location-arrow::before { + content: "\f124"; +} + +.fa-location-crosshairs::before { + content: "\f601"; +} + +.fa-location::before { + content: "\f601"; +} + +.fa-location-dot::before { + content: "\f3c5"; +} + +.fa-map-marker-alt::before { + content: "\f3c5"; +} + +.fa-location-pin::before { + content: "\f041"; +} + +.fa-map-marker::before { + content: "\f041"; +} + +.fa-location-pin-lock::before { + content: "\e51f"; +} + +.fa-lock::before { + content: "\f023"; +} + +.fa-lock-open::before { + content: "\f3c1"; +} + +.fa-locust::before { + content: "\e520"; +} + +.fa-lungs::before { + content: "\f604"; +} + +.fa-lungs-virus::before { + content: "\e067"; +} + +.fa-m::before { + content: "M"; +} + +.fa-magnet::before { + content: "\f076"; +} + +.fa-magnifying-glass::before { + content: "\f002"; +} + +.fa-search::before { + content: "\f002"; +} + +.fa-magnifying-glass-arrow-right::before { + content: "\e521"; +} + +.fa-magnifying-glass-chart::before { + content: "\e522"; +} + +.fa-magnifying-glass-dollar::before { + content: "\f688"; +} + +.fa-search-dollar::before { + content: "\f688"; +} + +.fa-magnifying-glass-location::before { + content: "\f689"; +} + +.fa-search-location::before { + content: "\f689"; +} + +.fa-magnifying-glass-minus::before { + content: "\f010"; +} + +.fa-search-minus::before { + content: "\f010"; +} + +.fa-magnifying-glass-plus::before { + content: "\f00e"; +} + +.fa-search-plus::before { + content: "\f00e"; +} + +.fa-manat-sign::before { + content: "\e1d5"; +} + +.fa-map::before { + content: "\f279"; +} + +.fa-map-location::before { + content: "\f59f"; +} + +.fa-map-marked::before { + content: "\f59f"; +} + +.fa-map-location-dot::before { + content: "\f5a0"; +} + +.fa-map-marked-alt::before { + content: "\f5a0"; +} + +.fa-map-pin::before { + content: "\f276"; +} + +.fa-marker::before { + content: "\f5a1"; +} + +.fa-mars::before { + content: "\f222"; +} + +.fa-mars-and-venus::before { + content: "\f224"; +} + +.fa-mars-and-venus-burst::before { + content: "\e523"; +} + +.fa-mars-double::before { + content: "\f227"; +} + +.fa-mars-stroke::before { + content: "\f229"; +} + +.fa-mars-stroke-right::before { + content: "\f22b"; +} + +.fa-mars-stroke-h::before { + content: "\f22b"; +} + +.fa-mars-stroke-up::before { + content: "\f22a"; +} + +.fa-mars-stroke-v::before { + content: "\f22a"; +} + +.fa-martini-glass::before { + content: "\f57b"; +} + +.fa-glass-martini-alt::before { + content: "\f57b"; +} + +.fa-martini-glass-citrus::before { + content: "\f561"; +} + +.fa-cocktail::before { + content: "\f561"; +} + +.fa-martini-glass-empty::before { + content: "\f000"; +} + +.fa-glass-martini::before { + content: "\f000"; +} + +.fa-mask::before { + content: "\f6fa"; +} + +.fa-mask-face::before { + content: "\e1d7"; +} + +.fa-mask-ventilator::before { + content: "\e524"; +} + +.fa-masks-theater::before { + content: "\f630"; +} + +.fa-theater-masks::before { + content: "\f630"; +} + +.fa-mattress-pillow::before { + content: "\e525"; +} + +.fa-maximize::before { + content: "\f31e"; +} + +.fa-expand-arrows-alt::before { + content: "\f31e"; +} + +.fa-medal::before { + content: "\f5a2"; +} + +.fa-memory::before { + content: "\f538"; +} + +.fa-menorah::before { + content: "\f676"; +} + +.fa-mercury::before { + content: "\f223"; +} + +.fa-message::before { + content: "\f27a"; +} + +.fa-comment-alt::before { + content: "\f27a"; +} + +.fa-meteor::before { + content: "\f753"; +} + +.fa-microchip::before { + content: "\f2db"; +} + +.fa-microphone::before { + content: "\f130"; +} + +.fa-microphone-lines::before { + content: "\f3c9"; +} + +.fa-microphone-alt::before { + content: "\f3c9"; +} + +.fa-microphone-lines-slash::before { + content: "\f539"; +} + +.fa-microphone-alt-slash::before { + content: "\f539"; +} + +.fa-microphone-slash::before { + content: "\f131"; +} + +.fa-microscope::before { + content: "\f610"; +} + +.fa-mill-sign::before { + content: "\e1ed"; +} + +.fa-minimize::before { + content: "\f78c"; +} + +.fa-compress-arrows-alt::before { + content: "\f78c"; +} + +.fa-minus::before { + content: "\f068"; +} + +.fa-subtract::before { + content: "\f068"; +} + +.fa-mitten::before { + content: "\f7b5"; +} + +.fa-mobile::before { + content: "\f3ce"; +} + +.fa-mobile-android::before { + content: "\f3ce"; +} + +.fa-mobile-phone::before { + content: "\f3ce"; +} + +.fa-mobile-button::before { + content: "\f10b"; +} + +.fa-mobile-retro::before { + content: "\e527"; +} + +.fa-mobile-screen::before { + content: "\f3cf"; +} + +.fa-mobile-android-alt::before { + content: "\f3cf"; +} + +.fa-mobile-screen-button::before { + content: "\f3cd"; +} + +.fa-mobile-alt::before { + content: "\f3cd"; +} + +.fa-money-bill::before { + content: "\f0d6"; +} + +.fa-money-bill-1::before { + content: "\f3d1"; +} + +.fa-money-bill-alt::before { + content: "\f3d1"; +} + +.fa-money-bill-1-wave::before { + content: "\f53b"; +} + +.fa-money-bill-wave-alt::before { + content: "\f53b"; +} + +.fa-money-bill-transfer::before { + content: "\e528"; +} + +.fa-money-bill-trend-up::before { + content: "\e529"; +} + +.fa-money-bill-wave::before { + content: "\f53a"; +} + +.fa-money-bill-wheat::before { + content: "\e52a"; +} + +.fa-money-bills::before { + content: "\e1f3"; +} + +.fa-money-check::before { + content: "\f53c"; +} + +.fa-money-check-dollar::before { + content: "\f53d"; +} + +.fa-money-check-alt::before { + content: "\f53d"; +} + +.fa-monument::before { + content: "\f5a6"; +} + +.fa-moon::before { + content: "\f186"; +} + +.fa-mortar-pestle::before { + content: "\f5a7"; +} + +.fa-mosque::before { + content: "\f678"; +} + +.fa-mosquito::before { + content: "\e52b"; +} + +.fa-mosquito-net::before { + content: "\e52c"; +} + +.fa-motorcycle::before { + content: "\f21c"; +} + +.fa-mound::before { + content: "\e52d"; +} + +.fa-mountain::before { + content: "\f6fc"; +} + +.fa-mountain-city::before { + content: "\e52e"; +} + +.fa-mountain-sun::before { + content: "\e52f"; +} + +.fa-mug-hot::before { + content: "\f7b6"; +} + +.fa-mug-saucer::before { + content: "\f0f4"; +} + +.fa-coffee::before { + content: "\f0f4"; +} + +.fa-music::before { + content: "\f001"; +} + +.fa-n::before { + content: "N"; +} + +.fa-naira-sign::before { + content: "\e1f6"; +} + +.fa-network-wired::before { + content: "\f6ff"; +} + +.fa-neuter::before { + content: "\f22c"; +} + +.fa-newspaper::before { + content: "\f1ea"; +} + +.fa-not-equal::before { + content: "\f53e"; +} + +.fa-note-sticky::before { + content: "\f249"; +} + +.fa-sticky-note::before { + content: "\f249"; +} + +.fa-notes-medical::before { + content: "\f481"; +} + +.fa-o::before { + content: "O"; +} + +.fa-object-group::before { + content: "\f247"; +} + +.fa-object-ungroup::before { + content: "\f248"; +} + +.fa-oil-can::before { + content: "\f613"; +} + +.fa-oil-well::before { + content: "\e532"; +} + +.fa-om::before { + content: "\f679"; +} + +.fa-otter::before { + content: "\f700"; +} + +.fa-outdent::before { + content: "\f03b"; +} + +.fa-dedent::before { + content: "\f03b"; +} + +.fa-p::before { + content: "P"; +} + +.fa-pager::before { + content: "\f815"; +} + +.fa-paint-roller::before { + content: "\f5aa"; +} + +.fa-paintbrush::before { + content: "\f1fc"; +} + +.fa-paint-brush::before { + content: "\f1fc"; +} + +.fa-palette::before { + content: "\f53f"; +} + +.fa-pallet::before { + content: "\f482"; +} + +.fa-panorama::before { + content: "\e209"; +} + +.fa-paper-plane::before { + content: "\f1d8"; +} + +.fa-paperclip::before { + content: "\f0c6"; +} + +.fa-parachute-box::before { + content: "\f4cd"; +} + +.fa-paragraph::before { + content: "\f1dd"; +} + +.fa-passport::before { + content: "\f5ab"; +} + +.fa-paste::before { + content: "\f0ea"; +} + +.fa-file-clipboard::before { + content: "\f0ea"; +} + +.fa-pause::before { + content: "\f04c"; +} + +.fa-paw::before { + content: "\f1b0"; +} + +.fa-peace::before { + content: "\f67c"; +} + +.fa-pen::before { + content: "\f304"; +} + +.fa-pen-clip::before { + content: "\f305"; +} + +.fa-pen-alt::before { + content: "\f305"; +} + +.fa-pen-fancy::before { + content: "\f5ac"; +} + +.fa-pen-nib::before { + content: "\f5ad"; +} + +.fa-pen-ruler::before { + content: "\f5ae"; +} + +.fa-pencil-ruler::before { + content: "\f5ae"; +} + +.fa-pen-to-square::before { + content: "\f044"; +} + +.fa-edit::before { + content: "\f044"; +} + +.fa-pencil::before { + content: "\f303"; +} + +.fa-pencil-alt::before { + content: "\f303"; +} + +.fa-people-arrows-left-right::before { + content: "\e068"; +} + +.fa-people-arrows::before { + content: "\e068"; +} + +.fa-people-carry-box::before { + content: "\f4ce"; +} + +.fa-people-carry::before { + content: "\f4ce"; +} + +.fa-people-group::before { + content: "\e533"; +} + +.fa-people-line::before { + content: "\e534"; +} + +.fa-people-pulling::before { + content: "\e535"; +} + +.fa-people-robbery::before { + content: "\e536"; +} + +.fa-people-roof::before { + content: "\e537"; +} + +.fa-pepper-hot::before { + content: "\f816"; +} + +.fa-percent::before { + content: "\%"; +} + +.fa-percentage::before { + content: "\%"; +} + +.fa-person::before { + content: "\f183"; +} + +.fa-male::before { + content: "\f183"; +} + +.fa-person-arrow-down-to-line::before { + content: "\e538"; +} + +.fa-person-arrow-up-from-line::before { + content: "\e539"; +} + +.fa-person-biking::before { + content: "\f84a"; +} + +.fa-biking::before { + content: "\f84a"; +} + +.fa-person-booth::before { + content: "\f756"; +} + +.fa-person-breastfeeding::before { + content: "\e53a"; +} + +.fa-person-burst::before { + content: "\e53b"; +} + +.fa-person-cane::before { + content: "\e53c"; +} + +.fa-person-chalkboard::before { + content: "\e53d"; +} + +.fa-person-circle-check::before { + content: "\e53e"; +} + +.fa-person-circle-exclamation::before { + content: "\e53f"; +} + +.fa-person-circle-minus::before { + content: "\e540"; +} + +.fa-person-circle-plus::before { + content: "\e541"; +} + +.fa-person-circle-question::before { + content: "\e542"; +} + +.fa-person-circle-xmark::before { + content: "\e543"; +} + +.fa-person-digging::before { + content: "\f85e"; +} + +.fa-digging::before { + content: "\f85e"; +} + +.fa-person-dots-from-line::before { + content: "\f470"; +} + +.fa-diagnoses::before { + content: "\f470"; +} + +.fa-person-dress::before { + content: "\f182"; +} + +.fa-female::before { + content: "\f182"; +} + +.fa-person-dress-burst::before { + content: "\e544"; +} + +.fa-person-drowning::before { + content: "\e545"; +} + +.fa-person-falling::before { + content: "\e546"; +} + +.fa-person-falling-burst::before { + content: "\e547"; +} + +.fa-person-half-dress::before { + content: "\e548"; +} + +.fa-person-harassing::before { + content: "\e549"; +} + +.fa-person-hiking::before { + content: "\f6ec"; +} + +.fa-hiking::before { + content: "\f6ec"; +} + +.fa-person-military-pointing::before { + content: "\e54a"; +} + +.fa-person-military-rifle::before { + content: "\e54b"; +} + +.fa-person-military-to-person::before { + content: "\e54c"; +} + +.fa-person-praying::before { + content: "\f683"; +} + +.fa-pray::before { + content: "\f683"; +} + +.fa-person-pregnant::before { + content: "\e31e"; +} + +.fa-person-rays::before { + content: "\e54d"; +} + +.fa-person-rifle::before { + content: "\e54e"; +} + +.fa-person-running::before { + content: "\f70c"; +} + +.fa-running::before { + content: "\f70c"; +} + +.fa-person-shelter::before { + content: "\e54f"; +} + +.fa-person-skating::before { + content: "\f7c5"; +} + +.fa-skating::before { + content: "\f7c5"; +} + +.fa-person-skiing::before { + content: "\f7c9"; +} + +.fa-skiing::before { + content: "\f7c9"; +} + +.fa-person-skiing-nordic::before { + content: "\f7ca"; +} + +.fa-skiing-nordic::before { + content: "\f7ca"; +} + +.fa-person-snowboarding::before { + content: "\f7ce"; +} + +.fa-snowboarding::before { + content: "\f7ce"; +} + +.fa-person-swimming::before { + content: "\f5c4"; +} + +.fa-swimmer::before { + content: "\f5c4"; +} + +.fa-person-through-window::before { + content: "\e433"; +} + +.fa-person-walking::before { + content: "\f554"; +} + +.fa-walking::before { + content: "\f554"; +} + +.fa-person-walking-arrow-loop-left::before { + content: "\e551"; +} + +.fa-person-walking-arrow-right::before { + content: "\e552"; +} + +.fa-person-walking-dashed-line-arrow-right::before { + content: "\e553"; +} + +.fa-person-walking-luggage::before { + content: "\e554"; +} + +.fa-person-walking-with-cane::before { + content: "\f29d"; +} + +.fa-blind::before { + content: "\f29d"; +} + +.fa-peseta-sign::before { + content: "\e221"; +} + +.fa-peso-sign::before { + content: "\e222"; +} + +.fa-phone::before { + content: "\f095"; +} + +.fa-phone-flip::before { + content: "\f879"; +} + +.fa-phone-alt::before { + content: "\f879"; +} + +.fa-phone-slash::before { + content: "\f3dd"; +} + +.fa-phone-volume::before { + content: "\f2a0"; +} + +.fa-volume-control-phone::before { + content: "\f2a0"; +} + +.fa-photo-film::before { + content: "\f87c"; +} + +.fa-photo-video::before { + content: "\f87c"; +} + +.fa-piggy-bank::before { + content: "\f4d3"; +} + +.fa-pills::before { + content: "\f484"; +} + +.fa-pizza-slice::before { + content: "\f818"; +} + +.fa-place-of-worship::before { + content: "\f67f"; +} + +.fa-plane::before { + content: "\f072"; +} + +.fa-plane-arrival::before { + content: "\f5af"; +} + +.fa-plane-circle-check::before { + content: "\e555"; +} + +.fa-plane-circle-exclamation::before { + content: "\e556"; +} + +.fa-plane-circle-xmark::before { + content: "\e557"; +} + +.fa-plane-departure::before { + content: "\f5b0"; +} + +.fa-plane-lock::before { + content: "\e558"; +} + +.fa-plane-slash::before { + content: "\e069"; +} + +.fa-plane-up::before { + content: "\e22d"; +} + +.fa-plant-wilt::before { + content: "\e43b"; +} + +.fa-plate-wheat::before { + content: "\e55a"; +} + +.fa-play::before { + content: "\f04b"; +} + +.fa-plug::before { + content: "\f1e6"; +} + +.fa-plug-circle-bolt::before { + content: "\e55b"; +} + +.fa-plug-circle-check::before { + content: "\e55c"; +} + +.fa-plug-circle-exclamation::before { + content: "\e55d"; +} + +.fa-plug-circle-minus::before { + content: "\e55e"; +} + +.fa-plug-circle-plus::before { + content: "\e55f"; +} + +.fa-plug-circle-xmark::before { + content: "\e560"; +} + +.fa-plus::before { + content: "\+"; +} + +.fa-add::before { + content: "\+"; +} + +.fa-plus-minus::before { + content: "\e43c"; +} + +.fa-podcast::before { + content: "\f2ce"; +} + +.fa-poo::before { + content: "\f2fe"; +} + +.fa-poo-storm::before { + content: "\f75a"; +} + +.fa-poo-bolt::before { + content: "\f75a"; +} + +.fa-poop::before { + content: "\f619"; +} + +.fa-power-off::before { + content: "\f011"; +} + +.fa-prescription::before { + content: "\f5b1"; +} + +.fa-prescription-bottle::before { + content: "\f485"; +} + +.fa-prescription-bottle-medical::before { + content: "\f486"; +} + +.fa-prescription-bottle-alt::before { + content: "\f486"; +} + +.fa-print::before { + content: "\f02f"; +} + +.fa-pump-medical::before { + content: "\e06a"; +} + +.fa-pump-soap::before { + content: "\e06b"; +} + +.fa-puzzle-piece::before { + content: "\f12e"; +} + +.fa-q::before { + content: "Q"; +} + +.fa-qrcode::before { + content: "\f029"; +} + +.fa-question::before { + content: "\?"; +} + +.fa-quote-left::before { + content: "\f10d"; +} + +.fa-quote-left-alt::before { + content: "\f10d"; +} + +.fa-quote-right::before { + content: "\f10e"; +} + +.fa-quote-right-alt::before { + content: "\f10e"; +} + +.fa-r::before { + content: "R"; +} + +.fa-radiation::before { + content: "\f7b9"; +} + +.fa-radio::before { + content: "\f8d7"; +} + +.fa-rainbow::before { + content: "\f75b"; +} + +.fa-ranking-star::before { + content: "\e561"; +} + +.fa-receipt::before { + content: "\f543"; +} + +.fa-record-vinyl::before { + content: "\f8d9"; +} + +.fa-rectangle-ad::before { + content: "\f641"; +} + +.fa-ad::before { + content: "\f641"; +} + +.fa-rectangle-list::before { + content: "\f022"; +} + +.fa-list-alt::before { + content: "\f022"; +} + +.fa-rectangle-xmark::before { + content: "\f410"; +} + +.fa-rectangle-times::before { + content: "\f410"; +} + +.fa-times-rectangle::before { + content: "\f410"; +} + +.fa-window-close::before { + content: "\f410"; +} + +.fa-recycle::before { + content: "\f1b8"; +} + +.fa-registered::before { + content: "\f25d"; +} + +.fa-repeat::before { + content: "\f363"; +} + +.fa-reply::before { + content: "\f3e5"; +} + +.fa-mail-reply::before { + content: "\f3e5"; +} + +.fa-reply-all::before { + content: "\f122"; +} + +.fa-mail-reply-all::before { + content: "\f122"; +} + +.fa-republican::before { + content: "\f75e"; +} + +.fa-restroom::before { + content: "\f7bd"; +} + +.fa-retweet::before { + content: "\f079"; +} + +.fa-ribbon::before { + content: "\f4d6"; +} + +.fa-right-from-bracket::before { + content: "\f2f5"; +} + +.fa-sign-out-alt::before { + content: "\f2f5"; +} + +.fa-right-left::before { + content: "\f362"; +} + +.fa-exchange-alt::before { + content: "\f362"; +} + +.fa-right-long::before { + content: "\f30b"; +} + +.fa-long-arrow-alt-right::before { + content: "\f30b"; +} + +.fa-right-to-bracket::before { + content: "\f2f6"; +} + +.fa-sign-in-alt::before { + content: "\f2f6"; +} + +.fa-ring::before { + content: "\f70b"; +} + +.fa-road::before { + content: "\f018"; +} + +.fa-road-barrier::before { + content: "\e562"; +} + +.fa-road-bridge::before { + content: "\e563"; +} + +.fa-road-circle-check::before { + content: "\e564"; +} + +.fa-road-circle-exclamation::before { + content: "\e565"; +} + +.fa-road-circle-xmark::before { + content: "\e566"; +} + +.fa-road-lock::before { + content: "\e567"; +} + +.fa-road-spikes::before { + content: "\e568"; +} + +.fa-robot::before { + content: "\f544"; +} + +.fa-rocket::before { + content: "\f135"; +} + +.fa-rotate::before { + content: "\f2f1"; +} + +.fa-sync-alt::before { + content: "\f2f1"; +} + +.fa-rotate-left::before { + content: "\f2ea"; +} + +.fa-rotate-back::before { + content: "\f2ea"; +} + +.fa-rotate-backward::before { + content: "\f2ea"; +} + +.fa-undo-alt::before { + content: "\f2ea"; +} + +.fa-rotate-right::before { + content: "\f2f9"; +} + +.fa-redo-alt::before { + content: "\f2f9"; +} + +.fa-rotate-forward::before { + content: "\f2f9"; +} + +.fa-route::before { + content: "\f4d7"; +} + +.fa-rss::before { + content: "\f09e"; +} + +.fa-feed::before { + content: "\f09e"; +} + +.fa-ruble-sign::before { + content: "\f158"; +} + +.fa-rouble::before { + content: "\f158"; +} + +.fa-rub::before { + content: "\f158"; +} + +.fa-ruble::before { + content: "\f158"; +} + +.fa-rug::before { + content: "\e569"; +} + +.fa-ruler::before { + content: "\f545"; +} + +.fa-ruler-combined::before { + content: "\f546"; +} + +.fa-ruler-horizontal::before { + content: "\f547"; +} + +.fa-ruler-vertical::before { + content: "\f548"; +} + +.fa-rupee-sign::before { + content: "\f156"; +} + +.fa-rupee::before { + content: "\f156"; +} + +.fa-rupiah-sign::before { + content: "\e23d"; +} + +.fa-s::before { + content: "S"; +} + +.fa-sack-dollar::before { + content: "\f81d"; +} + +.fa-sack-xmark::before { + content: "\e56a"; +} + +.fa-sailboat::before { + content: "\e445"; +} + +.fa-satellite::before { + content: "\f7bf"; +} + +.fa-satellite-dish::before { + content: "\f7c0"; +} + +.fa-scale-balanced::before { + content: "\f24e"; +} + +.fa-balance-scale::before { + content: "\f24e"; +} + +.fa-scale-unbalanced::before { + content: "\f515"; +} + +.fa-balance-scale-left::before { + content: "\f515"; +} + +.fa-scale-unbalanced-flip::before { + content: "\f516"; +} + +.fa-balance-scale-right::before { + content: "\f516"; +} + +.fa-school::before { + content: "\f549"; +} + +.fa-school-circle-check::before { + content: "\e56b"; +} + +.fa-school-circle-exclamation::before { + content: "\e56c"; +} + +.fa-school-circle-xmark::before { + content: "\e56d"; +} + +.fa-school-flag::before { + content: "\e56e"; +} + +.fa-school-lock::before { + content: "\e56f"; +} + +.fa-scissors::before { + content: "\f0c4"; +} + +.fa-cut::before { + content: "\f0c4"; +} + +.fa-screwdriver::before { + content: "\f54a"; +} + +.fa-screwdriver-wrench::before { + content: "\f7d9"; +} + +.fa-tools::before { + content: "\f7d9"; +} + +.fa-scroll::before { + content: "\f70e"; +} + +.fa-scroll-torah::before { + content: "\f6a0"; +} + +.fa-torah::before { + content: "\f6a0"; +} + +.fa-sd-card::before { + content: "\f7c2"; +} + +.fa-section::before { + content: "\e447"; +} + +.fa-seedling::before { + content: "\f4d8"; +} + +.fa-sprout::before { + content: "\f4d8"; +} + +.fa-server::before { + content: "\f233"; +} + +.fa-shapes::before { + content: "\f61f"; +} + +.fa-triangle-circle-square::before { + content: "\f61f"; +} + +.fa-share::before { + content: "\f064"; +} + +.fa-arrow-turn-right::before { + content: "\f064"; +} + +.fa-mail-forward::before { + content: "\f064"; +} + +.fa-share-from-square::before { + content: "\f14d"; +} + +.fa-share-square::before { + content: "\f14d"; +} + +.fa-share-nodes::before { + content: "\f1e0"; +} + +.fa-share-alt::before { + content: "\f1e0"; +} + +.fa-sheet-plastic::before { + content: "\e571"; +} + +.fa-shekel-sign::before { + content: "\f20b"; +} + +.fa-ils::before { + content: "\f20b"; +} + +.fa-shekel::before { + content: "\f20b"; +} + +.fa-sheqel::before { + content: "\f20b"; +} + +.fa-sheqel-sign::before { + content: "\f20b"; +} + +.fa-shield::before { + content: "\f132"; +} + +.fa-shield-blank::before { + content: "\f132"; +} + +.fa-shield-cat::before { + content: "\e572"; +} + +.fa-shield-dog::before { + content: "\e573"; +} + +.fa-shield-halved::before { + content: "\f3ed"; +} + +.fa-shield-alt::before { + content: "\f3ed"; +} + +.fa-shield-heart::before { + content: "\e574"; +} + +.fa-shield-virus::before { + content: "\e06c"; +} + +.fa-ship::before { + content: "\f21a"; +} + +.fa-shirt::before { + content: "\f553"; +} + +.fa-t-shirt::before { + content: "\f553"; +} + +.fa-tshirt::before { + content: "\f553"; +} + +.fa-shoe-prints::before { + content: "\f54b"; +} + +.fa-shop::before { + content: "\f54f"; +} + +.fa-store-alt::before { + content: "\f54f"; +} + +.fa-shop-lock::before { + content: "\e4a5"; +} + +.fa-shop-slash::before { + content: "\e070"; +} + +.fa-store-alt-slash::before { + content: "\e070"; +} + +.fa-shower::before { + content: "\f2cc"; +} + +.fa-shrimp::before { + content: "\e448"; +} + +.fa-shuffle::before { + content: "\f074"; +} + +.fa-random::before { + content: "\f074"; +} + +.fa-shuttle-space::before { + content: "\f197"; +} + +.fa-space-shuttle::before { + content: "\f197"; +} + +.fa-sign-hanging::before { + content: "\f4d9"; +} + +.fa-sign::before { + content: "\f4d9"; +} + +.fa-signal::before { + content: "\f012"; +} + +.fa-signal-5::before { + content: "\f012"; +} + +.fa-signal-perfect::before { + content: "\f012"; +} + +.fa-signature::before { + content: "\f5b7"; +} + +.fa-signs-post::before { + content: "\f277"; +} + +.fa-map-signs::before { + content: "\f277"; +} + +.fa-sim-card::before { + content: "\f7c4"; +} + +.fa-sink::before { + content: "\e06d"; +} + +.fa-sitemap::before { + content: "\f0e8"; +} + +.fa-skull::before { + content: "\f54c"; +} + +.fa-skull-crossbones::before { + content: "\f714"; +} + +.fa-slash::before { + content: "\f715"; +} + +.fa-sleigh::before { + content: "\f7cc"; +} + +.fa-sliders::before { + content: "\f1de"; +} + +.fa-sliders-h::before { + content: "\f1de"; +} + +.fa-smog::before { + content: "\f75f"; +} + +.fa-smoking::before { + content: "\f48d"; +} + +.fa-snowflake::before { + content: "\f2dc"; +} + +.fa-snowman::before { + content: "\f7d0"; +} + +.fa-snowplow::before { + content: "\f7d2"; +} + +.fa-soap::before { + content: "\e06e"; +} + +.fa-socks::before { + content: "\f696"; +} + +.fa-solar-panel::before { + content: "\f5ba"; +} + +.fa-sort::before { + content: "\f0dc"; +} + +.fa-unsorted::before { + content: "\f0dc"; +} + +.fa-sort-down::before { + content: "\f0dd"; +} + +.fa-sort-desc::before { + content: "\f0dd"; +} + +.fa-sort-up::before { + content: "\f0de"; +} + +.fa-sort-asc::before { + content: "\f0de"; +} + +.fa-spa::before { + content: "\f5bb"; +} + +.fa-spaghetti-monster-flying::before { + content: "\f67b"; +} + +.fa-pastafarianism::before { + content: "\f67b"; +} + +.fa-spell-check::before { + content: "\f891"; +} + +.fa-spider::before { + content: "\f717"; +} + +.fa-spinner::before { + content: "\f110"; +} + +.fa-splotch::before { + content: "\f5bc"; +} + +.fa-spoon::before { + content: "\f2e5"; +} + +.fa-utensil-spoon::before { + content: "\f2e5"; +} + +.fa-spray-can::before { + content: "\f5bd"; +} + +.fa-spray-can-sparkles::before { + content: "\f5d0"; +} + +.fa-air-freshener::before { + content: "\f5d0"; +} + +.fa-square::before { + content: "\f0c8"; +} + +.fa-square-arrow-up-right::before { + content: "\f14c"; +} + +.fa-external-link-square::before { + content: "\f14c"; +} + +.fa-square-caret-down::before { + content: "\f150"; +} + +.fa-caret-square-down::before { + content: "\f150"; +} + +.fa-square-caret-left::before { + content: "\f191"; +} + +.fa-caret-square-left::before { + content: "\f191"; +} + +.fa-square-caret-right::before { + content: "\f152"; +} + +.fa-caret-square-right::before { + content: "\f152"; +} + +.fa-square-caret-up::before { + content: "\f151"; +} + +.fa-caret-square-up::before { + content: "\f151"; +} + +.fa-square-check::before { + content: "\f14a"; +} + +.fa-check-square::before { + content: "\f14a"; +} + +.fa-square-envelope::before { + content: "\f199"; +} + +.fa-envelope-square::before { + content: "\f199"; +} + +.fa-square-full::before { + content: "\f45c"; +} + +.fa-square-h::before { + content: "\f0fd"; +} + +.fa-h-square::before { + content: "\f0fd"; +} + +.fa-square-minus::before { + content: "\f146"; +} + +.fa-minus-square::before { + content: "\f146"; +} + +.fa-square-nfi::before { + content: "\e576"; +} + +.fa-square-parking::before { + content: "\f540"; +} + +.fa-parking::before { + content: "\f540"; +} + +.fa-square-pen::before { + content: "\f14b"; +} + +.fa-pen-square::before { + content: "\f14b"; +} + +.fa-pencil-square::before { + content: "\f14b"; +} + +.fa-square-person-confined::before { + content: "\e577"; +} + +.fa-square-phone::before { + content: "\f098"; +} + +.fa-phone-square::before { + content: "\f098"; +} + +.fa-square-phone-flip::before { + content: "\f87b"; +} + +.fa-phone-square-alt::before { + content: "\f87b"; +} + +.fa-square-plus::before { + content: "\f0fe"; +} + +.fa-plus-square::before { + content: "\f0fe"; +} + +.fa-square-poll-horizontal::before { + content: "\f682"; +} + +.fa-poll-h::before { + content: "\f682"; +} + +.fa-square-poll-vertical::before { + content: "\f681"; +} + +.fa-poll::before { + content: "\f681"; +} + +.fa-square-root-variable::before { + content: "\f698"; +} + +.fa-square-root-alt::before { + content: "\f698"; +} + +.fa-square-rss::before { + content: "\f143"; +} + +.fa-rss-square::before { + content: "\f143"; +} + +.fa-square-share-nodes::before { + content: "\f1e1"; +} + +.fa-share-alt-square::before { + content: "\f1e1"; +} + +.fa-square-up-right::before { + content: "\f360"; +} + +.fa-external-link-square-alt::before { + content: "\f360"; +} + +.fa-square-virus::before { + content: "\e578"; +} + +.fa-square-xmark::before { + content: "\f2d3"; +} + +.fa-times-square::before { + content: "\f2d3"; +} + +.fa-xmark-square::before { + content: "\f2d3"; +} + +.fa-staff-aesculapius::before { + content: "\e579"; +} + +.fa-rod-asclepius::before { + content: "\e579"; +} + +.fa-rod-snake::before { + content: "\e579"; +} + +.fa-staff-snake::before { + content: "\e579"; +} + +.fa-stairs::before { + content: "\e289"; +} + +.fa-stamp::before { + content: "\f5bf"; +} + +.fa-star::before { + content: "\f005"; +} + +.fa-star-and-crescent::before { + content: "\f699"; +} + +.fa-star-half::before { + content: "\f089"; +} + +.fa-star-half-stroke::before { + content: "\f5c0"; +} + +.fa-star-half-alt::before { + content: "\f5c0"; +} + +.fa-star-of-david::before { + content: "\f69a"; +} + +.fa-star-of-life::before { + content: "\f621"; +} + +.fa-sterling-sign::before { + content: "\f154"; +} + +.fa-gbp::before { + content: "\f154"; +} + +.fa-pound-sign::before { + content: "\f154"; +} + +.fa-stethoscope::before { + content: "\f0f1"; +} + +.fa-stop::before { + content: "\f04d"; +} + +.fa-stopwatch::before { + content: "\f2f2"; +} + +.fa-stopwatch-20::before { + content: "\e06f"; +} + +.fa-store::before { + content: "\f54e"; +} + +.fa-store-slash::before { + content: "\e071"; +} + +.fa-street-view::before { + content: "\f21d"; +} + +.fa-strikethrough::before { + content: "\f0cc"; +} + +.fa-stroopwafel::before { + content: "\f551"; +} + +.fa-subscript::before { + content: "\f12c"; +} + +.fa-suitcase::before { + content: "\f0f2"; +} + +.fa-suitcase-medical::before { + content: "\f0fa"; +} + +.fa-medkit::before { + content: "\f0fa"; +} + +.fa-suitcase-rolling::before { + content: "\f5c1"; +} + +.fa-sun::before { + content: "\f185"; +} + +.fa-sun-plant-wilt::before { + content: "\e57a"; +} + +.fa-superscript::before { + content: "\f12b"; +} + +.fa-swatchbook::before { + content: "\f5c3"; +} + +.fa-synagogue::before { + content: "\f69b"; +} + +.fa-syringe::before { + content: "\f48e"; +} + +.fa-t::before { + content: "T"; +} + +.fa-table::before { + content: "\f0ce"; +} + +.fa-table-cells::before { + content: "\f00a"; +} + +.fa-th::before { + content: "\f00a"; +} + +.fa-table-cells-large::before { + content: "\f009"; +} + +.fa-th-large::before { + content: "\f009"; +} + +.fa-table-columns::before { + content: "\f0db"; +} + +.fa-columns::before { + content: "\f0db"; +} + +.fa-table-list::before { + content: "\f00b"; +} + +.fa-th-list::before { + content: "\f00b"; +} + +.fa-table-tennis-paddle-ball::before { + content: "\f45d"; +} + +.fa-ping-pong-paddle-ball::before { + content: "\f45d"; +} + +.fa-table-tennis::before { + content: "\f45d"; +} + +.fa-tablet::before { + content: "\f3fb"; +} + +.fa-tablet-android::before { + content: "\f3fb"; +} + +.fa-tablet-button::before { + content: "\f10a"; +} + +.fa-tablet-screen-button::before { + content: "\f3fa"; +} + +.fa-tablet-alt::before { + content: "\f3fa"; +} + +.fa-tablets::before { + content: "\f490"; +} + +.fa-tachograph-digital::before { + content: "\f566"; +} + +.fa-digital-tachograph::before { + content: "\f566"; +} + +.fa-tag::before { + content: "\f02b"; +} + +.fa-tags::before { + content: "\f02c"; +} + +.fa-tape::before { + content: "\f4db"; +} + +.fa-tarp::before { + content: "\e57b"; +} + +.fa-tarp-droplet::before { + content: "\e57c"; +} + +.fa-taxi::before { + content: "\f1ba"; +} + +.fa-cab::before { + content: "\f1ba"; +} + +.fa-teeth::before { + content: "\f62e"; +} + +.fa-teeth-open::before { + content: "\f62f"; +} + +.fa-temperature-arrow-down::before { + content: "\e03f"; +} + +.fa-temperature-down::before { + content: "\e03f"; +} + +.fa-temperature-arrow-up::before { + content: "\e040"; +} + +.fa-temperature-up::before { + content: "\e040"; +} + +.fa-temperature-empty::before { + content: "\f2cb"; +} + +.fa-temperature-0::before { + content: "\f2cb"; +} + +.fa-thermometer-0::before { + content: "\f2cb"; +} + +.fa-thermometer-empty::before { + content: "\f2cb"; +} + +.fa-temperature-full::before { + content: "\f2c7"; +} + +.fa-temperature-4::before { + content: "\f2c7"; +} + +.fa-thermometer-4::before { + content: "\f2c7"; +} + +.fa-thermometer-full::before { + content: "\f2c7"; +} + +.fa-temperature-half::before { + content: "\f2c9"; +} + +.fa-temperature-2::before { + content: "\f2c9"; +} + +.fa-thermometer-2::before { + content: "\f2c9"; +} + +.fa-thermometer-half::before { + content: "\f2c9"; +} + +.fa-temperature-high::before { + content: "\f769"; +} + +.fa-temperature-low::before { + content: "\f76b"; +} + +.fa-temperature-quarter::before { + content: "\f2ca"; +} + +.fa-temperature-1::before { + content: "\f2ca"; +} + +.fa-thermometer-1::before { + content: "\f2ca"; +} + +.fa-thermometer-quarter::before { + content: "\f2ca"; +} + +.fa-temperature-three-quarters::before { + content: "\f2c8"; +} + +.fa-temperature-3::before { + content: "\f2c8"; +} + +.fa-thermometer-3::before { + content: "\f2c8"; +} + +.fa-thermometer-three-quarters::before { + content: "\f2c8"; +} + +.fa-tenge-sign::before { + content: "\f7d7"; +} + +.fa-tenge::before { + content: "\f7d7"; +} + +.fa-tent::before { + content: "\e57d"; +} + +.fa-tent-arrow-down-to-line::before { + content: "\e57e"; +} + +.fa-tent-arrow-left-right::before { + content: "\e57f"; +} + +.fa-tent-arrow-turn-left::before { + content: "\e580"; +} + +.fa-tent-arrows-down::before { + content: "\e581"; +} + +.fa-tents::before { + content: "\e582"; +} + +.fa-terminal::before { + content: "\f120"; +} + +.fa-text-height::before { + content: "\f034"; +} + +.fa-text-slash::before { + content: "\f87d"; +} + +.fa-remove-format::before { + content: "\f87d"; +} + +.fa-text-width::before { + content: "\f035"; +} + +.fa-thermometer::before { + content: "\f491"; +} + +.fa-thumbs-down::before { + content: "\f165"; +} + +.fa-thumbs-up::before { + content: "\f164"; +} + +.fa-thumbtack::before { + content: "\f08d"; +} + +.fa-thumb-tack::before { + content: "\f08d"; +} + +.fa-ticket::before { + content: "\f145"; +} + +.fa-ticket-simple::before { + content: "\f3ff"; +} + +.fa-ticket-alt::before { + content: "\f3ff"; +} + +.fa-timeline::before { + content: "\e29c"; +} + +.fa-toggle-off::before { + content: "\f204"; +} + +.fa-toggle-on::before { + content: "\f205"; +} + +.fa-toilet::before { + content: "\f7d8"; +} + +.fa-toilet-paper::before { + content: "\f71e"; +} + +.fa-toilet-paper-slash::before { + content: "\e072"; +} + +.fa-toilet-portable::before { + content: "\e583"; +} + +.fa-toilets-portable::before { + content: "\e584"; +} + +.fa-toolbox::before { + content: "\f552"; +} + +.fa-tooth::before { + content: "\f5c9"; +} + +.fa-torii-gate::before { + content: "\f6a1"; +} + +.fa-tornado::before { + content: "\f76f"; +} + +.fa-tower-broadcast::before { + content: "\f519"; +} + +.fa-broadcast-tower::before { + content: "\f519"; +} + +.fa-tower-cell::before { + content: "\e585"; +} + +.fa-tower-observation::before { + content: "\e586"; +} + +.fa-tractor::before { + content: "\f722"; +} + +.fa-trademark::before { + content: "\f25c"; +} + +.fa-traffic-light::before { + content: "\f637"; +} + +.fa-trailer::before { + content: "\e041"; +} + +.fa-train::before { + content: "\f238"; +} + +.fa-train-subway::before { + content: "\f239"; +} + +.fa-subway::before { + content: "\f239"; +} + +.fa-train-tram::before { + content: "\f7da"; +} + +.fa-tram::before { + content: "\f7da"; +} + +.fa-transgender::before { + content: "\f225"; +} + +.fa-transgender-alt::before { + content: "\f225"; +} + +.fa-trash::before { + content: "\f1f8"; +} + +.fa-trash-arrow-up::before { + content: "\f829"; +} + +.fa-trash-restore::before { + content: "\f829"; +} + +.fa-trash-can::before { + content: "\f2ed"; +} + +.fa-trash-alt::before { + content: "\f2ed"; +} + +.fa-trash-can-arrow-up::before { + content: "\f82a"; +} + +.fa-trash-restore-alt::before { + content: "\f82a"; +} + +.fa-tree::before { + content: "\f1bb"; +} + +.fa-tree-city::before { + content: "\e587"; +} + +.fa-triangle-exclamation::before { + content: "\f071"; +} + +.fa-exclamation-triangle::before { + content: "\f071"; +} + +.fa-warning::before { + content: "\f071"; +} + +.fa-trophy::before { + content: "\f091"; +} + +.fa-trowel::before { + content: "\e589"; +} + +.fa-trowel-bricks::before { + content: "\e58a"; +} + +.fa-truck::before { + content: "\f0d1"; +} + +.fa-truck-arrow-right::before { + content: "\e58b"; +} + +.fa-truck-droplet::before { + content: "\e58c"; +} + +.fa-truck-fast::before { + content: "\f48b"; +} + +.fa-shipping-fast::before { + content: "\f48b"; +} + +.fa-truck-field::before { + content: "\e58d"; +} + +.fa-truck-field-un::before { + content: "\e58e"; +} + +.fa-truck-front::before { + content: "\e2b7"; +} + +.fa-truck-medical::before { + content: "\f0f9"; +} + +.fa-ambulance::before { + content: "\f0f9"; +} + +.fa-truck-monster::before { + content: "\f63b"; +} + +.fa-truck-moving::before { + content: "\f4df"; +} + +.fa-truck-pickup::before { + content: "\f63c"; +} + +.fa-truck-plane::before { + content: "\e58f"; +} + +.fa-truck-ramp-box::before { + content: "\f4de"; +} + +.fa-truck-loading::before { + content: "\f4de"; +} + +.fa-tty::before { + content: "\f1e4"; +} + +.fa-teletype::before { + content: "\f1e4"; +} + +.fa-turkish-lira-sign::before { + content: "\e2bb"; +} + +.fa-try::before { + content: "\e2bb"; +} + +.fa-turkish-lira::before { + content: "\e2bb"; +} + +.fa-turn-down::before { + content: "\f3be"; +} + +.fa-level-down-alt::before { + content: "\f3be"; +} + +.fa-turn-up::before { + content: "\f3bf"; +} + +.fa-level-up-alt::before { + content: "\f3bf"; +} + +.fa-tv::before { + content: "\f26c"; +} + +.fa-television::before { + content: "\f26c"; +} + +.fa-tv-alt::before { + content: "\f26c"; +} + +.fa-u::before { + content: "U"; +} + +.fa-umbrella::before { + content: "\f0e9"; +} + +.fa-umbrella-beach::before { + content: "\f5ca"; +} + +.fa-underline::before { + content: "\f0cd"; +} + +.fa-universal-access::before { + content: "\f29a"; +} + +.fa-unlock::before { + content: "\f09c"; +} + +.fa-unlock-keyhole::before { + content: "\f13e"; +} + +.fa-unlock-alt::before { + content: "\f13e"; +} + +.fa-up-down::before { + content: "\f338"; +} + +.fa-arrows-alt-v::before { + content: "\f338"; +} + +.fa-up-down-left-right::before { + content: "\f0b2"; +} + +.fa-arrows-alt::before { + content: "\f0b2"; +} + +.fa-up-long::before { + content: "\f30c"; +} + +.fa-long-arrow-alt-up::before { + content: "\f30c"; +} + +.fa-up-right-and-down-left-from-center::before { + content: "\f424"; +} + +.fa-expand-alt::before { + content: "\f424"; +} + +.fa-up-right-from-square::before { + content: "\f35d"; +} + +.fa-external-link-alt::before { + content: "\f35d"; +} + +.fa-upload::before { + content: "\f093"; +} + +.fa-user::before { + content: "\f007"; +} + +.fa-user-astronaut::before { + content: "\f4fb"; +} + +.fa-user-check::before { + content: "\f4fc"; +} + +.fa-user-clock::before { + content: "\f4fd"; +} + +.fa-user-doctor::before { + content: "\f0f0"; +} + +.fa-user-md::before { + content: "\f0f0"; +} + +.fa-user-gear::before { + content: "\f4fe"; +} + +.fa-user-cog::before { + content: "\f4fe"; +} + +.fa-user-graduate::before { + content: "\f501"; +} + +.fa-user-group::before { + content: "\f500"; +} + +.fa-user-friends::before { + content: "\f500"; +} + +.fa-user-injured::before { + content: "\f728"; +} + +.fa-user-large::before { + content: "\f406"; +} + +.fa-user-alt::before { + content: "\f406"; +} + +.fa-user-large-slash::before { + content: "\f4fa"; +} + +.fa-user-alt-slash::before { + content: "\f4fa"; +} + +.fa-user-lock::before { + content: "\f502"; +} + +.fa-user-minus::before { + content: "\f503"; +} + +.fa-user-ninja::before { + content: "\f504"; +} + +.fa-user-nurse::before { + content: "\f82f"; +} + +.fa-user-pen::before { + content: "\f4ff"; +} + +.fa-user-edit::before { + content: "\f4ff"; +} + +.fa-user-plus::before { + content: "\f234"; +} + +.fa-user-secret::before { + content: "\f21b"; +} + +.fa-user-shield::before { + content: "\f505"; +} + +.fa-user-slash::before { + content: "\f506"; +} + +.fa-user-tag::before { + content: "\f507"; +} + +.fa-user-tie::before { + content: "\f508"; +} + +.fa-user-xmark::before { + content: "\f235"; +} + +.fa-user-times::before { + content: "\f235"; +} + +.fa-users::before { + content: "\f0c0"; +} + +.fa-users-between-lines::before { + content: "\e591"; +} + +.fa-users-gear::before { + content: "\f509"; +} + +.fa-users-cog::before { + content: "\f509"; +} + +.fa-users-line::before { + content: "\e592"; +} + +.fa-users-rays::before { + content: "\e593"; +} + +.fa-users-rectangle::before { + content: "\e594"; +} + +.fa-users-slash::before { + content: "\e073"; +} + +.fa-users-viewfinder::before { + content: "\e595"; +} + +.fa-utensils::before { + content: "\f2e7"; +} + +.fa-cutlery::before { + content: "\f2e7"; +} + +.fa-v::before { + content: "V"; +} + +.fa-van-shuttle::before { + content: "\f5b6"; +} + +.fa-shuttle-van::before { + content: "\f5b6"; +} + +.fa-vault::before { + content: "\e2c5"; +} + +.fa-vector-square::before { + content: "\f5cb"; +} + +.fa-venus::before { + content: "\f221"; +} + +.fa-venus-double::before { + content: "\f226"; +} + +.fa-venus-mars::before { + content: "\f228"; +} + +.fa-vest::before { + content: "\e085"; +} + +.fa-vest-patches::before { + content: "\e086"; +} + +.fa-vial::before { + content: "\f492"; +} + +.fa-vial-circle-check::before { + content: "\e596"; +} + +.fa-vial-virus::before { + content: "\e597"; +} + +.fa-vials::before { + content: "\f493"; +} + +.fa-video::before { + content: "\f03d"; +} + +.fa-video-camera::before { + content: "\f03d"; +} + +.fa-video-slash::before { + content: "\f4e2"; +} + +.fa-vihara::before { + content: "\f6a7"; +} + +.fa-virus::before { + content: "\e074"; +} + +.fa-virus-covid::before { + content: "\e4a8"; +} + +.fa-virus-covid-slash::before { + content: "\e4a9"; +} + +.fa-virus-slash::before { + content: "\e075"; +} + +.fa-viruses::before { + content: "\e076"; +} + +.fa-voicemail::before { + content: "\f897"; +} + +.fa-volcano::before { + content: "\f770"; +} + +.fa-volleyball::before { + content: "\f45f"; +} + +.fa-volleyball-ball::before { + content: "\f45f"; +} + +.fa-volume-high::before { + content: "\f028"; +} + +.fa-volume-up::before { + content: "\f028"; +} + +.fa-volume-low::before { + content: "\f027"; +} + +.fa-volume-down::before { + content: "\f027"; +} + +.fa-volume-off::before { + content: "\f026"; +} + +.fa-volume-xmark::before { + content: "\f6a9"; +} + +.fa-volume-mute::before { + content: "\f6a9"; +} + +.fa-volume-times::before { + content: "\f6a9"; +} + +.fa-vr-cardboard::before { + content: "\f729"; +} + +.fa-w::before { + content: "W"; +} + +.fa-walkie-talkie::before { + content: "\f8ef"; +} + +.fa-wallet::before { + content: "\f555"; +} + +.fa-wand-magic::before { + content: "\f0d0"; +} + +.fa-magic::before { + content: "\f0d0"; +} + +.fa-wand-magic-sparkles::before { + content: "\e2ca"; +} + +.fa-magic-wand-sparkles::before { + content: "\e2ca"; +} + +.fa-wand-sparkles::before { + content: "\f72b"; +} + +.fa-warehouse::before { + content: "\f494"; +} + +.fa-water::before { + content: "\f773"; +} + +.fa-water-ladder::before { + content: "\f5c5"; +} + +.fa-ladder-water::before { + content: "\f5c5"; +} + +.fa-swimming-pool::before { + content: "\f5c5"; +} + +.fa-wave-square::before { + content: "\f83e"; +} + +.fa-weight-hanging::before { + content: "\f5cd"; +} + +.fa-weight-scale::before { + content: "\f496"; +} + +.fa-weight::before { + content: "\f496"; +} + +.fa-wheat-awn::before { + content: "\e2cd"; +} + +.fa-wheat-alt::before { + content: "\e2cd"; +} + +.fa-wheat-awn-circle-exclamation::before { + content: "\e598"; +} + +.fa-wheelchair::before { + content: "\f193"; +} + +.fa-wheelchair-move::before { + content: "\e2ce"; +} + +.fa-wheelchair-alt::before { + content: "\e2ce"; +} + +.fa-whiskey-glass::before { + content: "\f7a0"; +} + +.fa-glass-whiskey::before { + content: "\f7a0"; +} + +.fa-wifi::before { + content: "\f1eb"; +} + +.fa-wifi-3::before { + content: "\f1eb"; +} + +.fa-wifi-strong::before { + content: "\f1eb"; +} + +.fa-wind::before { + content: "\f72e"; +} + +.fa-window-maximize::before { + content: "\f2d0"; +} + +.fa-window-minimize::before { + content: "\f2d1"; +} + +.fa-window-restore::before { + content: "\f2d2"; +} + +.fa-wine-bottle::before { + content: "\f72f"; +} + +.fa-wine-glass::before { + content: "\f4e3"; +} + +.fa-wine-glass-empty::before { + content: "\f5ce"; +} + +.fa-wine-glass-alt::before { + content: "\f5ce"; +} + +.fa-won-sign::before { + content: "\f159"; +} + +.fa-krw::before { + content: "\f159"; +} + +.fa-won::before { + content: "\f159"; +} + +.fa-worm::before { + content: "\e599"; +} + +.fa-wrench::before { + content: "\f0ad"; +} + +.fa-x::before { + content: "X"; +} + +.fa-x-ray::before { + content: "\f497"; +} + +.fa-xmark::before { + content: "\f00d"; +} + +.fa-close::before { + content: "\f00d"; +} + +.fa-multiply::before { + content: "\f00d"; +} + +.fa-remove::before { + content: "\f00d"; +} + +.fa-times::before { + content: "\f00d"; +} + +.fa-xmarks-lines::before { + content: "\e59a"; +} + +.fa-y::before { + content: "Y"; +} + +.fa-yen-sign::before { + content: "\f157"; +} + +.fa-cny::before { + content: "\f157"; +} + +.fa-jpy::before { + content: "\f157"; +} + +.fa-rmb::before { + content: "\f157"; +} + +.fa-yen::before { + content: "\f157"; +} + +.fa-yin-yang::before { + content: "\f6ad"; +} + +.fa-z::before { + content: "Z"; +} + +.sr-only, +.fa-sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border-width: 0; +} + +.sr-only-focusable:not(:focus), +.fa-sr-only-focusable:not(:focus) { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border-width: 0; +} + +/*! + * Font Awesome Free 6.1.1 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + * Copyright 2022 Fonticons, Inc. + */ +:root, :host { + --fa-font-solid: normal 900 1em/1 "Font Awesome 6 Free"; +} + +@font-face { + font-family: "Font Awesome 6 Free"; + font-style: normal; + font-weight: 900; + font-display: block; + src: url(59edf72a325ac2048d60.woff2) format("woff2"), url(e615bbcb258550973c16.ttf) format("truetype"); +} +.fas, +.fa-solid { + font-family: "Font Awesome 6 Free"; + font-weight: 900; +} + +/*! + * Font Awesome Free 6.1.1 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + * Copyright 2022 Fonticons, Inc. + */ +:root, :host { + --fa-font-brands: normal 400 1em/1 "Font Awesome 6 Brands"; +} + +@font-face { + font-family: "Font Awesome 6 Brands"; + font-style: normal; + font-weight: 400; + font-display: block; + src: url(ebb7a127d2d8ee6f1832.woff2) format("woff2"), url(b823fc0dbb5a5f0c21bb.ttf) format("truetype"); +} +.fab, +.fa-brands { + font-family: "Font Awesome 6 Brands"; + font-weight: 400; +} + +.fa-42-group:before { + content: "\e080"; +} + +.fa-innosoft:before { + content: "\e080"; +} + +.fa-500px:before { + content: "\f26e"; +} + +.fa-accessible-icon:before { + content: "\f368"; +} + +.fa-accusoft:before { + content: "\f369"; +} + +.fa-adn:before { + content: "\f170"; +} + +.fa-adversal:before { + content: "\f36a"; +} + +.fa-affiliatetheme:before { + content: "\f36b"; +} + +.fa-airbnb:before { + content: "\f834"; +} + +.fa-algolia:before { + content: "\f36c"; +} + +.fa-alipay:before { + content: "\f642"; +} + +.fa-amazon:before { + content: "\f270"; +} + +.fa-amazon-pay:before { + content: "\f42c"; +} + +.fa-amilia:before { + content: "\f36d"; +} + +.fa-android:before { + content: "\f17b"; +} + +.fa-angellist:before { + content: "\f209"; +} + +.fa-angrycreative:before { + content: "\f36e"; +} + +.fa-angular:before { + content: "\f420"; +} + +.fa-app-store:before { + content: "\f36f"; +} + +.fa-app-store-ios:before { + content: "\f370"; +} + +.fa-apper:before { + content: "\f371"; +} + +.fa-apple:before { + content: "\f179"; +} + +.fa-apple-pay:before { + content: "\f415"; +} + +.fa-artstation:before { + content: "\f77a"; +} + +.fa-asymmetrik:before { + content: "\f372"; +} + +.fa-atlassian:before { + content: "\f77b"; +} + +.fa-audible:before { + content: "\f373"; +} + +.fa-autoprefixer:before { + content: "\f41c"; +} + +.fa-avianex:before { + content: "\f374"; +} + +.fa-aviato:before { + content: "\f421"; +} + +.fa-aws:before { + content: "\f375"; +} + +.fa-bandcamp:before { + content: "\f2d5"; +} + +.fa-battle-net:before { + content: "\f835"; +} + +.fa-behance:before { + content: "\f1b4"; +} + +.fa-behance-square:before { + content: "\f1b5"; +} + +.fa-bilibili:before { + content: "\e3d9"; +} + +.fa-bimobject:before { + content: "\f378"; +} + +.fa-bitbucket:before { + content: "\f171"; +} + +.fa-bitcoin:before { + content: "\f379"; +} + +.fa-bity:before { + content: "\f37a"; +} + +.fa-black-tie:before { + content: "\f27e"; +} + +.fa-blackberry:before { + content: "\f37b"; +} + +.fa-blogger:before { + content: "\f37c"; +} + +.fa-blogger-b:before { + content: "\f37d"; +} + +.fa-bluetooth:before { + content: "\f293"; +} + +.fa-bluetooth-b:before { + content: "\f294"; +} + +.fa-bootstrap:before { + content: "\f836"; +} + +.fa-bots:before { + content: "\e340"; +} + +.fa-btc:before { + content: "\f15a"; +} + +.fa-buffer:before { + content: "\f837"; +} + +.fa-buromobelexperte:before { + content: "\f37f"; +} + +.fa-buy-n-large:before { + content: "\f8a6"; +} + +.fa-buysellads:before { + content: "\f20d"; +} + +.fa-canadian-maple-leaf:before { + content: "\f785"; +} + +.fa-cc-amazon-pay:before { + content: "\f42d"; +} + +.fa-cc-amex:before { + content: "\f1f3"; +} + +.fa-cc-apple-pay:before { + content: "\f416"; +} + +.fa-cc-diners-club:before { + content: "\f24c"; +} + +.fa-cc-discover:before { + content: "\f1f2"; +} + +.fa-cc-jcb:before { + content: "\f24b"; +} + +.fa-cc-mastercard:before { + content: "\f1f1"; +} + +.fa-cc-paypal:before { + content: "\f1f4"; +} + +.fa-cc-stripe:before { + content: "\f1f5"; +} + +.fa-cc-visa:before { + content: "\f1f0"; +} + +.fa-centercode:before { + content: "\f380"; +} + +.fa-centos:before { + content: "\f789"; +} + +.fa-chrome:before { + content: "\f268"; +} + +.fa-chromecast:before { + content: "\f838"; +} + +.fa-cloudflare:before { + content: "\e07d"; +} + +.fa-cloudscale:before { + content: "\f383"; +} + +.fa-cloudsmith:before { + content: "\f384"; +} + +.fa-cloudversify:before { + content: "\f385"; +} + +.fa-cmplid:before { + content: "\e360"; +} + +.fa-codepen:before { + content: "\f1cb"; +} + +.fa-codiepie:before { + content: "\f284"; +} + +.fa-confluence:before { + content: "\f78d"; +} + +.fa-connectdevelop:before { + content: "\f20e"; +} + +.fa-contao:before { + content: "\f26d"; +} + +.fa-cotton-bureau:before { + content: "\f89e"; +} + +.fa-cpanel:before { + content: "\f388"; +} + +.fa-creative-commons:before { + content: "\f25e"; +} + +.fa-creative-commons-by:before { + content: "\f4e7"; +} + +.fa-creative-commons-nc:before { + content: "\f4e8"; +} + +.fa-creative-commons-nc-eu:before { + content: "\f4e9"; +} + +.fa-creative-commons-nc-jp:before { + content: "\f4ea"; +} + +.fa-creative-commons-nd:before { + content: "\f4eb"; +} + +.fa-creative-commons-pd:before { + content: "\f4ec"; +} + +.fa-creative-commons-pd-alt:before { + content: "\f4ed"; +} + +.fa-creative-commons-remix:before { + content: "\f4ee"; +} + +.fa-creative-commons-sa:before { + content: "\f4ef"; +} + +.fa-creative-commons-sampling:before { + content: "\f4f0"; +} + +.fa-creative-commons-sampling-plus:before { + content: "\f4f1"; +} + +.fa-creative-commons-share:before { + content: "\f4f2"; +} + +.fa-creative-commons-zero:before { + content: "\f4f3"; +} + +.fa-critical-role:before { + content: "\f6c9"; +} + +.fa-css3:before { + content: "\f13c"; +} + +.fa-css3-alt:before { + content: "\f38b"; +} + +.fa-cuttlefish:before { + content: "\f38c"; +} + +.fa-d-and-d:before { + content: "\f38d"; +} + +.fa-d-and-d-beyond:before { + content: "\f6ca"; +} + +.fa-dailymotion:before { + content: "\e052"; +} + +.fa-dashcube:before { + content: "\f210"; +} + +.fa-deezer:before { + content: "\e077"; +} + +.fa-delicious:before { + content: "\f1a5"; +} + +.fa-deploydog:before { + content: "\f38e"; +} + +.fa-deskpro:before { + content: "\f38f"; +} + +.fa-dev:before { + content: "\f6cc"; +} + +.fa-deviantart:before { + content: "\f1bd"; +} + +.fa-dhl:before { + content: "\f790"; +} + +.fa-diaspora:before { + content: "\f791"; +} + +.fa-digg:before { + content: "\f1a6"; +} + +.fa-digital-ocean:before { + content: "\f391"; +} + +.fa-discord:before { + content: "\f392"; +} + +.fa-discourse:before { + content: "\f393"; +} + +.fa-dochub:before { + content: "\f394"; +} + +.fa-docker:before { + content: "\f395"; +} + +.fa-draft2digital:before { + content: "\f396"; +} + +.fa-dribbble:before { + content: "\f17d"; +} + +.fa-dribbble-square:before { + content: "\f397"; +} + +.fa-dropbox:before { + content: "\f16b"; +} + +.fa-drupal:before { + content: "\f1a9"; +} + +.fa-dyalog:before { + content: "\f399"; +} + +.fa-earlybirds:before { + content: "\f39a"; +} + +.fa-ebay:before { + content: "\f4f4"; +} + +.fa-edge:before { + content: "\f282"; +} + +.fa-edge-legacy:before { + content: "\e078"; +} + +.fa-elementor:before { + content: "\f430"; +} + +.fa-ello:before { + content: "\f5f1"; +} + +.fa-ember:before { + content: "\f423"; +} + +.fa-empire:before { + content: "\f1d1"; +} + +.fa-envira:before { + content: "\f299"; +} + +.fa-erlang:before { + content: "\f39d"; +} + +.fa-ethereum:before { + content: "\f42e"; +} + +.fa-etsy:before { + content: "\f2d7"; +} + +.fa-evernote:before { + content: "\f839"; +} + +.fa-expeditedssl:before { + content: "\f23e"; +} + +.fa-facebook:before { + content: "\f09a"; +} + +.fa-facebook-f:before { + content: "\f39e"; +} + +.fa-facebook-messenger:before { + content: "\f39f"; +} + +.fa-facebook-square:before { + content: "\f082"; +} + +.fa-fantasy-flight-games:before { + content: "\f6dc"; +} + +.fa-fedex:before { + content: "\f797"; +} + +.fa-fedora:before { + content: "\f798"; +} + +.fa-figma:before { + content: "\f799"; +} + +.fa-firefox:before { + content: "\f269"; +} + +.fa-firefox-browser:before { + content: "\e007"; +} + +.fa-first-order:before { + content: "\f2b0"; +} + +.fa-first-order-alt:before { + content: "\f50a"; +} + +.fa-firstdraft:before { + content: "\f3a1"; +} + +.fa-flickr:before { + content: "\f16e"; +} + +.fa-flipboard:before { + content: "\f44d"; +} + +.fa-fly:before { + content: "\f417"; +} + +.fa-font-awesome:before { + content: "\f2b4"; +} + +.fa-font-awesome-flag:before { + content: "\f2b4"; +} + +.fa-font-awesome-logo-full:before { + content: "\f2b4"; +} + +.fa-fonticons:before { + content: "\f280"; +} + +.fa-fonticons-fi:before { + content: "\f3a2"; +} + +.fa-fort-awesome:before { + content: "\f286"; +} + +.fa-fort-awesome-alt:before { + content: "\f3a3"; +} + +.fa-forumbee:before { + content: "\f211"; +} + +.fa-foursquare:before { + content: "\f180"; +} + +.fa-free-code-camp:before { + content: "\f2c5"; +} + +.fa-freebsd:before { + content: "\f3a4"; +} + +.fa-fulcrum:before { + content: "\f50b"; +} + +.fa-galactic-republic:before { + content: "\f50c"; +} + +.fa-galactic-senate:before { + content: "\f50d"; +} + +.fa-get-pocket:before { + content: "\f265"; +} + +.fa-gg:before { + content: "\f260"; +} + +.fa-gg-circle:before { + content: "\f261"; +} + +.fa-git:before { + content: "\f1d3"; +} + +.fa-git-alt:before { + content: "\f841"; +} + +.fa-git-square:before { + content: "\f1d2"; +} + +.fa-github:before { + content: "\f09b"; +} + +.fa-github-alt:before { + content: "\f113"; +} + +.fa-github-square:before { + content: "\f092"; +} + +.fa-gitkraken:before { + content: "\f3a6"; +} + +.fa-gitlab:before { + content: "\f296"; +} + +.fa-gitter:before { + content: "\f426"; +} + +.fa-glide:before { + content: "\f2a5"; +} + +.fa-glide-g:before { + content: "\f2a6"; +} + +.fa-gofore:before { + content: "\f3a7"; +} + +.fa-golang:before { + content: "\e40f"; +} + +.fa-goodreads:before { + content: "\f3a8"; +} + +.fa-goodreads-g:before { + content: "\f3a9"; +} + +.fa-google:before { + content: "\f1a0"; +} + +.fa-google-drive:before { + content: "\f3aa"; +} + +.fa-google-pay:before { + content: "\e079"; +} + +.fa-google-play:before { + content: "\f3ab"; +} + +.fa-google-plus:before { + content: "\f2b3"; +} + +.fa-google-plus-g:before { + content: "\f0d5"; +} + +.fa-google-plus-square:before { + content: "\f0d4"; +} + +.fa-google-wallet:before { + content: "\f1ee"; +} + +.fa-gratipay:before { + content: "\f184"; +} + +.fa-grav:before { + content: "\f2d6"; +} + +.fa-gripfire:before { + content: "\f3ac"; +} + +.fa-grunt:before { + content: "\f3ad"; +} + +.fa-guilded:before { + content: "\e07e"; +} + +.fa-gulp:before { + content: "\f3ae"; +} + +.fa-hacker-news:before { + content: "\f1d4"; +} + +.fa-hacker-news-square:before { + content: "\f3af"; +} + +.fa-hackerrank:before { + content: "\f5f7"; +} + +.fa-hashnode:before { + content: "\e499"; +} + +.fa-hips:before { + content: "\f452"; +} + +.fa-hire-a-helper:before { + content: "\f3b0"; +} + +.fa-hive:before { + content: "\e07f"; +} + +.fa-hooli:before { + content: "\f427"; +} + +.fa-hornbill:before { + content: "\f592"; +} + +.fa-hotjar:before { + content: "\f3b1"; +} + +.fa-houzz:before { + content: "\f27c"; +} + +.fa-html5:before { + content: "\f13b"; +} + +.fa-hubspot:before { + content: "\f3b2"; +} + +.fa-ideal:before { + content: "\e013"; +} + +.fa-imdb:before { + content: "\f2d8"; +} + +.fa-instagram:before { + content: "\f16d"; +} + +.fa-instagram-square:before { + content: "\e055"; +} + +.fa-instalod:before { + content: "\e081"; +} + +.fa-intercom:before { + content: "\f7af"; +} + +.fa-internet-explorer:before { + content: "\f26b"; +} + +.fa-invision:before { + content: "\f7b0"; +} + +.fa-ioxhost:before { + content: "\f208"; +} + +.fa-itch-io:before { + content: "\f83a"; +} + +.fa-itunes:before { + content: "\f3b4"; +} + +.fa-itunes-note:before { + content: "\f3b5"; +} + +.fa-java:before { + content: "\f4e4"; +} + +.fa-jedi-order:before { + content: "\f50e"; +} + +.fa-jenkins:before { + content: "\f3b6"; +} + +.fa-jira:before { + content: "\f7b1"; +} + +.fa-joget:before { + content: "\f3b7"; +} + +.fa-joomla:before { + content: "\f1aa"; +} + +.fa-js:before { + content: "\f3b8"; +} + +.fa-js-square:before { + content: "\f3b9"; +} + +.fa-jsfiddle:before { + content: "\f1cc"; +} + +.fa-kaggle:before { + content: "\f5fa"; +} + +.fa-keybase:before { + content: "\f4f5"; +} + +.fa-keycdn:before { + content: "\f3ba"; +} + +.fa-kickstarter:before { + content: "\f3bb"; +} + +.fa-kickstarter-k:before { + content: "\f3bc"; +} + +.fa-korvue:before { + content: "\f42f"; +} + +.fa-laravel:before { + content: "\f3bd"; +} + +.fa-lastfm:before { + content: "\f202"; +} + +.fa-lastfm-square:before { + content: "\f203"; +} + +.fa-leanpub:before { + content: "\f212"; +} + +.fa-less:before { + content: "\f41d"; +} + +.fa-line:before { + content: "\f3c0"; +} + +.fa-linkedin:before { + content: "\f08c"; +} + +.fa-linkedin-in:before { + content: "\f0e1"; +} + +.fa-linode:before { + content: "\f2b8"; +} + +.fa-linux:before { + content: "\f17c"; +} + +.fa-lyft:before { + content: "\f3c3"; +} + +.fa-magento:before { + content: "\f3c4"; +} + +.fa-mailchimp:before { + content: "\f59e"; +} + +.fa-mandalorian:before { + content: "\f50f"; +} + +.fa-markdown:before { + content: "\f60f"; +} + +.fa-mastodon:before { + content: "\f4f6"; +} + +.fa-maxcdn:before { + content: "\f136"; +} + +.fa-mdb:before { + content: "\f8ca"; +} + +.fa-medapps:before { + content: "\f3c6"; +} + +.fa-medium:before { + content: "\f23a"; +} + +.fa-medium-m:before { + content: "\f23a"; +} + +.fa-medrt:before { + content: "\f3c8"; +} + +.fa-meetup:before { + content: "\f2e0"; +} + +.fa-megaport:before { + content: "\f5a3"; +} + +.fa-mendeley:before { + content: "\f7b3"; +} + +.fa-microblog:before { + content: "\e01a"; +} + +.fa-microsoft:before { + content: "\f3ca"; +} + +.fa-mix:before { + content: "\f3cb"; +} + +.fa-mixcloud:before { + content: "\f289"; +} + +.fa-mixer:before { + content: "\e056"; +} + +.fa-mizuni:before { + content: "\f3cc"; +} + +.fa-modx:before { + content: "\f285"; +} + +.fa-monero:before { + content: "\f3d0"; +} + +.fa-napster:before { + content: "\f3d2"; +} + +.fa-neos:before { + content: "\f612"; +} + +.fa-nfc-directional:before { + content: "\e530"; +} + +.fa-nfc-symbol:before { + content: "\e531"; +} + +.fa-nimblr:before { + content: "\f5a8"; +} + +.fa-node:before { + content: "\f419"; +} + +.fa-node-js:before { + content: "\f3d3"; +} + +.fa-npm:before { + content: "\f3d4"; +} + +.fa-ns8:before { + content: "\f3d5"; +} + +.fa-nutritionix:before { + content: "\f3d6"; +} + +.fa-octopus-deploy:before { + content: "\e082"; +} + +.fa-odnoklassniki:before { + content: "\f263"; +} + +.fa-odnoklassniki-square:before { + content: "\f264"; +} + +.fa-old-republic:before { + content: "\f510"; +} + +.fa-opencart:before { + content: "\f23d"; +} + +.fa-openid:before { + content: "\f19b"; +} + +.fa-opera:before { + content: "\f26a"; +} + +.fa-optin-monster:before { + content: "\f23c"; +} + +.fa-orcid:before { + content: "\f8d2"; +} + +.fa-osi:before { + content: "\f41a"; +} + +.fa-padlet:before { + content: "\e4a0"; +} + +.fa-page4:before { + content: "\f3d7"; +} + +.fa-pagelines:before { + content: "\f18c"; +} + +.fa-palfed:before { + content: "\f3d8"; +} + +.fa-patreon:before { + content: "\f3d9"; +} + +.fa-paypal:before { + content: "\f1ed"; +} + +.fa-perbyte:before { + content: "\e083"; +} + +.fa-periscope:before { + content: "\f3da"; +} + +.fa-phabricator:before { + content: "\f3db"; +} + +.fa-phoenix-framework:before { + content: "\f3dc"; +} + +.fa-phoenix-squadron:before { + content: "\f511"; +} + +.fa-php:before { + content: "\f457"; +} + +.fa-pied-piper:before { + content: "\f2ae"; +} + +.fa-pied-piper-alt:before { + content: "\f1a8"; +} + +.fa-pied-piper-hat:before { + content: "\f4e5"; +} + +.fa-pied-piper-pp:before { + content: "\f1a7"; +} + +.fa-pied-piper-square:before { + content: "\e01e"; +} + +.fa-pinterest:before { + content: "\f0d2"; +} + +.fa-pinterest-p:before { + content: "\f231"; +} + +.fa-pinterest-square:before { + content: "\f0d3"; +} + +.fa-pix:before { + content: "\e43a"; +} + +.fa-playstation:before { + content: "\f3df"; +} + +.fa-product-hunt:before { + content: "\f288"; +} + +.fa-pushed:before { + content: "\f3e1"; +} + +.fa-python:before { + content: "\f3e2"; +} + +.fa-qq:before { + content: "\f1d6"; +} + +.fa-quinscape:before { + content: "\f459"; +} + +.fa-quora:before { + content: "\f2c4"; +} + +.fa-r-project:before { + content: "\f4f7"; +} + +.fa-raspberry-pi:before { + content: "\f7bb"; +} + +.fa-ravelry:before { + content: "\f2d9"; +} + +.fa-react:before { + content: "\f41b"; +} + +.fa-reacteurope:before { + content: "\f75d"; +} + +.fa-readme:before { + content: "\f4d5"; +} + +.fa-rebel:before { + content: "\f1d0"; +} + +.fa-red-river:before { + content: "\f3e3"; +} + +.fa-reddit:before { + content: "\f1a1"; +} + +.fa-reddit-alien:before { + content: "\f281"; +} + +.fa-reddit-square:before { + content: "\f1a2"; +} + +.fa-redhat:before { + content: "\f7bc"; +} + +.fa-renren:before { + content: "\f18b"; +} + +.fa-replyd:before { + content: "\f3e6"; +} + +.fa-researchgate:before { + content: "\f4f8"; +} + +.fa-resolving:before { + content: "\f3e7"; +} + +.fa-rev:before { + content: "\f5b2"; +} + +.fa-rocketchat:before { + content: "\f3e8"; +} + +.fa-rockrms:before { + content: "\f3e9"; +} + +.fa-rust:before { + content: "\e07a"; +} + +.fa-safari:before { + content: "\f267"; +} + +.fa-salesforce:before { + content: "\f83b"; +} + +.fa-sass:before { + content: "\f41e"; +} + +.fa-schlix:before { + content: "\f3ea"; +} + +.fa-screenpal:before { + content: "\e570"; +} + +.fa-scribd:before { + content: "\f28a"; +} + +.fa-searchengin:before { + content: "\f3eb"; +} + +.fa-sellcast:before { + content: "\f2da"; +} + +.fa-sellsy:before { + content: "\f213"; +} + +.fa-servicestack:before { + content: "\f3ec"; +} + +.fa-shirtsinbulk:before { + content: "\f214"; +} + +.fa-shopify:before { + content: "\e057"; +} + +.fa-shopware:before { + content: "\f5b5"; +} + +.fa-simplybuilt:before { + content: "\f215"; +} + +.fa-sistrix:before { + content: "\f3ee"; +} + +.fa-sith:before { + content: "\f512"; +} + +.fa-sitrox:before { + content: "\e44a"; +} + +.fa-sketch:before { + content: "\f7c6"; +} + +.fa-skyatlas:before { + content: "\f216"; +} + +.fa-skype:before { + content: "\f17e"; +} + +.fa-slack:before { + content: "\f198"; +} + +.fa-slack-hash:before { + content: "\f198"; +} + +.fa-slideshare:before { + content: "\f1e7"; +} + +.fa-snapchat:before { + content: "\f2ab"; +} + +.fa-snapchat-ghost:before { + content: "\f2ab"; +} + +.fa-snapchat-square:before { + content: "\f2ad"; +} + +.fa-soundcloud:before { + content: "\f1be"; +} + +.fa-sourcetree:before { + content: "\f7d3"; +} + +.fa-speakap:before { + content: "\f3f3"; +} + +.fa-speaker-deck:before { + content: "\f83c"; +} + +.fa-spotify:before { + content: "\f1bc"; +} + +.fa-square-font-awesome:before { + content: "\f425"; +} + +.fa-square-font-awesome-stroke:before { + content: "\f35c"; +} + +.fa-font-awesome-alt:before { + content: "\f35c"; +} + +.fa-squarespace:before { + content: "\f5be"; +} + +.fa-stack-exchange:before { + content: "\f18d"; +} + +.fa-stack-overflow:before { + content: "\f16c"; +} + +.fa-stackpath:before { + content: "\f842"; +} + +.fa-staylinked:before { + content: "\f3f5"; +} + +.fa-steam:before { + content: "\f1b6"; +} + +.fa-steam-square:before { + content: "\f1b7"; +} + +.fa-steam-symbol:before { + content: "\f3f6"; +} + +.fa-sticker-mule:before { + content: "\f3f7"; +} + +.fa-strava:before { + content: "\f428"; +} + +.fa-stripe:before { + content: "\f429"; +} + +.fa-stripe-s:before { + content: "\f42a"; +} + +.fa-studiovinari:before { + content: "\f3f8"; +} + +.fa-stumbleupon:before { + content: "\f1a4"; +} + +.fa-stumbleupon-circle:before { + content: "\f1a3"; +} + +.fa-superpowers:before { + content: "\f2dd"; +} + +.fa-supple:before { + content: "\f3f9"; +} + +.fa-suse:before { + content: "\f7d6"; +} + +.fa-swift:before { + content: "\f8e1"; +} + +.fa-symfony:before { + content: "\f83d"; +} + +.fa-teamspeak:before { + content: "\f4f9"; +} + +.fa-telegram:before { + content: "\f2c6"; +} + +.fa-telegram-plane:before { + content: "\f2c6"; +} + +.fa-tencent-weibo:before { + content: "\f1d5"; +} + +.fa-the-red-yeti:before { + content: "\f69d"; +} + +.fa-themeco:before { + content: "\f5c6"; +} + +.fa-themeisle:before { + content: "\f2b2"; +} + +.fa-think-peaks:before { + content: "\f731"; +} + +.fa-tiktok:before { + content: "\e07b"; +} + +.fa-trade-federation:before { + content: "\f513"; +} + +.fa-trello:before { + content: "\f181"; +} + +.fa-tumblr:before { + content: "\f173"; +} + +.fa-tumblr-square:before { + content: "\f174"; +} + +.fa-twitch:before { + content: "\f1e8"; +} + +.fa-twitter:before { + content: "\f099"; +} + +.fa-twitter-square:before { + content: "\f081"; +} + +.fa-typo3:before { + content: "\f42b"; +} + +.fa-uber:before { + content: "\f402"; +} + +.fa-ubuntu:before { + content: "\f7df"; +} + +.fa-uikit:before { + content: "\f403"; +} + +.fa-umbraco:before { + content: "\f8e8"; +} + +.fa-uncharted:before { + content: "\e084"; +} + +.fa-uniregistry:before { + content: "\f404"; +} + +.fa-unity:before { + content: "\e049"; +} + +.fa-unsplash:before { + content: "\e07c"; +} + +.fa-untappd:before { + content: "\f405"; +} + +.fa-ups:before { + content: "\f7e0"; +} + +.fa-usb:before { + content: "\f287"; +} + +.fa-usps:before { + content: "\f7e1"; +} + +.fa-ussunnah:before { + content: "\f407"; +} + +.fa-vaadin:before { + content: "\f408"; +} + +.fa-viacoin:before { + content: "\f237"; +} + +.fa-viadeo:before { + content: "\f2a9"; +} + +.fa-viadeo-square:before { + content: "\f2aa"; +} + +.fa-viber:before { + content: "\f409"; +} + +.fa-vimeo:before { + content: "\f40a"; +} + +.fa-vimeo-square:before { + content: "\f194"; +} + +.fa-vimeo-v:before { + content: "\f27d"; +} + +.fa-vine:before { + content: "\f1ca"; +} + +.fa-vk:before { + content: "\f189"; +} + +.fa-vnv:before { + content: "\f40b"; +} + +.fa-vuejs:before { + content: "\f41f"; +} + +.fa-watchman-monitoring:before { + content: "\e087"; +} + +.fa-waze:before { + content: "\f83f"; +} + +.fa-weebly:before { + content: "\f5cc"; +} + +.fa-weibo:before { + content: "\f18a"; +} + +.fa-weixin:before { + content: "\f1d7"; +} + +.fa-whatsapp:before { + content: "\f232"; +} + +.fa-whatsapp-square:before { + content: "\f40c"; +} + +.fa-whmcs:before { + content: "\f40d"; +} + +.fa-wikipedia-w:before { + content: "\f266"; +} + +.fa-windows:before { + content: "\f17a"; +} + +.fa-wirsindhandwerk:before { + content: "\e2d0"; +} + +.fa-wsh:before { + content: "\e2d0"; +} + +.fa-wix:before { + content: "\f5cf"; +} + +.fa-wizards-of-the-coast:before { + content: "\f730"; +} + +.fa-wodu:before { + content: "\e088"; +} + +.fa-wolf-pack-battalion:before { + content: "\f514"; +} + +.fa-wordpress:before { + content: "\f19a"; +} + +.fa-wordpress-simple:before { + content: "\f411"; +} + +.fa-wpbeginner:before { + content: "\f297"; +} + +.fa-wpexplorer:before { + content: "\f2de"; +} + +.fa-wpforms:before { + content: "\f298"; +} + +.fa-wpressr:before { + content: "\f3e4"; +} + +.fa-xbox:before { + content: "\f412"; +} + +.fa-xing:before { + content: "\f168"; +} + +.fa-xing-square:before { + content: "\f169"; +} + +.fa-y-combinator:before { + content: "\f23b"; +} + +.fa-yahoo:before { + content: "\f19e"; +} + +.fa-yammer:before { + content: "\f840"; +} + +.fa-yandex:before { + content: "\f413"; +} + +.fa-yandex-international:before { + content: "\f414"; +} + +.fa-yarn:before { + content: "\f7e3"; +} + +.fa-yelp:before { + content: "\f1e9"; +} + +.fa-yoast:before { + content: "\f2b1"; +} + +.fa-youtube:before { + content: "\f167"; +} + +.fa-youtube-square:before { + content: "\f431"; +} + +.fa-zhihu:before { + content: "\f63f"; +} + +.fa-2x { + line-height: 2; +} + +/* +* Licensing: http://www.pixeden.com/icon-fonts/stroke-7-icon-font-set +*/ +@font-face { + font-family: "Pe-icon-7-stroke"; + src: url(1d449ea50ab8389ee078.eot?d7yf1v); + src: url(1d449ea50ab8389ee078.eot?#iefixd7yf1v) format("embedded-opentype"), url(11f7c073b050d62afb33.woff?d7yf1v) format("woff"), url(7233a7aee250f9b77fba.ttf?d7yf1v) format("truetype"), url(09c6a96523589cb91799.svg?d7yf1v#Pe-icon-7-stroke) format("svg"); + font-weight: normal; + font-style: normal; +} +[class^=pe-7s-], [class*=" pe-7s-"] { + display: inline-block; + font-family: "Pe-icon-7-stroke"; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + /* Better Font Rendering =========== */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +/* HELPER CLASS + * -------------------------- */ +/* FA based classes */ +/*! Modified from font-awesome helper CSS classes - PIXEDEN + * Font Awesome 4.0.3 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (CSS: MIT License) + */ +/* makes the font 33% larger relative to the icon container */ +.pe-lg { + font-size: 1.1704rem; + line-height: 0.75em; + vertical-align: -15%; +} + +.pe-2x { + font-size: 1.76rem; +} + +.pe-3x { + font-size: 2.64rem; +} + +.pe-4x { + font-size: 3.52rem; +} + +.pe-5x { + font-size: 4.4rem; +} + +.pe-fw { + width: 1.2857142857em; + text-align: center; +} + +.pe-ul { + padding-left: 0; + margin-left: 2.1428571429em; + list-style-type: none; +} +.pe-ul > li { + position: relative; +} + +.pe-li { + position: absolute; + left: -2.1428571429em; + width: 2.1428571429em; + top: 0.1428571429em; + text-align: center; +} +.pe-li.pe-lg { + left: -1.8571428571em; +} + +.pe-border { + padding: 0.2em 0.25em 0.15em; + border: solid 0.08em #eeeeee; + border-radius: 0.1em; +} + +.pull-right { + float: right; +} + +.pe.pull-left { + float: left; + margin-right: 0.3em; + margin-left: 0.3em; +} + +.pe-spin { + animation: spin 2s infinite linear; +} + +@keyframes spin { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(359deg); + } +} +.pe-rotate-90 { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1); + transform: rotate(90deg); +} + +.pe-rotate-180 { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2); + transform: rotate(180deg); +} + +.pe-rotate-270 { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3); + transform: rotate(270deg); +} + +.pe-flip-horizontal { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1); + transform: scale(-1, 1); +} + +.pe-flip-vertical { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1); + transform: scale(1, -1); +} + +.pe-stack { + position: relative; + display: inline-block; + width: 2em; + height: 2em; + line-height: 2em; + vertical-align: middle; +} + +.pe-stack-1x, +.pe-stack-2x { + position: absolute; + left: 0; + width: 100%; + text-align: center; +} + +.pe-stack-1x { + line-height: inherit; +} + +.pe-stack-2x { + font-size: 2em; +} + +.pe-inverse { + color: #ffffff; +} + +/* Custom classes / mods - PIXEDEN */ +.pe-va { + vertical-align: middle; +} + +.pe-border { + border: solid 0.08em #eaeaea; +} + +.pe-7s-album:before { + content: "\e6aa"; +} + +.pe-7s-arc:before { + content: "\e6ab"; +} + +.pe-7s-back-2:before { + content: "\e6ac"; +} + +.pe-7s-bandaid:before { + content: "\e6ad"; +} + +.pe-7s-car:before { + content: "\e6ae"; +} + +.pe-7s-diamond:before { + content: "\e6af"; +} + +.pe-7s-door-lock:before { + content: "\e6b0"; +} + +.pe-7s-eyedropper:before { + content: "\e6b1"; +} + +.pe-7s-female:before { + content: "\e6b2"; +} + +.pe-7s-gym:before { + content: "\e6b3"; +} + +.pe-7s-hammer:before { + content: "\e6b4"; +} + +.pe-7s-headphones:before { + content: "\e6b5"; +} + +.pe-7s-helm:before { + content: "\e6b6"; +} + +.pe-7s-hourglass:before { + content: "\e6b7"; +} + +.pe-7s-leaf:before { + content: "\e6b8"; +} + +.pe-7s-magic-wand:before { + content: "\e6b9"; +} + +.pe-7s-male:before { + content: "\e6ba"; +} + +.pe-7s-map-2:before { + content: "\e6bb"; +} + +.pe-7s-next-2:before { + content: "\e6bc"; +} + +.pe-7s-paint-bucket:before { + content: "\e6bd"; +} + +.pe-7s-pendrive:before { + content: "\e6be"; +} + +.pe-7s-photo:before { + content: "\e6bf"; +} + +.pe-7s-piggy:before { + content: "\e6c0"; +} + +.pe-7s-plugin:before { + content: "\e6c1"; +} + +.pe-7s-refresh-2:before { + content: "\e6c2"; +} + +.pe-7s-rocket:before { + content: "\e6c3"; +} + +.pe-7s-settings:before { + content: "\e6c4"; +} + +.pe-7s-shield:before { + content: "\e6c5"; +} + +.pe-7s-smile:before { + content: "\e6c6"; +} + +.pe-7s-usb:before { + content: "\e6c7"; +} + +.pe-7s-vector:before { + content: "\e6c8"; +} + +.pe-7s-wine:before { + content: "\e6c9"; +} + +.pe-7s-cloud-upload:before { + content: "\e68a"; +} + +.pe-7s-cash:before { + content: "\e68c"; +} + +.pe-7s-close:before { + content: "\e680"; +} + +.pe-7s-bluetooth:before { + content: "\e68d"; +} + +.pe-7s-cloud-download:before { + content: "\e68b"; +} + +.pe-7s-way:before { + content: "\e68e"; +} + +.pe-7s-close-circle:before { + content: "\e681"; +} + +.pe-7s-id:before { + content: "\e68f"; +} + +.pe-7s-angle-up:before { + content: "\e682"; +} + +.pe-7s-wristwatch:before { + content: "\e690"; +} + +.pe-7s-angle-up-circle:before { + content: "\e683"; +} + +.pe-7s-world:before { + content: "\e691"; +} + +.pe-7s-angle-right:before { + content: "\e684"; +} + +.pe-7s-volume:before { + content: "\e692"; +} + +.pe-7s-angle-right-circle:before { + content: "\e685"; +} + +.pe-7s-users:before { + content: "\e693"; +} + +.pe-7s-angle-left:before { + content: "\e686"; +} + +.pe-7s-user-female:before { + content: "\e694"; +} + +.pe-7s-angle-left-circle:before { + content: "\e687"; +} + +.pe-7s-up-arrow:before { + content: "\e695"; +} + +.pe-7s-angle-down:before { + content: "\e688"; +} + +.pe-7s-switch:before { + content: "\e696"; +} + +.pe-7s-angle-down-circle:before { + content: "\e689"; +} + +.pe-7s-scissors:before { + content: "\e697"; +} + +.pe-7s-wallet:before { + content: "\e600"; +} + +.pe-7s-safe:before { + content: "\e698"; +} + +.pe-7s-volume2:before { + content: "\e601"; +} + +.pe-7s-volume1:before { + content: "\e602"; +} + +.pe-7s-voicemail:before { + content: "\e603"; +} + +.pe-7s-video:before { + content: "\e604"; +} + +.pe-7s-user:before { + content: "\e605"; +} + +.pe-7s-upload:before { + content: "\e606"; +} + +.pe-7s-unlock:before { + content: "\e607"; +} + +.pe-7s-umbrella:before { + content: "\e608"; +} + +.pe-7s-trash:before { + content: "\e609"; +} + +.pe-7s-tools:before { + content: "\e60a"; +} + +.pe-7s-timer:before { + content: "\e60b"; +} + +.pe-7s-ticket:before { + content: "\e60c"; +} + +.pe-7s-target:before { + content: "\e60d"; +} + +.pe-7s-sun:before { + content: "\e60e"; +} + +.pe-7s-study:before { + content: "\e60f"; +} + +.pe-7s-stopwatch:before { + content: "\e610"; +} + +.pe-7s-star:before { + content: "\e611"; +} + +.pe-7s-speaker:before { + content: "\e612"; +} + +.pe-7s-signal:before { + content: "\e613"; +} + +.pe-7s-shuffle:before { + content: "\e614"; +} + +.pe-7s-shopbag:before { + content: "\e615"; +} + +.pe-7s-share:before { + content: "\e616"; +} + +.pe-7s-server:before { + content: "\e617"; +} + +.pe-7s-search:before { + content: "\e618"; +} + +.pe-7s-film:before { + content: "\e6a5"; +} + +.pe-7s-science:before { + content: "\e619"; +} + +.pe-7s-disk:before { + content: "\e6a6"; +} + +.pe-7s-ribbon:before { + content: "\e61a"; +} + +.pe-7s-repeat:before { + content: "\e61b"; +} + +.pe-7s-refresh:before { + content: "\e61c"; +} + +.pe-7s-add-user:before { + content: "\e6a9"; +} + +.pe-7s-refresh-cloud:before { + content: "\e61d"; +} + +.pe-7s-paperclip:before { + content: "\e69c"; +} + +.pe-7s-radio:before { + content: "\e61e"; +} + +.pe-7s-note2:before { + content: "\e69d"; +} + +.pe-7s-print:before { + content: "\e61f"; +} + +.pe-7s-network:before { + content: "\e69e"; +} + +.pe-7s-prev:before { + content: "\e620"; +} + +.pe-7s-mute:before { + content: "\e69f"; +} + +.pe-7s-power:before { + content: "\e621"; +} + +.pe-7s-medal:before { + content: "\e6a0"; +} + +.pe-7s-portfolio:before { + content: "\e622"; +} + +.pe-7s-like2:before { + content: "\e6a1"; +} + +.pe-7s-plus:before { + content: "\e623"; +} + +.pe-7s-left-arrow:before { + content: "\e6a2"; +} + +.pe-7s-play:before { + content: "\e624"; +} + +.pe-7s-key:before { + content: "\e6a3"; +} + +.pe-7s-plane:before { + content: "\e625"; +} + +.pe-7s-joy:before { + content: "\e6a4"; +} + +.pe-7s-photo-gallery:before { + content: "\e626"; +} + +.pe-7s-pin:before { + content: "\e69b"; +} + +.pe-7s-phone:before { + content: "\e627"; +} + +.pe-7s-plug:before { + content: "\e69a"; +} + +.pe-7s-pen:before { + content: "\e628"; +} + +.pe-7s-right-arrow:before { + content: "\e699"; +} + +.pe-7s-paper-plane:before { + content: "\e629"; +} + +.pe-7s-delete-user:before { + content: "\e6a7"; +} + +.pe-7s-paint:before { + content: "\e62a"; +} + +.pe-7s-bottom-arrow:before { + content: "\e6a8"; +} + +.pe-7s-notebook:before { + content: "\e62b"; +} + +.pe-7s-note:before { + content: "\e62c"; +} + +.pe-7s-next:before { + content: "\e62d"; +} + +.pe-7s-news-paper:before { + content: "\e62e"; +} + +.pe-7s-musiclist:before { + content: "\e62f"; +} + +.pe-7s-music:before { + content: "\e630"; +} + +.pe-7s-mouse:before { + content: "\e631"; +} + +.pe-7s-more:before { + content: "\e632"; +} + +.pe-7s-moon:before { + content: "\e633"; +} + +.pe-7s-monitor:before { + content: "\e634"; +} + +.pe-7s-micro:before { + content: "\e635"; +} + +.pe-7s-menu:before { + content: "\e636"; +} + +.pe-7s-map:before { + content: "\e637"; +} + +.pe-7s-map-marker:before { + content: "\e638"; +} + +.pe-7s-mail:before { + content: "\e639"; +} + +.pe-7s-mail-open:before { + content: "\e63a"; +} + +.pe-7s-mail-open-file:before { + content: "\e63b"; +} + +.pe-7s-magnet:before { + content: "\e63c"; +} + +.pe-7s-loop:before { + content: "\e63d"; +} + +.pe-7s-look:before { + content: "\e63e"; +} + +.pe-7s-lock:before { + content: "\e63f"; +} + +.pe-7s-lintern:before { + content: "\e640"; +} + +.pe-7s-link:before { + content: "\e641"; +} + +.pe-7s-like:before { + content: "\e642"; +} + +.pe-7s-light:before { + content: "\e643"; +} + +.pe-7s-less:before { + content: "\e644"; +} + +.pe-7s-keypad:before { + content: "\e645"; +} + +.pe-7s-junk:before { + content: "\e646"; +} + +.pe-7s-info:before { + content: "\e647"; +} + +.pe-7s-home:before { + content: "\e648"; +} + +.pe-7s-help2:before { + content: "\e649"; +} + +.pe-7s-help1:before { + content: "\e64a"; +} + +.pe-7s-graph3:before { + content: "\e64b"; +} + +.pe-7s-graph2:before { + content: "\e64c"; +} + +.pe-7s-graph1:before { + content: "\e64d"; +} + +.pe-7s-graph:before { + content: "\e64e"; +} + +.pe-7s-global:before { + content: "\e64f"; +} + +.pe-7s-gleam:before { + content: "\e650"; +} + +.pe-7s-glasses:before { + content: "\e651"; +} + +.pe-7s-gift:before { + content: "\e652"; +} + +.pe-7s-folder:before { + content: "\e653"; +} + +.pe-7s-flag:before { + content: "\e654"; +} + +.pe-7s-filter:before { + content: "\e655"; +} + +.pe-7s-file:before { + content: "\e656"; +} + +.pe-7s-expand1:before { + content: "\e657"; +} + +.pe-7s-exapnd2:before { + content: "\e658"; +} + +.pe-7s-edit:before { + content: "\e659"; +} + +.pe-7s-drop:before { + content: "\e65a"; +} + +.pe-7s-drawer:before { + content: "\e65b"; +} + +.pe-7s-download:before { + content: "\e65c"; +} + +.pe-7s-display2:before { + content: "\e65d"; +} + +.pe-7s-display1:before { + content: "\e65e"; +} + +.pe-7s-diskette:before { + content: "\e65f"; +} + +.pe-7s-date:before { + content: "\e660"; +} + +.pe-7s-cup:before { + content: "\e661"; +} + +.pe-7s-culture:before { + content: "\e662"; +} + +.pe-7s-crop:before { + content: "\e663"; +} + +.pe-7s-credit:before { + content: "\e664"; +} + +.pe-7s-copy-file:before { + content: "\e665"; +} + +.pe-7s-config:before { + content: "\e666"; +} + +.pe-7s-compass:before { + content: "\e667"; +} + +.pe-7s-comment:before { + content: "\e668"; +} + +.pe-7s-coffee:before { + content: "\e669"; +} + +.pe-7s-cloud:before { + content: "\e66a"; +} + +.pe-7s-clock:before { + content: "\e66b"; +} + +.pe-7s-check:before { + content: "\e66c"; +} + +.pe-7s-chat:before { + content: "\e66d"; +} + +.pe-7s-cart:before { + content: "\e66e"; +} + +.pe-7s-camera:before { + content: "\e66f"; +} + +.pe-7s-call:before { + content: "\e670"; +} + +.pe-7s-calculator:before { + content: "\e671"; +} + +.pe-7s-browser:before { + content: "\e672"; +} + +.pe-7s-box2:before { + content: "\e673"; +} + +.pe-7s-box1:before { + content: "\e674"; +} + +.pe-7s-bookmarks:before { + content: "\e675"; +} + +.pe-7s-bicycle:before { + content: "\e676"; +} + +.pe-7s-bell:before { + content: "\e677"; +} + +.pe-7s-battery:before { + content: "\e678"; +} + +.pe-7s-ball:before { + content: "\e679"; +} + +.pe-7s-back:before { + content: "\e67a"; +} + +.pe-7s-attention:before { + content: "\e67b"; +} + +.pe-7s-anchor:before { + content: "\e67c"; +} + +.pe-7s-albums:before { + content: "\e67d"; +} + +.pe-7s-alarm:before { + content: "\e67e"; +} + +.pe-7s-airplay:before { + content: "\e67f"; +} + +/*! + * Hamburgers + * @description Tasty CSS-animated hamburgers + * @author Jonathan Suh @jonsuh + * @site https://jonsuh.com/hamburgers + * @link https://github.com/jonsuh/hamburgers + */ +.hamburger { + padding: 0px 0px; + display: inline-block; + cursor: pointer; + transition-property: opacity, filter; + transition-duration: 0.15s; + transition-timing-function: linear; + font: inherit; + color: inherit; + text-transform: none; + background-color: transparent; + border: 0; + margin: 0; + overflow: visible; +} +.hamburger:hover { + opacity: 0.7; +} +.hamburger.is-active:hover { + opacity: 0.7; +} +.hamburger.is-active .hamburger-inner, +.hamburger.is-active .hamburger-inner::before, +.hamburger.is-active .hamburger-inner::after { + background-color: #3f6ad8; +} + +.hamburger-box { + width: 24px; + height: 14px; + display: inline-block; + position: relative; +} + +.hamburger-inner { + display: block; + top: 50%; + margin-top: -1px; +} +.hamburger-inner, .hamburger-inner::before, .hamburger-inner::after { + width: 24px; + height: 2px; + background-color: #3f6ad8; + border-radius: 10px; + position: absolute; + transition-property: transform; + transition-duration: 0.15s; + transition-timing-function: ease; +} +.hamburger-inner::before, .hamburger-inner::after { + content: ""; + display: block; +} +.hamburger-inner::before { + top: -6px; +} +.hamburger-inner::after { + bottom: -6px; +} + +/* + * Elastic + */ +.hamburger--elastic .hamburger-inner { + top: 1px; + transition-duration: 0.275s; + transition-timing-function: cubic-bezier(0.68, -0.55, 0.265, 1.55); +} +.hamburger--elastic .hamburger-inner::before { + top: 6px; + transition: opacity 0.125s 0.275s ease; +} +.hamburger--elastic .hamburger-inner::after { + top: 12px; + transition: transform 0.275s cubic-bezier(0.68, -0.55, 0.265, 1.55); +} +.hamburger--elastic.is-active .hamburger-inner { + transform: translate3d(0, 6px, 0) rotate(135deg); + transition-delay: 0.075s; +} +.hamburger--elastic.is-active .hamburger-inner::before { + transition-delay: 0s; + opacity: 0; +} +.hamburger--elastic.is-active .hamburger-inner::after { + transform: translate3d(0, -12px, 0) rotate(-270deg); + transition-delay: 0.075s; +} + +.toast-title { + font-weight: bold; +} + +.toast-message { + -ms-word-wrap: break-word; + word-wrap: break-word; +} + +.toast-message a, +.toast-message label { + color: #fff; +} + +.toast-message a:hover { + color: #cccccc; + text-decoration: none; +} + +.toast-close-button { + position: relative; + right: -0.3em; + top: -0.3em; + float: right; + font-weight: bold; + color: #fff; + opacity: 0.8; +} + +.toast-close-button:hover, +.toast-close-button:focus { + color: #000; + text-decoration: none; + cursor: pointer; + opacity: 0.4; +} + +button.toast-close-button { + padding: 0; + cursor: pointer; + background: transparent; + border: 0; + -webkit-appearance: none; +} + +.toast-top-center { + top: 0; + right: 0; + width: 100%; +} + +.toast-bottom-center { + bottom: 0; + right: 0; + width: 100%; +} + +.toast-top-full-width { + top: 0; + right: 0; + width: 100%; +} + +.toast-bottom-full-width { + bottom: 0; + right: 0; + width: 100%; +} + +.toast-top-left { + top: 12px; + left: 12px; +} + +.toast-top-right { + top: 12px; + right: 12px; +} + +.toast-bottom-right { + right: 12px; + bottom: 12px; +} + +.toast-bottom-left { + bottom: 12px; + left: 12px; +} + +#toast-container { + position: fixed; + z-index: 999999; + /*overrides*/ +} + +#toast-container * { + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} + +#toast-container > div { + position: relative; + overflow: hidden; + margin: 0 0 0.6rem; + padding: 0.6rem 0.6rem 0.6rem 50px; + width: 300px; + border-radius: 0.25rem; + background-position: 15px center; + background-repeat: no-repeat; + box-shadow: 0 0.46875rem 2.1875rem rgba(4, 9, 20, 0.03), 0 0.9375rem 1.40625rem rgba(4, 9, 20, 0.03), 0 0.25rem 0.53125rem rgba(4, 9, 20, 0.05), 0 0.125rem 0.1875rem rgba(4, 9, 20, 0.03); + color: #fff; + opacity: 0.9; +} + +#toast-container > div:hover { + opacity: 1; + cursor: pointer; +} + +#toast-container > .toast-info { + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGwSURBVEhLtZa9SgNBEMc9sUxxRcoUKSzSWIhXpFMhhYWFhaBg4yPYiWCXZxBLERsLRS3EQkEfwCKdjWJAwSKCgoKCcudv4O5YLrt7EzgXhiU3/4+b2ckmwVjJSpKkQ6wAi4gwhT+z3wRBcEz0yjSseUTrcRyfsHsXmD0AmbHOC9Ii8VImnuXBPglHpQ5wwSVM7sNnTG7Za4JwDdCjxyAiH3nyA2mtaTJufiDZ5dCaqlItILh1NHatfN5skvjx9Z38m69CgzuXmZgVrPIGE763Jx9qKsRozWYw6xOHdER+nn2KkO+Bb+UV5CBN6WC6QtBgbRVozrahAbmm6HtUsgtPC19tFdxXZYBOfkbmFJ1VaHA1VAHjd0pp70oTZzvR+EVrx2Ygfdsq6eu55BHYR8hlcki+n+kERUFG8BrA0BwjeAv2M8WLQBtcy+SD6fNsmnB3AlBLrgTtVW1c2QN4bVWLATaIS60J2Du5y1TiJgjSBvFVZgTmwCU+dAZFoPxGEEs8nyHC9Bwe2GvEJv2WXZb0vjdyFT4Cxk3e/kIqlOGoVLwwPevpYHT+00T+hWwXDf4AJAOUqWcDhbwAAAAASUVORK5CYII=) !important; + box-shadow: 0 0.66875rem 2.3875rem rgba(22, 170, 255, 0.03), 0 1.1375rem 1.60625rem rgba(22, 170, 255, 0.03), 0 0.45rem 0.73125rem rgba(22, 170, 255, 0.05), 0 0.325rem 0.3875rem rgba(22, 170, 255, 0.03); +} + +#toast-container > .toast-error { + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVEhLrZa/SgNBEMZzh0WKCClSCKaIYOED+AAKeQQLG8HWztLCImBrYadgIdY+gIKNYkBFSwu7CAoqCgkkoGBI/E28PdbLZmeDLgzZzcx83/zZ2SSXC1j9fr+I1Hq93g2yxH4iwM1vkoBWAdxCmpzTxfkN2RcyZNaHFIkSo10+8kgxkXIURV5HGxTmFuc75B2RfQkpxHG8aAgaAFa0tAHqYFfQ7Iwe2yhODk8+J4C7yAoRTWI3w/4klGRgR4lO7Rpn9+gvMyWp+uxFh8+H+ARlgN1nJuJuQAYvNkEnwGFck18Er4q3egEc/oO+mhLdKgRyhdNFiacC0rlOCbhNVz4H9FnAYgDBvU3QIioZlJFLJtsoHYRDfiZoUyIxqCtRpVlANq0EU4dApjrtgezPFad5S19Wgjkc0hNVnuF4HjVA6C7QrSIbylB+oZe3aHgBsqlNqKYH48jXyJKMuAbiyVJ8KzaB3eRc0pg9VwQ4niFryI68qiOi3AbjwdsfnAtk0bCjTLJKr6mrD9g8iq/S/B81hguOMlQTnVyG40wAcjnmgsCNESDrjme7wfftP4P7SP4N3CJZdvzoNyGq2c/HWOXJGsvVg+RA/k2MC/wN6I2YA2Pt8GkAAAAASUVORK5CYII=) !important; + box-shadow: 0 0.66875rem 2.3875rem rgba(217, 37, 80, 0.03), 0 1.1375rem 1.60625rem rgba(217, 37, 80, 0.03), 0 0.45rem 0.73125rem rgba(217, 37, 80, 0.05), 0 0.325rem 0.3875rem rgba(217, 37, 80, 0.03); +} + +#toast-container > .toast-success { + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADsSURBVEhLY2AYBfQMgf///3P8+/evAIgvA/FsIF+BavYDDWMBGroaSMMBiE8VC7AZDrIFaMFnii3AZTjUgsUUWUDA8OdAH6iQbQEhw4HyGsPEcKBXBIC4ARhex4G4BsjmweU1soIFaGg/WtoFZRIZdEvIMhxkCCjXIVsATV6gFGACs4Rsw0EGgIIH3QJYJgHSARQZDrWAB+jawzgs+Q2UO49D7jnRSRGoEFRILcdmEMWGI0cm0JJ2QpYA1RDvcmzJEWhABhD/pqrL0S0CWuABKgnRki9lLseS7g2AlqwHWQSKH4oKLrILpRGhEQCw2LiRUIa4lwAAAABJRU5ErkJggg==) !important; + box-shadow: 0 0.66875rem 2.3875rem rgba(58, 196, 125, 0.03), 0 1.1375rem 1.60625rem rgba(58, 196, 125, 0.03), 0 0.45rem 0.73125rem rgba(58, 196, 125, 0.05), 0 0.325rem 0.3875rem rgba(58, 196, 125, 0.03); +} + +#toast-container > .toast-warning { + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGYSURBVEhL5ZSvTsNQFMbXZGICMYGYmJhAQIJAICYQPAACiSDB8AiICQQJT4CqQEwgJvYASAQCiZiYmJhAIBATCARJy+9rTsldd8sKu1M0+dLb057v6/lbq/2rK0mS/TRNj9cWNAKPYIJII7gIxCcQ51cvqID+GIEX8ASG4B1bK5gIZFeQfoJdEXOfgX4QAQg7kH2A65yQ87lyxb27sggkAzAuFhbbg1K2kgCkB1bVwyIR9m2L7PRPIhDUIXgGtyKw575yz3lTNs6X4JXnjV+LKM/m3MydnTbtOKIjtz6VhCBq4vSm3ncdrD2lk0VgUXSVKjVDJXJzijW1RQdsU7F77He8u68koNZTz8Oz5yGa6J3H3lZ0xYgXBK2QymlWWA+RWnYhskLBv2vmE+hBMCtbA7KX5drWyRT/2JsqZ2IvfB9Y4bWDNMFbJRFmC9E74SoS0CqulwjkC0+5bpcV1CZ8NMej4pjy0U+doDQsGyo1hzVJttIjhQ7GnBtRFN1UarUlH8F3xict+HY07rEzoUGPlWcjRFRr4/gChZgc3ZL2d8oAAAAASUVORK5CYII=) !important; + box-shadow: 0 0.66875rem 2.3875rem rgba(247, 185, 36, 0.03), 0 1.1375rem 1.60625rem rgba(247, 185, 36, 0.03), 0 0.45rem 0.73125rem rgba(247, 185, 36, 0.05), 0 0.325rem 0.3875rem rgba(247, 185, 36, 0.03); + color: color-yiq(#f7b924); +} + +#toast-container.toast-top-center > div, +#toast-container.toast-bottom-center > div { + width: 300px; + margin-left: auto; + margin-right: auto; +} + +#toast-container.toast-top-full-width > div, +#toast-container.toast-bottom-full-width > div { + width: 96%; + margin-left: auto; + margin-right: auto; +} + +.toast { + background-color: #343a40; +} + +.toast-success { + background-color: #3ac47d; +} + +.toast-error { + background-color: #d92550; +} + +.toast-info { + background-color: #16aaff; +} + +.toast-warning { + background-color: #f7b924; +} + +.toast-progress { + position: absolute; + left: 0; + bottom: 0; + height: 4px; + background-color: #000; + opacity: 0.4; +} + +@media all and (max-width: 240px) { + #toast-container > div { + padding: 8px 8px 8px 50px; + width: 11em; + } + #toast-container .toast-close-button { + right: -0.2em; + top: -0.2em; + } +} +@media all and (min-width: 241px) and (max-width: 480px) { + #toast-container > div { + padding: 8px 8px 8px 50px; + width: 18em; + } + #toast-container .toast-close-button { + right: -0.2em; + top: -0.2em; + } +} +@media all and (min-width: 481px) and (max-width: 768px) { + #toast-container > div { + padding: 15px 15px 15px 50px; + width: 25em; + } +} +.popover, +.tooltip { + opacity: 0; + transition: opacity 0.2s ease; +} +.popover.show, +.tooltip.show { + opacity: 1; +} + +.popover { + box-shadow: 0 0.46875rem 2.1875rem rgba(4, 9, 20, 0.03), 0 0.9375rem 1.40625rem rgba(4, 9, 20, 0.03), 0 0.25rem 0.53125rem rgba(4, 9, 20, 0.05), 0 0.125rem 0.1875rem rgba(4, 9, 20, 0.03); +} + +.rm-pointers .popover .arrow { + display: none !important; +} + +/* classes attached to */ +/* TODO: make fc-event selector work when calender in shadow DOM */ +.fc-not-allowed, +.fc-not-allowed .fc-event { /* override events' custom cursors */ + cursor: not-allowed; +} + +/* TODO: not attached to body. attached to specific els. move */ +.fc-unselectable { + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + -webkit-touch-callout: none; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} + +.fc { + /* layout of immediate children */ + display: flex; + flex-direction: column; + font-size: 1em; +} + +.fc, +.fc *, +.fc *:before, +.fc *:after { + box-sizing: border-box; +} + +.fc table { + border-collapse: collapse; + border-spacing: 0; + font-size: 1em; /* normalize cross-browser */ +} + +.fc th { + text-align: center; +} + +.fc th, +.fc td { + vertical-align: top; + padding: 0; +} + +.fc a[data-navlink] { + cursor: pointer; +} + +.fc a[data-navlink]:hover { + text-decoration: underline; +} + +.fc-direction-ltr { + direction: ltr; + text-align: left; +} + +.fc-direction-rtl { + direction: rtl; + text-align: right; +} + +.fc-theme-standard td, +.fc-theme-standard th { + border: 1px solid #ddd; + border: 1px solid var(--fc-border-color, #ddd); +} + +/* for FF, which doesn't expand a 100% div within a table cell. use absolute positioning */ +/* inner-wrappers are responsible for being absolute */ +/* TODO: best place for this? */ +.fc-liquid-hack td, +.fc-liquid-hack th { + position: relative; +} + +@font-face { + font-family: "fcicons"; + src: url(data:application/x-font-ttf;charset=utf-8;base64,AAEAAAALAIAAAwAwT1MvMg8SBfAAAAC8AAAAYGNtYXAXVtKNAAABHAAAAFRnYXNwAAAAEAAAAXAAAAAIZ2x5ZgYydxIAAAF4AAAFNGhlYWQUJ7cIAAAGrAAAADZoaGVhB20DzAAABuQAAAAkaG10eCIABhQAAAcIAAAALGxvY2ED4AU6AAAHNAAAABhtYXhwAA8AjAAAB0wAAAAgbmFtZXsr690AAAdsAAABhnBvc3QAAwAAAAAI9AAAACAAAwPAAZAABQAAApkCzAAAAI8CmQLMAAAB6wAzAQkAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADpBgPA/8AAQAPAAEAAAAABAAAAAAAAAAAAAAAgAAAAAAADAAAAAwAAABwAAQADAAAAHAADAAEAAAAcAAQAOAAAAAoACAACAAIAAQAg6Qb//f//AAAAAAAg6QD//f//AAH/4xcEAAMAAQAAAAAAAAAAAAAAAQAB//8ADwABAAAAAAAAAAAAAgAANzkBAAAAAAEAAAAAAAAAAAACAAA3OQEAAAAAAQAAAAAAAAAAAAIAADc5AQAAAAABAWIAjQKeAskAEwAAJSc3NjQnJiIHAQYUFwEWMjc2NCcCnuLiDQ0MJAz/AA0NAQAMJAwNDcni4gwjDQwM/wANIwz/AA0NDCMNAAAAAQFiAI0CngLJABMAACUBNjQnASYiBwYUHwEHBhQXFjI3AZ4BAA0N/wAMJAwNDeLiDQ0MJAyNAQAMIw0BAAwMDSMM4uINIwwNDQAAAAIA4gC3Ax4CngATACcAACUnNzY0JyYiDwEGFB8BFjI3NjQnISc3NjQnJiIPAQYUHwEWMjc2NCcB87e3DQ0MIw3VDQ3VDSMMDQ0BK7e3DQ0MJAzVDQ3VDCQMDQ3zuLcMJAwNDdUNIwzWDAwNIwy4twwkDA0N1Q0jDNYMDA0jDAAAAgDiALcDHgKeABMAJwAAJTc2NC8BJiIHBhQfAQcGFBcWMjchNzY0LwEmIgcGFB8BBwYUFxYyNwJJ1Q0N1Q0jDA0Nt7cNDQwjDf7V1Q0N1QwkDA0Nt7cNDQwkDLfWDCMN1Q0NDCQMt7gMIw0MDNYMIw3VDQ0MJAy3uAwjDQwMAAADAFUAAAOrA1UAMwBoAHcAABMiBgcOAQcOAQcOARURFBYXHgEXHgEXHgEzITI2Nz4BNz4BNz4BNRE0JicuAScuAScuASMFITIWFx4BFx4BFx4BFREUBgcOAQcOAQcOASMhIiYnLgEnLgEnLgE1ETQ2Nz4BNz4BNz4BMxMhMjY1NCYjISIGFRQWM9UNGAwLFQkJDgUFBQUFBQ4JCRULDBgNAlYNGAwLFQkJDgUFBQUFBQ4JCRULDBgN/aoCVgQIBAQHAwMFAQIBAQIBBQMDBwQECAT9qgQIBAQHAwMFAQIBAQIBBQMDBwQECASAAVYRGRkR/qoRGRkRA1UFBAUOCQkVDAsZDf2rDRkLDBUJCA4FBQUFBQUOCQgVDAsZDQJVDRkLDBUJCQ4FBAVVAgECBQMCBwQECAX9qwQJAwQHAwMFAQICAgIBBQMDBwQDCQQCVQUIBAQHAgMFAgEC/oAZEhEZGRESGQAAAAADAFUAAAOrA1UAMwBoAIkAABMiBgcOAQcOAQcOARURFBYXHgEXHgEXHgEzITI2Nz4BNz4BNz4BNRE0JicuAScuAScuASMFITIWFx4BFx4BFx4BFREUBgcOAQcOAQcOASMhIiYnLgEnLgEnLgE1ETQ2Nz4BNz4BNz4BMxMzFRQWMzI2PQEzMjY1NCYrATU0JiMiBh0BIyIGFRQWM9UNGAwLFQkJDgUFBQUFBQ4JCRULDBgNAlYNGAwLFQkJDgUFBQUFBQ4JCRULDBgN/aoCVgQIBAQHAwMFAQIBAQIBBQMDBwQECAT9qgQIBAQHAwMFAQIBAQIBBQMDBwQECASAgBkSEhmAERkZEYAZEhIZgBEZGREDVQUEBQ4JCRUMCxkN/asNGQsMFQkIDgUFBQUFBQ4JCBUMCxkNAlUNGQsMFQkJDgUEBVUCAQIFAwIHBAQIBf2rBAkDBAcDAwUBAgICAgEFAwMHBAMJBAJVBQgEBAcCAwUCAQL+gIASGRkSgBkSERmAEhkZEoAZERIZAAABAOIAjQMeAskAIAAAExcHBhQXFjI/ARcWMjc2NC8BNzY0JyYiDwEnJiIHBhQX4uLiDQ0MJAzi4gwkDA0N4uINDQwkDOLiDCQMDQ0CjeLiDSMMDQ3h4Q0NDCMN4uIMIw0MDOLiDAwNIwwAAAABAAAAAQAAa5n0y18PPPUACwQAAAAAANivOVsAAAAA2K85WwAAAAADqwNVAAAACAACAAAAAAAAAAEAAAPA/8AAAAQAAAAAAAOrAAEAAAAAAAAAAAAAAAAAAAALBAAAAAAAAAAAAAAAAgAAAAQAAWIEAAFiBAAA4gQAAOIEAABVBAAAVQQAAOIAAAAAAAoAFAAeAEQAagCqAOoBngJkApoAAQAAAAsAigADAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAA4ArgABAAAAAAABAAcAAAABAAAAAAACAAcAYAABAAAAAAADAAcANgABAAAAAAAEAAcAdQABAAAAAAAFAAsAFQABAAAAAAAGAAcASwABAAAAAAAKABoAigADAAEECQABAA4ABwADAAEECQACAA4AZwADAAEECQADAA4APQADAAEECQAEAA4AfAADAAEECQAFABYAIAADAAEECQAGAA4AUgADAAEECQAKADQApGZjaWNvbnMAZgBjAGkAYwBvAG4Ac1ZlcnNpb24gMS4wAFYAZQByAHMAaQBvAG4AIAAxAC4AMGZjaWNvbnMAZgBjAGkAYwBvAG4Ac2ZjaWNvbnMAZgBjAGkAYwBvAG4Ac1JlZ3VsYXIAUgBlAGcAdQBsAGEAcmZjaWNvbnMAZgBjAGkAYwBvAG4Ac0ZvbnQgZ2VuZXJhdGVkIGJ5IEljb01vb24uAEYAbwBuAHQAIABnAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAEkAYwBvAE0AbwBvAG4ALgAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=) format("truetype"); + font-weight: normal; + font-style: normal; +} +.fc-icon { + /* added for fc */ + display: inline-block; + width: 1em; + height: 1em; + text-align: center; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + /* use !important to prevent issues with browser extensions that change fonts */ + font-family: "fcicons" !important; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + /* Better Font Rendering =========== */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.fc-icon-chevron-left:before { + content: "\e900"; +} + +.fc-icon-chevron-right:before { + content: "\e901"; +} + +.fc-icon-chevrons-left:before { + content: "\e902"; +} + +.fc-icon-chevrons-right:before { + content: "\e903"; +} + +.fc-icon-minus-square:before { + content: "\e904"; +} + +.fc-icon-plus-square:before { + content: "\e905"; +} + +.fc-icon-x:before { + content: "\e906"; +} + +/* +Lots taken from Flatly (MIT): https://bootswatch.com/4/flatly/bootstrap.css + +These styles only apply when the standard-theme is activated. +When it's NOT activated, the fc-button classes won't even be in the DOM. +*/ +.fc { + /* reset */ +} + +.fc .fc-button { + border-radius: 0; + overflow: visible; + text-transform: none; + margin: 0; + font-family: inherit; + font-size: inherit; + line-height: inherit; +} + +.fc .fc-button:focus { + outline: 1px dotted; + outline: 5px auto -webkit-focus-ring-color; +} + +.fc .fc-button { + -webkit-appearance: button; +} + +.fc .fc-button:not(:disabled) { + cursor: pointer; +} + +.fc .fc-button::-moz-focus-inner { + padding: 0; + border-style: none; +} + +.fc { + /* theme */ +} + +.fc .fc-button { + display: inline-block; + font-weight: 400; + text-align: center; + vertical-align: middle; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + background-color: transparent; + border: 1px solid transparent; + padding: 0.4em 0.65em; + font-size: 1em; + line-height: 1.5; + border-radius: 0.25em; +} + +.fc .fc-button:hover { + text-decoration: none; +} + +.fc .fc-button:focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(44, 62, 80, 0.25); +} + +.fc .fc-button:disabled { + opacity: 0.65; +} + +.fc { + /* "primary" coloring */ +} + +.fc .fc-button-primary { + color: #fff; + color: var(--fc-button-text-color, #fff); + background-color: #3f6ad8 !important; + background-color: var(--fc-button-bg-color, #3f6ad8) !important; + border-color: #3f6ad8 !important; + border-color: var(--fc-button-border-color, #3f6ad8) !important; +} + +.fc .fc-button-primary:hover { + color: #fff; + color: var(--fc-button-text-color, #fff); + background-color: #3f6ad8; + background-color: var(--fc-button-hover-bg-color, #3f6ad8) !important; + border-color: #3f6ad8 !important; + border-color: var(--fc-button-hover-border-color, #3f6ad8) !important; +} + +.fc .fc-button-primary:disabled { /* not DRY */ + color: #fff; + color: var(--fc-button-text-color, #fff); + background-color: #3f6ad8 !important; + background-color: var(--fc-button-bg-color, #3f6ad8) !important; + border-color: #3f6ad8 !important; + border-color: var(--fc-button-border-color, #3f6ad8) !important; /* overrides :hover */ +} + +.fc .fc-button-primary:focus { + box-shadow: 0 0 0 0.2rem #3f6ad8; +} + +.fc .fc-button-primary:not(:disabled):active, +.fc .fc-button-primary:not(:disabled).fc-button-active { + color: #fff; + color: var(--fc-button-text-color, #fff); + background-color: #3f6ad8 !important; + background-color: var(--fc-button-active-bg-color, #3f6ad8) !important; + border-color: #3f6ad8 !important; + border-color: var(--fc-button-active-border-color, #3f6ad8) !important; +} + +.fc .fc-button-primary:not(:disabled):active:focus, +.fc .fc-button-primary:not(:disabled).fc-button-active:focus { + box-shadow: 0 0 0 0.2rem #3f6ad8; +} + +.fc { + /* icons within buttons */ +} + +.fc .fc-button .fc-icon { + vertical-align: middle; + font-size: 1.5em; /* bump up the size (but don't make it bigger than line-height of button, which is 1.5em also) */ +} + +.fc .fc-button-group { + position: relative; + display: inline-flex; + vertical-align: middle; +} + +.fc .fc-button-group > .fc-button { + position: relative; + flex: 1 1 auto; +} + +.fc .fc-button-group > .fc-button:hover { + z-index: 1; +} + +.fc .fc-button-group > .fc-button:focus, +.fc .fc-button-group > .fc-button:active, +.fc .fc-button-group > .fc-button.fc-button-active { + z-index: 1; +} + +.fc-direction-ltr .fc-button-group > .fc-button:not(:first-child) { + margin-left: -1px; + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.fc-direction-ltr .fc-button-group > .fc-button:not(:last-child) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.fc-direction-rtl .fc-button-group > .fc-button:not(:first-child) { + margin-right: -1px; + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.fc-direction-rtl .fc-button-group > .fc-button:not(:last-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.fc .fc-toolbar { + display: flex; + justify-content: space-between; + align-items: center; +} + +.fc .fc-toolbar.fc-header-toolbar { + margin-bottom: 1.5em; +} + +.fc .fc-toolbar.fc-footer-toolbar { + margin-top: 1.5em; +} + +.fc .fc-toolbar-title { + font-size: 1.75em; + margin: 0; +} + +.fc-direction-ltr .fc-toolbar > * > :not(:first-child) { + margin-left: 0.75em; /* space between */ +} + +.fc-direction-rtl .fc-toolbar > * > :not(:first-child) { + margin-right: 0.75em; /* space between */ +} + +.fc-direction-rtl .fc-toolbar-ltr { /* when the toolbar-chunk positioning system is explicitly left-to-right */ + flex-direction: row-reverse; +} + +.fc .fc-scroller { + -webkit-overflow-scrolling: touch; + position: relative; /* for abs-positioned elements within */ +} + +.fc .fc-scroller-liquid { + height: 100%; +} + +.fc .fc-scroller-liquid-absolute { + position: absolute; + top: 0; + right: 0; + left: 0; + bottom: 0; +} + +.fc .fc-scroller-harness { + position: relative; + overflow: hidden; + direction: ltr; + /* hack for chrome computing the scroller's right/left wrong for rtl. undone below... */ + /* TODO: demonstrate in codepen */ +} + +.fc .fc-scroller-harness-liquid { + height: 100%; +} + +.fc-direction-rtl .fc-scroller-harness > .fc-scroller { /* undo above hack */ + direction: rtl; +} + +.fc-theme-standard .fc-scrollgrid { + border: 1px solid #ddd; + border: 1px solid var(--fc-border-color, #ddd); /* bootstrap does this. match */ +} + +.fc .fc-scrollgrid, +.fc .fc-scrollgrid table { /* all tables (self included) */ + width: 100%; /* because tables don't normally do this */ + table-layout: fixed; +} + +.fc .fc-scrollgrid table { /* inner tables */ + border-top-style: hidden; + border-left-style: hidden; + border-right-style: hidden; +} + +.fc .fc-scrollgrid { + border-collapse: separate; + border-right-width: 0; + border-bottom-width: 0; +} + +.fc .fc-scrollgrid-liquid { + height: 100%; +} + +.fc .fc-scrollgrid-section { /* a */ + height: 1px; +} + +.fc .fc-scrollgrid-section > td { + height: 1px; /* needs a height so inner div within grow. better than 0, for firefox */ +} + +.fc .fc-scrollgrid-section table { + height: 1px; + /* for most browsers, if a height isn't set on the table, can't do liquid-height within cells */ + /* serves as a min-height. harmless */ +} + +.fc .fc-scrollgrid-section-liquid > td { + height: 100%; /* better than `auto`, for firefox */ +} + +.fc .fc-scrollgrid-section > * { + border-top-width: 0; + border-left-width: 0; +} + +.fc .fc-scrollgrid-section-header > *, +.fc .fc-scrollgrid-section-footer > * { + border-bottom-width: 0; +} + +.fc .fc-scrollgrid-section-body table, +.fc .fc-scrollgrid-section-footer table { + border-bottom-style: hidden; /* head keeps its bottom border tho */ +} + +.fc { + /* stickiness */ +} + +.fc .fc-scrollgrid-section-sticky > * { + background: #fff; + background: var(--fc-page-bg-color, #fff); + position: sticky; + z-index: 3; /* TODO: var */ + /* TODO: box-shadow when sticking */ +} + +.fc .fc-scrollgrid-section-header.fc-scrollgrid-section-sticky > * { + top: 0; /* because border-sharing causes a gap at the top */ + /* TODO: give safari -1. has bug */ +} + +.fc .fc-scrollgrid-section-footer.fc-scrollgrid-section-sticky > * { + bottom: 0; /* known bug: bottom-stickiness doesn't work in safari */ +} + +.fc .fc-scrollgrid-sticky-shim { /* for horizontal scrollbar */ + height: 1px; /* needs height to create scrollbars */ + margin-bottom: -1px; +} + +.fc-sticky { /* no .fc wrap because used as child of body */ + position: sticky; +} + +.fc .fc-view-harness { + flex-grow: 1; /* because this harness is WITHIN the .fc's flexbox */ + position: relative; +} + +.fc { + /* when the harness controls the height, make the view liquid */ +} + +.fc .fc-view-harness-active > .fc-view { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; +} + +.fc .fc-col-header-cell-cushion { + display: inline-block; /* x-browser for when sticky (when multi-tier header) */ + padding: 2px 4px; +} + +.fc .fc-bg-event, +.fc .fc-non-business, +.fc .fc-highlight { + /* will always have a harness with position:relative/absolute, so absolutely expand */ + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; +} + +.fc .fc-non-business { + background: rgba(215, 215, 215, 0.3); + background: var(--fc-non-business-color, rgba(215, 215, 215, 0.3)); +} + +.fc .fc-bg-event { + background: rgb(143, 223, 130); + background: var(--fc-bg-event-color, rgb(143, 223, 130)); + opacity: 0.3; + opacity: var(--fc-bg-event-opacity, 0.3); +} + +.fc .fc-bg-event .fc-event-title { + margin: 0.5em; + font-size: 0.85em; + font-size: var(--fc-small-font-size, 0.85em); + font-style: italic; +} + +.fc .fc-highlight { + background: rgba(188, 232, 241, 0.3); + background: var(--fc-highlight-color, rgba(188, 232, 241, 0.3)); +} + +.fc .fc-cell-shaded, +.fc .fc-day-disabled { + background: rgba(208, 208, 208, 0.3); + background: var(--fc-neutral-bg-color, rgba(208, 208, 208, 0.3)); +} + +/* link resets */ +/* ---------------------------------------------------------------------------------------------------- */ +a.fc-event, +a.fc-event:hover { + text-decoration: none; +} + +/* cursor */ +.fc-event[href], +.fc-event.fc-event-draggable { + cursor: pointer; +} + +/* event text content */ +/* ---------------------------------------------------------------------------------------------------- */ +.fc-event .fc-event-main { + position: relative; + z-index: 2; +} + +/* dragging */ +/* ---------------------------------------------------------------------------------------------------- */ +.fc-event-dragging:not(.fc-event-selected) { /* MOUSE */ + opacity: 0.75; +} + +.fc-event-dragging.fc-event-selected { /* TOUCH */ + box-shadow: 0 2px 7px rgba(0, 0, 0, 0.3); +} + +/* resizing */ +/* ---------------------------------------------------------------------------------------------------- */ +/* (subclasses should hone positioning for touch and non-touch) */ +.fc-event .fc-event-resizer { + display: none; + position: absolute; + z-index: 4; +} + +.fc-event:hover, +.fc-event-selected { /* TOUCH */ } + +.fc-event:hover .fc-event-resizer, .fc-event-selected .fc-event-resizer { + display: block; +} + +.fc-event-selected .fc-event-resizer { + border-radius: 4px; + border-radius: calc(var(--fc-event-resizer-dot-total-width, 8px) / 2); + border-width: 1px; + border-width: var(--fc-event-resizer-dot-border-width, 1px); + width: 8px; + width: var(--fc-event-resizer-dot-total-width, 8px); + height: 8px; + height: var(--fc-event-resizer-dot-total-width, 8px); + border-style: solid; + border-color: inherit; + background: #fff; + background: var(--fc-page-bg-color, #fff); +} + +.fc-event-selected .fc-event-resizer:before { + content: ""; + position: absolute; + top: -20px; + left: -20px; + right: -20px; + bottom: -20px; +} + +/* selecting (always TOUCH) */ +/* ---------------------------------------------------------------------------------------------------- */ +.fc-event-selected { + box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2); +} + +.fc-event-selected:before { + content: ""; + position: absolute; + z-index: 3; + top: 0; + left: 0; + right: 0; + bottom: 0; +} + +.fc-event-selected { + /* dimmer effect */ +} + +.fc-event-selected:after { + content: ""; + background: rgba(0, 0, 0, 0.25); + background: var(--fc-event-selected-overlay-color, rgba(0, 0, 0, 0.25)); + position: absolute; + z-index: 1; + /* assume there's a border on all sides. overcome it. */ + /* sometimes there's NOT a border, in which case the dimmer will go over */ + /* an adjacent border, which looks fine. */ + top: -1px; + left: -1px; + right: -1px; + bottom: -1px; +} + +/* +A HORIZONTAL event +*/ +.fc-h-event { /* allowed to be top-level */ + display: block; + border: 1px solid #3788d8; + border: 1px solid var(--fc-event-border-color, #3788d8); + background-color: #3788d8; + background-color: var(--fc-event-bg-color, #3788d8); +} + +.fc-h-event .fc-event-main { + color: #fff; + color: var(--fc-event-text-color, #fff); +} + +.fc-h-event .fc-event-main-frame { + display: flex; /* for make fc-event-title-container expand */ +} + +.fc-h-event .fc-event-time { + max-width: 100%; /* clip overflow on this element */ + overflow: hidden; +} + +.fc-h-event .fc-event-title-container { /* serves as a container for the sticky cushion */ + flex-grow: 1; + flex-shrink: 1; + min-width: 0; /* important for allowing to shrink all the way */ +} + +.fc-h-event .fc-event-title { + display: inline-block; /* need this to be sticky cross-browser */ + vertical-align: top; /* for not messing up line-height */ + left: 0; /* for sticky */ + right: 0; /* for sticky */ + max-width: 100%; /* clip overflow on this element */ + overflow: hidden; +} + +.fc-h-event.fc-event-selected:before { + /* expand hit area */ + top: -10px; + bottom: -10px; +} + +/* adjust border and border-radius (if there is any) for non-start/end */ +.fc-direction-ltr .fc-daygrid-block-event:not(.fc-event-start), +.fc-direction-rtl .fc-daygrid-block-event:not(.fc-event-end) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; + border-left-width: 0; +} + +.fc-direction-ltr .fc-daygrid-block-event:not(.fc-event-end), +.fc-direction-rtl .fc-daygrid-block-event:not(.fc-event-start) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; + border-right-width: 0; +} + +/* resizers */ +.fc-h-event:not(.fc-event-selected) .fc-event-resizer { + top: 0; + bottom: 0; + width: 8px; + width: var(--fc-event-resizer-thickness, 8px); +} + +.fc-direction-ltr .fc-h-event:not(.fc-event-selected) .fc-event-resizer-start, +.fc-direction-rtl .fc-h-event:not(.fc-event-selected) .fc-event-resizer-end { + cursor: w-resize; + left: -4px; + left: calc(var(--fc-event-resizer-thickness, 8px) / -2); +} + +.fc-direction-ltr .fc-h-event:not(.fc-event-selected) .fc-event-resizer-end, +.fc-direction-rtl .fc-h-event:not(.fc-event-selected) .fc-event-resizer-start { + cursor: e-resize; + right: -4px; + right: calc(var(--fc-event-resizer-thickness, 8px) / -2); +} + +/* resizers for TOUCH */ +.fc-h-event.fc-event-selected .fc-event-resizer { + top: 50%; + margin-top: -4px; + margin-top: calc(var(--fc-event-resizer-dot-total-width, 8px) / -2); +} + +.fc-direction-ltr .fc-h-event.fc-event-selected .fc-event-resizer-start, +.fc-direction-rtl .fc-h-event.fc-event-selected .fc-event-resizer-end { + left: -4px; + left: calc(var(--fc-event-resizer-dot-total-width, 8px) / -2); +} + +.fc-direction-ltr .fc-h-event.fc-event-selected .fc-event-resizer-end, +.fc-direction-rtl .fc-h-event.fc-event-selected .fc-event-resizer-start { + right: -4px; + right: calc(var(--fc-event-resizer-dot-total-width, 8px) / -2); +} + +.fc .fc-popover { + position: absolute; + z-index: 9999; + box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15); +} + +.fc .fc-popover-header { + display: flex; + flex-direction: row; + justify-content: space-between; + align-items: center; + padding: 3px 4px; +} + +.fc .fc-popover-title { + margin: 0 2px; +} + +.fc .fc-popover-close { + cursor: pointer; + opacity: 0.65; + font-size: 1.1em; +} + +.fc-theme-standard .fc-popover { + border: 1px solid #ddd; + border: 1px solid var(--fc-border-color, #ddd); + background: #fff; + background: var(--fc-page-bg-color, #fff); +} + +.fc-theme-standard .fc-popover-header { + background: rgba(208, 208, 208, 0.3); + background: var(--fc-neutral-bg-color, rgba(208, 208, 208, 0.3)); +} + +:root { + --fc-daygrid-event-dot-width: 8px; +} + +/* help things clear margins of inner content */ +.fc-daygrid-day-frame, +.fc-daygrid-day-events, +.fc-daygrid-event-harness { /* for event top/bottom margins */ } + +.fc-daygrid-day-frame:before, .fc-daygrid-day-events:before, .fc-daygrid-event-harness:before { + content: ""; + clear: both; + display: table; +} + +.fc-daygrid-day-frame:after, .fc-daygrid-day-events:after, .fc-daygrid-event-harness:after { + content: ""; + clear: both; + display: table; +} + +.fc .fc-daygrid-body { /* a
that wraps the table */ + position: relative; + z-index: 1; /* container inner z-index's because s can't do it */ +} + +.fc .fc-daygrid-day.fc-day-today { + background-color: rgba(255, 220, 40, 0.15); + background-color: var(--fc-today-bg-color, rgba(255, 220, 40, 0.15)); +} + +.fc .fc-daygrid-day-frame { + position: relative; + min-height: 100%; /* seems to work better than `height` because sets height after rows/cells naturally do it */ +} + +.fc { + /* cell top */ +} + +.fc .fc-daygrid-day-top { + display: flex; + flex-direction: row-reverse; +} + +.fc .fc-day-other .fc-daygrid-day-top { + opacity: 0.3; +} + +.fc { + /* day number (within cell top) */ +} + +.fc .fc-daygrid-day-number { + position: relative; + z-index: 4; + padding: 4px; +} + +.fc { + /* event container */ +} + +.fc .fc-daygrid-day-events { + margin-top: 1px; /* needs to be margin, not padding, so that available cell height can be computed */ +} + +.fc { + /* positioning for balanced vs natural */ +} + +.fc .fc-daygrid-body-balanced .fc-daygrid-day-events { + position: absolute; + left: 0; + right: 0; +} + +.fc .fc-daygrid-body-unbalanced .fc-daygrid-day-events { + position: relative; /* for containing abs positioned event harnesses */ + min-height: 2em; /* in addition to being a min-height during natural height, equalizes the heights a little bit */ +} + +.fc .fc-daygrid-body-natural { /* can coexist with -unbalanced */ } + +.fc .fc-daygrid-body-natural .fc-daygrid-day-events { + margin-bottom: 1em; +} + +.fc { + /* event harness */ +} + +.fc .fc-daygrid-event-harness { + position: relative; +} + +.fc .fc-daygrid-event-harness-abs { + position: absolute; + top: 0; /* fallback coords for when cannot yet be computed */ + left: 0; /* */ + right: 0; /* */ +} + +.fc .fc-daygrid-bg-harness { + position: absolute; + top: 0; + bottom: 0; +} + +.fc { + /* bg content */ +} + +.fc .fc-daygrid-day-bg .fc-non-business { + z-index: 1; +} + +.fc .fc-daygrid-day-bg .fc-bg-event { + z-index: 2; +} + +.fc .fc-daygrid-day-bg .fc-highlight { + z-index: 3; +} + +.fc { + /* events */ +} + +.fc .fc-daygrid-event { + z-index: 6; + margin-top: 1px; +} + +.fc .fc-daygrid-event.fc-event-mirror { + z-index: 7; +} + +.fc { + /* cell bottom (within day-events) */ +} + +.fc .fc-daygrid-day-bottom { + font-size: 0.85em; + padding: 2px 3px 0; +} + +.fc .fc-daygrid-day-bottom:before { + content: ""; + clear: both; + display: table; +} + +.fc .fc-daygrid-more-link { + position: relative; + z-index: 4; + cursor: pointer; +} + +.fc { + /* week number (within frame) */ +} + +.fc .fc-daygrid-week-number { + position: absolute; + z-index: 5; + top: 0; + padding: 2px; + min-width: 1.5em; + text-align: center; + background-color: rgba(208, 208, 208, 0.3); + background-color: var(--fc-neutral-bg-color, rgba(208, 208, 208, 0.3)); + color: #808080; + color: var(--fc-neutral-text-color, #808080); +} + +.fc { + /* popover */ +} + +.fc .fc-more-popover .fc-popover-body { + min-width: 220px; + padding: 10px; +} + +.fc-direction-ltr .fc-daygrid-event.fc-event-start, +.fc-direction-rtl .fc-daygrid-event.fc-event-end { + margin-left: 2px; +} + +.fc-direction-ltr .fc-daygrid-event.fc-event-end, +.fc-direction-rtl .fc-daygrid-event.fc-event-start { + margin-right: 2px; +} + +.fc-direction-ltr .fc-daygrid-week-number { + left: 0; + border-radius: 0 0 3px 0; +} + +.fc-direction-rtl .fc-daygrid-week-number { + right: 0; + border-radius: 0 0 0 3px; +} + +.fc-liquid-hack .fc-daygrid-day-frame { + position: static; /* will cause inner absolute stuff to expand to */ +} + +.fc-daygrid-event { /* make root-level, because will be dragged-and-dropped outside of a component root */ + position: relative; /* for z-indexes assigned later */ + white-space: nowrap; + border-radius: 3px; /* dot event needs this to when selected */ + font-size: 0.85em; + font-size: var(--fc-small-font-size, 0.85em); +} + +/* --- the rectangle ("block") style of event --- */ +.fc-daygrid-block-event .fc-event-time { + font-weight: bold; +} + +.fc-daygrid-block-event .fc-event-time, +.fc-daygrid-block-event .fc-event-title { + padding: 1px; +} + +/* --- the dot style of event --- */ +.fc-daygrid-dot-event { + display: flex; + align-items: center; + padding: 2px 0; +} + +.fc-daygrid-dot-event .fc-event-title { + flex-grow: 1; + flex-shrink: 1; + min-width: 0; /* important for allowing to shrink all the way */ + overflow: hidden; + font-weight: bold; +} + +.fc-daygrid-dot-event:hover, +.fc-daygrid-dot-event.fc-event-mirror { + background: rgba(0, 0, 0, 0.1); +} + +.fc-daygrid-dot-event.fc-event-selected:before { + /* expand hit area */ + top: -10px; + bottom: -10px; +} + +.fc-daygrid-event-dot { /* the actual dot */ + margin: 0 4px; + box-sizing: content-box; + width: 0; + height: 0; + border: 4px solid #3788d8; + border: calc(var(--fc-daygrid-event-dot-width, 8px) / 2) solid var(--fc-event-border-color, #3788d8); + border-radius: 4px; + border-radius: calc(var(--fc-daygrid-event-dot-width, 8px) / 2); +} + +/* --- spacing between time and title --- */ +.fc-direction-ltr .fc-daygrid-event .fc-event-time { + margin-right: 3px; +} + +.fc-direction-rtl .fc-daygrid-event .fc-event-time { + margin-left: 3px; +} + +/* +A VERTICAL event +*/ +.fc-v-event { /* allowed to be top-level */ + display: block; + border: 1px solid #3788d8; + border: 1px solid var(--fc-event-border-color, #3788d8); + background-color: #3788d8; + background-color: var(--fc-event-bg-color, #3788d8); +} + +.fc-v-event .fc-event-main { + color: #fff; + color: var(--fc-event-text-color, #fff); + height: 100%; +} + +.fc-v-event .fc-event-main-frame { + height: 100%; + display: flex; + flex-direction: column; +} + +.fc-v-event .fc-event-time { + flex-grow: 0; + flex-shrink: 0; + max-height: 100%; + overflow: hidden; +} + +.fc-v-event .fc-event-title-container { /* a container for the sticky cushion */ + flex-grow: 1; + flex-shrink: 1; + min-height: 0; /* important for allowing to shrink all the way */ +} + +.fc-v-event .fc-event-title { /* will have fc-sticky on it */ + top: 0; + bottom: 0; + max-height: 100%; /* clip overflow */ + overflow: hidden; +} + +.fc-v-event:not(.fc-event-start) { + border-top-width: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.fc-v-event:not(.fc-event-end) { + border-bottom-width: 0; + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; +} + +.fc-v-event.fc-event-selected:before { + /* expand hit area */ + left: -10px; + right: -10px; +} + +.fc-v-event { + /* resizer (mouse AND touch) */ +} + +.fc-v-event .fc-event-resizer-start { + cursor: n-resize; +} + +.fc-v-event .fc-event-resizer-end { + cursor: s-resize; +} + +.fc-v-event { + /* resizer for MOUSE */ +} + +.fc-v-event:not(.fc-event-selected) .fc-event-resizer { + height: 8px; + height: var(--fc-event-resizer-thickness, 8px); + left: 0; + right: 0; +} + +.fc-v-event:not(.fc-event-selected) .fc-event-resizer-start { + top: -4px; + top: calc(var(--fc-event-resizer-thickness, 8px) / -2); +} + +.fc-v-event:not(.fc-event-selected) .fc-event-resizer-end { + bottom: -4px; + bottom: calc(var(--fc-event-resizer-thickness, 8px) / -2); +} + +.fc-v-event { + /* resizer for TOUCH (when event is "selected") */ +} + +.fc-v-event.fc-event-selected .fc-event-resizer { + left: 50%; + margin-left: -4px; + margin-left: calc(var(--fc-event-resizer-dot-total-width, 8px) / -2); +} + +.fc-v-event.fc-event-selected .fc-event-resizer-start { + top: -4px; + top: calc(var(--fc-event-resizer-dot-total-width, 8px) / -2); +} + +.fc-v-event.fc-event-selected .fc-event-resizer-end { + bottom: -4px; + bottom: calc(var(--fc-event-resizer-dot-total-width, 8px) / -2); +} + +.fc .fc-timegrid .fc-daygrid-body { /* the all-day daygrid within the timegrid view */ + z-index: 2; /* put above the timegrid-body so that more-popover is above everything. TODO: better solution */ +} + +.fc .fc-timegrid-divider { + padding: 0 0 2px; /* browsers get confused when you set height. use padding instead */ +} + +.fc .fc-timegrid-body { + position: relative; + z-index: 1; /* scope the z-indexes of slots and cols */ + min-height: 100%; /* fill height always, even when slat table doesn't grow */ +} + +.fc .fc-timegrid-axis-chunk { /* for advanced ScrollGrid */ + position: relative; +} + +.fc .fc-timegrid-axis-chunk > table { + position: relative; + z-index: 1; /* above the now-indicator-container */ +} + +.fc .fc-timegrid-slots { + position: relative; + z-index: 1; +} + +.fc .fc-timegrid-slot { /* a */ + height: 1.5em; + border-bottom: 0; +} + +.fc .fc-timegrid-slot:empty:before { + content: " "; /* make sure there's at least an empty space to create height for height syncing */ +} + +.fc .fc-timegrid-slot-minor { + border-top-style: dotted; +} + +.fc .fc-timegrid-slot-label-cushion { + display: inline-block; + white-space: nowrap; +} + +.fc .fc-timegrid-slot-label { + vertical-align: middle; /* vertical align the slots */ +} + +.fc { + /* slots AND axis cells (top-left corner of view including the "all-day" text) */ +} + +.fc .fc-timegrid-axis-cushion, +.fc .fc-timegrid-slot-label-cushion { + padding: 0 4px; +} + +.fc { + /* axis cells (top-left corner of view including the "all-day" text) */ + /* vertical align is more complicated, uses flexbox */ +} + +.fc .fc-timegrid-axis-frame-liquid { + height: 100%; /* will need liquid-hack in FF */ +} + +.fc .fc-timegrid-axis-frame { + overflow: hidden; + display: flex; + align-items: center; /* vertical align */ + justify-content: flex-end; /* horizontal align. matches text-align below */ +} + +.fc .fc-timegrid-axis-cushion { + max-width: 60px; /* limits the width of the "all-day" text */ + flex-shrink: 0; /* allows text to expand how it normally would, regardless of constrained width */ +} + +.fc-direction-ltr .fc-timegrid-slot-label-frame { + text-align: right; +} + +.fc-direction-rtl .fc-timegrid-slot-label-frame { + text-align: left; +} + +.fc-liquid-hack .fc-timegrid-axis-frame-liquid { + height: auto; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; +} + +.fc .fc-timegrid-col.fc-day-today { + background-color: rgba(255, 220, 40, 0.15); + background-color: var(--fc-today-bg-color, rgba(255, 220, 40, 0.15)); +} + +.fc .fc-timegrid-col-frame { + min-height: 100%; /* liquid-hack is below */ + position: relative; +} + +.fc-media-screen.fc-liquid-hack .fc-timegrid-col-frame { + height: auto; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; +} + +.fc-media-screen .fc-timegrid-cols { + position: absolute; /* no z-index. children will decide and go above slots */ + top: 0; + left: 0; + right: 0; + bottom: 0; +} + +.fc-media-screen .fc-timegrid-cols > table { + height: 100%; +} + +.fc-media-screen .fc-timegrid-col-bg, +.fc-media-screen .fc-timegrid-col-events, +.fc-media-screen .fc-timegrid-now-indicator-container { + position: absolute; + top: 0; + left: 0; + right: 0; +} + +.fc { + /* bg */ +} + +.fc .fc-timegrid-col-bg { + z-index: 2; /* TODO: kill */ +} + +.fc .fc-timegrid-col-bg .fc-non-business { + z-index: 1; +} + +.fc .fc-timegrid-col-bg .fc-bg-event { + z-index: 2; +} + +.fc .fc-timegrid-col-bg .fc-highlight { + z-index: 3; +} + +.fc .fc-timegrid-bg-harness { + position: absolute; /* top/bottom will be set by JS */ + left: 0; + right: 0; +} + +.fc { + /* fg events */ + /* (the mirror segs are put into a separate container with same classname, */ + /* and they must be after the normal seg container to appear at a higher z-index) */ +} + +.fc .fc-timegrid-col-events { + z-index: 3; + /* child event segs have z-indexes that are scoped within this div */ +} + +.fc { + /* now indicator */ +} + +.fc .fc-timegrid-now-indicator-container { + bottom: 0; + overflow: hidden; /* don't let overflow of lines/arrows cause unnecessary scrolling */ + /* z-index is set on the individual elements */ +} + +.fc-direction-ltr .fc-timegrid-col-events { + margin: 0 2.5% 0 2px; +} + +.fc-direction-rtl .fc-timegrid-col-events { + margin: 0 2px 0 2.5%; +} + +.fc-timegrid-event-harness { + position: absolute; +} + +.fc-timegrid-event-harness > .fc-timegrid-event { + position: absolute; /* absolute WITHIN the harness */ + top: 0; /* for when not yet positioned */ + bottom: 0; /* " */ + left: 0; + right: 0; +} + +.fc-timegrid-event-harness-inset .fc-timegrid-event, +.fc-timegrid-event.fc-event-mirror, +.fc-timegrid-more-link { + box-shadow: 0px 0px 0px 1px #fff; + box-shadow: 0px 0px 0px 1px var(--fc-page-bg-color, #fff); +} + +.fc-timegrid-event, +.fc-timegrid-more-link { /* events need to be root */ + font-size: 0.85em; + font-size: var(--fc-small-font-size, 0.85em); + border-radius: 3px; +} + +.fc-timegrid-event { /* events need to be root */ + margin-bottom: 1px; +} + +.fc-timegrid-event .fc-event-main { + padding: 1px 1px 0; +} + +.fc-timegrid-event .fc-event-time { + white-space: nowrap; + font-size: 0.85em; + font-size: var(--fc-small-font-size, 0.85em); + margin-bottom: 1px; +} + +.fc-timegrid-event-short .fc-event-main-frame { + flex-direction: row; + overflow: hidden; +} + +.fc-timegrid-event-short .fc-event-time:after { + content: " - "; /* dash surrounded by non-breaking spaces */ +} + +.fc-timegrid-event-short .fc-event-title { + font-size: 0.85em; + font-size: var(--fc-small-font-size, 0.85em); +} + +.fc-timegrid-more-link { /* does NOT inherit from fc-timegrid-event */ + position: absolute; + z-index: 9999; /* hack */ + color: inherit; + color: var(--fc-more-link-text-color, inherit); + background: #d0d0d0; + background: var(--fc-more-link-bg-color, #d0d0d0); + cursor: pointer; + margin-bottom: 1px; /* match space below fc-timegrid-event */ +} + +.fc-timegrid-more-link-inner { /* has fc-sticky */ + padding: 3px 2px; + top: 0; +} + +.fc-direction-ltr .fc-timegrid-more-link { + right: 0; +} + +.fc-direction-rtl .fc-timegrid-more-link { + left: 0; +} + +.fc { + /* line */ +} + +.fc .fc-timegrid-now-indicator-line { + position: absolute; + z-index: 4; + left: 0; + right: 0; + border-style: solid; + border-color: red; + border-color: var(--fc-now-indicator-color, red); + border-width: 1px 0 0; +} + +.fc { + /* arrow */ +} + +.fc .fc-timegrid-now-indicator-arrow { + position: absolute; + z-index: 4; + margin-top: -5px; /* vertically center on top coordinate */ + border-style: solid; + border-color: red; + border-color: var(--fc-now-indicator-color, red); +} + +.fc-direction-ltr .fc-timegrid-now-indicator-arrow { + left: 0; + /* triangle pointing right. TODO: mixin */ + border-width: 5px 0 5px 6px; + border-top-color: transparent; + border-bottom-color: transparent; +} + +.fc-direction-rtl .fc-timegrid-now-indicator-arrow { + right: 0; + /* triangle pointing left. TODO: mixin */ + border-width: 5px 6px 5px 0; + border-top-color: transparent; + border-bottom-color: transparent; +} + +:root { + --fc-list-event-dot-width: 10px; + --fc-list-event-hover-bg-color: #f5f5f5; +} + +.fc-theme-standard .fc-list { + border: 1px solid #ddd; + border: 1px solid var(--fc-border-color, #ddd); +} + +.fc { + /* message when no events */ +} + +.fc .fc-list-empty { + background-color: rgba(208, 208, 208, 0.3); + background-color: var(--fc-neutral-bg-color, rgba(208, 208, 208, 0.3)); + height: 100%; + display: flex; + justify-content: center; + align-items: center; /* vertically aligns fc-list-empty-inner */ +} + +.fc .fc-list-empty-cushion { + margin: 5em 0; +} + +.fc { + /* table within the scroller */ + /* ---------------------------------------------------------------------------------------------------- */ +} + +.fc .fc-list-table { + width: 100%; + border-style: hidden; /* kill outer border on theme */ +} + +.fc .fc-list-table tr > * { + border-left: 0; + border-right: 0; +} + +.fc .fc-list-sticky .fc-list-day > * { /* the cells */ + position: sticky; + top: 0; + background: #fff; + background: var(--fc-page-bg-color, #fff); /* for when headers are styled to be transparent and sticky */ +} + +.fc .fc-list-table th { + padding: 0; /* uses an inner-wrapper instead... */ +} + +.fc .fc-list-table td, +.fc .fc-list-day-cushion { + padding: 8px 14px; +} + +.fc { + /* date heading rows */ + /* ---------------------------------------------------------------------------------------------------- */ +} + +.fc .fc-list-day-cushion:after { + content: ""; + clear: both; + display: table; /* clear floating */ +} + +.fc-theme-standard .fc-list-day-cushion { + background-color: rgba(208, 208, 208, 0.3); + background-color: var(--fc-neutral-bg-color, rgba(208, 208, 208, 0.3)); +} + +.fc-direction-ltr .fc-list-day-text, +.fc-direction-rtl .fc-list-day-side-text { + float: left; +} + +.fc-direction-ltr .fc-list-day-side-text, +.fc-direction-rtl .fc-list-day-text { + float: right; +} + +/* make the dot closer to the event title */ +.fc-direction-ltr .fc-list-table .fc-list-event-graphic { + padding-right: 0; +} + +.fc-direction-rtl .fc-list-table .fc-list-event-graphic { + padding-left: 0; +} + +.fc .fc-list-event.fc-event-forced-url { + cursor: pointer; /* whole row will seem clickable */ +} + +.fc .fc-list-event:hover td { + background-color: #f5f5f5; + background-color: var(--fc-list-event-hover-bg-color, #f5f5f5); +} + +.fc { + /* shrink certain cols */ +} + +.fc .fc-list-event-graphic, +.fc .fc-list-event-time { + white-space: nowrap; + width: 1px; +} + +.fc .fc-list-event-dot { + display: inline-block; + box-sizing: content-box; + width: 0; + height: 0; + border: 5px solid #3788d8; + border: calc(var(--fc-list-event-dot-width, 10px) / 2) solid var(--fc-event-border-color, #3788d8); + border-radius: 5px; + border-radius: calc(var(--fc-list-event-dot-width, 10px) / 2); +} + +.fc { + /* reset styling */ +} + +.fc .fc-list-event-title a { + color: inherit; + text-decoration: none; +} + +.fc { + /* underline link when hovering over any part of row */ +} + +.fc .fc-list-event.fc-event-forced-url:hover a { + text-decoration: underline; +} + +.fc-theme-bootstrap a:not([href]) { + color: inherit; /* natural color for navlinks */ +} + +.jvectormap-container { + width: 100%; + height: 100%; + position: relative; + overflow: hidden; +} + +.jvectormap-tip { + position: absolute; + display: none; + border: solid 1px #CDCDCD; + border-radius: 3px; + background: #292929; + color: white; + font-family: sans-serif, Verdana; + font-size: smaller; + padding: 3px; +} + +.jvectormap-zoomin, .jvectormap-zoomout, .jvectormap-goback { + position: absolute; + left: 10px; + border-radius: 3px; + background: #292929; + padding: 3px; + color: white; + cursor: pointer; + line-height: 10px; + text-align: center; +} + +.jvectormap-zoomin { + top: 10px; +} + +.jvectormap-zoomout { + top: 30px; +} + +.jvectormap-goback { + bottom: 10px; + z-index: 1000; + padding: 6px; +} + +.jvectormap-spinner { + position: absolute; + left: 0; + top: 0; + right: 0; + bottom: 0; + background: center no-repeat url(data:image/gif;base64,R0lGODlhIAAgAPMAAP///wAAAMbGxoSEhLa2tpqamjY2NlZWVtjY2OTk5Ly8vB4eHgQEBAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCgAAACwAAAAAIAAgAAAE5xDISWlhperN52JLhSSdRgwVo1ICQZRUsiwHpTJT4iowNS8vyW2icCF6k8HMMBkCEDskxTBDAZwuAkkqIfxIQyhBQBFvAQSDITM5VDW6XNE4KagNh6Bgwe60smQUB3d4Rz1ZBApnFASDd0hihh12BkE9kjAJVlycXIg7CQIFA6SlnJ87paqbSKiKoqusnbMdmDC2tXQlkUhziYtyWTxIfy6BE8WJt5YJvpJivxNaGmLHT0VnOgSYf0dZXS7APdpB309RnHOG5gDqXGLDaC457D1zZ/V/nmOM82XiHRLYKhKP1oZmADdEAAAh+QQJCgAAACwAAAAAIAAgAAAE6hDISWlZpOrNp1lGNRSdRpDUolIGw5RUYhhHukqFu8DsrEyqnWThGvAmhVlteBvojpTDDBUEIFwMFBRAmBkSgOrBFZogCASwBDEY/CZSg7GSE0gSCjQBMVG023xWBhklAnoEdhQEfyNqMIcKjhRsjEdnezB+A4k8gTwJhFuiW4dokXiloUepBAp5qaKpp6+Ho7aWW54wl7obvEe0kRuoplCGepwSx2jJvqHEmGt6whJpGpfJCHmOoNHKaHx61WiSR92E4lbFoq+B6QDtuetcaBPnW6+O7wDHpIiK9SaVK5GgV543tzjgGcghAgAh+QQJCgAAACwAAAAAIAAgAAAE7hDISSkxpOrN5zFHNWRdhSiVoVLHspRUMoyUakyEe8PTPCATW9A14E0UvuAKMNAZKYUZCiBMuBakSQKG8G2FzUWox2AUtAQFcBKlVQoLgQReZhQlCIJesQXI5B0CBnUMOxMCenoCfTCEWBsJColTMANldx15BGs8B5wlCZ9Po6OJkwmRpnqkqnuSrayqfKmqpLajoiW5HJq7FL1Gr2mMMcKUMIiJgIemy7xZtJsTmsM4xHiKv5KMCXqfyUCJEonXPN2rAOIAmsfB3uPoAK++G+w48edZPK+M6hLJpQg484enXIdQFSS1u6UhksENEQAAIfkECQoAAAAsAAAAACAAIAAABOcQyEmpGKLqzWcZRVUQnZYg1aBSh2GUVEIQ2aQOE+G+cD4ntpWkZQj1JIiZIogDFFyHI0UxQwFugMSOFIPJftfVAEoZLBbcLEFhlQiqGp1Vd140AUklUN3eCA51C1EWMzMCezCBBmkxVIVHBWd3HHl9JQOIJSdSnJ0TDKChCwUJjoWMPaGqDKannasMo6WnM562R5YluZRwur0wpgqZE7NKUm+FNRPIhjBJxKZteWuIBMN4zRMIVIhffcgojwCF117i4nlLnY5ztRLsnOk+aV+oJY7V7m76PdkS4trKcdg0Zc0tTcKkRAAAIfkECQoAAAAsAAAAACAAIAAABO4QyEkpKqjqzScpRaVkXZWQEximw1BSCUEIlDohrft6cpKCk5xid5MNJTaAIkekKGQkWyKHkvhKsR7ARmitkAYDYRIbUQRQjWBwJRzChi9CRlBcY1UN4g0/VNB0AlcvcAYHRyZPdEQFYV8ccwR5HWxEJ02YmRMLnJ1xCYp0Y5idpQuhopmmC2KgojKasUQDk5BNAwwMOh2RtRq5uQuPZKGIJQIGwAwGf6I0JXMpC8C7kXWDBINFMxS4DKMAWVWAGYsAdNqW5uaRxkSKJOZKaU3tPOBZ4DuK2LATgJhkPJMgTwKCdFjyPHEnKxFCDhEAACH5BAkKAAAALAAAAAAgACAAAATzEMhJaVKp6s2nIkolIJ2WkBShpkVRWqqQrhLSEu9MZJKK9y1ZrqYK9WiClmvoUaF8gIQSNeF1Er4MNFn4SRSDARWroAIETg1iVwuHjYB1kYc1mwruwXKC9gmsJXliGxc+XiUCby9ydh1sOSdMkpMTBpaXBzsfhoc5l58Gm5yToAaZhaOUqjkDgCWNHAULCwOLaTmzswadEqggQwgHuQsHIoZCHQMMQgQGubVEcxOPFAcMDAYUA85eWARmfSRQCdcMe0zeP1AAygwLlJtPNAAL19DARdPzBOWSm1brJBi45soRAWQAAkrQIykShQ9wVhHCwCQCACH5BAkKAAAALAAAAAAgACAAAATrEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq+E71SRQeyqUToLA7VxF0JDyIQh/MVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiRMDjI0Fd30/iI2UA5GSS5UDj2l6NoqgOgN4gksEBgYFf0FDqKgHnyZ9OX8HrgYHdHpcHQULXAS2qKpENRg7eAMLC7kTBaixUYFkKAzWAAnLC7FLVxLWDBLKCwaKTULgEwbLA4hJtOkSBNqITT3xEgfLpBtzE/jiuL04RGEBgwWhShRgQExHBAAh+QQJCgAAACwAAAAAIAAgAAAE7xDISWlSqerNpyJKhWRdlSAVoVLCWk6JKlAqAavhO9UkUHsqlE6CwO1cRdCQ8iEIfzFVTzLdRAmZX3I2SfZiCqGk5dTESJeaOAlClzsJsqwiJwiqnFrb2nS9kmIcgEsjQydLiIlHehhpejaIjzh9eomSjZR+ipslWIRLAgMDOR2DOqKogTB9pCUJBagDBXR6XB0EBkIIsaRsGGMMAxoDBgYHTKJiUYEGDAzHC9EACcUGkIgFzgwZ0QsSBcXHiQvOwgDdEwfFs0sDzt4S6BK4xYjkDOzn0unFeBzOBijIm1Dgmg5YFQwsCMjp1oJ8LyIAACH5BAkKAAAALAAAAAAgACAAAATwEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq+E71SRQeyqUToLA7VxF0JDyIQh/MVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiUd6GGl6NoiPOH16iZKNlH6KmyWFOggHhEEvAwwMA0N9GBsEC6amhnVcEwavDAazGwIDaH1ipaYLBUTCGgQDA8NdHz0FpqgTBwsLqAbWAAnIA4FWKdMLGdYGEgraigbT0OITBcg5QwPT4xLrROZL6AuQAPUS7bxLpoWidY0JtxLHKhwwMJBTHgPKdEQAACH5BAkKAAAALAAAAAAgACAAAATrEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq+E71SRQeyqUToLA7VxF0JDyIQh/MVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiUd6GAULDJCRiXo1CpGXDJOUjY+Yip9DhToJA4RBLwMLCwVDfRgbBAaqqoZ1XBMHswsHtxtFaH1iqaoGNgAIxRpbFAgfPQSqpbgGBqUD1wBXeCYp1AYZ19JJOYgH1KwA4UBvQwXUBxPqVD9L3sbp2BNk2xvvFPJd+MFCN6HAAIKgNggY0KtEBAAh+QQJCgAAACwAAAAAIAAgAAAE6BDISWlSqerNpyJKhWRdlSAVoVLCWk6JKlAqAavhO9UkUHsqlE6CwO1cRdCQ8iEIfzFVTzLdRAmZX3I2SfYIDMaAFdTESJeaEDAIMxYFqrOUaNW4E4ObYcCXaiBVEgULe0NJaxxtYksjh2NLkZISgDgJhHthkpU4mW6blRiYmZOlh4JWkDqILwUGBnE6TYEbCgevr0N1gH4At7gHiRpFaLNrrq8HNgAJA70AWxQIH1+vsYMDAzZQPC9VCNkDWUhGkuE5PxJNwiUK4UfLzOlD4WvzAHaoG9nxPi5d+jYUqfAhhykOFwJWiAAAIfkECQoAAAAsAAAAACAAIAAABPAQyElpUqnqzaciSoVkXVUMFaFSwlpOCcMYlErAavhOMnNLNo8KsZsMZItJEIDIFSkLGQoQTNhIsFehRww2CQLKF0tYGKYSg+ygsZIuNqJksKgbfgIGepNo2cIUB3V1B3IvNiBYNQaDSTtfhhx0CwVPI0UJe0+bm4g5VgcGoqOcnjmjqDSdnhgEoamcsZuXO1aWQy8KAwOAuTYYGwi7w5h+Kr0SJ8MFihpNbx+4Erq7BYBuzsdiH1jCAzoSfl0rVirNbRXlBBlLX+BP0XJLAPGzTkAuAOqb0WT5AH7OcdCm5B8TgRwSRKIHQtaLCwg1RAAAOwAAAAAAAAAAAA==); +} + +.jvectormap-legend-title { + font-weight: bold; + font-size: 14px; + text-align: center; +} + +.jvectormap-legend-cnt { + position: absolute; +} + +.jvectormap-legend-cnt-h { + bottom: 0; + right: 0; +} + +.jvectormap-legend-cnt-v { + top: 0; + right: 0; +} + +.jvectormap-legend { + background: black; + color: white; + border-radius: 3px; +} + +.jvectormap-legend-cnt-h .jvectormap-legend { + float: left; + margin: 0 10px 10px 0; + padding: 3px 3px 1px 3px; +} + +.jvectormap-legend-cnt-h .jvectormap-legend .jvectormap-legend-tick { + float: left; +} + +.jvectormap-legend-cnt-v .jvectormap-legend { + margin: 10px 10px 0 0; + padding: 3px; +} + +.jvectormap-legend-cnt-h .jvectormap-legend-tick { + width: 40px; +} + +.jvectormap-legend-cnt-h .jvectormap-legend-tick-sample { + height: 15px; +} + +.jvectormap-legend-cnt-v .jvectormap-legend-tick-sample { + height: 20px; + width: 20px; + display: inline-block; + vertical-align: middle; +} + +.jvectormap-legend-tick-text { + font-size: 12px; +} + +.jvectormap-legend-cnt-h .jvectormap-legend-tick-text { + text-align: center; +} + +.jvectormap-legend-cnt-v .jvectormap-legend-tick-text { + display: inline-block; + vertical-align: middle; + line-height: 20px; + padding-left: 3px; +} + +@media only screen and (max-width: 1320px) { + .header-user-info { + display: none; + } +} +@media (max-width: 767.98px) { + .app-main { + display: block; + } + .dropdown-menu::before, .dropdown-menu::after { + display: none; + } + .app-sidebar { + flex: 0 0 280px !important; + width: 280px !important; + transform: translateX(-280px); + position: fixed; + } + .app-sidebar .app-header__logo { + display: none; + } + .sidebar-mobile-open .app-sidebar { + transform: translateX(0); + } + .sidebar-mobile-open .app-sidebar .app-sidebar__inner .app-sidebar__heading { + text-indent: initial; + } + .sidebar-mobile-open .app-sidebar .app-sidebar__inner .app-sidebar__heading::before { + display: none; + } + .sidebar-mobile-open .app-sidebar .app-sidebar__inner ul li a { + text-indent: initial; + padding: 0 1.5rem 0 45px; + } + .sidebar-mobile-open .app-sidebar .app-sidebar__inner .metismenu-icon { + text-indent: initial; + left: 5px; + margin-left: 0; + } + .sidebar-mobile-open .app-sidebar .app-sidebar__inner .metismenu-state-icon { + visibility: visible; + } + .sidebar-mobile-open .app-sidebar .app-sidebar__inner ul::before { + display: block; + } + .sidebar-mobile-open .app-sidebar .app-sidebar__inner ul ul li a { + padding-left: 1em; + } + .sidebar-mobile-open .app-sidebar .app-sidebar__inner ul.mm-show { + padding: 0.5em 0 0 2rem; + } + .sidebar-mobile-open .app-sidebar .app-sidebar__inner ul.mm-show > li > a { + height: 2rem; + line-height: 2rem; + } + .sidebar-mobile-open .app-sidebar .app-header__logo { + width: auto !important; + } + .sidebar-mobile-open .app-sidebar .app-header__logo .logo-src { + width: 97px !important; + margin-left: auto; + margin-right: 0; + } + .sidebar-mobile-open .fixed-sidebar .app-sidebar { + height: 100%; + } + .sidebar-mobile-open .sidebar-mobile-overlay { + display: block; + } + .app-main .app-main__outer { + padding-left: 0 !important; + } + .app-header { + justify-content: space-between; + } + .app-header .app-header__logo { + display: none; + order: 2; + background: transparent !important; + border: 0 !important; + } + .app-header .app-header__content { + visibility: hidden; + opacity: 0; + box-shadow: 0 0.46875rem 2.1875rem rgba(4, 9, 20, 0.03), 0 0.9375rem 1.40625rem rgba(4, 9, 20, 0.03), 0 0.25rem 0.53125rem rgba(4, 9, 20, 0.05), 0 0.125rem 0.1875rem rgba(4, 9, 20, 0.03); + position: absolute; + left: 5%; + width: 90%; + top: 0; + transition: all 0.2s; + background: #fff; + border-radius: 50px; + padding: 0 10px; + overflow: hidden; + } + .app-header .app-header__content .header-btn-lg { + margin-left: 0.5rem; + padding: 0 0.5rem; + } + .app-header .app-header__content .app-header-left .nav { + display: none; + } + .app-header .app-header__content.header-mobile-open { + visibility: visible; + opacity: 1; + top: 80px; + } + .app-header .app-header__mobile-menu { + display: flex; + order: 1; + } + .app-header .app-header__menu { + display: flex; + order: 3; + } + .app-header.header-text-light .app-header__menu > span .btn, .app-header.header-text-light .app-header__menu > .btn { + background: rgba(255, 255, 255, 0.1); + border-color: rgba(255, 255, 255, 0.1); + } + .app-header.header-text-light .header-mobile-open { + background: #343a40; + } + .popover, +.dropdown-menu { + position: fixed !important; + z-index: 50; + left: 5% !important; + top: 50% !important; + width: 90% !important; + transform: translateY(-50%) !important; + min-width: 10px !important; + } + .popover .btn-icon-vertical .btn-icon-wrapper, +.dropdown-menu .btn-icon-vertical .btn-icon-wrapper { + display: none; + } + .popover { + max-width: initial; + } + .popover .arrow { + display: none !important; + } + .app-page-title { + text-align: center; + } + .app-page-title .page-title-heading, +.app-page-title .page-title-wrapper { + margin: 0 auto; + display: block; + } + .app-page-title .page-title-actions { + margin: 0.75rem auto 0; + } + .app-page-title .page-title-actions .breadcrumb-item, +.app-page-title .page-title-actions .breadcrumb, +.app-page-title .page-title-subheading .breadcrumb-item, +.app-page-title .page-title-subheading .breadcrumb { + display: inline-block; + } + .app-footer .app-footer__inner .app-footer-right { + display: none; + } + .app-footer .app-footer__inner .app-footer-left { + width: 100%; + } + .app-footer .app-footer__inner .app-footer-left .footer-dots { + margin: 0 auto; + } + .widget-content .widget-numbers { + font-size: 1.6rem; + line-height: 1; + } + .slick-slider-sm .slick-slider { + max-width: 650px !important; + } + .bg-transparent.list-group-item { + border-color: transparent; + } + .tabs-lg-alternate.card-header > .nav .nav-item .widget-number { + font-size: 1.5rem; + } + .page-title-head { + display: block; + } +} +@media (max-width: 767.98px) { + .app-page-title .page-title-icon, +.ui-theme-settings { + display: none; + } + .card-header.responsive-center { + display: block; + text-align: center; + height: auto; + padding: 1.5rem; + } + .card-header.responsive-center .nav, +.card-header.responsive-center .btn-actions-pane-right { + margin: 0.75rem 0 0; + } + .card-header.responsive-center .nav .d-inline-block.ml-2, +.card-header.responsive-center .btn-actions-pane-right .d-inline-block.ml-2 { + width: 100% !important; + text-align: left; + margin: 0 !important; + } + .slick-slider-sm .slick-slider { + max-width: 650px !important; + } +} +@media (min-width: 992px) { + .slick-slider-sm .slick-slider { + max-width: 850px !important; + } +} +@media (max-width: 991.98px) { + .-hide-paging .-pagination .-center { + display: none; + } +} +@media (max-width: 575.98px) { + .app-main .app-main__inner { + padding: 15px 15px 0; + } + .mbg-3, +body .card.mb-3 { + margin-bottom: 0.75rem !important; + } + .app-page-title { + padding: 0.75rem; + margin: -0.75rem -0.75rem 0.75rem; + } + .app-page-title + .body-tabs-layout { + margin-top: -0.75rem !important; + } + .body-tabs-line .body-tabs-layout { + margin-bottom: 0.75rem; + margin-left: -0.75rem; + margin-right: -0.75rem; + padding: 0 15px; + } + .body-tabs { + padding: 0 0.75rem; + display: block; + } + .body-tabs .nav-item .nav-link { + margin: 0; + } + .popover, +.dropdown-menu { + width: 80%; + left: 10%; + } + body .card-header { + height: auto; + display: block; + padding: 0.75rem 1.5rem; + text-align: center; + } + body .card-header .btn-actions-pane-right { + padding: 0.75rem 0 0; + } + body .card-header .actions-icon-btn { + padding: 0; + } + .card-header.card-header-tab .card-header-title { + display: inline-flex !important; + line-height: 1; + } + .card-header.card-header-tab > .nav { + margin: 0.75rem 0 -0.75rem; + display: table !important; + width: 100%; + } + .card-header.card-header-tab > .nav .nav-item { + display: table-cell; + } + .header-icon { + display: none; + } + .profile-responsive-sm .dropdown-menu-header .menu-header-content.btn-pane-right, +.profile-responsive .dropdown-menu-header .menu-header-content.btn-pane-right { + display: block; + text-align: center; + } + .profile-responsive-sm .dropdown-menu-header .menu-header-content.btn-pane-right .avatar-icon-wrapper, +.profile-responsive .dropdown-menu-header .menu-header-content.btn-pane-right .avatar-icon-wrapper { + margin-right: 0 !important; + } + .profile-responsive-sm .dropdown-menu-header .menu-header-content.btn-pane-right .menu-header-btn-pane, +.profile-responsive .dropdown-menu-header .menu-header-content.btn-pane-right .menu-header-btn-pane { + margin-top: 1rem; + } + .slick-slider-sm .slick-slider .slick-prev { + left: 0.75rem; + } + .slick-slider-sm .slick-slider .slick-next { + right: 0.75rem; + } +} +@media only screen and (min-width: 1200px) and (max-width: 1500px) { + .profile-responsive .dropdown-menu-header .menu-header-content.btn-pane-right { + display: block; + text-align: center; + } + .profile-responsive .dropdown-menu-header .menu-header-content.btn-pane-right .avatar-icon-wrapper { + margin-right: 0 !important; + } + .profile-responsive .dropdown-menu-header .menu-header-content.btn-pane-right .menu-header-btn-pane { + margin-top: 1rem; + } +} +.ui-theme-settings { + position: fixed; + z-index: 155; + right: -30px; + top: 0; + height: 100vh; + transform: translate(500px); + transition: all 0.2s; + box-shadow: -0.46875rem 0 2.1875rem rgba(4, 9, 20, 0.03), -0.9375rem 0 1.40625rem rgba(4, 9, 20, 0.03), -0.25rem 0 0.53125rem rgba(4, 9, 20, 0.05), -0.125rem 0 0.1875rem rgba(4, 9, 20, 0.03); +} +.ui-theme-settings .btn-open-options { + border-radius: 50px; + position: absolute; + left: -114px; + bottom: 80px; + padding: 0; + height: 54px; + line-height: 54px; + width: 54px; + text-align: center; + display: block; + box-shadow: 0 0.46875rem 2.1875rem rgba(4, 9, 20, 0.03), 0 0.9375rem 1.40625rem rgba(4, 9, 20, 0.03), 0 0.25rem 0.53125rem rgba(4, 9, 20, 0.05), 0 0.125rem 0.1875rem rgba(4, 9, 20, 0.03); + margin-top: -27px; +} +.ui-theme-settings .btn-open-options svg { + top: 50%; + left: 50%; + position: absolute; + margin: -0.5em 0 0 -0.5em; +} +.ui-theme-settings .theme-settings__inner { + background: #fff; + width: 500px; + height: 100vh; + padding: 0; +} +.ui-theme-settings.settings-open { + transform: translate(0); + right: 0; +} +.ui-theme-settings .theme-settings-swatches { + text-align: center; +} +.ui-theme-settings .theme-settings-swatches .swatch-holder-img { + width: 72px; + height: auto; + border-radius: 3px; +} +.ui-theme-settings .theme-settings-swatches .swatch-holder-img img { + width: 100%; +} +.ui-theme-settings .themeoptions-heading { + font-size: 1.1rem; + color: #495057; + margin: 0; + background: #f8f9fa; + padding: 0.75rem 1.5rem; + border-bottom: #dee2e6 solid 1px; + border-top: #dee2e6 solid 1px; + display: flex; + align-items: center; + align-content: center; +} +.ui-theme-settings .themeoptions-heading:first-child { + border-top: 0; +} +.ui-theme-settings .list-group-item h5, .ui-theme-settings .list-group-item .h5 { + color: #3f6ad8; + font-size: 0.968rem; + text-transform: uppercase; + margin: 0; + text-align: center; +} + +.swatch-holder { + width: 24px; + height: 24px; + line-height: 24px; + margin: 5px 5px 0; + transition: all 0.2s; + opacity: 0.7; + display: inline-block; + border-radius: 30px; +} +.swatch-holder.active { + border: #fff solid 2px; + box-shadow: 0 0 0 5px #3f6ad8; + opacity: 1; +} +.swatch-holder:hover { + opacity: 1; +} + +.swatch-holder-lg { + width: 48px; + height: 48px; + line-height: 48px; +} + +.font-icon-wrapper { + text-align: center; + border: #e9ecef solid 1px; + border-radius: 0.25rem; + margin: 0 0 10px; + padding: 5px; +} +.font-icon-wrapper.font-icon-lg { + float: left; + padding: 10px; + text-align: center; + margin-right: 15px; + min-width: 64px; +} +.font-icon-wrapper.font-icon-lg i { + font-size: 2.2rem; +} +.font-icon-wrapper:hover { + background: #f8f9fa; + color: #3f6ad8; +} +.font-icon-wrapper:hover p { + color: #6c757d; +} +.font-icon-wrapper i { + font-size: 1.65rem; +} +.font-icon-wrapper p { + color: #adb5bd; + font-size: 0.8066666667rem; + margin: 5px 0 0; +} + +.btn-icon-vertical { + min-width: 100px; +} + +.card.mb-3 { + margin-bottom: 1.5rem !important; +} + +.demo-image-bg { + height: 350px; + margin-bottom: 1.5rem; + background-size: 100%; +} diff --git a/webservice/templates/metric_desc.html b/webservice/templates/metric_desc.html index c87175a..d2b525e 100644 --- a/webservice/templates/metric_desc.html +++ b/webservice/templates/metric_desc.html @@ -6,51 +6,24 @@ - Diversity - Shannon Entropy - The diversity of the recommendations according to GiniIndex. The index is 0 - when all items are chosen equally often, and 1 when a single item is always chosen. + {{data.name}} + - - - + @@ -94,7 +67,44 @@
- + + + +
-
7.7029
+
{{data.diversity.value}}
From 791fcb4c80d1c2f1fe54e6062b499194bebab1ca Mon Sep 17 00:00:00 2001 From: nikosT Date: Tue, 13 Sep 2022 15:03:59 +0300 Subject: [PATCH 71/89] Sorting the metrics description fields in sidebar --- webservice/templates/kpis.html | 4 ++-- webservice/templates/metric_desc.html | 4 ++-- webservice/templates/rsmetrics.html | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/webservice/templates/kpis.html b/webservice/templates/kpis.html index e31bb06..9162f5d 100644 --- a/webservice/templates/kpis.html +++ b/webservice/templates/kpis.html @@ -155,7 +155,7 @@
  • Metrics Documentation
  • - {%for key, item in data.sidebar_info.metric_descriptions.items() %} + {%for key, item in data.sidebar_info.metric_descriptions.items() | sort %}
  • @@ -408,4 +408,4 @@
    /{{item.orders.of_total}}
  • - \ No newline at end of file + diff --git a/webservice/templates/metric_desc.html b/webservice/templates/metric_desc.html index 36e5c96..f1f9d99 100644 --- a/webservice/templates/metric_desc.html +++ b/webservice/templates/metric_desc.html @@ -159,7 +159,7 @@
  • Metrics Documentation
  • - {%for key, item in data.sidebar_info.metric_descriptions.items() %} + {%for key, item in data.sidebar_info.metric_descriptions.items() | sort %}
  • @@ -302,4 +302,4 @@
    Process - \ No newline at end of file + diff --git a/webservice/templates/rsmetrics.html b/webservice/templates/rsmetrics.html index 6d8c112..b712818 100644 --- a/webservice/templates/rsmetrics.html +++ b/webservice/templates/rsmetrics.html @@ -155,7 +155,7 @@
  • Metrics Documentation
  • - {%for key, item in data.sidebar_info.metric_descriptions.items() %} + {%for key, item in data.sidebar_info.metric_descriptions.items() | sort %}
  • From 65cc16848a3e09e518769263da66fdd30d85aa01 Mon Sep 17 00:00:00 2001 From: nikosT Date: Wed, 14 Sep 2022 14:22:25 +0300 Subject: [PATCH 72/89] REC 93, Part c: New implementation of the Gini Index (basic) including services of 0 occurrence --- metrics.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/metrics.py b/metrics.py index 6b34e76..8af99af 100644 --- a/metrics.py +++ b/metrics.py @@ -500,14 +500,19 @@ def diversity_gini(object, anonymous=False): # key= and value= d_service=gr_service['User'].to_dict() - + # total number of recommended services n_recommended_items = len(d_service) + + # total number of services num_items = services(object) - gini = sum([(2 * (j + 1 + num_items-n_recommended_items) -num_items -1) * (cs / free_norm) for j, cs in enumerate(sorted(d_service.values()))]) + # create a zero list + # to calculate gini index including elements with 0 occurance + zeros=[0]*(num_items-n_recommended_items) + + gini = sum([(2*(j + 1) -num_items -1) * (cs / free_norm) for j, cs in enumerate(zeros+sorted(d_service.values()))]) gini /= (num_items - 1) - gini = 1 - gini return round(gini,4) From 101bf27bd17926ec32c60babc1a1eafa8e47dfab Mon Sep 17 00:00:00 2001 From: Konstantinos Kagkelidis Date: Fri, 16 Sep 2022 15:13:00 +0300 Subject: [PATCH 73/89] Remove redudant close statments --- webservice/app.py | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/webservice/app.py b/webservice/app.py index d4f7f5f..8107b6e 100644 --- a/webservice/app.py +++ b/webservice/app.py @@ -31,7 +31,6 @@ def load_sidebar_info(): # Remove .yml suffix from filename name=re.sub('\.yml$', '', filename) desc[name]= { 'fullname': result['name'], 'style': result['style']} - f.close() except: app.logger.error('Could not load sidebar info from metric description folder:%s',app.config['RS_EVALUATION_METRIC_DESC']) return {'metric_descriptions':desc} @@ -97,7 +96,6 @@ def html_metric_description(metric_name): result = yaml.safe_load(f) result['sidebar_info'] = app.sidebar_info result['metric_active'] = metric_name - f.close() except: abort(404) @@ -112,7 +110,6 @@ def get_api_index(): with open(app.config['RS_EVALUATION_METRICS_FILE'], 'r') as f: result = json.load(f) - f.close() return jsonify(result) @@ -123,7 +120,6 @@ def get_metrics(): with open(app.config['RS_EVALUATION_METRICS_FILE'], 'r') as f: result = json.load(f) - f.close() return jsonify(result['metrics']) @app.route("/api/metrics/") @@ -133,7 +129,6 @@ def get_metric(metric_name): with open(app.config['RS_EVALUATION_METRICS_FILE'], 'r') as f: result = json.load(f) - f.close() for metric in result['metrics']: if metric['name'] == metric_name: @@ -148,7 +143,6 @@ def get_statistics(): with open(app.config['RS_EVALUATION_METRICS_FILE'], 'r') as f: result = json.load(f) - f.close() return jsonify(result['statistics']) @app.route("/api/statistics/") @@ -158,10 +152,9 @@ def get_statistic(stat_name): with open(app.config['RS_EVALUATION_METRICS_FILE'], 'r') as f: result = json.load(f) - f.close() for stat in result['statistics']: if stat['name'] == stat_name: return jsonify(stat) - return jsonify({'code':404,'error':'metric with name: {} does not exist!'.format(stat_name)}),404 \ No newline at end of file + return jsonify({'code':404,'error':'metric with name: {} does not exist!'.format(stat_name)}),404 From 9fd8dbf5f7c262b5aafe4fe3418da10b77cbb22a Mon Sep 17 00:00:00 2001 From: nikosT Date: Mon, 19 Sep 2022 11:55:49 +0300 Subject: [PATCH 74/89] REC 93, Part d: YAML file for Diversity Gini Index has been updated. --- metric_descriptions/diversity-gini.yml | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/metric_descriptions/diversity-gini.yml b/metric_descriptions/diversity-gini.yml index e78c92a..25b746e 100644 --- a/metric_descriptions/diversity-gini.yml +++ b/metric_descriptions/diversity-gini.yml @@ -4,10 +4,11 @@ summary: > Measures Recommendations' diversity. The index is 0 when all items are chosen equally often, and 1 when a single item is always chosen. description: > - The diversity of the recommendations according to Gini Index. The index is 0 when all items are chosen equally often, - and 1 when a single item is always chosen (see book \url{https://link.springer.com/10.1007/978-1-4939-7131-2_110158}). Initially, the Gini Index (H) is defined as: - $$G=\frac{1}{n-1}\sum_{j=1}^{n}(2j-n-1)p(i_j)$$where $$i_1,\ldots,i_n$$ is the list of items ordered according to increasing $$p(i)$$ and each item $$i$$ accounts for a proportion $$p(i)$$ of user recommendations. In RS Metrics the computation is determined by the following forumla: - $$G=1-\frac{\sum_{i=0}^{rec\_services}[2(i+1+services-rec\_services)-services-1]\frac{count(i)}{recommendations}}{services-1}$$, where $$count(i)$$ indicates how many times service $$i$$ has been recommended. + The diversity (\(G\)) of the recommendations according to Gini Index. The index is 0 when all items are chosen equally often, + and 1 when a single item is always chosen + (see book \(\href{https://link.springer.com/10.1007/978-1-4939-7131-2_110158}{https://link.springer.com/10.1007/978-1-4939-7131-2_110158}\)). Generally, the Gini Index mathematical expression is defined as: + $$G=\frac{1}{n-1}\sum_{j=1}^{n}(2j-n-1)p(i_j)$$where \(i_1,\ldots,i_n\) is the list of items ordered according to increasing \(p(i)\) and each item \(i\) accounts for a proportion \(p(i)\) of user recommendations. In RS Metrics the computation is determined by the following forumla: + $$Diversity=\frac{1}{n-1}\sum_{j=1}^{n}(2j-n-1)\left(\frac{count(j)}{recommendations}\right)$$ output: type: float @@ -25,16 +26,19 @@ process: Recommendations clean up; entries removal where users or services are not found in "users" or "services" files accordingly - step: Services Impact details: > - Calculation of the impact of the services, by counting how many times each service i was suggested to all possible users: count(i) + Calculation of the impact of the services, by counting how many times each service i was suggested to all possible users: count(j) - step: Sort Services Impact from low to high details: > - Sort the number of how many times each service (i.e. i) was suggested from the lower to the higher value, in order to apply the respective weight (i) - - step: Calculate the opposite of the Gini index computation + Sort the number of how many times each service (i.e. i) was suggested from the lower to the higher value, in order to apply the respective weight (j). The computation includes services with 0 recommendation occurrence + - step: Recommended Probability of the Services details: > - Calculation of the opposite of the Gini Index (1-G) by applying the suggested formula - - step: Calculate Gini Index and normalize it + For each service calculate its recommended probability by dividing the number of service's occurrence found in the recommendations to the total number of recommendations + - step: Service-based product computation details: > - Computation of the Gini Index and divide it by the number of services + Calculation of the product of the recommended probability from previous step and services' respective index j, for each service individually + - step: Gini Index computation + details: > + Computation of the overall value by summing all values from previous step # This is optional for visual stylization of the metric when displayed on the report style: From b31d2485d5cd65e3d63f4f957919b92314dec8fd Mon Sep 17 00:00:00 2001 From: Konstantinos Kagkelidis Date: Tue, 20 Sep 2022 09:52:28 +0300 Subject: [PATCH 75/89] REC-96 update docs in users, services and recommendation metrics --- metrics.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/metrics.py b/metrics.py index 8af99af..bb3a0d7 100644 --- a/metrics.py +++ b/metrics.py @@ -52,7 +52,7 @@ def end(object): return str(max(max(object.user_actions['Timestamp']),max(object.recommendations['Timestamp']))) -@statistic('The total number of unique users found in users.csv (if provided), otherwise in user_actions.csv') +@statistic('The total number of unique registered users in the system') def users(object): """ Calculate the total number of unique users @@ -62,7 +62,7 @@ def users(object): return int(object.users['User'].nunique()) -@statistic('The total number of unique services found in services.csv (if provided), otherwise in user_actions.csv') +@statistic('The total number of unique published services in the system') def services(object): """ Calculate the total number of unique services @@ -72,7 +72,7 @@ def services(object): return int(object.services['Service'].nunique()) -@statistic('The total number of recommendations found in recommendations.csv') +@statistic('The total number of recommendations generated by the system') def recommendations(object): """ Calculate the total number of recommendations From 07887aa8f49ee060e1ca366d6ee98b28122c3071 Mon Sep 17 00:00:00 2001 From: Nikolaos Triantafyllis Date: Wed, 21 Sep 2022 17:43:25 +0300 Subject: [PATCH 76/89] REC-95 Retrieve service name from EOSC-Marketplace --- metrics.py | 4 ++-- preprocessor.py | 17 +++++++++-------- rsmetrics.py | 2 +- 3 files changed, 12 insertions(+), 11 deletions(-) diff --git a/metrics.py b/metrics.py index bb3a0d7..1e84ee5 100644 --- a/metrics.py +++ b/metrics.py @@ -528,7 +528,7 @@ def top5_services_recommended(object, k=5, base='https://marketplace.eosc-portal # (v) percentage of the (iv) to the total number of recommendations # expressed in %, with or without anonymous, based on the function's flag Service's info is being retrieved from the servives.csv file - (i.e. each line forms: service_id, rating, service_name, page_id) + (i.e. each line forms: service_id, service_name, page_id) """ # keep recommendations with or without anonymous suggestions # based on anonymous flag (default=False, i.e. ignore anonymous) @@ -593,7 +593,7 @@ def top5_services_ordered(object, k=5, base='https://marketplace.eosc-portal.eu' # (v) percentage of the (iv) to the total number of orders # expressed in %, with or without anonymous, based on the function's flag Service's info is being retrieved from the services.csv file - (i.e. each line forms: service_id, rating, service_name, page_id) + (i.e. each line forms: service_id, service_name, page_id) """ # keep user actions with or without anonymous suggestions # based on anonymous flag (default=False, i.e. ignore anonymous) diff --git a/preprocessor.py b/preprocessor.py index 800ad56..04e45d7 100755 --- a/preprocessor.py +++ b/preprocessor.py @@ -151,10 +151,11 @@ def __init__(self, source_page_id, target_page_id, order): lines=f.readlines() keys=list(map(lambda x: remove_service_prefix(x.split(',')[-1]).strip(), lines)) -values=list(map(lambda x: x.split(',')[0].strip(), lines)) +ids=list(map(lambda x: x.split(',')[0].strip(), lines)) +names=list(map(lambda x: x.split(',')[1].strip(), lines)) -dmap=dict(zip(keys, values)) #=> {'a': 1, 'b': 2} -rdmap = {y: x for x, y in dmap.items()} # reverse dictionary +dmap=dict(zip(keys, zip(ids,names))) #=> {'a': 1, 'b': 2} +rdmap=dict(zip(ids,zip(keys,names))) # reward_mapping.py is modified so that the function # reads the Transition rewards csv file once @@ -182,13 +183,13 @@ def __init__(self, source_page_id, target_page_id, order): # if not set service id to -1 try: _pageid="/"+"/".join(ua['source']['page_id'].split('/')[1:3]) - source_service_id=dmap[_pageid] + source_service_id=dmap[_pageid][0] except: source_service_id=-1 try: _pageid="/"+"/".join(ua['target']['page_id'].split('/')[1:3]) - target_service_id=dmap[_pageid] + target_service_id=dmap[_pageid][0] except: target_service_id=-1 @@ -254,11 +255,11 @@ def __init__(self, source_page_id, target_page_id, order): if config['Service']['from']=='page_map': - _ss=natsorted(list(set(list(map(lambda x: x+'\n',values)))),alg=ns.ns.SIGNED) + _ss=natsorted(list(set(list(map(lambda x: x+'\n',ids)))),alg=ns.ns.SIGNED) ss=[] for s in _ss: try: - ss.append(s.strip()+','+recdb["service"].find({'_id':int(s)})[0]['rating']+',"'+recdb["service"].find({'_id':int(s)})[0]['name']+'",'+rdmap[s.strip()]+'\n') + ss.append(s.strip()+',"'+rdmap[s.strip()][1]+'",'+rdmap[s.strip()][0]+'\n') except: continue @@ -267,7 +268,7 @@ def __init__(self, source_page_id, target_page_id, order): if config['Service']['published']: _query={"status":"published"} - _ss=natsorted(list(set(list(map(lambda x: str(x['_id'])+','+str(x['rating'])+',"'+str(x['name'])+'"\n',recdb["service"].find(_query))))),alg=ns.ns.SIGNED) + _ss=natsorted(list(set(list(map(lambda x: str(x['_id'])+',"'+str(x['name'])+'"\n',recdb["service"].find(_query))))),alg=ns.ns.SIGNED) ss=[] for s in _ss: try: diff --git a/rsmetrics.py b/rsmetrics.py index 4cd1a28..f97ecf8 100755 --- a/rsmetrics.py +++ b/rsmetrics.py @@ -93,7 +93,7 @@ def inner(): run.users=pd.read_csv(os.path.join(args.input,'users.csv'),names=["User","Services"],converters={'Services': lambda x: map(int,x.split())}) # populate services -run.services=pd.read_csv(os.path.join(args.input,'services.csv'),names=["Service", "Rating", "Name", "Page"]) +run.services=pd.read_csv(os.path.join(args.input,'services.csv'),names=["Service", "Name", "Page"]) # remove user actions when user or service does not exist in users' or services' catalogs # adding -1 in all catalogs indicating the anonynoums users or not-known services From cbc52e8ff594d37ea512727c0686009095a0fd42 Mon Sep 17 00:00:00 2001 From: Konstantinos Kagkelidis Date: Mon, 26 Sep 2022 10:27:10 +0300 Subject: [PATCH 77/89] REC-97 Calculate novelty using simpler expression --- metric_descriptions/novelty.yml | 35 ++++----- metrics.py | 105 ++++++++++---------------- webservice/templates/metric_desc.html | 9 +++ 3 files changed, 65 insertions(+), 84 deletions(-) diff --git a/metric_descriptions/novelty.yml b/metric_descriptions/novelty.yml index 2e72c56..cc58f21 100644 --- a/metric_descriptions/novelty.yml +++ b/metric_descriptions/novelty.yml @@ -1,16 +1,16 @@ name: Novelty summary: > - Calculating novelty (Expected Free Discovery -EFD-) as the expected Inverse Collection Frequency -ICF- of (relevant and seen) recommended items + The novelty metric expresses the ability of the system to recommend items not generally seen before + by the population of users. description: > - Calculating novelty (Expected Free Discovery -EFD-) as the expected Inverse Collection Frequency -ICF- of (relevant and seen) recommended items. - Initially, the Novelty (EFD) is defined as: - $$EFD=C\sum_{i_k \in \mathbb{R}}^{}disk(k)p(rel \mid i_k,u)(-\log_2 p(i \mid seen,\theta))$$where, \(disk(k)\) is a discount function, \(p(rel)\) is the probability of relevance, and the \(\log_{2}\) factor is a relative measure of how likely items are to be seen with respect to each other. - In RS Metrics the computation assumes that (i) recommendation items are equally weighted (rank=1), (ii) no extensive information is preserved if an item is liked, picked, enjoyed (relevance=1), (iii) user views all recommendation items together -without paging- (discount=1). See paper \(\href{https://dl.acm.org/doi/abs/10.1145/2043932.2043955}{https://dl.acm.org/doi/abs/10.1145/2043932.2043955}\). Thus, the computation is determined by the following formula: - $$Novelty=\frac{\sum_{u}^{rec\_users}nov\_user(u)}{rec\_users}$$where, $$nov\_user(u)=\frac{\sum_{i}^{services(u)}novelty(i)}{recommendations(u)}$$and, - \[ novelty(i)= \begin{cases} -\log_2\left(\frac{count(i)}{recommendations}\right),& i \in services(u) \\ -\log_2\left(\frac{min\{count(j), \forall j \in services\}}{recommendations}\right), & i \notin services(u) \end{cases} \] + Calculating novelty of the recommender system based on the user actions using the following formula: + $$Novelty=\frac{\sum\nolimits_{i \in R}-log(p(i))}{|R|}$$ + + For each service item $i$ beloning to the set of recommended services $R$ calculate the portion $p(i)$ of the times + the service has been viewed to the total views of the services produced by the user actions data. @@ -18,29 +18,30 @@ output: type: float min: 0 max: +\(\infty\) - comment: Novelty of a user is 0 when a single item is always chosen or recommended, and \(n\log_2{n}\) when n items are chosen or recommended equally often. + comment: Novelty expresses the ability of the system to recommend items that are novel (not seen before) by the population of users. A smaller number expresses that more services are being recommended that the users have not seen before prerequisites: - all available recommendations associated with registered users - - all available user actions associated with registered users + - a subset of the available user actions associated with registered users that expresses transitions to service pages process: - step: Clean up details: > Recommendations and user actions clean up; entries removal where users or services are not found in "users" or "services" files accordingly - - step: Services Impact + - step: User actions that target services details: > - Calculation of the impact of the services, by counting how many times each service (i.e. i) was suggested to all possible users: count(i) - - step: Calculate novelty of a service (i.e. novelty(i)) + Identify and keep user actions that express transition to target pages that are views of services. + Additionally, user actions where the source and the target page belong to the same service's space are removed from the process. + - step: Calculate views for each service details: > - Calculation of the novelty of the service, by computing the logarithm of the division of how many times (i.e. count(i)) each service (i.e. i) was suggested by the number of recommendations - - step: Calculate novelty for a user (i.e. nov_user(u)) + Group and count user actions that express views for each recommended service id + - step: Calculate view propability p(i) of each service details: > - Calculation of the novelty occurred for each user, by summing up all services' novelty for all available services found in user actions and divided them by the number of recommendations made to the user. If a service is found in user actions but it has not been suggested to the user, then the novelty value is set to the minimum one computed in the dataset. + Calculation of the view propability of each service which is the fraction of the service's views to the total service views - step: Overall Novelty computation details: > - Computation of the overall value by summing all values from previous step and dividing them by the total - number of users (found in recommendations) + Computation of the overall value by summing the negative log of all recommended service views from previous step and dividing them by the total + number of recommended services # This is optional for visual stylization of the metric when displayed on the report style: diff --git a/metrics.py b/metrics.py index 1e84ee5..f45fcf7 100644 --- a/metrics.py +++ b/metrics.py @@ -402,74 +402,45 @@ def diversity(object, anonymous=False): return round(shannon_entropy,4) -@metric('Calculate novelty (Expected Free Discovery -EFD-) as the expected Inverse Collection Frequency -ICF- of (relevant and seen) recommended items') -def novelty(object, anonymous=False): - """ - Calculate novelty (Expected Free Discovery -EFD-) as - the expected Inverse Collection Frequency -ICF- of - (relevant and seen) recommended items - """ - # inner function to run on each pandas df row - def nanmap(row): - if np.isnan(row.values[0]): - try: - return gr_service_target['User'][row.name] - except: - return gr_service_source['User'][row.name] - else: - return row - # no ranking (rank=1) - recommendation items are equally weighted - # no relevance (p(rel)=1) - an item is liked, picked, enjoyed (not such info) - # no discount - (disc(k)=1) - user views all recommendation items (not paging) - - # keep recommendations with or without anonymous suggestions - # based on anonymous flag (default=False, i.e. ignore anonymous) - if anonymous: - recs=object.recommendations - uas=object.user_actions - else: - recs=object.recommendations[(object.recommendations['User'] != -1)] - uas=object.user_actions[(object.user_actions['User'] != -1)] - - # item_count - # group user actions entries by service id and - # then count how many times each service has been suggested - gr_service_source=uas.groupby(['Source_Service']).count() - gr_service_target=uas.groupby(['Target_Service']).count() - # merge above results - gr_service=gr_service_source+gr_service_target - # when nan value find a keep the other value (search on both dfs) - gr_service=gr_service.apply(nanmap, axis=1) - - # create a dictionary of item_count in order to - # map the service id to the respective item_count - # key= and value= - d_service=gr_service['User'].to_dict() - - # this variable keeps the sum of user_norm (where user_norm is - # the count of how many times a User has been suggested) - # however since no cutoff at per user recommendations is applied and - # also since each recommendation entry is one-to-one - # then the total number of recommendations is equal to this sum - norm=sum(d_service.values()) - - # get the max novelty by getting the service with the lowest item_count - max_nov=-math.log2(min(d_service.values())/norm) - - # calculate novelty for all services - d_service = {service: -math.log2(item_count/norm) for service, item_count in d_service.items()} # fix user_actions not recommendations to gather services - - # get all unique users found in recommendations - users = recs['User'].unique() - - # use max_nov -> min count if x service not found (removed functionality) - d_user={} - for u in users: - u_norm=len(recs[(recs['User']==u)].index) - d_user[u]=sum(list(map(lambda x: d_service.get(x, max_nov),recs[(recs['User']==u)]['Service'].tolist())))/u_norm # fix norm=number of recommended items per user +@metric('The novelty expresses how often new and unseen items are recommended to users') +def novelty(object): + """Calculate novelty of recommendations using the n=SUM(-log(p(i)))/|R| formula + """ + # published services + services_pub = object.services['Service'] + # recommended services to authenticated users + services_rec = object.recommendations[object.recommendations['User']!=-1]['Service'] + # services that are published and recommended + services_recpub = services_rec[services_rec.isin(services_pub)].drop_duplicates() + + # user actions + ua = object.user_actions + # user actions filtered if src and target the same. Also filter out if target equals -1 and filter out anonymous users + ua_serv_view = ua[(ua['Source_Service'] != ua['Target_Service']) & (ua['Target_Service'] != -1) & (ua['User']!=-1)] + + # count service views by service id (sorted by service id) + services_viewed = ua_serv_view['Target_Service'].value_counts().sort_index() + + # create a table for each recommended service with columns for number of views, p(i) and -log(pi) + r_services = pd.DataFrame(index=services_recpub).sort_index() + # add views column to assign views to each recommended service + r_services['views'] = services_viewed + + # count the total service views in order to compute the portions p(i) + total_views = r_services['views'].sum() + + # count the total recommended services |R| + total_services = len(r_services) + # compute the p(i) of each recommeneded service + r_services['pi']=r_services['views'] / total_views + # calculate the negative log of the p(i). + r_services['-logpi']=-1* np.log2(r_services['pi']) + + # calculate novelty based on formula n=SUM(-log(p(i)))/|R| + novelty = r_services['-logpi'].sum()/total_services + + return round(novelty,4) - # average value (not in elliot) - return round(sum(d_user.values())/len(users),4) @metric('The diversity of the recommendations according to GiniIndex. The index is 0 when all items are chosen equally often, and 1 when a single item is always chosen.') def diversity_gini(object, anonymous=False): diff --git a/webservice/templates/metric_desc.html b/webservice/templates/metric_desc.html index f1f9d99..69b64ec 100644 --- a/webservice/templates/metric_desc.html +++ b/webservice/templates/metric_desc.html @@ -108,6 +108,15 @@ + +