diff --git a/.env.template b/.env.template index c76e7c8dbd..8bf5b484b6 100644 --- a/.env.template +++ b/.env.template @@ -68,6 +68,10 @@ SHOPPING_MIN_AUTOSYNC_INTERVAL=5 # when unset: 1 (true) - this is temporary until an appropriate amount of time has passed for everyone to migrate GUNICORN_MEDIA=0 +# GUNICORN SERVER RELATED SETTINGS (see https://docs.gunicorn.org/en/stable/design.html#how-many-workers for recommended settings) +# GUNICORN_WORKERS=1 +# GUNICORN_THREADS=1 + # S3 Media settings: store mediafiles in s3 or any compatible storage backend (e.g. minio) # as long as S3_ACCESS_KEY is not set S3 features are disabled # S3_ACCESS_KEY= diff --git a/boot.sh b/boot.sh index e4fa160e07..be117d7a94 100644 --- a/boot.sh +++ b/boot.sh @@ -2,6 +2,8 @@ source venv/bin/activate TANDOOR_PORT="${TANDOOR_PORT:-8080}" +GUNICORN_WORKERS="${GUNICORN_WORKERS}" +GUNICORN_THREADS="${GUNICORN_THREADS}" NGINX_CONF_FILE=/opt/recipes/nginx/conf.d/Recipes.conf display_warning() { @@ -63,4 +65,4 @@ echo "Done" chmod -R 755 /opt/recipes/mediafiles -exec gunicorn -b :$TANDOOR_PORT --access-logfile - --error-logfile - --log-level INFO recipes.wsgi +exec gunicorn -b :$TANDOOR_PORT --workers $GUNICORN_WORKERS --threads $GUNICORN_THREADS --access-logfile - --error-logfile - --log-level INFO recipes.wsgi diff --git a/cookbook/admin.py b/cookbook/admin.py index 4b0d1acd22..5b95687b7a 100644 --- a/cookbook/admin.py +++ b/cookbook/admin.py @@ -48,7 +48,7 @@ class SpaceAdmin(admin.ModelAdmin): class UserSpaceAdmin(admin.ModelAdmin): list_display = ('user', 'space',) - search_fields = ('user', 'space',) + search_fields = ('user__username', 'space__name',) admin.site.register(UserSpace, UserSpaceAdmin) diff --git a/cookbook/helper/context_processors.py b/cookbook/helper/context_processors.py index 449ccbf575..30e704c135 100644 --- a/cookbook/helper/context_processors.py +++ b/cookbook/helper/context_processors.py @@ -10,4 +10,5 @@ def context_settings(request): 'TERMS_URL': settings.TERMS_URL, 'PRIVACY_URL': settings.PRIVACY_URL, 'IMPRINT_URL': settings.IMPRINT_URL, + 'SHOPPING_MIN_AUTOSYNC_INTERVAL': settings.SHOPPING_MIN_AUTOSYNC_INTERVAL, } diff --git a/cookbook/helper/ingredient_parser.py b/cookbook/helper/ingredient_parser.py index 8a4fc30ac4..468f1128f7 100644 --- a/cookbook/helper/ingredient_parser.py +++ b/cookbook/helper/ingredient_parser.py @@ -221,8 +221,8 @@ def parse(self, ingredient): # some people/languages put amount and unit at the end of the ingredient string # if something like this is detected move it to the beginning so the parser can handle it - if len(ingredient) < 1000 and re.search(r'^([A-z])+(.)*[1-9](\d)*\s([A-z])+', ingredient): - match = re.search(r'[1-9](\d)*\s([A-z])+', ingredient) + if len(ingredient) < 1000 and re.search(r'^([^\W\d_])+(.)*[1-9](\d)*\s*([^\W\d_])+', ingredient): + match = re.search(r'[1-9](\d)*\s*([^\W\d_])+', ingredient) print(f'reording from {ingredient} to {ingredient[match.start():match.end()] + " " + ingredient.replace(ingredient[match.start():match.end()], "")}') ingredient = ingredient[match.start():match.end()] + ' ' + ingredient.replace(ingredient[match.start():match.end()], '') diff --git a/cookbook/helper/mdx_urlize.py b/cookbook/helper/mdx_urlize.py index 92bcc98bee..28f5056bdf 100644 --- a/cookbook/helper/mdx_urlize.py +++ b/cookbook/helper/mdx_urlize.py @@ -73,9 +73,9 @@ def handleMatch(self, m): class UrlizeExtension(markdown.Extension): """ Urlize Extension for Python-Markdown. """ - def extendMarkdown(self, md, md_globals): + def extendMarkdown(self, md): """ Replace autolink with UrlizePattern """ - md.inlinePatterns['autolink'] = UrlizePattern(URLIZE_RE, md) + md.inlinePatterns.register(UrlizePattern(URLIZE_RE, md), 'autolink', 120) def makeExtension(*args, **kwargs): diff --git a/cookbook/helper/permission_helper.py b/cookbook/helper/permission_helper.py index 2f0217f96e..062028ee28 100644 --- a/cookbook/helper/permission_helper.py +++ b/cookbook/helper/permission_helper.py @@ -1,15 +1,19 @@ +import inspect + from django.conf import settings from django.contrib import messages from django.contrib.auth.decorators import user_passes_test -from django.core.cache import caches +from django.core.cache import cache from django.core.exceptions import ValidationError, ObjectDoesNotExist from django.http import HttpResponseRedirect from django.urls import reverse, reverse_lazy from django.utils.translation import gettext as _ +from oauth2_provider.contrib.rest_framework import TokenHasScope, TokenHasReadWriteScope +from oauth2_provider.models import AccessToken from rest_framework import permissions from rest_framework.permissions import SAFE_METHODS -from cookbook.models import ShareLink, Recipe, UserPreference, UserSpace +from cookbook.models import ShareLink, Recipe, UserSpace def get_allowed_groups(groups_required): @@ -27,11 +31,12 @@ def get_allowed_groups(groups_required): return groups_allowed -def has_group_permission(user, groups): +def has_group_permission(user, groups, no_cache=False): """ Tests if a given user is member of a certain group (or any higher group) Superusers always bypass permission checks. Unauthenticated users can't be member of any group thus always return false. + :param no_cache: (optional) do not return cached results, always check agains DB :param user: django auth user object :param groups: list or tuple of groups the user should be checked for :return: True if user is in allowed groups, false otherwise @@ -39,13 +44,24 @@ def has_group_permission(user, groups): if not user.is_authenticated: return False groups_allowed = get_allowed_groups(groups) + + CACHE_KEY = hash((inspect.stack()[0][3], (user.pk, user.username, user.email), groups_allowed)) + if not no_cache: + cached_result = cache.get(CACHE_KEY, default=None) + if cached_result is not None: + return cached_result + + result = False + print('running check', user, groups_allowed) if user.is_authenticated: if user_space := user.userspace_set.filter(active=True): if len(user_space) != 1: - return False # do not allow any group permission if more than one space is active, needs to be changed when simultaneous multi-space-tenancy is added - if bool(user_space.first().groups.filter(name__in=groups_allowed)): - return True - return False + result = False # do not allow any group permission if more than one space is active, needs to be changed when simultaneous multi-space-tenancy is added + elif bool(user_space.first().groups.filter(name__in=groups_allowed)): + result = True + + cache.set(CACHE_KEY, result, timeout=10) + return result def is_object_owner(user, obj): @@ -104,7 +120,7 @@ def share_link_valid(recipe, share): """ try: CACHE_KEY = f'recipe_share_{recipe.pk}_{share}' - if c := caches['default'].get(CACHE_KEY, False): + if c := cache.get(CACHE_KEY, False): return c if link := ShareLink.objects.filter(recipe=recipe, uuid=share, abuse_blocked=False).first(): @@ -112,7 +128,7 @@ def share_link_valid(recipe, share): return False link.request_count += 1 link.save() - caches['default'].set(CACHE_KEY, True, timeout=3) + cache.set(CACHE_KEY, True, timeout=3) return True return False except ValidationError: @@ -338,6 +354,34 @@ def has_object_permission(self, request, view, obj): # object write permissions return False +class CustomTokenHasScope(TokenHasScope): + """ + Custom implementation of Django OAuth Toolkit TokenHasScope class + Only difference: if any other authentication method except OAuth2Authentication is used the scope check is ignored + IMPORTANT: do not use this class without any other permission class as it will not check anything besides token scopes + """ + + def has_permission(self, request, view): + if type(request.auth) == AccessToken: + return super().has_permission(request, view) + else: + return request.user.is_authenticated + + +class CustomTokenHasReadWriteScope(TokenHasReadWriteScope): + """ + Custom implementation of Django OAuth Toolkit TokenHasReadWriteScope class + Only difference: if any other authentication method except OAuth2Authentication is used the scope check is ignored + IMPORTANT: do not use this class without any other permission class as it will not check anything besides token scopes + """ + + def has_permission(self, request, view): + if type(request.auth) == AccessToken: + return super().has_permission(request, view) + else: + return True + + def above_space_limit(space): # TODO add file storage limit """ Test if the space has reached any limit (e.g. max recipes, users, ..) diff --git a/cookbook/helper/recipe_search.py b/cookbook/helper/recipe_search.py index d651a6ee22..a618efb1fc 100644 --- a/cookbook/helper/recipe_search.py +++ b/cookbook/helper/recipe_search.py @@ -3,8 +3,9 @@ from datetime import date, timedelta from django.contrib.postgres.search import SearchQuery, SearchRank, SearchVector, TrigramSimilarity +from django.core.cache import cache from django.core.cache import caches -from django.db.models import (Avg, Case, Count, Exists, F, Func, Max, OuterRef, Q, Subquery, Value, When) +from django.db.models import (Avg, Case, Count, Exists, F, Func, Max, OuterRef, Q, Subquery, Value, When, FilteredRelation) from django.db.models.functions import Coalesce, Lower, Substr from django.utils import timezone, translation from django.utils.translation import gettext as _ @@ -21,7 +22,7 @@ class RecipeSearch(): _postgres = settings.DATABASES['default']['ENGINE'] in ['django.db.backends.postgresql_psycopg2', 'django.db.backends.postgresql'] - def __init__(self, request, **params): + def __init__(self, request, **params): self._request = request self._queryset = None if f := params.get('filter', None): @@ -35,7 +36,13 @@ def __init__(self, request, **params): else: self._params = {**(params or {})} if self._request.user.is_authenticated: - self._search_prefs = request.user.searchpreference + CACHE_KEY = f'search_pref_{request.user.id}' + cached_result = cache.get(CACHE_KEY, default=None) + if cached_result is not None: + self._search_prefs = cached_result + else: + self._search_prefs = request.user.searchpreference + cache.set(CACHE_KEY, self._search_prefs, timeout=10) else: self._search_prefs = SearchPreference() self._string = self._params.get('query').strip() if self._params.get('query', None) else None @@ -110,19 +117,20 @@ def __init__(self, request, **params): ) self.search_rank = None self.orderby = [] - self._default_sort = ['-favorite'] # TODO add user setting self._filters = None self._fuzzy_match = None def get_queryset(self, queryset): self._queryset = queryset + self._queryset = self._queryset.prefetch_related('keywords') + self._build_sort_order() self._recently_viewed(num_recent=self._num_recent) self._cooked_on_filter(cooked_date=self._cookedon) self._created_on_filter(created_date=self._createdon) self._updated_on_filter(updated_date=self._updatedon) self._viewed_on_filter(viewed_date=self._viewedon) - self._favorite_recipes(timescooked=self._timescooked) + self._favorite_recipes(times_cooked=self._timescooked) self._new_recipes() self.keyword_filters(**self._keywords) self.food_filters(**self._foods) @@ -149,7 +157,7 @@ def _build_sort_order(self): else: order = [] # TODO add userpreference for default sort order and replace '-favorite' - default_order = ['-favorite'] + default_order = ['-name'] # recent and new_recipe are always first; they float a few recipes to the top if self._num_recent: order += ['-recent'] @@ -206,7 +214,7 @@ def string_filters(self, string=None): else: self._queryset = self._queryset.annotate(simularity=Coalesce(Subquery(simularity), 0.0)) if self._sort_includes('score') and self._fulltext_include and self._fuzzy_match is not None: - self._queryset = self._queryset.annotate(score=F('rank')+F('simularity')) + self._queryset = self._queryset.annotate(score=F('rank') + F('simularity')) else: query_filter = Q() for f in [x + '__unaccent__iexact' if x in self._unaccent_include else x + '__iexact' for x in SearchFields.objects.all().values_list('field', flat=True)]: @@ -287,25 +295,25 @@ def _recently_viewed(self, num_recent=None): 'recipe').annotate(recent=Max('created_at')).order_by('-recent')[:num_recent] self._queryset = self._queryset.annotate(recent=Coalesce(Max(Case(When(pk__in=num_recent_recipes.values('recipe'), then='viewlog__pk'))), Value(0))) - def _favorite_recipes(self, timescooked=None): - if self._sort_includes('favorite') or timescooked: - lessthan = '-' in (timescooked or []) or not self._sort_includes('-favorite') - if lessthan: + def _favorite_recipes(self, times_cooked=None): + if self._sort_includes('favorite') or times_cooked: + less_than = '-' in (times_cooked or []) or not self._sort_includes('-favorite') + if less_than: default = 1000 else: default = 0 favorite_recipes = CookLog.objects.filter(created_by=self._request.user, space=self._request.space, recipe=OuterRef('pk') ).values('recipe').annotate(count=Count('pk', distinct=True)).values('count') self._queryset = self._queryset.annotate(favorite=Coalesce(Subquery(favorite_recipes), default)) - if timescooked is None: + if times_cooked is None: return - if timescooked == '0': + if times_cooked == '0': self._queryset = self._queryset.filter(favorite=0) - elif lessthan: - self._queryset = self._queryset.filter(favorite__lte=int(timescooked[1:])).exclude(favorite=0) + elif less_than: + self._queryset = self._queryset.filter(favorite__lte=int(times_cooked[1:])).exclude(favorite=0) else: - self._queryset = self._queryset.filter(favorite__gte=int(timescooked)) + self._queryset = self._queryset.filter(favorite__gte=int(times_cooked)) def keyword_filters(self, **kwargs): if all([kwargs[x] is None for x in kwargs]): @@ -505,10 +513,10 @@ def _makenow_filter(self, missing=None): shopping_users = [*self._request.user.get_shopping_share(), self._request.user] onhand_filter = ( - Q(steps__ingredients__food__onhand_users__in=shopping_users) # food onhand - | Q(steps__ingredients__food__substitute__onhand_users__in=shopping_users) # or substitute food onhand - | Q(steps__ingredients__food__in=self.__children_substitute_filter(shopping_users)) - | Q(steps__ingredients__food__in=self.__sibling_substitute_filter(shopping_users)) + Q(steps__ingredients__food__onhand_users__in=shopping_users) # food onhand + | Q(steps__ingredients__food__substitute__onhand_users__in=shopping_users) # or substitute food onhand + | Q(steps__ingredients__food__in=self.__children_substitute_filter(shopping_users)) + | Q(steps__ingredients__food__in=self.__sibling_substitute_filter(shopping_users)) ) makenow_recipes = Recipe.objects.annotate( count_food=Count('steps__ingredients__food__pk', filter=Q(steps__ingredients__food__isnull=False), distinct=True), @@ -517,10 +525,10 @@ def _makenow_filter(self, missing=None): steps__ingredients__food__recipe__isnull=True), distinct=True), has_child_sub=Case(When(steps__ingredients__food__in=self.__children_substitute_filter(shopping_users), then=Value(1)), default=Value(0)), has_sibling_sub=Case(When(steps__ingredients__food__in=self.__sibling_substitute_filter(shopping_users), then=Value(1)), default=Value(0)) - ).annotate(missingfood=F('count_food')-F('count_onhand')-F('count_ignore_shopping')).filter(missingfood=missing) + ).annotate(missingfood=F('count_food') - F('count_onhand') - F('count_ignore_shopping')).filter(missingfood=missing) self._queryset = self._queryset.distinct().filter(id__in=makenow_recipes.values('id')) - @ staticmethod + @staticmethod def __children_substitute_filter(shopping_users=None): children_onhand_subquery = Food.objects.filter( path__startswith=OuterRef('path'), @@ -536,10 +544,10 @@ def __children_substitute_filter(shopping_users=None): ).annotate(child_onhand_count=Exists(children_onhand_subquery) ).filter(child_onhand_count=True) - @ staticmethod + @staticmethod def __sibling_substitute_filter(shopping_users=None): sibling_onhand_subquery = Food.objects.filter( - path__startswith=Substr(OuterRef('path'), 1, Food.steplen*(OuterRef('depth')-1)), + path__startswith=Substr(OuterRef('path'), 1, Food.steplen * (OuterRef('depth') - 1)), depth=OuterRef('depth'), onhand_users__in=shopping_users ) @@ -563,7 +571,7 @@ def __init__(self, request, queryset=None, hash_key=None, cache_timeout=3600): self._request = request self._queryset = queryset - self.hash_key = hash_key or str(hash(frozenset(self._queryset.values_list('pk')))) + self.hash_key = hash_key or str(hash(self._queryset.query)) self._SEARCH_CACHE_KEY = f"recipes_filter_{self.hash_key}" self._cache_timeout = cache_timeout self._cache = caches['default'].get(self._SEARCH_CACHE_KEY, {}) @@ -743,7 +751,7 @@ def _keyword_queryset(self, queryset, keyword=None): ).filter(depth=depth, count__gt=0 ).values('id', 'name', 'count', 'numchild').order_by(Lower('name').asc())[:200] else: - return queryset.filter(depth=depth).values('id', 'name', 'numchild').order_by(Lower('name').asc()) + return queryset.filter(depth=depth).values('id', 'name', 'numchild').order_by(Lower('name').asc()) def _food_queryset(self, queryset, food=None): depth = getattr(food, 'depth', 0) + 1 @@ -755,4 +763,3 @@ def _food_queryset(self, queryset, food=None): ).values('id', 'name', 'count', 'numchild').order_by(Lower('name').asc())[:200] else: return queryset.filter(depth__lte=depth).values('id', 'name', 'numchild').order_by(Lower('name').asc()) - diff --git a/cookbook/helper/scope_middleware.py b/cookbook/helper/scope_middleware.py index c3700e03b7..a0218f0892 100644 --- a/cookbook/helper/scope_middleware.py +++ b/cookbook/helper/scope_middleware.py @@ -1,5 +1,6 @@ from django.urls import reverse from django_scopes import scope, scopes_disabled +from oauth2_provider.contrib.rest_framework import OAuth2Authentication from rest_framework.authentication import TokenAuthentication from rest_framework.authtoken.models import Token from rest_framework.exceptions import AuthenticationFailed @@ -55,7 +56,7 @@ def __call__(self, request): else: if request.path.startswith(prefix + '/api/'): try: - if auth := TokenAuthentication().authenticate(request): + if auth := OAuth2Authentication().authenticate(request): user_space = auth[0].userspace_set.filter(active=True).first() if user_space: request.space = user_space.space diff --git a/cookbook/locale/da/LC_MESSAGES/django.po b/cookbook/locale/da/LC_MESSAGES/django.po index cedc8395c3..ebe0c1cca6 100644 --- a/cookbook/locale/da/LC_MESSAGES/django.po +++ b/cookbook/locale/da/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-04-29 18:42+0200\n" -"PO-Revision-Date: 2022-05-10 15:32+0000\n" +"PO-Revision-Date: 2022-08-18 14:32+0000\n" "Last-Translator: Mathias Rasmussen \n" "Language-Team: Danish \n" @@ -2377,9 +2377,9 @@ msgid "" " " msgstr "" "At servere mediefiler direkte med gunicorn/python er ikke anbefalet!\n" -" Følg venligst trinne beskrevet\n" +" Følg venligst trinnene beskrevet\n" " here for at opdtere\n" +">her for at opdatere\n" " din installation.\n" " " diff --git a/cookbook/locale/de/LC_MESSAGES/django.po b/cookbook/locale/de/LC_MESSAGES/django.po index 7c18f7913e..198f310f5a 100644 --- a/cookbook/locale/de/LC_MESSAGES/django.po +++ b/cookbook/locale/de/LC_MESSAGES/django.po @@ -15,10 +15,10 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-07-12 19:20+0200\n" -"PO-Revision-Date: 2022-05-28 16:32+0000\n" -"Last-Translator: Tobias Reinmann \n" -"Language-Team: German \n" +"PO-Revision-Date: 2022-09-10 19:32+0000\n" +"Last-Translator: David Schenk \n" +"Language-Team: German \n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -370,8 +370,6 @@ msgid "Partial Match" msgstr "Teilweise Übereinstimmung" #: .\cookbook\forms.py:467 -#, fuzzy -#| msgid "Starts Wtih" msgid "Starts With" msgstr "Beginnt mit" @@ -463,8 +461,6 @@ msgid "Default Delay Hours" msgstr "Standardmäßige Verzögerung in Stunden" #: .\cookbook\forms.py:517 -#, fuzzy -#| msgid "Select Supermarket" msgid "Filter to Supermarket" msgstr "Supermarkt filtern" @@ -630,11 +626,9 @@ msgid "Rebuilds full text search index on Recipe" msgstr "Generiert den Index für die Rezept-Volltextsuche neu" #: .\cookbook\management\commands\rebuildindex.py:18 -#, fuzzy -#| msgid "Only Postgress databases use full text search, no index to rebuild" msgid "Only Postgresql databases use full text search, no index to rebuild" msgstr "" -"Nur PostgreSQL Datenbanken verwenden Volltextsuche, kein Index muss neu " +"Nur PostgreSQL Datenbanken verwenden Volltextsuche, es muss kein Index neu " "generiert werden" #: .\cookbook\management\commands\rebuildindex.py:29 @@ -737,8 +731,6 @@ msgid "Recipe" msgstr "Rezept" #: .\cookbook\models.py:1228 -#, fuzzy -#| msgid "Foods" msgid "Food" msgstr "Lebensmittel" @@ -748,7 +740,7 @@ msgstr "Schlagwort" #: .\cookbook\serializer.py:207 msgid "Cannot modify Space owner permission." -msgstr "" +msgstr "Die Eigentumsberechtigung am Space kann nicht geändert werden." #: .\cookbook\serializer.py:290 msgid "File uploads are not enabled for this Space." @@ -826,11 +818,10 @@ msgid "ID of unit to use for the shopping list" msgstr "ID der Einheit, die für die Einkaufsliste verwendet werden soll" #: .\cookbook\serializer.py:1226 -#, fuzzy msgid "When set to true will delete all food from active shopping lists." msgstr "" -"Wenn diese Option auf wahr gesetzt ist, werden alle Lebensmittel aus den " -"aktiven Einkaufslisten gelöscht." +"Wenn diese Option aktiviert ist, werden alle Lebensmittel aus den aktiven " +"Einkaufslisten gelöscht." #: .\cookbook\tables.py:36 .\cookbook\templates\generic\edit_template.html:6 #: .\cookbook\templates\generic\edit_template.html:14 @@ -1193,10 +1184,8 @@ msgstr "Verlauf" #: .\cookbook\templates\base.html:252 #: .\cookbook\templates\ingredient_editor.html:7 #: .\cookbook\templates\ingredient_editor.html:13 -#, fuzzy -#| msgid "Ingredients" msgid "Ingredient Editor" -msgstr "Zutaten" +msgstr "Zutateneditor" #: .\cookbook\templates\base.html:264 #: .\cookbook\templates\export_response.html:7 @@ -1233,15 +1222,13 @@ msgstr "Admin" #: .\cookbook\templates\base.html:309 #: .\cookbook\templates\space_overview.html:25 -#, fuzzy -#| msgid "No Space" msgid "Your Spaces" -msgstr "Kein Space" +msgstr "Deine Spaces" #: .\cookbook\templates\base.html:320 #: .\cookbook\templates\space_overview.html:6 msgid "Overview" -msgstr "" +msgstr "Übersicht" #: .\cookbook\templates\base.html:324 msgid "Markdown Guide" @@ -1408,7 +1395,7 @@ msgstr "" #: .\cookbook\templates\generic\delete_template.html:22 msgid "This cannot be undone!" -msgstr "" +msgstr "Dies kann nicht rückgängig gemacht werden!" #: .\cookbook\templates\generic\delete_template.html:27 msgid "Protected" @@ -1574,10 +1561,8 @@ msgstr "Zeilenumbrüche entstehen durch zwei Leerzeichen am ende einer Zeile" #: .\cookbook\templates\markdown_info.html:57 #: .\cookbook\templates\markdown_info.html:73 -#, fuzzy -#| msgid "or by leaving a blank line inbetween." msgid "or by leaving a blank line in between." -msgstr "oder durch eine leere Zeile dazwischen." +msgstr "oder durch eine Leerzeile dazwischen." #: .\cookbook\templates\markdown_info.html:59 #: .\cookbook\templates\markdown_info.html:74 @@ -1599,16 +1584,12 @@ msgid "Lists" msgstr "Listen" #: .\cookbook\templates\markdown_info.html:85 -#, fuzzy -#| msgid "" -#| "Lists can ordered or unorderd. It is important to leave a blank line " -#| "before the list!" msgid "" "Lists can ordered or unordered. It is important to leave a blank line " "before the list!" msgstr "" -"Liste können sortiert oder unsortiert sein. Es ist wichtig das eine leere " -"Zeile vor der Liste frei gelassen wird!" +"Listen können sortiert oder unsortiert sein. Es ist wichtig, dass vor der " +"Liste eine Zeile frei gelassen wird!" #: .\cookbook\templates\markdown_info.html:87 #: .\cookbook\templates\markdown_info.html:108 @@ -1851,15 +1832,6 @@ msgstr "" " " #: .\cookbook\templates\search_info.html:29 -#, fuzzy -#| msgid "" -#| " \n" -#| " Simple searches ignore punctuation and common words such as " -#| "'the', 'a', 'and'. And will treat seperate words as required.\n" -#| " Searching for 'apple or flour' will return any recipe that " -#| "includes both 'apple' and 'flour' anywhere in the fields that have been " -#| "selected for a full text search.\n" -#| " " msgid "" " \n" " Simple searches ignore punctuation and common words such as " @@ -1870,11 +1842,10 @@ msgid "" " " msgstr "" " \n" -" Einfache Suchen ignorieren Satzzeichen und Stoppwörter wie \"und" -"\", \"der\", \"doch\". Getrennte Wörter werden als erforderlich gewertet.\n" +" Einfache Suchen ignorieren Satzzeichen und Füllwörter wie \"und\"" +", \"der\", \"ein\". Alle anderen Wörter werden als erforderlich gewertet.\n" " Eine Suche nach \"Der Apfel und Mehl\" wird alle Rezepte liefern " -"die \"Apfel\" oder \"Mehl\" in einem der ausgewählten Suchfeldern " -"enthalten.\n" +"die \"Apfel\" und \"Mehl\" in einem der ausgewählten Suchfeldern enthalten.\n" " " #: .\cookbook\templates\search_info.html:34 @@ -1895,23 +1866,6 @@ msgstr "" " " #: .\cookbook\templates\search_info.html:39 -#, fuzzy -#| msgid "" -#| " \n" -#| " Web searches simulate functionality found on many web search " -#| "sites supporting special syntax.\n" -#| " Placing quotes around several words will convert those words " -#| "into a phrase.\n" -#| " 'or' is recongized as searching for the word (or phrase) " -#| "immediately before 'or' OR the word (or phrase) directly after.\n" -#| " '-' is recognized as searching for recipes that do not " -#| "include the word (or phrase) that comes immediately after. \n" -#| " For example searching for 'apple pie' or cherry -butter will " -#| "return any recipe that includes the phrase 'apple pie' or the word " -#| "'cherry' \n" -#| " in any field included in the full text search but exclude any " -#| "recipe that has the word 'butter' in any field included.\n" -#| " " msgid "" " \n" " Web searches simulate functionality found on many web search " @@ -1931,18 +1885,19 @@ msgid "" msgstr "" " \n" " Der Suchtyp \"Web\" simuliert die Funktion vieler " -"Internetsuchmaschinen mit speziellem Syntax.\n" -" Anführungszeichen um mehrere Wörter verwandeln diese in eine " -"Phrase.\n" -" \"or\" versteht sich als \"oder\", sprich es muss das Wort (oder " -"die Phrase) vor dem \"or\" oder nach dem \"or\" enthalten sein.\n" -" '-' ist als Ausschluss nutzbar, so werden nur Rezepte gefunden " -"die nicht das folgende Wort (oder die Phrase) enthalten. \n" +"Internetsuchmaschinen und unterstützt eine ähnliche Syntax.\n" +" Einfache Anführungszeichen (') um mehrere Wörter verwandeln " +"diese in einen zusammenhängenden Suchbegriff.\n" +" \"or\" (oder) verknüpft zwei Suchbegriffe. Mindestens einer der " +"beiden Begriffe (oder beide) muss enthalten sein.\n" +" \"-\" kann verwendet werden, um Begriffe auszuschließen. Es " +"werden nur Rezepte gefunden die nicht den darauf folgenden Begriff enthalten." +"\n" " Beispiel: Eine Suche nach \"'Apfelkuchen mit Sahne' or Torte -" -"Butter\" liefert alle Suchergebnisse die entweder \"Apfelkuchen mit Sahne" -"\" \n" -" oder Torte enthalten, schließt aber Ergebnisse welche Butter " -"enthalten aus.\n" +"Butter\" liefert alle Suchergebnisse die entweder \"Apfelkuchen mit Sahne\" " +"\n" +" oder Torte (oder beides) enthalten, schließt aber Ergebnisse " +"welche Butter enthalten aus.\n" " " #: .\cookbook\templates\search_info.html:48 @@ -1958,19 +1913,6 @@ msgstr "" " " #: .\cookbook\templates\search_info.html:59 -#, fuzzy -#| msgid "" -#| " \n" -#| " Another approach to searching that also requires Postgresql " -#| "is fuzzy search or trigram similarity. A trigram is a group of three " -#| "consecutive characters.\n" -#| " For example searching for 'apple' will create x trigrams " -#| "'app', 'ppl', 'ple' and will create a score of how closely words match " -#| "the generated trigrams.\n" -#| " One benefit of searching trigams is that a search for " -#| "'sandwich' will find mispelled words such as 'sandwhich' that would be " -#| "missed by other methods.\n" -#| " " msgid "" " \n" " Another approach to searching that also requires Postgresql is " @@ -1986,12 +1928,12 @@ msgid "" msgstr "" " \n" " Eine weitere Suchmethode (welche ebenfalls PostgreSQL erfordert) " -"ist die Unscharfe Suche oder Trigramm Suche. Ein Trigramm sind 3 " +"ist die unscharfe Suche oder Trigramm-Suche. Ein Trigramm sind 3 " "aufeinanderfolgende Zeichen.\n" -" Beispiel: Die Suche nach \"Apfel\" erzeugt die Trigramme \"Apf" -"\", \"pfl\" und \"fel\". Die Suchergebnisse erhalten dann eine Wertung " +" Beispiel: Die Suche nach \"Apfel\" erzeugt die Trigramme \"Apf\"" +", \"pfl\" und \"fel\". Die Suchergebnisse erhalten dann eine Wertung " "abhängig davon wie gut sie mit den Trigrammen übereinstimmen.\n" -" Ein Vorteil der Trigramm Suche ist das korrekte Suchwörter wie " +" Ein Vorteil der Trigramm-Suche ist das korrekte Suchwörter wie " "\"Apfel\", Tippfehler in Suchfeldern (wie z.B. \"Afpel\") finden.\n" " " @@ -2241,17 +2183,14 @@ msgstr "Administrator-Account Erstellen" #: .\cookbook\templates\socialaccount\authentication_error.html:7 #: .\cookbook\templates\socialaccount\authentication_error.html:23 -#, fuzzy -#| msgid "Social Login" msgid "Social Network Login Failure" -msgstr "Social Login" +msgstr "Fehler beim Anmelden via sozialem Netzwerk" #: .\cookbook\templates\socialaccount\authentication_error.html:25 -#, fuzzy -#| msgid "An error occurred attempting to move " msgid "" "An error occurred while attempting to login via your social network account." -msgstr "Fehler aufgetreten beim verschieben von " +msgstr "" +"Es ist ein Fehler aufgetreten bei der Anmeldung über dein soziales Netzwerk." #: .\cookbook\templates\socialaccount\connections.html:4 #: .\cookbook\templates\socialaccount\connections.html:15 @@ -2284,26 +2223,26 @@ msgstr "Registrierung" #: .\cookbook\templates\socialaccount\login.html:9 #, python-format msgid "Connect %(provider)s" -msgstr "" +msgstr "Verbinde zu %(provider)s" #: .\cookbook\templates\socialaccount\login.html:11 #, python-format msgid "You are about to connect a new third party account from %(provider)s." -msgstr "" +msgstr "Die Anmeldung über %(provider)s wird eingerichtet." #: .\cookbook\templates\socialaccount\login.html:13 #, python-format msgid "Sign In Via %(provider)s" -msgstr "" +msgstr "Über %(provider)s anmelden" #: .\cookbook\templates\socialaccount\login.html:15 #, python-format msgid "You are about to sign in using a third party account from %(provider)s." -msgstr "" +msgstr "Die Anmeldung erfolgt über %(provider)s." #: .\cookbook\templates\socialaccount\login.html:20 msgid "Continue" -msgstr "" +msgstr "Weiter" #: .\cookbook\templates\socialaccount\signup.html:10 #, python-format @@ -2342,10 +2281,8 @@ msgid "Manage Subscription" msgstr "Tarif verwalten" #: .\cookbook\templates\space_overview.html:13 .\cookbook\views\delete.py:216 -#, fuzzy -#| msgid "Space:" msgid "Space" -msgstr "Instanz:" +msgstr "Space" #: .\cookbook\templates\space_overview.html:17 msgid "" @@ -2364,13 +2301,11 @@ msgstr "" #: .\cookbook\templates\space_overview.html:45 msgid "Owner" -msgstr "" +msgstr "Eigentümer" #: .\cookbook\templates\space_overview.html:49 -#, fuzzy -#| msgid "Create Space" msgid "Leave Space" -msgstr "Space erstellen" +msgstr "Space verlassen" #: .\cookbook\templates\space_overview.html:70 #: .\cookbook\templates\space_overview.html:80 @@ -2621,62 +2556,85 @@ msgstr "{obj.name} wurde der Einkaufsliste hinzugefügt." #: .\cookbook\views\api.py:674 msgid "ID of recipe a step is part of. For multiple repeat parameter." msgstr "" +"ID des Rezeptes zu dem ein Schritt gehört. Kann mehrfach angegeben werden." #: .\cookbook\views\api.py:676 msgid "Query string matched (fuzzy) against object name." -msgstr "" +msgstr "Abfragezeichenfolge, die mit dem Objektnamen übereinstimmt (ungenau)." #: .\cookbook\views\api.py:720 msgid "" "Query string matched (fuzzy) against recipe name. In the future also " "fulltext search." msgstr "" +"Suchbegriff wird mit dem Rezeptnamen abgeglichen. In Zukunft auch " +"Volltextsuche." #: .\cookbook\views\api.py:722 msgid "" "ID of keyword a recipe should have. For multiple repeat parameter. " "Equivalent to keywords_or" msgstr "" +"ID des Stichwortes, das ein Rezept haben muss. Kann mehrfach angegeben " +"werden. Äquivalent zu keywords_or" #: .\cookbook\views\api.py:725 msgid "" "Keyword IDs, repeat for multiple. Return recipes with any of the keywords" msgstr "" +"Stichwort IDs. Kann mehrfach angegeben werden. Listet Rezepte zu jedem der " +"angegebenen Stichwörter" #: .\cookbook\views\api.py:728 msgid "" "Keyword IDs, repeat for multiple. Return recipes with all of the keywords." msgstr "" +"Stichwort IDs. Kann mehrfach angegeben werden. Listet Rezepte mit allen " +"angegebenen Stichwörtern." #: .\cookbook\views\api.py:731 msgid "" "Keyword IDs, repeat for multiple. Exclude recipes with any of the keywords." msgstr "" +"Stichwort ID. Kann mehrfach angegeben werden. Schließt Rezepte einem der " +"angegebenen Stichwörtern aus." #: .\cookbook\views\api.py:734 msgid "" "Keyword IDs, repeat for multiple. Exclude recipes with all of the keywords." msgstr "" +"Stichwort IDs. Kann mehrfach angegeben werden. Schließt Rezepte mit allen " +"angegebenen Stichwörtern aus." #: .\cookbook\views\api.py:736 msgid "ID of food a recipe should have. For multiple repeat parameter." msgstr "" +"ID einer Zutat, zu der Rezepte gelistet werden sollen. Kann mehrfach " +"angegeben werden." #: .\cookbook\views\api.py:739 msgid "Food IDs, repeat for multiple. Return recipes with any of the foods" msgstr "" +"Zutat ID. Kann mehrfach angegeben werden. Listet Rezepte mindestens einer " +"der Zutaten" #: .\cookbook\views\api.py:741 msgid "Food IDs, repeat for multiple. Return recipes with all of the foods." msgstr "" +"Zutat ID. Kann mehrfach angegeben werden. Listet Rezepte mit allen " +"angegebenen Zutaten." #: .\cookbook\views\api.py:743 msgid "Food IDs, repeat for multiple. Exclude recipes with any of the foods." msgstr "" +"Zutat ID. Kann mehrfach angegeben werden. Schließt Rezepte aus, die eine der " +"angegebenen Zutaten enthalten." #: .\cookbook\views\api.py:745 msgid "Food IDs, repeat for multiple. Exclude recipes with all of the foods." msgstr "" +"Zutat ID. Kann mehrfach angegeben werden. Schließt Rezepte aus, die alle " +"angegebenen Zutaten enthalten." #: .\cookbook\views\api.py:746 msgid "ID of unit a recipe should have." @@ -2687,88 +2645,120 @@ msgid "" "Rating a recipe should have or greater. [0 - 5] Negative value filters " "rating less than." msgstr "" +"Mindestbewertung eines Rezeptes (0-5). Negative Werte filtern nach " +"Maximalbewertung." #: .\cookbook\views\api.py:749 msgid "ID of book a recipe should be in. For multiple repeat parameter." -msgstr "" +msgstr "Buch ID, in dem das Rezept ist. Kann mehrfach angegeben werden." #: .\cookbook\views\api.py:751 msgid "Book IDs, repeat for multiple. Return recipes with any of the books" msgstr "" +"Buch ID. Kann mehrfach angegeben werden. Listet alle Rezepte aus den " +"angegebenen Büchern" #: .\cookbook\views\api.py:753 msgid "Book IDs, repeat for multiple. Return recipes with all of the books." msgstr "" +"Buch ID. Kann mehrfach angegeben werden. Listet die Rezepte, die in allen " +"Büchern enthalten sind." #: .\cookbook\views\api.py:755 msgid "Book IDs, repeat for multiple. Exclude recipes with any of the books." msgstr "" +"Buch IDs. Kann mehrfach angegeben werden. Schließt Rezepte aus den " +"angegebenen Büchern aus." #: .\cookbook\views\api.py:757 msgid "Book IDs, repeat for multiple. Exclude recipes with all of the books." msgstr "" +"Buch IDs. Kann mehrfach angegeben werden. Schließt Rezepte aus, die in allen " +"angegebenen Büchern enthalten sind." #: .\cookbook\views\api.py:759 msgid "If only internal recipes should be returned. [true/false]" -msgstr "" +msgstr "Nur interne Rezepte sollen gelistet werden. [ja/nein]" #: .\cookbook\views\api.py:761 msgid "Returns the results in randomized order. [true/false]" msgstr "" +"Die Suchergebnisse sollen in zufälliger Reihenfolge gelistet werden. [ja/" +"nein]" #: .\cookbook\views\api.py:763 msgid "Returns new results first in search results. [true/false]" msgstr "" +"Die neuesten Suchergebnisse sollen zuerst angezeigt werden. [ja/nein]" #: .\cookbook\views\api.py:765 msgid "" "Filter recipes cooked X times or more. Negative values returns cooked less " "than X times" msgstr "" +"Rezepte listen, die mindestens x-mal gekocht wurden. Eine negative Zahl " +"listet Rezepte, die weniger als x-mal gekocht wurden" #: .\cookbook\views\api.py:767 msgid "" "Filter recipes last cooked on or after YYYY-MM-DD. Prepending - filters on " "or before date." msgstr "" +"Rezepte anzeigen, die zuletzt am angegebenen Datum oder später gekocht " +"wurden. Mit vorangestelltem - , werden Rezepte am oder vor dem Datum " +"gelistet." #: .\cookbook\views\api.py:769 msgid "" "Filter recipes created on or after YYYY-MM-DD. Prepending - filters on or " "before date." msgstr "" +"Rezepte listen, die am angegebenen Datum oder später erstellt wurden. Wenn - " +"vorangestellt wird, wird am oder vor dem Datum gelistet." #: .\cookbook\views\api.py:771 msgid "" "Filter recipes updated on or after YYYY-MM-DD. Prepending - filters on or " "before date." msgstr "" +"Rezepte listen, die am angegebenen Datum oder später aktualisiert wurden. " +"Wenn - vorangestellt wird, wird am oder vor dem Datum gelistet." #: .\cookbook\views\api.py:773 msgid "" "Filter recipes lasts viewed on or after YYYY-MM-DD. Prepending - filters on " "or before date." msgstr "" +"Rezepte listen, die am angegebenen Datum oder später zuletzt angesehen " +"wurden. Wenn - vorangestellt wird, wird am oder vor dem Datum gelistet." #: .\cookbook\views\api.py:775 msgid "Filter recipes that can be made with OnHand food. [true/false]" msgstr "" +"Rezepte listen, die mit vorhandenen Zutaten gekocht werden können. [ja/" +"nein]" #: .\cookbook\views\api.py:937 msgid "" "Returns the shopping list entry with a primary key of id. Multiple values " "allowed." msgstr "" +"Zeigt denjenigen Eintrag auf der Einkaufliste mit der angegebenen ID. Kann " +"mehrfach angegeben werden." #: .\cookbook\views\api.py:942 msgid "" "Filter shopping list entries on checked. [true, false, both, recent]" "
- recent includes unchecked items and recently completed items." msgstr "" +"Einkaufslisteneinträge nach Häkchen filtern. [ja, nein, beides, " +"kürzlich]
- kürzlich enthält nicht abgehakte Einträge und " +"kürzlich abgeschlossene Einträge." #: .\cookbook\views\api.py:945 msgid "Returns the shopping list entries sorted by supermarket category order." msgstr "" +"Listet die Einträge der Einkaufsliste sortiert nach Supermarktkategorie." #: .\cookbook\views\api.py:1140 msgid "Nothing to do." @@ -2776,7 +2766,7 @@ msgstr "Nichts zu tun." #: .\cookbook\views\api.py:1160 msgid "Invalid Url" -msgstr "" +msgstr "Ungültige URL" #: .\cookbook\views\api.py:1167 msgid "Connection Refused." @@ -2784,7 +2774,7 @@ msgstr "Verbindung fehlgeschlagen." #: .\cookbook\views\api.py:1172 msgid "Bad URL Schema." -msgstr "" +msgstr "Ungültiges URL Schema." #: .\cookbook\views\api.py:1195 #, fuzzy @@ -2842,10 +2832,8 @@ msgid "Invite Link" msgstr "Einladungslink" #: .\cookbook\views\delete.py:200 -#, fuzzy -#| msgid "Members" msgid "Space Membership" -msgstr "Mitglieder" +msgstr "Space-Mitgliedschaft" #: .\cookbook\views\edit.py:116 msgid "You cannot edit this storage!" @@ -2904,10 +2892,8 @@ msgid "Shopping Categories" msgstr "Einkaufskategorien" #: .\cookbook\views\lists.py:187 -#, fuzzy -#| msgid "Filter" msgid "Custom Filters" -msgstr "Filter" +msgstr "Benutzerdefinierte Filter" #: .\cookbook\views\lists.py:224 msgid "Steps" diff --git a/cookbook/locale/es/LC_MESSAGES/django.po b/cookbook/locale/es/LC_MESSAGES/django.po index c211a5d5f2..754c9b2fe2 100644 --- a/cookbook/locale/es/LC_MESSAGES/django.po +++ b/cookbook/locale/es/LC_MESSAGES/django.po @@ -14,8 +14,8 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-07-12 19:20+0200\n" -"PO-Revision-Date: 2022-06-25 17:32+0000\n" -"Last-Translator: César Blanco Guillamon \n" +"PO-Revision-Date: 2022-08-12 21:32+0000\n" +"Last-Translator: Thorin \n" "Language-Team: Spanish \n" "Language: es\n" @@ -68,7 +68,7 @@ msgstr "Estilo de búsqueda" #: .\cookbook\forms.py:62 msgid "Plan sharing" -msgstr "" +msgstr "Compartir régimen" #: .\cookbook\forms.py:63 msgid "Ingredient decimal places" diff --git a/cookbook/locale/it/LC_MESSAGES/django.po b/cookbook/locale/it/LC_MESSAGES/django.po index 20fade93a7..cb71656e9c 100644 --- a/cookbook/locale/it/LC_MESSAGES/django.po +++ b/cookbook/locale/it/LC_MESSAGES/django.po @@ -12,7 +12,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-07-12 19:20+0200\n" -"PO-Revision-Date: 2022-06-01 22:32+0000\n" +"PO-Revision-Date: 2022-08-04 11:32+0000\n" "Last-Translator: Oliver Cervera \n" "Language-Team: Italian \n" @@ -330,12 +330,16 @@ msgid "" "Fields to search ignoring accents. Selecting this option can improve or " "degrade search quality depending on language" msgstr "" +"Campi da cercare ignorando gli accenti. A seconda alla lingua utilizzata, " +"questa opzione può migliorare o peggiorare la ricerca" #: .\cookbook\forms.py:453 msgid "" "Fields to search for partial matches. (e.g. searching for 'Pie' will return " "'pie' and 'piece' and 'soapie')" msgstr "" +"Campi da cercare con corrispondenza parziale. (ad esempio, cercando \"Torta" +"\" verranno mostrati \"torta\", \"tortino\" e \"contorta\")" #: .\cookbook\forms.py:455 msgid "" diff --git a/cookbook/locale/nl/LC_MESSAGES/django.po b/cookbook/locale/nl/LC_MESSAGES/django.po index 84d8bfa903..2d48211444 100644 --- a/cookbook/locale/nl/LC_MESSAGES/django.po +++ b/cookbook/locale/nl/LC_MESSAGES/django.po @@ -13,10 +13,10 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-07-12 19:20+0200\n" -"PO-Revision-Date: 2022-05-31 08:32+0000\n" -"Last-Translator: Jesse \n" -"Language-Team: Dutch \n" +"PO-Revision-Date: 2022-09-01 20:32+0000\n" +"Last-Translator: 1k2 \n" +"Language-Team: Dutch \n" "Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -1210,15 +1210,13 @@ msgstr "Beheer" #: .\cookbook\templates\base.html:309 #: .\cookbook\templates\space_overview.html:25 -#, fuzzy -#| msgid "No Space" msgid "Your Spaces" -msgstr "Geen ruimte" +msgstr "Jouw Spaces" #: .\cookbook\templates\base.html:320 #: .\cookbook\templates\space_overview.html:6 msgid "Overview" -msgstr "" +msgstr "Overzicht" #: .\cookbook\templates\base.html:324 msgid "Markdown Guide" @@ -1275,7 +1273,7 @@ msgid "" "On this Page you can manage all storage folder locations that should be " "monitored and synced." msgstr "" -"Op deze pagina kaan je alle opslag mappen die gesynchroniseerd en gemonitord " +"Op deze pagina kan je alle opslag mappen die gesynchroniseerd en gemonitord " "worden beheren." #: .\cookbook\templates\batch\monitor.html:16 @@ -1382,7 +1380,7 @@ msgstr "Weet je zeker dat je %(title)s: %(object)s wil verwijderen " #: .\cookbook\templates\generic\delete_template.html:22 msgid "This cannot be undone!" -msgstr "" +msgstr "Dit kan niet ongedaan gemaakt worden!" #: .\cookbook\templates\generic\delete_template.html:27 msgid "Protected" @@ -2219,7 +2217,7 @@ msgstr "Registratie" #: .\cookbook\templates\socialaccount\login.html:9 #, python-format msgid "Connect %(provider)s" -msgstr "" +msgstr "Verbind %(provider)s" #: .\cookbook\templates\socialaccount\login.html:11 #, python-format @@ -2229,7 +2227,7 @@ msgstr "" #: .\cookbook\templates\socialaccount\login.html:13 #, python-format msgid "Sign In Via %(provider)s" -msgstr "" +msgstr "Log in via %(provider)s" #: .\cookbook\templates\socialaccount\login.html:15 #, python-format @@ -2238,7 +2236,7 @@ msgstr "" #: .\cookbook\templates\socialaccount\login.html:20 msgid "Continue" -msgstr "" +msgstr "Doorgaan" #: .\cookbook\templates\socialaccount\signup.html:10 #, python-format @@ -2277,10 +2275,8 @@ msgid "Manage Subscription" msgstr "Beheer abonnementen" #: .\cookbook\templates\space_overview.html:13 .\cookbook\views\delete.py:216 -#, fuzzy -#| msgid "Space:" msgid "Space" -msgstr "Ruimte:" +msgstr "Space" #: .\cookbook\templates\space_overview.html:17 msgid "" @@ -2299,13 +2295,11 @@ msgstr "" #: .\cookbook\templates\space_overview.html:45 msgid "Owner" -msgstr "" +msgstr "Eigenaar" #: .\cookbook\templates\space_overview.html:49 -#, fuzzy -#| msgid "Create Space" msgid "Leave Space" -msgstr "Maak ruimte aan" +msgstr "Verlaat Space" #: .\cookbook\templates\space_overview.html:70 #: .\cookbook\templates\space_overview.html:80 @@ -2753,7 +2747,7 @@ msgstr "Niks te doen." #: .\cookbook\views\api.py:1160 msgid "Invalid Url" -msgstr "" +msgstr "Ongeldige URL" #: .\cookbook\views\api.py:1167 msgid "Connection Refused." @@ -2816,10 +2810,8 @@ msgid "Invite Link" msgstr "Uitnodigingslink" #: .\cookbook\views\delete.py:200 -#, fuzzy -#| msgid "Members" msgid "Space Membership" -msgstr "Leden" +msgstr "Space Lidmaatschap" #: .\cookbook\views\edit.py:116 msgid "You cannot edit this storage!" diff --git a/cookbook/locale/zh_CN/LC_MESSAGES/django.po b/cookbook/locale/zh_CN/LC_MESSAGES/django.po index 5c4d3543a5..e505429a04 100644 --- a/cookbook/locale/zh_CN/LC_MESSAGES/django.po +++ b/cookbook/locale/zh_CN/LC_MESSAGES/django.po @@ -8,8 +8,8 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-07-12 19:20+0200\n" -"PO-Revision-Date: 2022-01-22 03:30+0000\n" -"Last-Translator: 糖多 <1365143958@qq.com>\n" +"PO-Revision-Date: 2022-08-23 13:32+0000\n" +"Last-Translator: 吕楪 \n" "Language-Team: Chinese (Simplified) \n" "Language: zh_CN\n" @@ -17,12 +17,12 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 4.8\n" +"X-Generator: Weblate 4.10.1\n" #: .\cookbook\filters.py:23 .\cookbook\templates\forms\ingredients.html:34 #: .\cookbook\templates\stats.html:28 msgid "Ingredients" -msgstr "材料" +msgstr "食材" #: .\cookbook\forms.py:53 msgid "Default unit" @@ -66,7 +66,7 @@ msgstr "计划分享" #: .\cookbook\forms.py:63 msgid "Ingredient decimal places" -msgstr "材料小数位" +msgstr "食材小数位" #: .\cookbook\forms.py:64 msgid "Shopping list auto sync period" @@ -79,7 +79,7 @@ msgstr "评论" #: .\cookbook\forms.py:66 msgid "Left-handed mode" -msgstr "" +msgstr "左手模式" #: .\cookbook\forms.py:70 msgid "" @@ -90,13 +90,13 @@ msgstr "" #: .\cookbook\forms.py:72 msgid "Default Unit to be used when inserting a new ingredient into a recipe." -msgstr "在配方中插入新原料时使用的默认单位。" +msgstr "在菜谱中插入新食材时使用的默认单位。" #: .\cookbook\forms.py:74 msgid "" "Enables support for fractions in ingredient amounts (e.g. convert decimals " "to fractions automatically)" -msgstr "启用对原料数量的分数支持(例如自动将小数转换为分数)" +msgstr "启用对食材数量的分数支持(例如自动将小数转换为分数)" #: .\cookbook\forms.py:76 msgid "Display nutritional energy amounts in joules instead of calories" @@ -104,7 +104,7 @@ msgstr "用焦耳来显示营养能量而不是卡路里" #: .\cookbook\forms.py:77 msgid "Users with whom newly created meal plans should be shared by default." -msgstr "默认情况下,新创建的膳食计划应与之共享的用户。" +msgstr "默认情况下,将自动与用户共享新创建的膳食计划。" #: .\cookbook\forms.py:78 msgid "Users with whom to share shopping lists." @@ -116,7 +116,7 @@ msgstr "在搜索页面上显示最近查看的菜谱。" #: .\cookbook\forms.py:81 msgid "Number of decimals to round ingredients." -msgstr "四舍五入成分的小数点数目。" +msgstr "四舍五入食材的小数点数量。" #: .\cookbook\forms.py:82 msgid "If you want to be able to create and see comments underneath recipes." @@ -139,15 +139,15 @@ msgstr "使导航栏悬浮在页面的顶部。" #: .\cookbook\forms.py:88 .\cookbook\forms.py:499 msgid "Automatically add meal plan ingredients to shopping list." -msgstr "自动将膳食计划原料添加到购物清单中。" +msgstr "自动将膳食计划食材添加到购物清单中。" #: .\cookbook\forms.py:89 msgid "Exclude ingredients that are on hand." -msgstr "排除现有材料。" +msgstr "排除现有食材。" #: .\cookbook\forms.py:90 msgid "Will optimize the UI for use with your left hand." -msgstr "" +msgstr "将使用左手模式优化界面显示。" #: .\cookbook\forms.py:107 msgid "" @@ -274,18 +274,16 @@ msgstr "" "错误)。" #: .\cookbook\forms.py:448 -#, fuzzy msgid "" "Select type method of search. Click here for " "full description of choices." -msgstr "" -"选择搜索类型方法。点击此处 查看选项的完整说明。" +msgstr "选择搜索类型方法。 点击此处 查看选项的完整说明。" #: .\cookbook\forms.py:449 msgid "" "Use fuzzy matching on units, keywords and ingredients when editing and " "importing recipes." -msgstr "编辑和导入菜谱时,对单位、关键词和材料使用模糊匹配。" +msgstr "编辑和导入菜谱时,对单位、关键词和食材使用模糊匹配。" #: .\cookbook\forms.py:451 msgid "" @@ -336,8 +334,6 @@ msgid "Partial Match" msgstr "部分匹配" #: .\cookbook\forms.py:467 -#, fuzzy -#| msgid "Starts Wtih" msgid "Starts With" msgstr "起始于" @@ -361,13 +357,13 @@ msgstr "" msgid "" "When adding a meal plan to the shopping list (manually or automatically), " "include all related recipes." -msgstr "将膳食计划(手动或自动)添加到购物清单时,包括所有相关菜谱。" +msgstr "将膳食计划(手动或自动)添加到购物清单时,包括所有相关食谱。" #: .\cookbook\forms.py:501 msgid "" "When adding a meal plan to the shopping list (manually or automatically), " "exclude ingredients that are on hand." -msgstr "将膳食计划(手动或自动)添加到购物清单时,排除现有材料。" +msgstr "将膳食计划(手动或自动)添加到购物清单时,排除现有食材。" #: .\cookbook\forms.py:502 msgid "Default number of hours to delay a shopping list entry." @@ -375,12 +371,11 @@ msgstr "延迟购物清单条目的默认小时数。" #: .\cookbook\forms.py:503 msgid "Filter shopping list to only include supermarket categories." -msgstr "筛选购物清单仅包括超市类型。" +msgstr "筛选购物清单仅包含超市分类。" #: .\cookbook\forms.py:504 -#, fuzzy msgid "Days of recent shopping list entries to display." -msgstr "显示最近几天的购物清单条目。" +msgstr "显示最近几天的购物清单列表。" #: .\cookbook\forms.py:505 msgid "Mark food 'On Hand' when checked off shopping list." @@ -419,10 +414,8 @@ msgid "Default Delay Hours" msgstr "默认延迟时间" #: .\cookbook\forms.py:517 -#, fuzzy -#| msgid "Supermarket" msgid "Filter to Supermarket" -msgstr "筛选到超市" +msgstr "按超市筛选" #: .\cookbook\forms.py:518 msgid "Recent Days" @@ -454,7 +447,7 @@ msgstr "默认情况下应继承的食物上的字段。" #: .\cookbook\forms.py:545 msgid "Show recipe counts on search filters" -msgstr "显示搜索筛选器上的菜谱计数" +msgstr "显示搜索筛选器上的食谱计数" #: .\cookbook\helper\AllAuthCustomAdapter.py:36 msgid "" @@ -499,10 +492,8 @@ msgid "One of queryset or hash_key must be provided" msgstr "必须提供 queryset 或 hash_key 之一" #: .\cookbook\helper\shopping_helper.py:152 -#, fuzzy -#| msgid "You must supply a created_by" msgid "You must supply a servings size" -msgstr "你必须提供创建者" +msgstr "你必须提供一些份量" #: .\cookbook\helper\template_helper.py:64 #: .\cookbook\helper\template_helper.py:66 @@ -512,15 +503,13 @@ msgstr "无法解析模板代码。" #: .\cookbook\integration\copymethat.py:41 #: .\cookbook\integration\melarecipes.py:37 msgid "Favorite" -msgstr "" +msgstr "喜欢" #: .\cookbook\integration\copymethat.py:70 #: .\cookbook\integration\recettetek.py:54 #: .\cookbook\integration\recipekeeper.py:63 -#, fuzzy -#| msgid "Import Log" msgid "Imported from" -msgstr "导入日志" +msgstr "导入" #: .\cookbook\integration\integration.py:223 msgid "" @@ -582,10 +571,8 @@ msgid "Rebuilds full text search index on Recipe" msgstr "在菜谱上重建全文搜索索引" #: .\cookbook\management\commands\rebuildindex.py:18 -#, fuzzy -#| msgid "Only Postgress databases use full text search, no index to rebuild" msgid "Only Postgresql databases use full text search, no index to rebuild" -msgstr "仅 Postgress 数据库使用全文搜索,没有重建索引" +msgstr "仅 PostgreSQL 数据库使用全文搜索,没有重建索引" #: .\cookbook\management\commands\rebuildindex.py:29 msgid "Recipe index rebuild complete." @@ -685,8 +672,6 @@ msgid "Recipe" msgstr "菜谱" #: .\cookbook\models.py:1228 -#, fuzzy -#| msgid "Foods" msgid "Food" msgstr "食物" @@ -696,7 +681,7 @@ msgstr "关键词" #: .\cookbook\serializer.py:207 msgid "Cannot modify Space owner permission." -msgstr "" +msgstr "无法修改空间所有者权限。" #: .\cookbook\serializer.py:290 msgid "File uploads are not enabled for this Space." @@ -712,20 +697,20 @@ msgstr "你好" #: .\cookbook\serializer.py:1081 msgid "You have been invited by " -msgstr "" +msgstr "您已被邀请至 " #: .\cookbook\serializer.py:1082 msgid " to join their Tandoor Recipes space " -msgstr "" +msgstr " 加入他们的泥炉食谱空间 " #: .\cookbook\serializer.py:1083 msgid "Click the following link to activate your account: " -msgstr "" +msgstr "点击以下链接激活您的帐户: " #: .\cookbook\serializer.py:1084 msgid "" "If the link does not work use the following code to manually join the space: " -msgstr "" +msgstr "如果链接不起作用,请使用下面的代码手动加入空间: " #: .\cookbook\serializer.py:1085 msgid "The invitation is valid until " @@ -734,11 +719,11 @@ msgstr "邀请有效期至 " #: .\cookbook\serializer.py:1086 msgid "" "Tandoor Recipes is an Open Source recipe manager. Check it out on GitHub " -msgstr "" +msgstr "泥炉食谱是一个开源食谱管理器。 在 GitHub 上查看 " #: .\cookbook\serializer.py:1089 msgid "Tandoor Recipes Invite" -msgstr "" +msgstr "泥炉食谱邀请" #: .\cookbook\serializer.py:1209 msgid "Existing shopping list to update" @@ -748,7 +733,7 @@ msgstr "要更新现有的购物清单" msgid "" "List of ingredient IDs from the recipe to add, if not provided all " "ingredients will be added." -msgstr "要添加的菜谱中材料识别符列表,不提供则添加所有材料。" +msgstr "要添加的食谱中食材识别符列表,不提供则添加所有食材。" #: .\cookbook\serializer.py:1213 msgid "" @@ -828,14 +813,12 @@ msgid "Unverified" msgstr "未验证" #: .\cookbook\templates\account\email.html:40 -#, fuzzy msgid "Primary" -msgstr "初选" +msgstr "主要" #: .\cookbook\templates\account\email.html:47 -#, fuzzy msgid "Make Primary" -msgstr "做出初选" +msgstr "当做主要" #: .\cookbook\templates\account\email.html:49 msgid "Re-send Verification" @@ -999,7 +982,6 @@ msgid "" msgstr "我们已经向你发送了一封电子邮件。如果你在几分钟内没有收到,请联系我们。" #: .\cookbook\templates\account\password_reset_from_key.html:13 -#, fuzzy msgid "Bad Token" msgstr "坏令牌" @@ -1127,10 +1109,8 @@ msgstr "历史" #: .\cookbook\templates\base.html:252 #: .\cookbook\templates\ingredient_editor.html:7 #: .\cookbook\templates\ingredient_editor.html:13 -#, fuzzy -#| msgid "Ingredients" msgid "Ingredient Editor" -msgstr "材料" +msgstr "食材编辑器" #: .\cookbook\templates\base.html:264 #: .\cookbook\templates\export_response.html:7 @@ -1167,15 +1147,13 @@ msgstr "管理员" #: .\cookbook\templates\base.html:309 #: .\cookbook\templates\space_overview.html:25 -#, fuzzy -#| msgid "No Space" msgid "Your Spaces" -msgstr "没有空间" +msgstr "你的空间" #: .\cookbook\templates\base.html:320 #: .\cookbook\templates\space_overview.html:6 msgid "Overview" -msgstr "" +msgstr "概述" #: .\cookbook\templates\base.html:324 msgid "Markdown Guide" @@ -1187,7 +1165,7 @@ msgstr "GitHub" #: .\cookbook\templates\base.html:328 msgid "Translate Tandoor" -msgstr "翻译筒状泥炉<_<" +msgstr "翻译泥炉" #: .\cookbook\templates\base.html:332 msgid "API Browser" @@ -1199,11 +1177,11 @@ msgstr "退出" #: .\cookbook\templates\base.html:357 msgid "You are using the free version of Tandor" -msgstr "" +msgstr "你正在使用免费版的泥炉" #: .\cookbook\templates\base.html:358 msgid "Upgrade Now" -msgstr "" +msgstr "现在升级" #: .\cookbook\templates\batch\edit.html:6 msgid "Batch edit Category" @@ -1293,7 +1271,7 @@ msgstr "编辑菜谱" #: .\cookbook\templates\forms\ingredients.html:15 msgid "Edit Ingredients" -msgstr "编辑材料" +msgstr "编辑食材" #: .\cookbook\templates\forms\ingredients.html:16 msgid "" @@ -1306,8 +1284,9 @@ msgid "" " " msgstr "" "\n" -" 如果两个(或更多)单位或材料应该是相同的,则可使用以下形式。\n" -" 它合并了两个单位或材料,并使用它们更新所有菜谱。\n" +" 如果意外创建两个(或更多)单位的相同食材,则可以使用下面的\n" +" 表格。\n" +" 可以合并两个单位的食材并使用它们更新所有菜谱。\n" " " #: .\cookbook\templates\forms\ingredients.html:26 @@ -1321,7 +1300,7 @@ msgstr "合并" #: .\cookbook\templates\forms\ingredients.html:36 msgid "Are you sure that you want to merge these two ingredients?" -msgstr "你确定要合并这两种材料吗?" +msgstr "你确定要合并这两种食材吗?" #: .\cookbook\templates\generic\delete_template.html:21 #, python-format @@ -1330,7 +1309,7 @@ msgstr "你确定要删除 %(title)s:%(object)s " #: .\cookbook\templates\generic\delete_template.html:22 msgid "This cannot be undone!" -msgstr "" +msgstr "这个不能撤销!" #: .\cookbook\templates\generic\delete_template.html:27 msgid "Protected" @@ -1492,8 +1471,6 @@ msgstr "通过在行尾后添加两个空格插入换行符" #: .\cookbook\templates\markdown_info.html:57 #: .\cookbook\templates\markdown_info.html:73 -#, fuzzy -#| msgid "or by leaving a blank line inbetween." msgid "or by leaving a blank line in between." msgstr "或者在中间留一个空行。" @@ -1517,10 +1494,6 @@ msgid "Lists" msgstr "列表" #: .\cookbook\templates\markdown_info.html:85 -#, fuzzy -#| msgid "" -#| "Lists can ordered or unorderd. It is important to leave a blank line " -#| "before the list!" msgid "" "Lists can ordered or unordered. It is important to leave a blank line " "before the list!" @@ -1671,7 +1644,7 @@ msgstr "" #: .\cookbook\templates\openid\login.html:27 #: .\cookbook\templates\socialaccount\authentication_error.html:27 msgid "Back" -msgstr "" +msgstr "返回" #: .\cookbook\templates\recipe_view.html:26 msgid "by" @@ -1760,15 +1733,6 @@ msgstr "" " " #: .\cookbook\templates\search_info.html:29 -#, fuzzy -#| msgid "" -#| " \n" -#| " Simple searches ignore punctuation and common words such as " -#| "'the', 'a', 'and'. And will treat seperate words as required.\n" -#| " Searching for 'apple or flour' will return any recipe that " -#| "includes both 'apple' and 'flour' anywhere in the fields that have been " -#| "selected for a full text search.\n" -#| " " msgid "" " \n" " Simple searches ignore punctuation and common words such as " @@ -1779,10 +1743,8 @@ msgid "" " " msgstr "" " \n" -" 简单搜索会忽略标点符号和常用词,如“the”、“a”、“and”。并将根据需要" -"处理单独的单词。\n" -" 搜索“apple or flour”将会在全文搜索中返回任意包" -"含“apple”和“flour”的菜谱。\n" +" 简单搜索会忽略标点符号和常用词,如“the”、“a”、“and”。并将根据需要处理单独的单词。\n" +" 搜索“apple or flour”将会在全文搜索中返回任意包含“apple”和“flour”的菜谱。\n" " " #: .\cookbook\templates\search_info.html:34 @@ -1795,6 +1757,10 @@ msgid "" "been selected for a full text search.\n" " " msgstr "" +" \n" +" 短语搜索会忽略标点符号,但会按照搜索顺序查询所有单词。\n" +" 搜索“苹果或面粉”将只返回一个食谱,这个食谱包含进行全文搜索时准确的字段短语“苹果或面粉”。\n" +" " #: .\cookbook\templates\search_info.html:39 msgid "" @@ -1814,6 +1780,14 @@ msgid "" "recipe that has the word 'butter' in any field included.\n" " " msgstr "" +" \n" +" 网页搜索模拟许多支持特殊语法的网页搜索站点上的功能。\n" +" 在几个单词周围加上引号会将这些单词转换为一个短语。\n" +" 'or' 被识别为搜索紧接在 'or' 之前的单词(或短语)或紧随其后的单词(或短语)。\n" +" '-' 被识别为搜索不包含紧随其后的单词(或短语)的食谱。 \n" +" 例如,搜索 “苹果派” 或“樱桃 -黄油” 将返回任何包含短语“苹果派”或“樱桃”的食谱 \n" +" 与在全文搜索中包含的任何 “樱桃” 字段中,但排除包含单词“黄油”的任何食谱。\n" +" " #: .\cookbook\templates\search_info.html:48 msgid "" @@ -1822,6 +1796,9 @@ msgid "" "operators such as '|', '&' and '()'\n" " " msgstr "" +" \n" +" 原始搜索与网页类似,不同的是会采用标点运算符,例如 '|', '&' 和 '()'\n" +" " #: .\cookbook\templates\search_info.html:59 msgid "" @@ -1837,6 +1814,12 @@ msgid "" "methods.\n" " " msgstr "" +" \n" +" 另一种也需要 PostgreSQL 的搜索方法是模糊搜索或三元组。 三元组是一组三个连续的字符。\n" +" 例如,搜索“apple”将创建 x 个三元组“app”、“ppl”、“ple”,并将创建单词与生成的三元组匹配程度的分数。\n" +" 使用模糊搜索或三元组一个好处是搜索“sandwich”会找到拼写错误的单词,例如“sandwhich”,而其他方法会漏掉这些单词。" +"\n" +" " #: .\cookbook\templates\search_info.html:69 msgid "Search Fields" @@ -1876,6 +1859,23 @@ msgid "" "full text results, it does match the trigram results.\n" " " msgstr "" +" \n" +" 不重音 是一种特殊情况,因为它可以为每个尝试忽略重音值的搜索进行搜索“不重音”字段。 \n" +" 例如,当您为“名字”启用不重音时,任何搜索(开头、包含、三元组)都将尝试搜索忽略重音字符。\n" +" \n" +" 对于其他选项,您可以在任一或所有字段上启用搜索,它们将与假定的“or”组合在一起。\n" +" 例如,为 起始于 启用“名字”,为 部分匹配 启用“名字”和“描述”,为 全文搜索 启用“食材”和“关键字”\n" +" 并搜索“苹果”将生成一个搜索,该搜索将返回具有以下内容的食谱:\n" +" - 以“苹果”开头的食谱名称\n" +" - 或包含“苹果”的食谱名称\n" +" - 或包含“苹果”的食谱描述\n" +" - 或在食材中具有全文搜索匹配(“苹果”或“很多苹果”)的食谱\n" +" - 或将在关键字中进行全文搜索匹配的食谱\n" +"\n" +" 在多种类型搜索中组合大量字段可能会对性能产生负面影响、创建重复结果或返回意外结果。\n" +" 例如,启用模糊搜索或部分匹配会干扰网络搜索算法。 \n" +" 使用模糊搜索或全文搜索进行搜索“苹果 -派”将返回食谱 苹果派。虽然它不包含在全文结果中,但它确实与三元组结果匹配。\n" +" " #: .\cookbook\templates\search_info.html:95 msgid "Search Index" @@ -1893,10 +1893,15 @@ msgid "" "the management command 'python manage.py rebuildindex'\n" " " msgstr "" +" \n" +" 三元搜索和全文搜索都依赖于数据库索引执行。 \n" +" 你可以在“食谱”的“管理”页面中的所有字段上重建索引并选择任一食谱运行“为所选食谱重建索引”\n" +" 你还可以通过执行管理命令“python manage.py rebuildindex”在命令行重建索引\n" +" " #: .\cookbook\templates\settings.html:28 msgid "Account" -msgstr "帐号" +msgstr "账户" #: .\cookbook\templates\settings.html:35 msgid "Preferences" @@ -1955,7 +1960,7 @@ msgstr "" msgid "" "Use the token as an Authorization header prefixed by the word token as shown " "in the following examples:" -msgstr "" +msgstr "使用令牌作为授权标头,前缀为单词令牌,如以下示例所示:" #: .\cookbook\templates\settings.html:162 msgid "or" @@ -2042,17 +2047,13 @@ msgstr "创建超级用户帐号" #: .\cookbook\templates\socialaccount\authentication_error.html:7 #: .\cookbook\templates\socialaccount\authentication_error.html:23 -#, fuzzy -#| msgid "Social Login" msgid "Social Network Login Failure" -msgstr "关联登录" +msgstr "社交网络登录失败" #: .\cookbook\templates\socialaccount\authentication_error.html:25 -#, fuzzy -#| msgid "An error occurred attempting to move " msgid "" "An error occurred while attempting to login via your social network account." -msgstr "尝试移动时出错 " +msgstr "尝试通过您的社交网络帐户登录时出错。" #: .\cookbook\templates\socialaccount\connections.html:4 #: .\cookbook\templates\socialaccount\connections.html:15 @@ -2063,7 +2064,9 @@ msgstr "帐号连接" msgid "" "You can sign in to your account using any of the following third party\n" " accounts:" -msgstr "你可以使用以下任何第三方帐号登录你的帐号:" +msgstr "" +"你可以使用以下任何第三方登录您的帐户\n" +" 账户:" #: .\cookbook\templates\socialaccount\connections.html:52 msgid "" @@ -2082,26 +2085,26 @@ msgstr "注册" #: .\cookbook\templates\socialaccount\login.html:9 #, python-format msgid "Connect %(provider)s" -msgstr "" +msgstr "连接 %(provider)s" #: .\cookbook\templates\socialaccount\login.html:11 #, python-format msgid "You are about to connect a new third party account from %(provider)s." -msgstr "" +msgstr "你即将从 %(provider)s 连接一个新的第三方帐户。" #: .\cookbook\templates\socialaccount\login.html:13 #, python-format msgid "Sign In Via %(provider)s" -msgstr "" +msgstr "通过 %(provider)s 登录" #: .\cookbook\templates\socialaccount\login.html:15 #, python-format msgid "You are about to sign in using a third party account from %(provider)s." -msgstr "" +msgstr "你即将使用 %(provider)s 的第三方帐户登录。" #: .\cookbook\templates\socialaccount\login.html:20 msgid "Continue" -msgstr "" +msgstr "继续" #: .\cookbook\templates\socialaccount\signup.html:10 #, python-format @@ -2110,6 +2113,9 @@ msgid "" " %(provider_name)s account to login to\n" " %(site_name)s. As a final step, please complete the following form:" msgstr "" +"你即将使用你的\n" +" %(provider_name)s 账户登录\n" +" %(site_name)s。 最后一步, 请填写以下表单:" #: .\cookbook\templates\socialaccount\snippets\provider_list.html:23 #: .\cookbook\templates\socialaccount\snippets\provider_list.html:31 @@ -2126,7 +2132,7 @@ msgstr "" #: .\cookbook\templates\socialaccount\snippets\provider_list.html:119 #: .\cookbook\templates\socialaccount\snippets\provider_list.html:127 msgid "Sign in using" -msgstr "" +msgstr "登录使用" #: .\cookbook\templates\space_manage.html:26 msgid "Space:" @@ -2137,10 +2143,8 @@ msgid "Manage Subscription" msgstr "管理订阅" #: .\cookbook\templates\space_overview.html:13 .\cookbook\views\delete.py:216 -#, fuzzy -#| msgid "Space:" msgid "Space" -msgstr "空间:" +msgstr "空间" #: .\cookbook\templates\space_overview.html:17 msgid "" @@ -2155,13 +2159,11 @@ msgstr "你可以被邀请进入现有空间,也可以创建自己的空间。 #: .\cookbook\templates\space_overview.html:45 msgid "Owner" -msgstr "" +msgstr "所有者" #: .\cookbook\templates\space_overview.html:49 -#, fuzzy -#| msgid "Create Space" msgid "Leave Space" -msgstr "创建空间" +msgstr "留出空间" #: .\cookbook\templates\space_overview.html:70 #: .\cookbook\templates\space_overview.html:80 @@ -2203,19 +2205,19 @@ msgstr "统计数据" #: .\cookbook\templates\stats.html:19 msgid "Number of objects" -msgstr "" +msgstr "对象数" #: .\cookbook\templates\stats.html:30 msgid "Recipe Imports" -msgstr "" +msgstr "食谱导入" #: .\cookbook\templates\stats.html:38 msgid "Objects stats" -msgstr "" +msgstr "对象统计" #: .\cookbook\templates\stats.html:41 msgid "Recipes without Keywords" -msgstr "" +msgstr "菜谱没有关键字" #: .\cookbook\templates\stats.html:45 msgid "Internal Recipes" @@ -2292,6 +2294,13 @@ msgid "" "file.\n" " " msgstr "" +"\n" +" 您没有在 .env 文件中配置 SECRET_KEY。 Django " +"默认为\n" +" 标准键\n" +" 提供公开但并不安全的安装! 请设置\n" +" SECRET_KEY.env 文件中配置。\n" +" " #: .\cookbook\templates\system.html:66 msgid "Debug Mode" @@ -2307,6 +2316,11 @@ msgid "" "file.\n" " " msgstr "" +"\n" +" 此应用程序仍在调试模式下运行。 这是不必要的。 调试模式由\n" +" 设置\n" +" DEBUG=0.env 文件中配置\n" +" " #: .\cookbook\templates\system.html:81 msgid "Database" @@ -2324,6 +2338,10 @@ msgid "" " features only work with postgres databases.\n" " " msgstr "" +"\n" +" 此应用程序未使用 PostgreSQL 数据库在后端运行。 这并没有关系,但这是不推荐的,\n" +" 因为有些功能仅适用于 PostgreSQL 数据库。\n" +" " #: .\cookbook\templates\url_import.html:8 msgid "URL Import" @@ -2335,7 +2353,7 @@ msgstr "参数 updated_at 格式不正确" #: .\cookbook\views\api.py:217 .\cookbook\views\api.py:320 msgid "No {self.basename} with id {pk} exists" -msgstr "" +msgstr "不存在ID是 {pk} 的 {self.basename}" #: .\cookbook\views\api.py:221 msgid "Cannot merge with the same object!" @@ -2343,7 +2361,7 @@ msgstr "无法与同一对象合并!" #: .\cookbook\views\api.py:228 msgid "No {self.basename} with id {target} exists" -msgstr "" +msgstr "不存在 ID 为 {pk} 的 {self.basename}" #: .\cookbook\views\api.py:233 msgid "Cannot merge with child object!" @@ -2371,7 +2389,7 @@ msgstr "无法将对象移动到自身!" #: .\cookbook\views\api.py:341 msgid "No {self.basename} with id {parent} exists" -msgstr "" +msgstr "不存在 ID 为 {parent} 的 {self.basename}" #: .\cookbook\views\api.py:347 msgid "{child.name} was moved successfully to parent {parent.name}" @@ -2388,155 +2406,155 @@ msgstr "{obj.name} 已添加到购物清单中。" #: .\cookbook\views\api.py:674 msgid "ID of recipe a step is part of. For multiple repeat parameter." -msgstr "" +msgstr "食谱中的步骤ID。 对于多个重复参数。" #: .\cookbook\views\api.py:676 msgid "Query string matched (fuzzy) against object name." -msgstr "" +msgstr "请求参数与对象名称匹配(模糊)。" #: .\cookbook\views\api.py:720 msgid "" "Query string matched (fuzzy) against recipe name. In the future also " "fulltext search." -msgstr "" +msgstr "请求参数与食谱名称匹配(模糊)。 未来会添加全文搜索。" #: .\cookbook\views\api.py:722 msgid "" "ID of keyword a recipe should have. For multiple repeat parameter. " "Equivalent to keywords_or" -msgstr "" +msgstr "菜谱应包含的关键字 ID。 对于多个重复参数。 相当于keywords_or" #: .\cookbook\views\api.py:725 msgid "" "Keyword IDs, repeat for multiple. Return recipes with any of the keywords" -msgstr "" +msgstr "允许多个关键字 ID。 返回带有任一关键字的食谱" #: .\cookbook\views\api.py:728 msgid "" "Keyword IDs, repeat for multiple. Return recipes with all of the keywords." -msgstr "" +msgstr "允许多个关键字 ID。 返回带有所有关键字的食谱。" #: .\cookbook\views\api.py:731 msgid "" "Keyword IDs, repeat for multiple. Exclude recipes with any of the keywords." -msgstr "" +msgstr "允许多个关键字 ID。 排除带有任一关键字的食谱。" #: .\cookbook\views\api.py:734 msgid "" "Keyword IDs, repeat for multiple. Exclude recipes with all of the keywords." -msgstr "" +msgstr "允许多个关键字 ID。 排除带有所有关键字的食谱。" #: .\cookbook\views\api.py:736 msgid "ID of food a recipe should have. For multiple repeat parameter." -msgstr "" +msgstr "食谱中食物带有ID。并可添加多个食物。" #: .\cookbook\views\api.py:739 msgid "Food IDs, repeat for multiple. Return recipes with any of the foods" -msgstr "" +msgstr "食谱中食物带有ID。并可添加多个食物" #: .\cookbook\views\api.py:741 msgid "Food IDs, repeat for multiple. Return recipes with all of the foods." -msgstr "" +msgstr "食谱中食物带有ID。返回包含任何食物的食谱。" #: .\cookbook\views\api.py:743 msgid "Food IDs, repeat for multiple. Exclude recipes with any of the foods." -msgstr "" +msgstr "食谱中食物带有ID。排除包含任一食物的食谱。" #: .\cookbook\views\api.py:745 msgid "Food IDs, repeat for multiple. Exclude recipes with all of the foods." -msgstr "" +msgstr "食谱中食物带有ID。排除包含所有食物的食谱。" #: .\cookbook\views\api.py:746 msgid "ID of unit a recipe should have." -msgstr "" +msgstr "食谱应具有单一ID。" #: .\cookbook\views\api.py:748 msgid "" "Rating a recipe should have or greater. [0 - 5] Negative value filters " "rating less than." -msgstr "" +msgstr "配方的评分范围从 0 到 5。" #: .\cookbook\views\api.py:749 msgid "ID of book a recipe should be in. For multiple repeat parameter." -msgstr "" +msgstr "烹饪书应该在食谱中具有ID。并且可以添加多本。" #: .\cookbook\views\api.py:751 msgid "Book IDs, repeat for multiple. Return recipes with any of the books" -msgstr "" +msgstr "书的ID允许多个。返回包含任一书籍的食谱" #: .\cookbook\views\api.py:753 msgid "Book IDs, repeat for multiple. Return recipes with all of the books." -msgstr "" +msgstr "书的ID允许多个。返回包含所有书籍的食谱。" #: .\cookbook\views\api.py:755 msgid "Book IDs, repeat for multiple. Exclude recipes with any of the books." -msgstr "" +msgstr "书的ID允许多个。排除包含任一书籍的食谱。" #: .\cookbook\views\api.py:757 msgid "Book IDs, repeat for multiple. Exclude recipes with all of the books." -msgstr "" +msgstr "书的ID允许多个。排除包含所有书籍的食谱。" #: .\cookbook\views\api.py:759 msgid "If only internal recipes should be returned. [true/false]" -msgstr "" +msgstr "只返回内部食谱。 [true/false]" #: .\cookbook\views\api.py:761 msgid "Returns the results in randomized order. [true/false]" -msgstr "" +msgstr "按随机排序返回结果。 [true/ false ]" #: .\cookbook\views\api.py:763 msgid "Returns new results first in search results. [true/false]" -msgstr "" +msgstr "在搜索结果中首先返回新结果。 [是/]" #: .\cookbook\views\api.py:765 msgid "" "Filter recipes cooked X times or more. Negative values returns cooked less " "than X times" -msgstr "" +msgstr "筛选烹饪 X 次或更多次的食谱。 负值返回烹饪少于 X 次" #: .\cookbook\views\api.py:767 msgid "" "Filter recipes last cooked on or after YYYY-MM-DD. Prepending - filters on " "or before date." -msgstr "" +msgstr "筛选最后烹饪在 YYYY-MM-DD 当天或之后的食谱。 前置 - 在日期或日期之前筛选。" #: .\cookbook\views\api.py:769 msgid "" "Filter recipes created on or after YYYY-MM-DD. Prepending - filters on or " "before date." -msgstr "" +msgstr "筛选在 YYYY-MM-DD 或之后创建的食谱。 前置 - 在日期或日期之前过滤。" #: .\cookbook\views\api.py:771 msgid "" "Filter recipes updated on or after YYYY-MM-DD. Prepending - filters on or " "before date." -msgstr "" +msgstr "筛选在 YYYY-MM-DD 或之后更新的食谱。 前置 - 在日期或日期之前筛选。" #: .\cookbook\views\api.py:773 msgid "" "Filter recipes lasts viewed on or after YYYY-MM-DD. Prepending - filters on " "or before date." -msgstr "" +msgstr "筛选最后查看时间是在 YYYY-MM-DD 或之后的食谱。 前置 - 在日期或日期之前筛选。" #: .\cookbook\views\api.py:775 msgid "Filter recipes that can be made with OnHand food. [true/false]" -msgstr "" +msgstr "筛选可以直接用手制作的食谱。 [真/]" #: .\cookbook\views\api.py:937 msgid "" "Returns the shopping list entry with a primary key of id. Multiple values " "allowed." -msgstr "" +msgstr "返回主键为 id 的购物清单条目。 允许多个值。" #: .\cookbook\views\api.py:942 msgid "" "Filter shopping list entries on checked. [true, false, both, recent]" "
- recent includes unchecked items and recently completed items." -msgstr "" +msgstr "在选中时筛选购物清单列表。 [真, 假, 两者都有, 最近]
- 最近包括未选中的项目和最近完成的项目。" #: .\cookbook\views\api.py:945 msgid "Returns the shopping list entries sorted by supermarket category order." -msgstr "" +msgstr "返回按超市分类排序的购物清单列表。" #: .\cookbook\views\api.py:1140 msgid "Nothing to do." @@ -2544,7 +2562,7 @@ msgstr "无事可做。" #: .\cookbook\views\api.py:1160 msgid "Invalid Url" -msgstr "" +msgstr "无效网址" #: .\cookbook\views\api.py:1167 msgid "Connection Refused." @@ -2552,18 +2570,16 @@ msgstr "连接被拒绝。" #: .\cookbook\views\api.py:1172 msgid "Bad URL Schema." -msgstr "" +msgstr "错误的 URL Schema。" #: .\cookbook\views\api.py:1195 -#, fuzzy -#| msgid "No useable data could be found." msgid "No usable data could be found." msgstr "找不到可用的数据。" #: .\cookbook\views\api.py:1303 .\cookbook\views\data.py:28 #: .\cookbook\views\edit.py:120 .\cookbook\views\new.py:90 msgid "This feature is not yet available in the hosted version of tandoor!" -msgstr "" +msgstr "此功能在泥炉的托管版本中尚不可用!" #: .\cookbook\views\api.py:1325 msgid "Sync successful!" @@ -2591,7 +2607,7 @@ msgstr "存储后端" #: .\cookbook\views\delete.py:132 msgid "" "Could not delete this storage backend as it is used in at least one monitor." -msgstr "" +msgstr "无法删除此存储后端,因为它至少在一台显示器中使用。" #: .\cookbook\views\delete.py:155 msgid "Recipe Book" @@ -2606,8 +2622,6 @@ msgid "Invite Link" msgstr "邀请链接" #: .\cookbook\views\delete.py:200 -#, fuzzy -#| msgid "Members" msgid "Space Membership" msgstr "成员" @@ -2616,9 +2630,8 @@ msgid "You cannot edit this storage!" msgstr "你不能编辑此存储空间!" #: .\cookbook\views\edit.py:140 -#, fuzzy msgid "Storage saved!" -msgstr "存储已存储!" +msgstr "存储已保存!" #: .\cookbook\views\edit.py:146 msgid "There was an error updating this storage backend!" @@ -2667,10 +2680,8 @@ msgid "Shopping Categories" msgstr "购物类别" #: .\cookbook\views\lists.py:187 -#, fuzzy -#| msgid "Filter" msgid "Custom Filters" -msgstr "筛选" +msgstr "自定义筛选" #: .\cookbook\views\lists.py:224 msgid "Steps" @@ -2688,11 +2699,11 @@ msgstr "导入此菜谱时出错!" msgid "" "You have successfully created your own recipe space. Start by adding some " "recipes or invite other people to join you." -msgstr "" +msgstr "你已成功创建自己的菜谱空间。 首先添加一些菜谱或邀请其他人加入。" #: .\cookbook\views\views.py:178 msgid "You do not have the required permissions to perform this action!" -msgstr "" +msgstr "您没有执行此操作所需的权限!" #: .\cookbook\views\views.py:189 msgid "Comment saved!" diff --git a/cookbook/migrations/0183_alter_space_image.py b/cookbook/migrations/0183_alter_space_image.py new file mode 100644 index 0000000000..38a8e2e608 --- /dev/null +++ b/cookbook/migrations/0183_alter_space_image.py @@ -0,0 +1,19 @@ +# Generated by Django 4.0.6 on 2022-08-04 16:46 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('cookbook', '0182_userpreference_image'), + ] + + operations = [ + migrations.AlterField( + model_name='space', + name='image', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='space_image', to='cookbook.userfile'), + ), + ] diff --git a/cookbook/migrations/0184_alter_userpreference_image.py b/cookbook/migrations/0184_alter_userpreference_image.py new file mode 100644 index 0000000000..efbfd98bbd --- /dev/null +++ b/cookbook/migrations/0184_alter_userpreference_image.py @@ -0,0 +1,19 @@ +# Generated by Django 4.0.7 on 2022-09-12 10:29 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('cookbook', '0183_alter_space_image'), + ] + + operations = [ + migrations.AlterField( + model_name='userpreference', + name='image', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='user_image', to='cookbook.userfile'), + ), + ] diff --git a/cookbook/models.py b/cookbook/models.py index f9ef061648..204a3b1699 100644 --- a/cookbook/models.py +++ b/cookbook/models.py @@ -4,6 +4,7 @@ import uuid from datetime import date, timedelta +import oauth2_provider.models from PIL import Image from annoying.fields import AutoOneToOneField from django.contrib import auth @@ -13,7 +14,7 @@ from django.core.files.uploadedfile import InMemoryUploadedFile, UploadedFile from django.core.validators import MinLengthValidator from django.db import IntegrityError, models -from django.db.models import Index, ProtectedError, Q +from django.db.models import Index, ProtectedError, Q, Avg, Max from django.db.models.fields.related import ManyToManyField from django.db.models.functions import Substr from django.utils import timezone @@ -63,6 +64,13 @@ def get_shopping_share(self): auth.models.User.add_to_class('get_active_space', get_active_space) +def oauth_token_get_owner(self): + return self.user + + +oauth2_provider.models.AccessToken.add_to_class('get_owner', oauth_token_get_owner) + + def get_model_name(model): return ('_'.join(re.findall('[A-Z][^A-Z]*', model.__name__))).lower() @@ -245,7 +253,7 @@ def get_name(self): class Space(ExportModelOperationsMixin('space'), models.Model): name = models.CharField(max_length=128, default='Default') - image = models.ForeignKey("UserFile", on_delete=models.SET_NULL, null=True, related_name='space_image') + image = models.ForeignKey("UserFile", on_delete=models.SET_NULL, null=True, blank=True, related_name='space_image') created_by = models.ForeignKey(User, on_delete=models.PROTECT, null=True) created_at = models.DateTimeField(auto_now_add=True) message = models.CharField(max_length=512, default='', blank=True) @@ -358,7 +366,7 @@ class UserPreference(models.Model, PermissionModelMixin): ) user = AutoOneToOneField(User, on_delete=models.CASCADE, primary_key=True) - image = models.ForeignKey("UserFile", on_delete=models.SET_NULL, null=True, related_name='user_image') + image = models.ForeignKey("UserFile", on_delete=models.SET_NULL, null=True,blank=True, related_name='user_image') theme = models.CharField(choices=THEMES, max_length=128, default=TANDOOR) nav_color = models.CharField(choices=COLORS, max_length=128, default=PRIMARY) default_unit = models.CharField(max_length=32, default='g') @@ -714,6 +722,10 @@ def __str__(self): # space = models.ForeignKey(Space, on_delete=models.CASCADE) # objects = ScopedManager(space='space') +class RecipeManager(models.Manager.from_queryset(models.QuerySet)): + def get_queryset(self): + return super(RecipeManager, self).get_queryset().annotate(rating=Avg('cooklog__rating')).annotate(last_cooked=Max('cooklog__created_at')) + class Recipe(ExportModelOperationsMixin('recipe'), models.Model, PermissionModelMixin): name = models.CharField(max_length=128) @@ -745,7 +757,7 @@ class Recipe(ExportModelOperationsMixin('recipe'), models.Model, PermissionModel desc_search_vector = SearchVectorField(null=True) space = models.ForeignKey(Space, on_delete=models.CASCADE) - objects = ScopedManager(space='space') + objects = ScopedManager(space='space', _manager_class=RecipeManager) def __str__(self): return self.name diff --git a/cookbook/serializer.py b/cookbook/serializer.py index 04a7aa77b8..d10e334d7e 100644 --- a/cookbook/serializer.py +++ b/cookbook/serializer.py @@ -1,4 +1,5 @@ import traceback +import uuid from datetime import datetime, timedelta from decimal import Decimal from gettext import gettext as _ @@ -14,6 +15,7 @@ from django_scopes import scopes_disabled from drf_writable_nested import UniqueFieldsMixin, WritableNestedModelSerializer from PIL import Image +from oauth2_provider.models import AccessToken from rest_framework import serializers from rest_framework.exceptions import NotFound, ValidationError @@ -143,7 +145,7 @@ class Meta: list_serializer_class = SpaceFilterSerializer model = User fields = ('id', 'username', 'first_name', 'last_name', 'display_name') - read_only_fields = ('username', ) + read_only_fields = ('username',) class GroupSerializer(UniqueFieldsMixin, WritableNestedModelSerializer): @@ -255,7 +257,7 @@ class SpaceSerializer(WritableNestedModelSerializer): recipe_count = serializers.SerializerMethodField('get_recipe_count') file_size_mb = serializers.SerializerMethodField('get_file_size_mb') food_inherit = FoodInheritFieldSerializer(many=True) - image = UserFileViewSerializer(required=False, many=False) + image = UserFileViewSerializer(required=False, many=False, allow_null=True) def get_user_count(self, obj): return UserSpace.objects.filter(space=obj).count() @@ -682,25 +684,6 @@ class Meta: class RecipeBaseSerializer(WritableNestedModelSerializer): - def get_recipe_rating(self, obj): - try: - rating = obj.cooklog_set.filter(created_by=self.context['request'].user, rating__gt=0).aggregate( - Avg('rating')) - if rating['rating__avg']: - return rating['rating__avg'] - except TypeError: - pass - return 0 - - def get_recipe_last_cooked(self, obj): - try: - last = obj.cooklog_set.filter(created_by=self.context['request'].user).order_by('created_at').last() - if last: - return last.created_at - except TypeError: - pass - return None - # TODO make days of new recipe a setting def is_recipe_new(self, obj): if getattr(obj, 'new_recipe', None) or obj.created_at > (timezone.now() - timedelta(days=7)): @@ -711,11 +694,12 @@ def is_recipe_new(self, obj): class RecipeOverviewSerializer(RecipeBaseSerializer): keywords = KeywordLabelSerializer(many=True) - rating = serializers.SerializerMethodField('get_recipe_rating') - last_cooked = serializers.SerializerMethodField('get_recipe_last_cooked') new = serializers.SerializerMethodField('is_recipe_new') recent = serializers.ReadOnlyField() + rating = CustomDecimalField(required=False, allow_null=True) + last_cooked = serializers.DateTimeField(required=False, allow_null=True) + def create(self, validated_data): pass @@ -725,7 +709,7 @@ def update(self, instance, validated_data): class Meta: model = Recipe fields = ( - 'id', 'name', 'description', 'image', 'keywords', 'working_time', + 'id', 'name', 'description', 'image', 'keywords', 'working_time', 'waiting_time', 'created_by', 'created_at', 'updated_at', 'internal', 'servings', 'servings_text', 'rating', 'last_cooked', 'new', 'recent' ) @@ -736,9 +720,9 @@ class RecipeSerializer(RecipeBaseSerializer): nutrition = NutritionInformationSerializer(allow_null=True, required=False) steps = StepSerializer(many=True) keywords = KeywordSerializer(many=True) - rating = serializers.SerializerMethodField('get_recipe_rating') - last_cooked = serializers.SerializerMethodField('get_recipe_last_cooked') shared = UserSerializer(many=True, required=False) + rating = CustomDecimalField(required=False, allow_null=True) + last_cooked = serializers.DateTimeField(required=False, allow_null=True) class Meta: model = Recipe @@ -1134,6 +1118,27 @@ class Meta: read_only_fields = ('created_by', 'space') +# OAuth / Auth Token related Serializers + +class AccessTokenSerializer(serializers.ModelSerializer): + token = serializers.SerializerMethodField('get_token') + + def create(self, validated_data): + validated_data['token'] = f'tda_{str(uuid.uuid4()).replace("-","_")}' + validated_data['user'] = self.context['request'].user + return super().create(validated_data) + + def get_token(self, obj): + if (timezone.now() - obj.created).seconds < 15: + return obj.token + return f'tda_************_******_***********{obj.token[len(obj.token)-4:]}' + + class Meta: + model = AccessToken + fields = ('id', 'token', 'expires', 'scope', 'created', 'updated') + read_only_fields = ('id', 'token',) + + # Export/Import Serializers class KeywordExportSerializer(KeywordSerializer): diff --git a/cookbook/static/js/bookmarklet.js b/cookbook/static/js/bookmarklet_v3.js similarity index 96% rename from cookbook/static/js/bookmarklet.js rename to cookbook/static/js/bookmarklet_v3.js index f109b2dfbc..910f235aab 100644 --- a/cookbook/static/js/bookmarklet.js +++ b/cookbook/static/js/bookmarklet_v3.js @@ -28,7 +28,7 @@ const xhr = new XMLHttpRequest(); xhr.open('POST', url, true); xhr.setRequestHeader('Content-Type', 'application/json'); - xhr.setRequestHeader('Authorization', 'Token ' + token); + xhr.setRequestHeader('Authorization', 'Bearer ' + token); // listen for `onload` event xhr.onload = () => { diff --git a/cookbook/static/themes/tandoor.min.css b/cookbook/static/themes/tandoor.min.css index 6b49a5f047..b234107c55 100644 --- a/cookbook/static/themes/tandoor.min.css +++ b/cookbook/static/themes/tandoor.min.css @@ -2815,7565 +2815,7579 @@ input[type=button].btn-block, input[type=reset].btn-block, input[type=submit].bt width: 100% } -.fade { - transition: opacity .15s linear -} -@media (prefers-#a7240euced-motion: #a7240euce -) { - .fade { - transition: none - } +.btn { + font-size: .875rem; + font-family: Poppins, sans-serif; + padding: .625rem 1.25rem; + outline: none; + line-height: 1.5; } -.fade:not(.show) { - opacity: 0 +.btn.btn-rounded { + border-radius: 50px } -.collapse:not(.show) { - display: none +.btn.btn-white { + background: #fff; + transition: all .5s ease-in-out } -.collapsing { - position: relative; - height: 0; - overflow: hidden; - transition: height .35s ease +.btn.btn-white:hover { + background: #a7240e; + color: #fff } -@media (prefers-#a7240euced-motion: #a7240euce - -) { - .collapsing { - transition: none - } +.btn:focus { + box-shadow: none } -.dropdown, .dropleft, .dropright, .dropup { - position: relative +.btn-primary { + transition: all .5s ease-in-out; + color: #fff } -.dropdown-toggle { - white-space: nowrap +.btn-primary:hover { + background: transparent; + color: #b98766; + border: 1px solid #b98766 } -.dropdown-toggle:after { - display: inline-block; - margin-left: .255em; - vertical-align: .255em; - content: ""; - border-top: .3em solid; - border-right: .3em solid transparent; - border-bottom: 0; - border-left: .3em solid transparent +.btn-secondary { + transition: all .5s ease-in-out; + color: #fff } -.dropdown-toggle:empty:after { - margin-left: 0 +.btn-secondary:hover { + background: transparent; + color: #b55e4f; + border: 1px solid #b55e4f } -.dropdown-menu { - position: absolute; - top: 100%; - left: 0; - z-index: 1000; - display: none; - float: left; - min-width: 10rem; - padding: .5rem 0; - margin: .125rem 0 0; - font-size: 1rem; - color: #212529; - text-align: left; - list-style: none; - background-color: #fff; - background-clip: padding-box; - border: 1px solid rgba(0, 0, 0, .15); - border-radius: .25rem +.btn-success { + transition: all .5s ease-in-out; + color: #fff } -.dropdown-menu-left { - right: auto; - left: 0 +.btn-success:hover { + background: transparent; + color: #82aa8b; + border: 1px solid #82aa8b } -.dropdown-menu-right { - right: 0; - left: auto +.btn-info { + transition: all .5s ease-in-out; + color: #fff } -@media (min-width: 576px) { - .dropdown-menu-sm-left { - right: auto; - left: 0 - } +.btn-info:hover { + background: transparent; + color: #385f84; + border: 1px solid #385f84 +} - .dropdown-menu-sm-right { - right: 0; - left: auto - } +.btn-warning { + transition: all .5s ease-in-out; + color: #fff } -@media (min-width: 768px) { - .dropdown-menu-md-left { - right: auto; - left: 0 - } +.btn-warning:hover { + background: transparent; + color: #eaaa21; + border: 1px solid #eaaa21 +} - .dropdown-menu-md-right { - right: 0; - left: auto - } +.btn-danger { + transition: all .5s ease-in-out; + color: #fff } -@media (min-width: 992px) { - .dropdown-menu-lg-left { - right: auto; - left: 0 - } +.btn-danger:hover { + background: transparent; + color: #a7240e; + border: 1px solid #a7240e +} - .dropdown-menu-lg-right { - right: 0; - left: auto - } +.btn-light { + transition: all .5s ease-in-out; + color: #fff } -@media (min-width: 1200px) { - .dropdown-menu-xl-left { - right: auto; - left: 0 - } +.btn-light:hover { + background-color: hsla(0, 0%, 18%, .5); + color: #cfd5cd; + border: 1px solid hsla(0, 0%, 18%, .5) +} - .dropdown-menu-xl-right { - right: 0; - left: auto - } +.btn-dark { + transition: all .5s ease-in-out; + color: #fff } -.dropup .dropdown-menu { - top: auto; - bottom: 100%; - margin-top: 0; - margin-bottom: .125rem +.btn-dark:hover { + background: transparent; + color: #221e1e; + border: 1px solid #221e1e } -.dropup .dropdown-toggle:after { - display: inline-block; - margin-left: .255em; - vertical-align: .255em; - content: ""; - border-top: 0; - border-right: .3em solid transparent; - border-bottom: .3em solid; - border-left: .3em solid transparent +.btn-opacity-primary { + color: #b98766; + background-color: #0012a7; + border: 2px solid transparent; + transition: all .5s ease-in-out } -.dropup .dropdown-toggle:empty:after { - margin-left: 0 +.btn-opacity-primary:hover { + color: #b98766; + background-color: #fff; + border: 2px solid #b98766 } -.dropright .dropdown-menu { - top: 0; - right: auto; - left: 100%; - margin-top: 0; - margin-left: .125rem +.btn-opacity-secondary { + color: #b55e4f; + background-color: #fff; + border: 2px solid transparent; + transition: all .5s ease-in-out } -.dropright .dropdown-toggle:after { - display: inline-block; - margin-left: .255em; - vertical-align: .255em; - content: ""; - border-top: .3em solid transparent; - border-right: 0; - border-bottom: .3em solid transparent; - border-left: .3em solid +.btn-opacity-secondary:hover { + color: #b55e4f; + background-color: #fff; + border: 2px solid #b55e4f } -.dropright .dropdown-toggle:empty:after { - margin-left: 0 +.btn-opacity-success { + color: #82aa8b; + background-color: #b7eddd; + border: 2px solid transparent; + transition: all .5s ease-in-out } -.dropright .dropdown-toggle:after { - vertical-align: 0 +.btn-opacity-success:hover { + color: #82aa8b; + background-color: #fff; + border: 2px solid #82aa8b } -.dropleft .dropdown-menu { - top: 0; - right: 100%; - left: auto; - margin-top: 0; - margin-right: .125rem +.btn-opacity-info { + color: #385f84; + background-color: #89caff; + border: 2px solid transparent; + transition: all .5s ease-in-out } -.dropleft .dropdown-toggle:after { - display: inline-block; - margin-left: .255em; - vertical-align: .255em; - content: ""; - display: none +.btn-opacity-info:hover { + color: #385f84; + background-color: #fff; + border: 2px solid #385f84 } -.dropleft .dropdown-toggle:before { - display: inline-block; - margin-right: .255em; - vertical-align: .255em; - content: ""; - border-top: .3em solid transparent; - border-right: .3em solid; - border-bottom: .3em solid transparent +.btn-opacity-warning { + color: #eaaa21; + background-color: #ffd170; + border: 2px solid transparent; + transition: all .5s ease-in-out } -.dropleft .dropdown-toggle:empty:after { - margin-left: 0 +.btn-opacity-warning:hover { + color: #eaaa21; + background-color: #fff; + border: 2px solid #eaaa21 } -.dropleft .dropdown-toggle:before { - vertical-align: 0 +.btn-opacity-danger { + color: #a7240e; + background-color: #ff7070; + border: 2px solid transparent; + transition: all .5s ease-in-out } -.dropdown-menu[x-placement^=bottom], .dropdown-menu[x-placement^=left], .dropdown-menu[x-placement^=right], .dropdown-menu[x-placement^=top] { - right: auto; - bottom: auto +.btn-opacity-danger:hover { + color: #a7240e; + background-color: #fff; + border: 2px solid #a7240e } -.dropdown-divider { - height: 0; - margin: .5rem 0; - overflow: hidden; - border-top: 1px solid #e9ecef +.btn-opacity-light { + color: #cfd5cd; + background-color: #fec4af; + border: 2px solid transparent; + transition: all .5s ease-in-out } -.dropdown-item { - display: block; - width: 100%; - padding: .25rem 1.5rem; - clear: both; - font-weight: 400; - color: #212529; - text-align: inherit; - white-space: nowrap; - background-color: transparent; - border: 0 +.btn-opacity-light:hover { + color: #cfd5cd; + background-color: #fff; + border: 2px solid #cfd5cd } -.dropdown-item:focus, .dropdown-item:hover { - color: #16181b; - text-decoration: none; - background-color: #f8f9fa +.btn-opacity-dark { + color: #221e1e; + background-color: #5e5353; + border: 2px solid transparent; + transition: all .5s ease-in-out } -.dropdown-item.active, .dropdown-item:active { - color: #fff; - text-decoration: none; - background-color: #b98766 +.btn-opacity-dark:hover { + color: #221e1e; + background-color: #fff; + border: 2px solid #221e1e } -.dropdown-item.disabled, .dropdown-item:disabled { - color: #6c757d; - pointer-events: none; - background-color: transparent +.btn-outline-primary { + color: #b98766; + background-color: #fff; + border: 2px solid #b98766; + transition: all .5s ease-in-out } -.dropdown-menu.show { - display: block +.btn-outline-primary:hover { + color: #fff; + background-color: #b98766 } -.dropdown-header { - display: block; - padding: .5rem 1.5rem; - margin-bottom: 0; - font-size: .875rem; - color: #6c757d; - white-space: nowrap +.btn-outline-secondary { + color: #b55e4f; + background-color: #fff; + border: 2px solid #b55e4f; + transition: all .5s ease-in-out } -.dropdown-item-text { - display: block; - padding: .25rem 1.5rem; - color: #212529 +.btn-outline-secondary:hover { + color: #fff; + background-color: #b55e4f } -.btn-group, .btn-group-vertical { - position: relative; - display: inline-flex; - vertical-align: middle +.btn-outline-success { + color: #82aa8b; + background-color: #fff; + border: 2px solid #82aa8b; + transition: all .5s ease-in-out } -.btn-group-vertical > .btn, .btn-group > .btn { - position: relative; - flex: 1 1 auto +.btn-outline-success:hover { + color: #fff; + background-color: #82aa8b } -.btn-group-vertical > .btn.active, .btn-group-vertical > .btn:active, .btn-group-vertical > .btn:focus, .btn-group-vertical > .btn:hover, .btn-group > .btn.active, .btn-group > .btn:active, .btn-group > .btn:focus, .btn-group > .btn:hover { - z-index: 1 +.btn-outline-info { + color: #385f84; + background-color: #fff; + border: 2px solid #385f84; + transition: all .5s ease-in-out } -.btn-toolbar { - display: flex; - flex-wrap: wrap; - justify-content: flex-start +.btn-outline-info:hover { + color: #fff; + background-color: #385f84 } -.btn-toolbar .input-group { - width: auto +.btn-outline-warning { + color: #eaaa21; + background-color: #fff; + border: 2px solid #eaaa21; + transition: all .5s ease-in-out } -.btn-group > .btn-group:not(:first-child), .btn-group > .btn:not(:first-child) { - margin-left: -1px +.btn-outline-warning:hover { + color: #fff; + background-color: #eaaa21 } -.btn-group > .btn-group:not(:last-child) > .btn, .btn-group > .btn:not(:last-child):not(.dropdown-toggle) { - border-top-right-radius: 0; - border-bottom-right-radius: 0 +.btn-outline-danger { + color: #a7240e; + background-color: #fff; + border: 2px solid #a7240e; + transition: all .5s ease-in-out } -.btn-group > .btn-group:not(:first-child) > .btn, .btn-group > .btn:not(:first-child) { - border-top-left-radius: 0; - border-bottom-left-radius: 0 +.btn-outline-danger:hover { + color: #fff; + background-color: #a7240e } -.dropdown-toggle-split { - padding-right: .9375rem; - padding-left: .9375rem +.btn-outline-light { + color: #cfd5cd; + background-color: #fff; + border: 2px solid #cfd5cd; + transition: all .5s ease-in-out } -.dropdown-toggle-split:after, .dropright .dropdown-toggle-split:after, .dropup .dropdown-toggle-split:after { - margin-left: 0 +.btn-outline-light:hover { + color: #fff; + background-color: #cfd5cd } -.dropleft .dropdown-toggle-split:before { - margin-right: 0 +.btn-outline-dark { + color: #221e1e; + background-color: #fff; + border: 2px solid #221e1e; + transition: all .5s ease-in-out } -.btn-group-sm > .btn + .dropdown-toggle-split, .btn-sm + .dropdown-toggle-split { - padding-right: .375rem; - padding-left: .375rem +.btn-outline-dark:hover { + color: #fff; + background-color: #221e1e } -.btn-group-lg > .btn + .dropdown-toggle-split, .btn-lg + .dropdown-toggle-split { - padding-right: .75rem; - padding-left: .75rem -} -.btn-group-vertical { - flex-direction: column; - align-items: flex-start; - justify-content: center +.fade { + transition: opacity .15s linear } -.btn-group-vertical > .btn, .btn-group-vertical > .btn-group { - width: 100% -} +@media (prefers-#a7240euced-motion: #a7240euce -.btn-group-vertical > .btn-group:not(:first-child), .btn-group-vertical > .btn:not(:first-child) { - margin-top: -1px +) { + .fade { + transition: none + } } -.btn-group-vertical > .btn-group:not(:last-child) > .btn, .btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle) { - border-bottom-right-radius: 0; - border-bottom-left-radius: 0 +.fade:not(.show) { + opacity: 0 } -.btn-group-vertical > .btn-group:not(:first-child) > .btn, .btn-group-vertical > .btn:not(:first-child) { - border-top-left-radius: 0; - border-top-right-radius: 0 +.collapse:not(.show) { + display: none } -.btn-group-toggle > .btn, .btn-group-toggle > .btn-group > .btn { - margin-bottom: 0 +.collapsing { + position: relative; + height: 0; + overflow: hidden; + transition: height .35s ease } -.btn-group-toggle > .btn-group > .btn input[type=checkbox], .btn-group-toggle > .btn-group > .btn input[type=radio], .btn-group-toggle > .btn input[type=checkbox], .btn-group-toggle > .btn input[type=radio] { - position: absolute; - clip: rect(0, 0, 0, 0); - pointer-events: none -} +@media (prefers-#a7240euced-motion: #a7240euce -.input-group { - position: relative; - display: flex; - flex-wrap: wrap; - align-items: stretch; - width: 100% +) { + .collapsing { + transition: none + } } -.input-group > .custom-file, .input-group > .custom-select, .input-group > .form-control, .input-group > .form-control-plaintext { - position: relative; - flex: 1 1 auto; - width: 1%; - margin-bottom: 0 +.dropdown, .dropleft, .dropright, .dropup { + position: relative } -.input-group > .custom-file + .custom-file, .input-group > .custom-file + .custom-select, .input-group > .custom-file + .form-control, .input-group > .custom-select + .custom-file, .input-group > .custom-select + .custom-select, .input-group > .custom-select + .form-control, .input-group > .form-control + .custom-file, .input-group > .form-control + .custom-select, .input-group > .form-control + .form-control, .input-group > .form-control-plaintext + .custom-file, .input-group > .form-control-plaintext + .custom-select, .input-group > .form-control-plaintext + .form-control { - margin-left: -1px +.dropdown-toggle { + white-space: nowrap } -.input-group > .custom-file .custom-file-input:focus ~ .custom-file-label, .input-group > .custom-select:focus, .input-group > .form-control:focus { - z-index: 3 -} +.dropdown-toggle:after { + display: inline-block; + margin-left: .255em; + vertical-align: .255em; + content: ""; + border-top: .3em solid; + border-right: .3em solid transparent; + border-bottom: 0; + border-left: .3em solid transparent +} -.input-group > .custom-file .custom-file-input:focus { - z-index: 4 +.dropdown-toggle:empty:after { + margin-left: 0 } -.input-group > .custom-select:not(:last-child), .input-group > .form-control:not(:last-child) { - border-top-right-radius: 0; - border-bottom-right-radius: 0 +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 10rem; + padding: .5rem 0; + margin: .125rem 0 0; + font-size: 1rem; + color: #212529; + text-align: left; + list-style: none; + background-color: #fff; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, .15); + border-radius: .25rem } -.input-group > .custom-select:not(:first-child), .input-group > .form-control:not(:first-child) { - border-top-left-radius: 0; - border-bottom-left-radius: 0 +.dropdown-menu-left { + right: auto; + left: 0 } -.input-group > .custom-file { - display: flex; - align-items: center +.dropdown-menu-right { + right: 0; + left: auto } -.input-group > .custom-file:not(:last-child) .custom-file-label, .input-group > .custom-file:not(:last-child) .custom-file-label:after { - border-top-right-radius: 0; - border-bottom-right-radius: 0 +@media (min-width: 576px) { + .dropdown-menu-sm-left { + right: auto; + left: 0 + } + + .dropdown-menu-sm-right { + right: 0; + left: auto + } } -.input-group > .custom-file:not(:first-child) .custom-file-label { - border-top-left-radius: 0; - border-bottom-left-radius: 0 +@media (min-width: 768px) { + .dropdown-menu-md-left { + right: auto; + left: 0 + } + + .dropdown-menu-md-right { + right: 0; + left: auto + } } -.input-group-append, .input-group-prepend { - display: flex +@media (min-width: 992px) { + .dropdown-menu-lg-left { + right: auto; + left: 0 + } + + .dropdown-menu-lg-right { + right: 0; + left: auto + } } -.input-group-append .btn, .input-group-prepend .btn { - position: relative; - z-index: 2 +@media (min-width: 1200px) { + .dropdown-menu-xl-left { + right: auto; + left: 0 + } + + .dropdown-menu-xl-right { + right: 0; + left: auto + } } -.input-group-append .btn:focus, .input-group-prepend .btn:focus { - z-index: 3 +.dropup .dropdown-menu { + top: auto; + bottom: 100%; + margin-top: 0; + margin-bottom: .125rem } -.input-group-append .btn + .btn, .input-group-append .btn + .input-group-text, .input-group-append .input-group-text + .btn, .input-group-append .input-group-text + .input-group-text, .input-group-prepend .btn + .btn, .input-group-prepend .btn + .input-group-text, .input-group-prepend .input-group-text + .btn, .input-group-prepend .input-group-text + .input-group-text { - margin-left: -1px +.dropup .dropdown-toggle:after { + display: inline-block; + margin-left: .255em; + vertical-align: .255em; + content: ""; + border-top: 0; + border-right: .3em solid transparent; + border-bottom: .3em solid; + border-left: .3em solid transparent } -.input-group-prepend { - margin-right: -1px +.dropup .dropdown-toggle:empty:after { + margin-left: 0 } -.input-group-append { - margin-left: -1px +.dropright .dropdown-menu { + top: 0; + right: auto; + left: 100%; + margin-top: 0; + margin-left: .125rem } -.input-group-text { - display: flex; - align-items: center; - padding: .375rem .75rem; - margin-bottom: 0; - font-size: 1rem; - font-weight: 400; - line-height: 1.5; - color: #495057; - text-align: center; - white-space: nowrap; - background-color: #e9ecef; - border: 1px solid #ced4da; - border-radius: .25rem +.dropright .dropdown-toggle:after { + display: inline-block; + margin-left: .255em; + vertical-align: .255em; + content: ""; + border-top: .3em solid transparent; + border-right: 0; + border-bottom: .3em solid transparent; + border-left: .3em solid } -.input-group-text input[type=checkbox], .input-group-text input[type=radio] { - margin-top: 0 +.dropright .dropdown-toggle:empty:after { + margin-left: 0 } -.input-group-lg > .custom-select, .input-group-lg > .form-control:not(textarea) { - height: calc(1.5em + 1rem + 2px) +.dropright .dropdown-toggle:after { + vertical-align: 0 } -.input-group-lg > .custom-select, .input-group-lg > .form-control, .input-group-lg > .input-group-append > .btn, .input-group-lg > .input-group-append > .input-group-text, .input-group-lg > .input-group-prepend > .btn, .input-group-lg > .input-group-prepend > .input-group-text { - padding: .5rem 1rem; - font-size: 1.25rem; - line-height: 1.5; - border-radius: .3rem +.dropleft .dropdown-menu { + top: 0; + right: 100%; + left: auto; + margin-top: 0; + margin-right: .125rem } -.input-group-sm > .custom-select, .input-group-sm > .form-control:not(textarea) { - height: calc(1.5em + .5rem + 2px) +.dropleft .dropdown-toggle:after { + display: inline-block; + margin-left: .255em; + vertical-align: .255em; + content: ""; + display: none } -.input-group-sm > .custom-select, .input-group-sm > .form-control, .input-group-sm > .input-group-append > .btn, .input-group-sm > .input-group-append > .input-group-text, .input-group-sm > .input-group-prepend > .btn, .input-group-sm > .input-group-prepend > .input-group-text { - padding: .25rem .5rem; - font-size: .875rem; - line-height: 1.5; - border-radius: .2rem +.dropleft .dropdown-toggle:before { + display: inline-block; + margin-right: .255em; + vertical-align: .255em; + content: ""; + border-top: .3em solid transparent; + border-right: .3em solid; + border-bottom: .3em solid transparent } -.input-group-lg > .custom-select, .input-group-sm > .custom-select { - padding-right: 1.75rem +.dropleft .dropdown-toggle:empty:after { + margin-left: 0 } -.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle), .input-group > .input-group-append:last-child > .input-group-text:not(:last-child), .input-group > .input-group-append:not(:last-child) > .btn, .input-group > .input-group-append:not(:last-child) > .input-group-text, .input-group > .input-group-prepend > .btn, .input-group > .input-group-prepend > .input-group-text { - border-top-right-radius: 0; - border-bottom-right-radius: 0 +.dropleft .dropdown-toggle:before { + vertical-align: 0 } -.input-group > .input-group-append > .btn, .input-group > .input-group-append > .input-group-text, .input-group > .input-group-prepend:first-child > .btn:not(:first-child), .input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child), .input-group > .input-group-prepend:not(:first-child) > .btn, .input-group > .input-group-prepend:not(:first-child) > .input-group-text { - border-top-left-radius: 0; - border-bottom-left-radius: 0 +.dropdown-menu[x-placement^=bottom], .dropdown-menu[x-placement^=left], .dropdown-menu[x-placement^=right], .dropdown-menu[x-placement^=top] { + right: auto; + bottom: auto } -.custom-control { - position: relative; - display: block; - min-height: 1.5rem; - padding-left: 1.5rem +.dropdown-divider { + height: 0; + margin: .5rem 0; + overflow: hidden; + border-top: 1px solid #e9ecef } -.custom-control-inline { - display: inline-flex; - margin-right: 1rem +.dropdown-item { + display: block; + width: 100%; + padding: .25rem 1.5rem; + clear: both; + font-weight: 400; + color: #212529; + text-align: inherit; + white-space: nowrap; + background-color: transparent; + border: 0 } -.custom-control-input { - position: absolute; - z-index: -1; - opacity: 0 +.dropdown-item:focus, .dropdown-item:hover { + color: #16181b; + text-decoration: none; + background-color: #f8f9fa } -.custom-control-input:checked ~ .custom-control-label:before { +.dropdown-item.active, .dropdown-item:active { color: #fff; - border-color: #b98766; + text-decoration: none; background-color: #b98766 } -.custom-control-input:focus ~ .custom-control-label:before { - box-shadow: 0 0 0 .2rem rgba(0, 6, 55, .25) +.dropdown-item.disabled, .dropdown-item:disabled { + color: #6c757d; + pointer-events: none; + background-color: transparent } -.custom-control-input:focus:not(:checked) ~ .custom-control-label:before { - border-color: #0014b7 +.dropdown-menu.show { + display: block } -.custom-control-input:not(:disabled):active ~ .custom-control-label:before { - color: #fff; - background-color: #0019ea; - border-color: #0019ea +.dropdown-header { + display: block; + padding: .5rem 1.5rem; + margin-bottom: 0; + font-size: .875rem; + color: #6c757d; + white-space: nowrap } -.custom-control-input:disabled ~ .custom-control-label { - color: #6c757d +.dropdown-item-text { + display: block; + padding: .25rem 1.5rem; + color: #212529 } -.custom-control-input:disabled ~ .custom-control-label:before { - background-color: #e9ecef +.btn-group, .btn-group-vertical { + position: relative; + display: inline-flex; + vertical-align: middle } -.custom-control-label { +.btn-group-vertical > .btn, .btn-group > .btn { position: relative; - margin-bottom: 0; - vertical-align: top + flex: 1 1 auto } -.custom-control-label:before { - pointer-events: none; - background-color: #fff; - border: 1px solid #adb5bd +.btn-group-vertical > .btn.active, .btn-group-vertical > .btn:active, .btn-group-vertical > .btn:focus, .btn-group-vertical > .btn:hover, .btn-group > .btn.active, .btn-group > .btn:active, .btn-group > .btn:focus, .btn-group > .btn:hover { + z-index: 1 } -.custom-control-label:after, .custom-control-label:before { - position: absolute; - top: .25rem; - left: -1.5rem; - display: block; - width: 1rem; - height: 1rem; - content: "" +.btn-toolbar { + display: flex; + flex-wrap: wrap; + justify-content: flex-start } -.custom-control-label:after { - background: no-repeat 50%/50% 50% +.btn-toolbar .input-group { + width: auto } -.custom-checkbox .custom-control-label:before { - border-radius: .25rem +.btn-group > .btn-group:not(:first-child), .btn-group > .btn:not(:first-child) { + margin-left: -1px } -.custom-checkbox .custom-control-input:checked ~ .custom-control-label:after { - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3E%3C/svg%3E") +.btn-group > .btn-group:not(:last-child) > .btn, .btn-group > .btn:not(:last-child):not(.dropdown-toggle) { + border-top-right-radius: 0; + border-bottom-right-radius: 0 } -.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label:before { - border-color: #b98766; - background-color: #b98766 +.btn-group > .btn-group:not(:first-child) > .btn, .btn-group > .btn:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0 } -.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label:after { - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E") +.dropdown-toggle-split { + padding-right: .9375rem; + padding-left: .9375rem } -.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label:before { - background-color: rgba(0, 6, 55, .5) +.dropdown-toggle-split:after, .dropright .dropdown-toggle-split:after, .dropup .dropdown-toggle-split:after { + margin-left: 0 } -.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label:before { - background-color: rgba(0, 6, 55, .5) +.dropleft .dropdown-toggle-split:before { + margin-right: 0 } -.custom-radio .custom-control-label:before { - border-radius: 50% +.btn-sm, .btn-group-sm > .btn { + padding: 0.25rem 0.5rem; + font-size: 0.8203125rem; + line-height: 1.5; + border-radius: 0.2rem } -.custom-radio .custom-control-input:checked ~ .custom-control-label:after { - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E") +.btn-group-sm > .btn + .dropdown-toggle-split, .btn-sm + .dropdown-toggle-split { + padding-right: .375rem; + padding-left: .375rem } -.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label:before { - background-color: rgba(0, 6, 55, .5) +.btn-group-lg > .btn + .dropdown-toggle-split, .btn-lg + .dropdown-toggle-split { + padding-right: .75rem; + padding-left: .75rem } -.custom-switch { - padding-left: 2.25rem +.btn-group-vertical { + flex-direction: column; + align-items: flex-start; + justify-content: center } -.custom-switch .custom-control-label:before { - left: -2.25rem; - width: 1.75rem; - pointer-events: all; - border-radius: .5rem +.btn-group-vertical > .btn, .btn-group-vertical > .btn-group { + width: 100% } -.custom-switch .custom-control-label:after { - top: calc(.25rem + 2px); - left: calc(-2.25rem + 2px); - width: calc(1rem - 4px); - height: calc(1rem - 4px); - background-color: #adb5bd; - border-radius: .5rem; - transition: transform .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out +.btn-group-vertical > .btn-group:not(:first-child), .btn-group-vertical > .btn:not(:first-child) { + margin-top: -1px } -@media (prefers-#a7240euced-motion: #a7240euce +.btn-group-vertical > .btn-group:not(:last-child) > .btn, .btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle) { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0 +} -) { - .custom-switch .custom-control-label:after { - transition: none - } +.btn-group-vertical > .btn-group:not(:first-child) > .btn, .btn-group-vertical > .btn:not(:first-child) { + border-top-left-radius: 0; + border-top-right-radius: 0 } -.custom-switch .custom-control-input:checked ~ .custom-control-label:after { - background-color: #fff; - transform: translateX(.75rem) +.btn-group-toggle > .btn, .btn-group-toggle > .btn-group > .btn { + margin-bottom: 0 } -.custom-switch .custom-control-input:disabled:checked ~ .custom-control-label:before { - background-color: rgba(0, 6, 55, .5) +.btn-group-toggle > .btn-group > .btn input[type=checkbox], .btn-group-toggle > .btn-group > .btn input[type=radio], .btn-group-toggle > .btn input[type=checkbox], .btn-group-toggle > .btn input[type=radio] { + position: absolute; + clip: rect(0, 0, 0, 0); + pointer-events: none } -.custom-select { - display: inline-block; - width: 100%; - height: calc(1.5em + .75rem + 2px); - padding: .375rem 1.75rem .375rem .75rem; - font-size: 1rem; - font-weight: 400; - line-height: 1.5; - color: #495057; - vertical-align: middle; - background: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right .75rem center/8px 10px; - background-color: #fff; - border: 1px solid #ced4da; - border-radius: .25rem; - -webkit-appearance: none; - -moz-appearance: none; - appearance: none +.input-group { + position: relative; + display: flex; + flex-wrap: wrap; + align-items: stretch; + width: 100% } -.custom-select:focus { - border-color: #0014b7; - outline: 0; - box-shadow: 0 0 0 .2rem rgba(0, 6, 55, .25) +.input-group > .custom-file, .input-group > .custom-select, .input-group > .form-control, .input-group > .form-control-plaintext { + position: relative; + flex: 1 1 auto; + width: 1%; + margin-bottom: 0 } -.custom-select:focus::-ms-value { - color: #495057; - background-color: #fff +.input-group > .custom-file + .custom-file, .input-group > .custom-file + .custom-select, .input-group > .custom-file + .form-control, .input-group > .custom-select + .custom-file, .input-group > .custom-select + .custom-select, .input-group > .custom-select + .form-control, .input-group > .form-control + .custom-file, .input-group > .form-control + .custom-select, .input-group > .form-control + .form-control, .input-group > .form-control-plaintext + .custom-file, .input-group > .form-control-plaintext + .custom-select, .input-group > .form-control-plaintext + .form-control { + margin-left: -1px } -.custom-select[multiple], .custom-select[size]:not([size="1"]) { - height: auto; - padding-right: .75rem; - background-image: none +.input-group > .custom-file .custom-file-input:focus ~ .custom-file-label, .input-group > .custom-select:focus, .input-group > .form-control:focus { + z-index: 3 } -.custom-select:disabled { - color: #6c757d; - background-color: #e9ecef +.input-group > .custom-file .custom-file-input:focus { + z-index: 4 } -.custom-select::-ms-expand { - display: none +.input-group > .custom-select:not(:last-child), .input-group > .form-control:not(:last-child) { + border-top-right-radius: 0; + border-bottom-right-radius: 0 } -.custom-select-sm { - height: calc(1.5em + .5rem + 2px); - padding-top: .25rem; - padding-bottom: .25rem; - padding-left: .5rem; - font-size: .875rem +.input-group > .custom-select:not(:first-child), .input-group > .form-control:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0 } -.custom-select-lg { - height: calc(1.5em + 1rem + 2px); - padding-top: .5rem; - padding-bottom: .5rem; - padding-left: 1rem; - font-size: 1.25rem +.input-group > .custom-file { + display: flex; + align-items: center } -.custom-file { - display: inline-block; - margin-bottom: 0 +.input-group > .custom-file:not(:last-child) .custom-file-label, .input-group > .custom-file:not(:last-child) .custom-file-label:after { + border-top-right-radius: 0; + border-bottom-right-radius: 0 } -.custom-file, .custom-file-input { - position: relative; - width: 100%; - height: calc(1.5em + .75rem + 2px) +.input-group > .custom-file:not(:first-child) .custom-file-label { + border-top-left-radius: 0; + border-bottom-left-radius: 0 } -.custom-file-input { - z-index: 2; - margin: 0; - opacity: 0 +.input-group-append, .input-group-prepend { + display: flex } -.custom-file-input:focus ~ .custom-file-label { - border-color: #0014b7; - box-shadow: 0 0 0 .2rem rgba(0, 6, 55, .25) +.input-group-append .btn, .input-group-prepend .btn { + position: relative; + z-index: 2 } -.custom-file-input:disabled ~ .custom-file-label { - background-color: #e9ecef +.input-group-append .btn:focus, .input-group-prepend .btn:focus { + z-index: 3 } -.custom-file-input:lang(en) ~ .custom-file-label:after { - content: "Browse" +.input-group-append .btn + .btn, .input-group-append .btn + .input-group-text, .input-group-append .input-group-text + .btn, .input-group-append .input-group-text + .input-group-text, .input-group-prepend .btn + .btn, .input-group-prepend .btn + .input-group-text, .input-group-prepend .input-group-text + .btn, .input-group-prepend .input-group-text + .input-group-text { + margin-left: -1px } -.custom-file-input ~ .custom-file-label[data-browse]:after { - content: attr(data-browse) +.input-group-prepend { + margin-right: -1px } -.custom-file-label { - left: 0; - z-index: 1; - height: calc(1.5em + .75rem + 2px); - font-weight: 400; - background-color: #fff; - border: 1px solid #ced4da; - border-radius: .25rem +.input-group-append { + margin-left: -1px } -.custom-file-label, .custom-file-label:after { - position: absolute; - top: 0; - right: 0; - padding: .375rem .75rem; +.input-group-text { + display: flex; + align-items: center; + padding: .375rem .75rem; + margin-bottom: 0; + font-size: 1rem; + font-weight: 400; line-height: 1.5; - color: #495057 + color: #495057; + text-align: center; + white-space: nowrap; + background-color: #e9ecef; + border: 1px solid #ced4da; + border-radius: .25rem } -.custom-file-label:after { - bottom: 0; - z-index: 3; - display: block; - height: calc(1.5em + .75rem); - content: "Browse"; - background-color: #e9ecef; - border-left: inherit; - border-radius: 0 .25rem .25rem 0 +.input-group-text input[type=checkbox], .input-group-text input[type=radio] { + margin-top: 0 } -.custom-range { - width: 100%; - height: 1.4rem; - padding: 0; - background-color: transparent; - -webkit-appearance: none; - -moz-appearance: none; - appearance: none +.input-group-lg > .custom-select, .input-group-lg > .form-control:not(textarea) { + height: calc(1.5em + 1rem + 2px) } -.custom-range:focus { - outline: none +.input-group-lg > .custom-select, .input-group-lg > .form-control, .input-group-lg > .input-group-append > .btn, .input-group-lg > .input-group-append > .input-group-text, .input-group-lg > .input-group-prepend > .btn, .input-group-lg > .input-group-prepend > .input-group-text { + padding: .5rem 1rem; + font-size: 1.25rem; + line-height: 1.5; + border-radius: .3rem } -.custom-range:focus::-webkit-slider-thumb { - box-shadow: 0 0 0 1px #fff, 0 0 0 .2rem rgba(0, 6, 55, .25) +.input-group-sm > .custom-select, .input-group-sm > .form-control:not(textarea) { + height: calc(1.5em + .5rem + 2px) } -.custom-range:focus::-moz-range-thumb { - box-shadow: 0 0 0 1px #fff, 0 0 0 .2rem rgba(0, 6, 55, .25) +.input-group-sm > .custom-select, .input-group-sm > .form-control, .input-group-sm > .input-group-append > .btn, .input-group-sm > .input-group-append > .input-group-text, .input-group-sm > .input-group-prepend > .btn, .input-group-sm > .input-group-prepend > .input-group-text { + padding: .25rem .5rem; + font-size: .875rem; + line-height: 1.5; + border-radius: .2rem } -.custom-range:focus::-ms-thumb { - box-shadow: 0 0 0 1px #fff, 0 0 0 .2rem rgba(0, 6, 55, .25) +.input-group-lg > .custom-select, .input-group-sm > .custom-select { + padding-right: 1.75rem } -.custom-range::-moz-focus-outer { - border: 0 +.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle), .input-group > .input-group-append:last-child > .input-group-text:not(:last-child), .input-group > .input-group-append:not(:last-child) > .btn, .input-group > .input-group-append:not(:last-child) > .input-group-text, .input-group > .input-group-prepend > .btn, .input-group > .input-group-prepend > .input-group-text { + border-top-right-radius: 0; + border-bottom-right-radius: 0 } -.custom-range::-webkit-slider-thumb { - width: 1rem; - height: 1rem; - margin-top: -.25rem; - background-color: #b98766; - border: 0; - border-radius: 1rem; - transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out; - -webkit-appearance: none; - appearance: none +.input-group > .input-group-append > .btn, .input-group > .input-group-append > .input-group-text, .input-group > .input-group-prepend:first-child > .btn:not(:first-child), .input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child), .input-group > .input-group-prepend:not(:first-child) > .btn, .input-group > .input-group-prepend:not(:first-child) > .input-group-text { + border-top-left-radius: 0; + border-bottom-left-radius: 0 } -@media (prefers-#a7240euced-motion: #a7240euce +.custom-control { + position: relative; + display: block; + min-height: 1.5rem; + padding-left: 1.5rem +} -) { - .custom-range::-webkit-slider-thumb { - transition: none - } +.custom-control-inline { + display: inline-flex; + margin-right: 1rem } -.custom-range::-webkit-slider-thumb:active { - background-color: #0019ea +.custom-control-input { + position: absolute; + z-index: -1; + opacity: 0 } -.custom-range::-webkit-slider-runnable-track { - width: 100%; - height: .5rem; - color: transparent; - cursor: pointer; - background-color: #dee2e6; - border-color: transparent; - border-radius: 1rem +.custom-control-input:checked ~ .custom-control-label:before { + color: #fff; + border-color: #b98766; + background-color: #b98766 } -.custom-range::-moz-range-thumb { - width: 1rem; - height: 1rem; - background-color: #b98766; - border: 0; - border-radius: 1rem; - transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out; - -moz-appearance: none; - appearance: none +.custom-control-input:focus ~ .custom-control-label:before { + box-shadow: 0 0 0 .2rem rgba(0, 6, 55, .25) } -@media (prefers-#a7240euced-motion: #a7240euce +.custom-control-input:focus:not(:checked) ~ .custom-control-label:before { + border-color: #0014b7 +} -) { - .custom-range::-moz-range-thumb { - transition: none - } +.custom-control-input:not(:disabled):active ~ .custom-control-label:before { + color: #fff; + background-color: #0019ea; + border-color: #0019ea } -.custom-range::-moz-range-thumb:active { - background-color: #0019ea +.custom-control-input:disabled ~ .custom-control-label { + color: #6c757d } -.custom-range::-moz-range-track { - width: 100%; - height: .5rem; - color: transparent; - cursor: pointer; - background-color: #dee2e6; - border-color: transparent; - border-radius: 1rem +.custom-control-input:disabled ~ .custom-control-label:before { + background-color: #e9ecef } -.custom-range::-ms-thumb { +.custom-control-label { + position: relative; + margin-bottom: 0; + vertical-align: top +} + +.custom-control-label:before { + pointer-events: none; + background-color: #fff; + border: 1px solid #adb5bd +} + +.custom-control-label:after, .custom-control-label:before { + position: absolute; + top: .25rem; + left: -1.5rem; + display: block; width: 1rem; height: 1rem; - margin-top: 0; - margin-right: .2rem; - margin-left: .2rem; - background-color: #b98766; - border: 0; - border-radius: 1rem; - transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out; - appearance: none + content: "" } -@media (prefers-#a7240euced-motion: #a7240euce +.custom-control-label:after { + background: no-repeat 50%/50% 50% +} -) { - .custom-range::-ms-thumb { - transition: none - } +.custom-checkbox .custom-control-label:before { + border-radius: .25rem } -.custom-range::-ms-thumb:active { - background-color: #0019ea +.custom-checkbox .custom-control-input:checked ~ .custom-control-label:after { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3E%3C/svg%3E") } -.custom-range::-ms-track { - width: 100%; - height: .5rem; - color: transparent; - cursor: pointer; - background-color: transparent; - border-color: transparent; - border-width: .5rem +.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label:before { + border-color: #b98766; + background-color: #b98766 } -.custom-range::-ms-fill-lower, .custom-range::-ms-fill-upper { - background-color: #dee2e6; - border-radius: 1rem +.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label:after { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E") } -.custom-range::-ms-fill-upper { - margin-right: 15px +.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label:before { + background-color: rgba(0, 6, 55, .5) } -.custom-range:disabled::-webkit-slider-thumb { - background-color: #adb5bd +.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label:before { + background-color: rgba(0, 6, 55, .5) } -.custom-range:disabled::-webkit-slider-runnable-track { - cursor: default +.custom-radio .custom-control-label:before { + border-radius: 50% } -.custom-range:disabled::-moz-range-thumb { - background-color: #adb5bd +.custom-radio .custom-control-input:checked ~ .custom-control-label:after { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E") } -.custom-range:disabled::-moz-range-track { - cursor: default +.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label:before { + background-color: rgba(0, 6, 55, .5) } -.custom-range:disabled::-ms-thumb { - background-color: #adb5bd +.custom-switch { + padding-left: 2.25rem } -.custom-control-label:before, .custom-file-label, .custom-select { - transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out +.custom-switch .custom-control-label:before { + left: -2.25rem; + width: 1.75rem; + pointer-events: all; + border-radius: .5rem +} + +.custom-switch .custom-control-label:after { + top: calc(.25rem + 2px); + left: calc(-2.25rem + 2px); + width: calc(1rem - 4px); + height: calc(1rem - 4px); + background-color: #adb5bd; + border-radius: .5rem; + transition: transform .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out } @media (prefers-#a7240euced-motion: #a7240euce ) { - .custom-control-label:before, .custom-file-label, .custom-select { + .custom-switch .custom-control-label:after { transition: none } } -.nav { - display: flex; - flex-wrap: wrap; - padding-left: 0; - margin-bottom: 0; - list-style: none +.custom-switch .custom-control-input:checked ~ .custom-control-label:after { + background-color: #fff; + transform: translateX(.75rem) } -.nav-link { - display: block; - padding: .5rem 1rem +.custom-switch .custom-control-input:disabled:checked ~ .custom-control-label:before { + background-color: rgba(0, 6, 55, .5) } -.nav-link:focus, .nav-link:hover { - text-decoration: none +.custom-select { + display: inline-block; + width: 100%; + height: calc(1.5em + .75rem + 2px); + padding: .375rem 1.75rem .375rem .75rem; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #495057; + vertical-align: middle; + background: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right .75rem center/8px 10px; + background-color: #fff; + border: 1px solid #ced4da; + border-radius: .25rem; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none } -.nav-link.disabled { - color: #6c757d; - pointer-events: none; - cursor: default +.custom-select:focus { + border-color: #0014b7; + outline: 0; + box-shadow: 0 0 0 .2rem rgba(0, 6, 55, .25) } -.nav-tabs { - border-bottom: 1px solid #dee2e6 +.custom-select:focus::-ms-value { + color: #495057; + background-color: #fff } -.nav-tabs .nav-item { - margin-bottom: -1px +.custom-select[multiple], .custom-select[size]:not([size="1"]) { + height: auto; + padding-right: .75rem; + background-image: none } -.nav-tabs .nav-link { - border: 1px solid transparent; - border-top-left-radius: .25rem; - border-top-right-radius: .25rem +.custom-select:disabled { + color: #6c757d; + background-color: #e9ecef } -.nav-tabs .nav-link:focus, .nav-tabs .nav-link:hover { - border-color: #e9ecef #e9ecef #dee2e6 +.custom-select::-ms-expand { + display: none } -.nav-tabs .nav-link.disabled { - color: #6c757d; - background-color: transparent; - border-color: transparent +.custom-select-sm { + height: calc(1.5em + .5rem + 2px); + padding-top: .25rem; + padding-bottom: .25rem; + padding-left: .5rem; + font-size: .875rem } -.nav-tabs .nav-item.show .nav-link, .nav-tabs .nav-link.active { - color: #495057; - background-color: #fff; - border-color: #dee2e6 #dee2e6 #fff +.custom-select-lg { + height: calc(1.5em + 1rem + 2px); + padding-top: .5rem; + padding-bottom: .5rem; + padding-left: 1rem; + font-size: 1.25rem } -.nav-tabs .dropdown-menu { - margin-top: -1px; - border-top-left-radius: 0; - border-top-right-radius: 0 +.custom-file { + display: inline-block; + margin-bottom: 0 } -.nav-pills .nav-link { - border-radius: .25rem +.custom-file, .custom-file-input { + position: relative; + width: 100%; + height: calc(1.5em + .75rem + 2px) } -.nav-pills .nav-link.active, .nav-pills .show > .nav-link { - color: #fff; - background-color: #b98766 +.custom-file-input { + z-index: 2; + margin: 0; + opacity: 0 } -.nav-fill .nav-item { - flex: 1 1 auto; - text-align: center +.custom-file-input:focus ~ .custom-file-label { + border-color: #0014b7; + box-shadow: 0 0 0 .2rem rgba(0, 6, 55, .25) } -.nav-justified .nav-item { - flex-basis: 0; - flex-grow: 1; - text-align: center +.custom-file-input:disabled ~ .custom-file-label { + background-color: #e9ecef } -.tab-content > .tab-pane { - display: none +.custom-file-input:lang(en) ~ .custom-file-label:after { + content: "Browse" } -.tab-content > .active { - display: block +.custom-file-input ~ .custom-file-label[data-browse]:after { + content: attr(data-browse) } -.navbar { - position: relative; - padding: .5rem 1rem +.custom-file-label { + left: 0; + z-index: 1; + height: calc(1.5em + .75rem + 2px); + font-weight: 400; + background-color: #fff; + border: 1px solid #ced4da; + border-radius: .25rem } -.navbar, .navbar > .container, .navbar > .container-fluid { - display: flex; - flex-wrap: wrap; - align-items: center; - justify-content: space-between +.custom-file-label, .custom-file-label:after { + position: absolute; + top: 0; + right: 0; + padding: .375rem .75rem; + line-height: 1.5; + color: #495057 } -.navbar-brand { - display: inline-block; - padding-top: .3125rem; - padding-bottom: .3125rem; - margin-right: 1rem; - font-size: 1.25rem; - line-height: inherit; - white-space: nowrap +.custom-file-label:after { + bottom: 0; + z-index: 3; + display: block; + height: calc(1.5em + .75rem); + content: "Browse"; + background-color: #e9ecef; + border-left: inherit; + border-radius: 0 .25rem .25rem 0 } -.navbar-brand:focus, .navbar-brand:hover { - text-decoration: none +.custom-range { + width: 100%; + height: 1.4rem; + padding: 0; + background-color: transparent; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none } -.navbar-nav { - display: flex; - flex-direction: column; - padding-left: 0; - margin-bottom: 0; - list-style: none +.custom-range:focus { + outline: none } -.navbar-nav .nav-link { - padding-right: 0; - padding-left: 0 +.custom-range:focus::-webkit-slider-thumb { + box-shadow: 0 0 0 1px #fff, 0 0 0 .2rem rgba(0, 6, 55, .25) } -.navbar-nav .dropdown-menu { - position: static; - float: none +.custom-range:focus::-moz-range-thumb { + box-shadow: 0 0 0 1px #fff, 0 0 0 .2rem rgba(0, 6, 55, .25) } -.navbar-text { - display: inline-block; - padding-top: .5rem; - padding-bottom: .5rem +.custom-range:focus::-ms-thumb { + box-shadow: 0 0 0 1px #fff, 0 0 0 .2rem rgba(0, 6, 55, .25) } -.navbar-collapse { - flex-basis: 100%; - flex-grow: 1; - align-items: center +.custom-range::-moz-focus-outer { + border: 0 } -.navbar-toggler { - padding: .25rem .75rem; - font-size: 1.25rem; - line-height: 1; - background-color: transparent; - border: 1px solid transparent; - border-radius: .1875rem +.custom-range::-webkit-slider-thumb { + width: 1rem; + height: 1rem; + margin-top: -.25rem; + background-color: #b98766; + border: 0; + border-radius: 1rem; + transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out; + -webkit-appearance: none; + appearance: none } -.navbar-toggler:focus, .navbar-toggler:hover { - text-decoration: none +@media (prefers-#a7240euced-motion: #a7240euce + +) { + .custom-range::-webkit-slider-thumb { + transition: none + } } -.navbar-toggler-icon { - display: inline-block; - width: 1.5em; - height: 1.5em; - vertical-align: middle; - content: ""; - background: no-repeat 50%; - background-size: 100% 100% +.custom-range::-webkit-slider-thumb:active { + background-color: #0019ea } -@media (max-width: 575.98px) { - .navbar-expand-sm > .container, .navbar-expand-sm > .container-fluid { - padding-right: 0; - padding-left: 0 - } +.custom-range::-webkit-slider-runnable-track { + width: 100%; + height: .5rem; + color: transparent; + cursor: pointer; + background-color: #dee2e6; + border-color: transparent; + border-radius: 1rem } -@media (min-width: 576px) { - .navbar-expand-sm { - flex-flow: row nowrap; - justify-content: flex-start - } +.custom-range::-moz-range-thumb { + width: 1rem; + height: 1rem; + background-color: #b98766; + border: 0; + border-radius: 1rem; + transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out; + -moz-appearance: none; + appearance: none +} - .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: .5rem; - padding-left: .5rem - } - - .navbar-expand-sm > .container, .navbar-expand-sm > .container-fluid { - flex-wrap: nowrap - } - - .navbar-expand-sm .navbar-collapse { - display: flex !important; - flex-basis: auto - } +@media (prefers-#a7240euced-motion: #a7240euce - .navbar-expand-sm .navbar-toggler { - display: none +) { + .custom-range::-moz-range-thumb { + transition: none } } -@media (max-width: 767.98px) { - .navbar-expand-md > .container, .navbar-expand-md > .container-fluid { - padding-right: 0; - padding-left: 0 - } +.custom-range::-moz-range-thumb:active { + background-color: #0019ea } -@media (min-width: 768px) { - .navbar-expand-md { - flex-flow: row nowrap; - justify-content: flex-start - } - - .navbar-expand-md .navbar-nav { - flex-direction: row - } - - .navbar-expand-md .navbar-nav .dropdown-menu { - position: absolute - } - - .navbar-expand-md .navbar-nav .nav-link { - padding-right: .5rem; - padding-left: .5rem - } - - .navbar-expand-md > .container, .navbar-expand-md > .container-fluid { - flex-wrap: nowrap - } - - .navbar-expand-md .navbar-collapse { - display: flex !important; - flex-basis: auto - } - - .navbar-expand-md .navbar-toggler { - display: none - } +.custom-range::-moz-range-track { + width: 100%; + height: .5rem; + color: transparent; + cursor: pointer; + background-color: #dee2e6; + border-color: transparent; + border-radius: 1rem } -@media (max-width: 991.98px) { - .navbar-expand-lg > .container, .navbar-expand-lg > .container-fluid { - padding-right: 0; - padding-left: 0 - } +.custom-range::-ms-thumb { + width: 1rem; + height: 1rem; + margin-top: 0; + margin-right: .2rem; + margin-left: .2rem; + background-color: #b98766; + border: 0; + border-radius: 1rem; + transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out; + appearance: none } -@media (min-width: 992px) { - .navbar-expand-lg { - flex-flow: row nowrap; - justify-content: flex-start - } +@media (prefers-#a7240euced-motion: #a7240euce - .navbar-expand-lg .navbar-nav { - flex-direction: row +) { + .custom-range::-ms-thumb { + transition: none } +} - .navbar-expand-lg .navbar-nav .dropdown-menu { - position: absolute - } +.custom-range::-ms-thumb:active { + background-color: #0019ea +} - .navbar-expand-lg .navbar-nav .nav-link { - padding-right: .5rem; - padding-left: .5rem - } +.custom-range::-ms-track { + width: 100%; + height: .5rem; + color: transparent; + cursor: pointer; + background-color: transparent; + border-color: transparent; + border-width: .5rem +} - .navbar-expand-lg > .container, .navbar-expand-lg > .container-fluid { - flex-wrap: nowrap - } +.custom-range::-ms-fill-lower, .custom-range::-ms-fill-upper { + background-color: #dee2e6; + border-radius: 1rem +} - .navbar-expand-lg .navbar-collapse { - display: flex !important; - flex-basis: auto - } +.custom-range::-ms-fill-upper { + margin-right: 15px +} - .navbar-expand-lg .navbar-toggler { - display: none - } +.custom-range:disabled::-webkit-slider-thumb { + background-color: #adb5bd } -@media (max-width: 1199.98px) { - .navbar-expand-xl > .container, .navbar-expand-xl > .container-fluid { - padding-right: 0; - padding-left: 0 - } +.custom-range:disabled::-webkit-slider-runnable-track { + cursor: default } -@media (min-width: 1200px) { - .navbar-expand-xl { - flex-flow: row nowrap; - justify-content: flex-start - } +.custom-range:disabled::-moz-range-thumb { + background-color: #adb5bd +} - .navbar-expand-xl .navbar-nav { - flex-direction: row - } +.custom-range:disabled::-moz-range-track { + cursor: default +} - .navbar-expand-xl .navbar-nav .dropdown-menu { - position: absolute - } +.custom-range:disabled::-ms-thumb { + background-color: #adb5bd +} - .navbar-expand-xl .navbar-nav .nav-link { - padding-right: .5rem; - padding-left: .5rem - } +.custom-control-label:before, .custom-file-label, .custom-select { + transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out +} - .navbar-expand-xl > .container, .navbar-expand-xl > .container-fluid { - flex-wrap: nowrap - } +@media (prefers-#a7240euced-motion: #a7240euce - .navbar-expand-xl .navbar-collapse { - display: flex !important; - flex-basis: auto +) { + .custom-control-label:before, .custom-file-label, .custom-select { + transition: none } +} - .navbar-expand-xl .navbar-toggler { - display: none - } +.nav { + display: flex; + flex-wrap: wrap; + padding-left: 0; + margin-bottom: 0; + list-style: none } -.navbar-expand { - flex-flow: row nowrap; - justify-content: flex-start +.nav-link { + display: block; + padding: .5rem 1rem } -.navbar-expand > .container, .navbar-expand > .container-fluid { - padding-right: 0; - padding-left: 0 +.nav-link:focus, .nav-link:hover { + text-decoration: none } -.navbar-expand .navbar-nav { - flex-direction: row +.nav-link.disabled { + color: #6c757d; + pointer-events: none; + cursor: default } -.navbar-expand .navbar-nav .dropdown-menu { - position: absolute +.nav-tabs { + border-bottom: 1px solid #dee2e6 } -.navbar-expand .navbar-nav .nav-link { - padding-right: .5rem; - padding-left: .5rem +.nav-tabs .nav-item { + margin-bottom: -1px } -.navbar-expand > .container, .navbar-expand > .container-fluid { - flex-wrap: nowrap +.nav-tabs .nav-link { + border: 1px solid transparent; + border-top-left-radius: .25rem; + border-top-right-radius: .25rem } -.navbar-expand .navbar-collapse { - display: flex !important; - flex-basis: auto +.nav-tabs .nav-link:focus, .nav-tabs .nav-link:hover { + border-color: #e9ecef #e9ecef #dee2e6 } -.navbar-expand .navbar-toggler { - display: none +.nav-tabs .nav-link.disabled { + color: #6c757d; + background-color: transparent; + border-color: transparent } -.navbar-light .navbar-brand, .navbar-light .navbar-brand:focus, .navbar-light .navbar-brand:hover { - color: rgba(46, 46, 46, .9) +.nav-tabs .nav-item.show .nav-link, .nav-tabs .nav-link.active { + color: #495057; + background-color: #fff; + border-color: #dee2e6 #dee2e6 #fff } -.navbar-light .navbar-nav .nav-link { - color: rgba(46, 46, 46, .5) +.nav-tabs .dropdown-menu { + margin-top: -1px; + border-top-left-radius: 0; + border-top-right-radius: 0 } -.navbar-light .navbar-nav .nav-link:focus, .navbar-light .navbar-nav .nav-link:hover { - color: rgba(46, 46, 46, .7) +.nav-pills .nav-link { + border-radius: .25rem } -.navbar-light .navbar-nav .nav-link.disabled { - color: rgba(46, 46, 46, .3) +.nav-pills .nav-link.active, .nav-pills .show > .nav-link { + color: #fff; + background-color: #b98766 } -.navbar-light .navbar-nav .active > .nav-link, .navbar-light .navbar-nav .nav-link.active, .navbar-light .navbar-nav .nav-link.show, .navbar-light .navbar-nav .show > .nav-link { - color: rgba(46, 46, 46, .9) +.nav-fill .nav-item { + flex: 1 1 auto; + text-align: center } -.navbar-light .navbar-toggler { - color: rgba(46, 46, 46, .5); - border-color: rgba(46, 46, 46, .1) +.nav-justified .nav-item { + flex-basis: 0; + flex-grow: 1; + text-align: center } -.navbar-light .navbar-toggler-icon { - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E") +.tab-content > .tab-pane { + display: none } -.navbar-light .navbar-text { - color: rgba(46, 46, 46, .5) +.tab-content > .active { + display: block } -.navbar-light .navbar-text a, .navbar-light .navbar-text a:focus, .navbar-light .navbar-text a:hover { - color: rgba(46, 46, 46, .9) +.navbar { + position: relative; + padding: .5rem 1rem } -.navbar-dark .navbar-brand, .navbar-dark .navbar-brand:focus, .navbar-dark .navbar-brand:hover { - color: #fff +.navbar, .navbar > .container, .navbar > .container-fluid { + display: flex; + flex-wrap: wrap; + align-items: center; + justify-content: space-between } -.navbar-dark .navbar-nav .nav-link { - color: hsla(0, 0%, 18%, .5) +.navbar-brand { + display: inline-block; + padding-top: .3125rem; + padding-bottom: .3125rem; + margin-right: 1rem; + font-size: 1.25rem; + line-height: inherit; + white-space: nowrap } -.navbar-dark .navbar-nav .nav-link:focus, .navbar-dark .navbar-nav .nav-link:hover { - color: hsla(0, 0%, 18%, .75) +.navbar-brand:focus, .navbar-brand:hover { + text-decoration: none } -.navbar-dark .navbar-nav .nav-link.disabled { - color: hsla(0, 0%, 18%, .25) +.navbar-nav { + display: flex; + flex-direction: column; + padding-left: 0; + margin-bottom: 0; + list-style: none } -.navbar-dark .navbar-nav .active > .nav-link, .navbar-dark .navbar-nav .nav-link.active, .navbar-dark .navbar-nav .nav-link.show, .navbar-dark .navbar-nav .show > .nav-link { - color: #2e2e2e +.navbar-nav .nav-link { + padding-right: 0; + padding-left: 0 } -.navbar-dark .navbar-toggler { - color: rgba(46, 46, 46, 0.5); - border-color: rgba(46, 46, 46, 0.5); +.navbar-nav .dropdown-menu { + position: static; + float: none } -.navbar-dark .navbar-toggler-icon { - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(46, 46, 46, 1)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E") +.navbar-text { + display: inline-block; + padding-top: .5rem; + padding-bottom: .5rem } -.navbar-dark .navbar-text { - color: hsla(0, 0%, 18%, .5) +.navbar-collapse { + flex-basis: 100%; + flex-grow: 1; + align-items: center } -.navbar-dark .navbar-text a, .navbar-dark .navbar-text a:focus, .navbar-dark .navbar-text a:hover { - color: #fff +.navbar-toggler { + padding: .25rem .75rem; + font-size: 1.25rem; + line-height: 1; + background-color: transparent; + border: 1px solid transparent; + border-radius: .1875rem } -.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(0, 0, 0, .125); - border-radius: .25rem +.navbar-toggler:focus, .navbar-toggler:hover { + text-decoration: none } -.card > hr { - margin-right: 0; - margin-left: 0 +.navbar-toggler-icon { + display: inline-block; + width: 1.5em; + height: 1.5em; + vertical-align: middle; + content: ""; + background: no-repeat 50%; + background-size: 100% 100% } -.card > .list-group:first-child .list-group-item:first-child { - border-top-left-radius: .25rem; - border-top-right-radius: .25rem +@media (max-width: 575.98px) { + .navbar-expand-sm > .container, .navbar-expand-sm > .container-fluid { + padding-right: 0; + padding-left: 0 + } } -.card > .list-group:last-child .list-group-item:last-child { - border-bottom-right-radius: .25rem; - border-bottom-left-radius: .25rem -} +@media (min-width: 576px) { + .navbar-expand-sm { + flex-flow: row nowrap; + justify-content: flex-start + } -.card-body { - flex: 1 1 auto; - padding: 1.25rem -} + .navbar-expand-sm .navbar-nav { + flex-direction: row + } -.card-title { - margin-bottom: .75rem -} + .navbar-expand-sm .navbar-nav .dropdown-menu { + position: absolute + } -.card-subtitle { - margin-top: -.375rem -} + .navbar-expand-sm .navbar-nav .nav-link { + padding-right: .5rem; + padding-left: .5rem + } -.card-subtitle, .card-text:last-child { - margin-bottom: 0 -} + .navbar-expand-sm > .container, .navbar-expand-sm > .container-fluid { + flex-wrap: nowrap + } -.card-link:hover { - text-decoration: none -} + .navbar-expand-sm .navbar-collapse { + display: flex !important; + flex-basis: auto + } -.card-link + .card-link { - margin-left: 1.25rem + .navbar-expand-sm .navbar-toggler { + display: none + } } -.card-header { - padding: .75rem 1.25rem; - margin-bottom: 0; - background-color: #ffffff; - border-bottom: 1px solid rgba(0, 0, 0, .125) +@media (max-width: 767.98px) { + .navbar-expand-md > .container, .navbar-expand-md > .container-fluid { + padding-right: 0; + padding-left: 0 + } } -.card-header:first-child { - border-radius: calc(.25rem - 1px) calc(.25rem - 1px) 0 0 -} +@media (min-width: 768px) { + .navbar-expand-md { + flex-flow: row nowrap; + justify-content: flex-start + } -.card-header + .list-group .list-group-item:first-child { - border-top: 0 -} + .navbar-expand-md .navbar-nav { + flex-direction: row + } -.card-footer { - padding: .75rem 1.25rem; - background-color: #ffffff; - border-top: 1px solid rgba(0, 0, 0, .125) -} + .navbar-expand-md .navbar-nav .dropdown-menu { + position: absolute + } -.card-footer:last-child { - border-radius: 0 0 calc(.25rem - 1px) calc(.25rem - 1px) -} + .navbar-expand-md .navbar-nav .nav-link { + padding-right: .5rem; + padding-left: .5rem + } -.card-header-tabs { - margin-bottom: -.75rem; - border-bottom: 0 -} + .navbar-expand-md > .container, .navbar-expand-md > .container-fluid { + flex-wrap: nowrap + } -.card-header-pills, .card-header-tabs { - margin-right: -.625rem; - margin-left: -.625rem -} + .navbar-expand-md .navbar-collapse { + display: flex !important; + flex-basis: auto + } -.card-img-overlay { - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - padding: 1.25rem + .navbar-expand-md .navbar-toggler { + display: none + } } -.card-img { - width: 100%; - border-radius: calc(.25rem - 1px) +@media (max-width: 991.98px) { + .navbar-expand-lg > .container, .navbar-expand-lg > .container-fluid { + padding-right: 0; + padding-left: 0 + } } -.card-img-top { - width: 100%; - border-top-left-radius: calc(.25rem - 1px); - border-top-right-radius: calc(.25rem - 1px) -} +@media (min-width: 992px) { + .navbar-expand-lg { + flex-flow: row nowrap; + justify-content: flex-start + } -.card-img-bottom { - width: 100%; - border-bottom-right-radius: calc(.25rem - 1px); - border-bottom-left-radius: calc(.25rem - 1px) -} + .navbar-expand-lg .navbar-nav { + flex-direction: row + } -.card-deck { - display: flex; - flex-direction: column -} - -.card-deck .card { - margin-bottom: 15px -} - -@media (min-width: 576px) { - .card-deck { - flex-flow: row wrap; - margin-right: -15px; - margin-left: -15px + .navbar-expand-lg .navbar-nav .dropdown-menu { + position: absolute } - .card-deck .card { - display: flex; - flex: 1 0 0%; - flex-direction: column; - margin-right: 15px; - margin-bottom: 0; - margin-left: 15px + .navbar-expand-lg .navbar-nav .nav-link { + padding-right: .5rem; + padding-left: .5rem } -} -.card-group { - display: flex; - flex-direction: column -} + .navbar-expand-lg > .container, .navbar-expand-lg > .container-fluid { + flex-wrap: nowrap + } -.card-group > .card { - margin-bottom: 15px -} + .navbar-expand-lg .navbar-collapse { + display: flex !important; + flex-basis: auto + } -@media (min-width: 576px) { - .card-group { - flex-flow: row wrap + .navbar-expand-lg .navbar-toggler { + display: none } +} - .card-group > .card { - flex: 1 0 0%; - margin-bottom: 0 +@media (max-width: 1199.98px) { + .navbar-expand-xl > .container, .navbar-expand-xl > .container-fluid { + padding-right: 0; + padding-left: 0 } +} - .card-group > .card + .card { - margin-left: 0; - border-left: 0 +@media (min-width: 1200px) { + .navbar-expand-xl { + flex-flow: row nowrap; + justify-content: flex-start } - .card-group > .card:not(:last-child) { - border-top-right-radius: 0; - border-bottom-right-radius: 0 + .navbar-expand-xl .navbar-nav { + flex-direction: row } - .card-group > .card:not(:last-child) .card-header, .card-group > .card:not(:last-child) .card-img-top { - border-top-right-radius: 0 + .navbar-expand-xl .navbar-nav .dropdown-menu { + position: absolute } - .card-group > .card:not(:last-child) .card-footer, .card-group > .card:not(:last-child) .card-img-bottom { - border-bottom-right-radius: 0 + .navbar-expand-xl .navbar-nav .nav-link { + padding-right: .5rem; + padding-left: .5rem } - .card-group > .card:not(:first-child) { - border-top-left-radius: 0; - border-bottom-left-radius: 0 + .navbar-expand-xl > .container, .navbar-expand-xl > .container-fluid { + flex-wrap: nowrap } - .card-group > .card:not(:first-child) .card-header, .card-group > .card:not(:first-child) .card-img-top { - border-top-left-radius: 0 + .navbar-expand-xl .navbar-collapse { + display: flex !important; + flex-basis: auto } - .card-group > .card:not(:first-child) .card-footer, .card-group > .card:not(:first-child) .card-img-bottom { - border-bottom-left-radius: 0 + .navbar-expand-xl .navbar-toggler { + display: none } } -.card-columns .card { - margin-bottom: .75rem +.navbar-expand { + flex-flow: row nowrap; + justify-content: flex-start } -@media (min-width: 576px) { - .card-columns { - -moz-column-count: 3; - column-count: 3; - -moz-column-gap: 1.25rem; - column-gap: 1.25rem; - orphans: 1; - widows: 1 - } - - .card-columns .card { - display: inline-block; - width: 100% - } +.navbar-expand > .container, .navbar-expand > .container-fluid { + padding-right: 0; + padding-left: 0 } -.accordion > .card { - overflow: hidden +.navbar-expand .navbar-nav { + flex-direction: row } -.accordion > .card:not(:first-of-type) .card-header:first-child { - border-radius: 0 +.navbar-expand .navbar-nav .dropdown-menu { + position: absolute } -.accordion > .card:not(:first-of-type):not(:last-of-type) { - border-bottom: 0; - border-radius: 0 +.navbar-expand .navbar-nav .nav-link { + padding-right: .5rem; + padding-left: .5rem } -.accordion > .card:first-of-type { - border-bottom: 0; - border-bottom-right-radius: 0; - border-bottom-left-radius: 0 +.navbar-expand > .container, .navbar-expand > .container-fluid { + flex-wrap: nowrap } -.accordion > .card:last-of-type { - border-top-left-radius: 0; - border-top-right-radius: 0 +.navbar-expand .navbar-collapse { + display: flex !important; + flex-basis: auto } -.accordion > .card .card-header { - margin-bottom: -1px +.navbar-expand .navbar-toggler { + display: none } -.breadcrumb { - display: flex; - flex-wrap: wrap; - padding: .75rem 1rem; - margin-bottom: 1rem; - list-style: none; - background-color: #e9ecef; - border-radius: .25rem +.navbar-light .navbar-brand, .navbar-light .navbar-brand:focus, .navbar-light .navbar-brand:hover { + color: rgba(46, 46, 46, .9) } -.breadcrumb-item + .breadcrumb-item { - padding-left: .5rem +.navbar-light .navbar-nav .nav-link { + color: rgba(46, 46, 46, .5) } -.breadcrumb-item + .breadcrumb-item:before { - display: inline-block; - padding-right: .5rem; - color: #6c757d; - content: "/" +.navbar-light .navbar-nav .nav-link:focus, .navbar-light .navbar-nav .nav-link:hover { + color: rgba(46, 46, 46, .7) } -.breadcrumb-item + .breadcrumb-item:hover:before { - text-decoration: underline; - text-decoration: none +.navbar-light .navbar-nav .nav-link.disabled { + color: rgba(46, 46, 46, .3) } -.breadcrumb-item.active { - color: #6c757d +.navbar-light .navbar-nav .active > .nav-link, .navbar-light .navbar-nav .nav-link.active, .navbar-light .navbar-nav .nav-link.show, .navbar-light .navbar-nav .show > .nav-link { + color: rgba(46, 46, 46, .9) } -.pagination { - display: flex; - padding-left: 0; - list-style: none; - border-radius: .25rem +.navbar-light .navbar-toggler { + color: rgba(46, 46, 46, .5); + border-color: rgba(46, 46, 46, .1) } -.page-link { - position: relative; - display: block; - padding: .5rem .75rem; - margin-left: -1px; - line-height: 1.25; - color: #b98766; - background-color: #fff; - border: 1px solid #dee2e6 +.navbar-light .navbar-toggler-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E") } -.page-link:hover { - z-index: 2; - color: #000; - text-decoration: none; - background-color: #e9ecef; - border-color: #dee2e6 +.navbar-light .navbar-text { + color: rgba(46, 46, 46, .5) } -.page-link:focus { - z-index: 2; - outline: 0; - box-shadow: 0 0 0 .2rem rgba(0, 6, 55, .25) +.navbar-light .navbar-text a, .navbar-light .navbar-text a:focus, .navbar-light .navbar-text a:hover { + color: rgba(46, 46, 46, .9) } -.page-item:first-child .page-link { - margin-left: 0; - border-top-left-radius: .25rem; - border-bottom-left-radius: .25rem +.navbar-dark .navbar-brand, .navbar-dark .navbar-brand:focus, .navbar-dark .navbar-brand:hover { + color: #fff } -.page-item:last-child .page-link { - border-top-right-radius: .25rem; - border-bottom-right-radius: .25rem +.navbar-dark .navbar-nav .nav-link { + color: hsla(0, 0%, 18%, .5) } -.page-item.active .page-link { - z-index: 1; - color: #fff; - background-color: #b98766; - border-color: #b98766 +.navbar-dark .navbar-nav .nav-link:focus, .navbar-dark .navbar-nav .nav-link:hover { + color: hsla(0, 0%, 18%, .75) } -.page-item.disabled .page-link { - color: #6c757d; - pointer-events: none; - cursor: auto; - background-color: #fff; - border-color: #dee2e6 +.navbar-dark .navbar-nav .nav-link.disabled { + color: hsla(0, 0%, 18%, .25) } -.pagination-lg .page-link { - padding: .75rem 1.5rem; - font-size: 1.25rem; - line-height: 1.5 +.navbar-dark .navbar-nav .active > .nav-link, .navbar-dark .navbar-nav .nav-link.active, .navbar-dark .navbar-nav .nav-link.show, .navbar-dark .navbar-nav .show > .nav-link { + color: #2e2e2e } -.pagination-lg .page-item:first-child .page-link { - border-top-left-radius: .3rem; - border-bottom-left-radius: .3rem +.navbar-dark .navbar-toggler { + color: rgba(46, 46, 46, 0.5); + border-color: rgba(46, 46, 46, 0.5); } -.pagination-lg .page-item:last-child .page-link { - border-top-right-radius: .3rem; - border-bottom-right-radius: .3rem +.navbar-dark .navbar-toggler-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(46, 46, 46, 1)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E") } -.pagination-sm .page-link { - padding: .25rem .5rem; - font-size: .875rem; - line-height: 1.5 +.navbar-dark .navbar-text { + color: hsla(0, 0%, 18%, .5) } -.pagination-sm .page-item:first-child .page-link { - border-top-left-radius: .2rem; - border-bottom-left-radius: .2rem +.navbar-dark .navbar-text a, .navbar-dark .navbar-text a:focus, .navbar-dark .navbar-text a:hover { + color: #fff } -.pagination-sm .page-item:last-child .page-link { - border-top-right-radius: .2rem; - border-bottom-right-radius: .2rem +.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(0, 0, 0, .125); + border-radius: .25rem } -.badge { - display: inline-block; - padding: .25em .4em; - font-size: 75%; - font-weight: 700; - line-height: 1; - text-align: center; - white-space: nowrap; - vertical-align: baseline; - border-radius: .25rem; - transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out +.card > hr { + margin-right: 0; + margin-left: 0 } -@media (prefers-#a7240euced-motion: #a7240euce - -) { - .badge { - transition: none - } +.card > .list-group:first-child .list-group-item:first-child { + border-top-left-radius: .25rem; + border-top-right-radius: .25rem } -a.badge:focus, a.badge:hover { - text-decoration: none +.card > .list-group:last-child .list-group-item:last-child { + border-bottom-right-radius: .25rem; + border-bottom-left-radius: .25rem } -.badge:empty { - display: none +.card-body { + flex: 1 1 auto; + padding: 1.25rem } -.btn .badge { - position: relative; - top: -1px +.card-title { + margin-bottom: .75rem } -.badge-pill { - padding-right: .6em; - padding-left: .6em; - border-radius: 10rem +.card-subtitle { + margin-top: -.375rem } -.badge-primary { - color: #fff; - background-color: #b98766 +.card-subtitle, .card-text:last-child { + margin-bottom: 0 } -a.badge-primary:focus, a.badge-primary:hover { - color: #fff; - background-color: #000004 +.card-link:hover { + text-decoration: none } -a.badge-primary.focus, a.badge-primary:focus { - outline: 0; - box-shadow: 0 0 0 .2rem rgba(0, 6, 55, .5) +.card-link + .card-link { + margin-left: 1.25rem } -.badge-secondary { - color: #212529; - background-color: #b55e4f +.card-header { + padding: .75rem 1.25rem; + margin-bottom: 0; + background-color: #ffffff; + border-bottom: 1px solid rgba(0, 0, 0, .125) } -a.badge-secondary:focus, a.badge-secondary:hover { - color: #212529; - background-color: #9090ea +.card-header:first-child { + border-radius: calc(.25rem - 1px) calc(.25rem - 1px) 0 0 } -a.badge-secondary.focus, a.badge-secondary:focus { - outline: 0; - box-shadow: 0 0 0 .2rem rgba(187, 187, 242, .5) +.card-header + .list-group .list-group-item:first-child { + border-top: 0 } -.badge-success { - color: #212529; - background-color: #82aa8b +.card-footer { + padding: .75rem 1.25rem; + background-color: #ffffff; + border-top: 1px solid rgba(0, 0, 0, .125) } -a.badge-success:focus, a.badge-success:hover { - color: #212529; - background-color: #35cca0 +.card-footer:last-child { + border-radius: 0 0 calc(.25rem - 1px) calc(.25rem - 1px) } -a.badge-success.focus, a.badge-success:focus { - outline: 0; - box-shadow: 0 0 0 .2rem rgba(94, 214, 179, .5) +.card-header-tabs { + margin-bottom: -.75rem; + border-bottom: 0 } -.badge-info { - color: #fff; - background-color: #385f84 +.card-header-pills, .card-header-tabs { + margin-right: -.625rem; + margin-left: -.625rem } -a.badge-info:focus, a.badge-info:hover { - color: #fff; - background-color: #007ee5 +.card-img-overlay { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + padding: 1.25rem } -a.badge-info.focus, a.badge-info:focus { - outline: 0; - box-shadow: 0 0 0 .2rem rgba(25, 152, 255, .5) +.card-img { + width: 100%; + border-radius: calc(.25rem - 1px) } -.badge-warning { - color: #212529; - background-color: #eaaa21 +.card-img-top { + width: 100%; + border-top-left-radius: calc(.25rem - 1px); + border-top-right-radius: calc(.25rem - 1px) } -a.badge-warning:focus, a.badge-warning:hover { - color: #212529; - background-color: #cc8a00 +.card-img-bottom { + width: 100%; + border-bottom-right-radius: calc(.25rem - 1px); + border-bottom-left-radius: calc(.25rem - 1px) } -a.badge-warning.focus, a.badge-warning:focus { - outline: 0; - box-shadow: 0 0 0 .2rem rgba(255, 173, 0, .5) +.card-deck { + display: flex; + flex-direction: column } -.badge-danger { - color: #fff; - background-color: #a7240e +.card-deck .card { + margin-bottom: 15px } -a.badge-danger:focus, a.badge-danger:hover { - color: #fff; - background-color: #c00 -} +@media (min-width: 576px) { + .card-deck { + flex-flow: row wrap; + margin-right: -15px; + margin-left: -15px + } -a.badge-danger.focus, a.badge-danger:focus { - outline: 0; - box-shadow: 0 0 0 .2rem rgba(255, 0, 0, .5) + .card-deck .card { + display: flex; + flex: 1 0 0%; + flex-direction: column; + margin-right: 15px; + margin-bottom: 0; + margin-left: 15px + } } -.badge-light { - color: #212529; - background-color: #cfd5cd +.card-group { + display: flex; + flex-direction: column } -a.badge-light:focus, a.badge-light:hover { - color: #212529; - background-color: #fb4e0f +.card-group > .card { + margin-bottom: 15px } -a.badge-light.focus, a.badge-light:focus { - outline: 0; - box-shadow: 0 0 0 .2rem rgba(252, 115, 65, .5) -} +@media (min-width: 576px) { + .card-group { + flex-flow: row wrap + } -.badge-dark { - color: #fff; - background-color: #221e1e -} + .card-group > .card { + flex: 1 0 0%; + margin-bottom: 0 + } -a.badge-dark:focus, a.badge-dark:hover { - color: #fff; - background-color: #070606 -} + .card-group > .card + .card { + margin-left: 0; + border-left: 0 + } -a.badge-dark.focus, a.badge-dark:focus { - outline: 0; - box-shadow: 0 0 0 .2rem rgba(34, 30, 30, .5) -} + .card-group > .card:not(:last-child) { + border-top-right-radius: 0; + border-bottom-right-radius: 0 + } -.jumbotron { - padding: 2rem 1rem; - margin-bottom: 2rem; - background-color: #f7f7f7; - border-radius: .3rem -} + .card-group > .card:not(:last-child) .card-header, .card-group > .card:not(:last-child) .card-img-top { + border-top-right-radius: 0 + } -@media (min-width: 576px) { - .jumbotron { - padding: 4rem 2rem + .card-group > .card:not(:last-child) .card-footer, .card-group > .card:not(:last-child) .card-img-bottom { + border-bottom-right-radius: 0 } -} -.jumbotron-fluid { - padding-right: 0; - padding-left: 0; - border-radius: 0 -} + .card-group > .card:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0 + } -.alert { - position: relative; - padding: .75rem 1.25rem; - margin-bottom: 1rem; - border: 1px solid transparent; - border-radius: .25rem + .card-group > .card:not(:first-child) .card-header, .card-group > .card:not(:first-child) .card-img-top { + border-top-left-radius: 0 + } + + .card-group > .card:not(:first-child) .card-footer, .card-group > .card:not(:first-child) .card-img-bottom { + border-bottom-left-radius: 0 + } } -.alert-heading { - color: inherit -} - -.alert-link { - font-weight: 700 -} - -.alert-dismissible { - padding-right: 4rem -} - -.alert-dismissible .close { - position: absolute; - top: 0; - right: 0; - padding: .75rem 1.25rem; - color: inherit +.card-columns .card { + margin-bottom: .75rem } -.alert-primary { - color: #00031d; - background-color: #cccdd7; - border-color: #b8b9c7 -} +@media (min-width: 576px) { + .card-columns { + -moz-column-count: 3; + column-count: 3; + -moz-column-gap: 1.25rem; + column-gap: 1.25rem; + orphans: 1; + widows: 1 + } -.alert-primary hr { - border-top-color: #aaabbc + .card-columns .card { + display: inline-block; + width: 100% + } } -.alert-primary .alert-link { - color: #000 +.accordion > .card { + overflow: hidden } -.alert-secondary { - color: #61617e; - background-color: #f1f1fc; - border-color: #ececfb +.accordion > .card:not(:first-of-type) .card-header:first-child { + border-radius: 0 } -.alert-secondary hr { - border-top-color: #d7d7f7 +.accordion > .card:not(:first-of-type):not(:last-of-type) { + border-bottom: 0; + border-radius: 0 } -.alert-secondary .alert-link { - color: #4b4b61 +.accordion > .card:first-of-type { + border-bottom: 0; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0 } -.alert-success { - color: #2e2e2e; - background-color: #82aa8b; - border-color: #82aa8b +.accordion > .card:last-of-type { + border-top-left-radius: 0; + border-top-right-radius: 0 } -.alert-success hr { - border-top-color: #beefe0 +.accordion > .card .card-header { + margin-bottom: -1px } -.alert-success .alert-link { - color: #214c3f +.breadcrumb { + display: flex; + flex-wrap: wrap; + padding: .75rem 1rem; + margin-bottom: 1rem; + list-style: none; + background-color: #e9ecef; + border-radius: .25rem } -.alert-info { - color: #0d4f85; - background-color: #d1eaff; - border-color: #bfe2ff +.breadcrumb-item + .breadcrumb-item { + padding-left: .5rem } -.alert-info hr { - border-top-color: #a6d6ff +.breadcrumb-item + .breadcrumb-item:before { + display: inline-block; + padding-right: .5rem; + color: #6c757d; + content: "/" } -.alert-info .alert-link { - color: #083357 +.breadcrumb-item + .breadcrumb-item:hover:before { + text-decoration: underline; + text-decoration: none } -.alert-warning { - color: #855a00; - background-color: #ffefcc; - border-color: #ffe8b8 +.breadcrumb-item.active { + color: #6c757d } -.alert-warning hr { - border-top-color: #ffe09f +.pagination { + display: flex; + padding-left: 0; + list-style: none; + border-radius: .25rem } -.alert-warning .alert-link { - color: #523700 +.page-link { + position: relative; + display: block; + padding: .5rem .75rem; + margin-left: -1px; + line-height: 1.25; + color: #b98766; + background-color: #fff; + border: 1px solid #dee2e6 } -.alert-danger { - color: #850000; - background-color: #fcc; - border-color: #ffb8b8 +.page-link:hover { + z-index: 2; + color: #000; + text-decoration: none; + background-color: #e9ecef; + border-color: #dee2e6 } -.alert-danger hr { - border-top-color: #ff9f9f +.page-link:focus { + z-index: 2; + outline: 0; + box-shadow: 0 0 0 .2rem rgba(0, 6, 55, .25) } -.alert-danger .alert-link { - color: #520000 +.page-item:first-child .page-link { + margin-left: 0; + border-top-left-radius: .25rem; + border-bottom-left-radius: .25rem } -.alert-light { - color: #833c22; - background-color: #fee3d9; - border-color: #fed8ca +.page-item:last-child .page-link { + border-top-right-radius: .25rem; + border-bottom-right-radius: .25rem } -.alert-light hr { - border-top-color: #fec6b1 +.page-item.active .page-link { + z-index: 1; + color: #fff; + background-color: #b98766; + border-color: #b98766 } -.alert-light .alert-link { - color: #5b2917 +.page-item.disabled .page-link { + color: #6c757d; + pointer-events: none; + cursor: auto; + background-color: #fff; + border-color: #dee2e6 } -.alert-dark { - color: #121010; - background-color: #d3d2d2; - border-color: #c1c0c0 +.pagination-lg .page-link { + padding: .75rem 1.5rem; + font-size: 1.25rem; + line-height: 1.5 } -.alert-dark hr { - border-top-color: #b4b3b3 +.pagination-lg .page-item:first-child .page-link { + border-top-left-radius: .3rem; + border-bottom-left-radius: .3rem } -.alert-dark .alert-link { - color: #000 +.pagination-lg .page-item:last-child .page-link { + border-top-right-radius: .3rem; + border-bottom-right-radius: .3rem } -@-webkit-keyframes progress-bar-stripes { - 0% { - background-position: 1rem 0 - } - to { - background-position: 0 0 - } +.pagination-sm .page-link { + padding: .25rem .5rem; + font-size: .875rem; + line-height: 1.5 } -@keyframes progress-bar-stripes { - 0% { - background-position: 1rem 0 - } - to { - background-position: 0 0 - } +.pagination-sm .page-item:first-child .page-link { + border-top-left-radius: .2rem; + border-bottom-left-radius: .2rem } -.progress { - display: flex; - height: 1rem; - overflow: hidden; - font-size: .75rem; - background-color: #e9ecef; - border-radius: .25rem +.pagination-sm .page-item:last-child .page-link { + border-top-right-radius: .2rem; + border-bottom-right-radius: .2rem } -.progress-bar { - display: flex; - flex-direction: column; - justify-content: center; - color: #fff; +.badge { + display: inline-block; + padding: .25em .4em; + font-size: 75%; + font-weight: 700; + line-height: 1; text-align: center; white-space: nowrap; - background-color: #b98766; - transition: width .6s ease + vertical-align: baseline; + border-radius: .25rem; + transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out } @media (prefers-#a7240euced-motion: #a7240euce ) { - .progress-bar { + .badge { transition: none } } -.progress-bar-striped { - background-image: linear-gradient(45deg, hsla(0, 0%, 100%, .15) 25%, transparent 0, transparent 50%, hsla(0, 0%, 100%, .15) 0, hsla(0, 0%, 100%, .15) 75%, transparent 0, transparent); - background-size: 1rem 1rem +a.badge:focus, a.badge:hover { + text-decoration: none } -.progress-bar-animated { - -webkit-animation: progress-bar-stripes 1s linear infinite; - animation: progress-bar-stripes 1s linear infinite +.badge:empty { + display: none } -@media (prefers-#a7240euced-motion: #a7240euce - -) { - .progress-bar-animated { - -webkit-animation: none; - animation: none - } +.btn .badge { + position: relative; + top: -1px } -.media { - display: flex; - align-items: flex-start +.badge-pill { + padding-right: .6em; + padding-left: .6em; + border-radius: 10rem } -.media-body { - flex: 1 +.badge-primary { + color: #fff; + background-color: #b98766 } -.list-group { - display: flex; - flex-direction: column; - padding-left: 0; - margin-bottom: 0 +a.badge-primary:focus, a.badge-primary:hover { + color: #fff; + background-color: var(--primary); } -.list-group-item-action { - width: 100%; - color: #495057; - text-align: inherit +a.badge-primary.focus, a.badge-primary:focus { + outline: 0; + box-shadow: 0 0 0 .2rem rgba(0, 6, 55, .5) } -.list-group-item-action:focus, .list-group-item-action:hover { - z-index: 1; - color: #495057; - text-decoration: none; - background-color: #f8f9fa +.badge-secondary { + color: #212529; + background-color: #b55e4f } -.list-group-item-action:active { +a.badge-secondary:focus, a.badge-secondary:hover { color: #212529; - background-color: #e9ecef + background-color: #9090ea } -.list-group-item { - position: relative; - display: block; - padding: .75rem 1.25rem; - margin-bottom: -1px; - background-color: #fff; - border: 1px solid rgba(0, 0, 0, .125) +a.badge-secondary.focus, a.badge-secondary:focus { + outline: 0; + box-shadow: 0 0 0 .2rem rgba(187, 187, 242, .5) } -.list-group-item:first-child { - border-top-left-radius: .25rem; - border-top-right-radius: .25rem +.badge-success { + color: #212529; + background-color: #82aa8b } -.list-group-item:last-child { - margin-bottom: 0; - border-bottom-right-radius: .25rem; - border-bottom-left-radius: .25rem +a.badge-success:focus, a.badge-success:hover { + color: #212529; + background-color: #35cca0 } -.list-group-item.disabled, .list-group-item:disabled { - color: #6c757d; - pointer-events: none; - background-color: #fff +a.badge-success.focus, a.badge-success:focus { + outline: 0; + box-shadow: 0 0 0 .2rem rgba(94, 214, 179, .5) } -.list-group-item.active { - z-index: 2; +.badge-info { color: #fff; - background-color: #b98766; - border-color: #b98766 + background-color: #385f84 } -.list-group-horizontal { - flex-direction: row +a.badge-info:focus, a.badge-info:hover { + color: #fff; + background-color: #007ee5 } -.list-group-horizontal .list-group-item { - margin-right: -1px; - margin-bottom: 0 +a.badge-info.focus, a.badge-info:focus { + outline: 0; + box-shadow: 0 0 0 .2rem rgba(25, 152, 255, .5) } -.list-group-horizontal .list-group-item:first-child { - border-top-left-radius: .25rem; - border-bottom-left-radius: .25rem; - border-top-right-radius: 0 +.badge-warning { + color: #212529; + background-color: #eaaa21 } -.list-group-horizontal .list-group-item:last-child { - margin-right: 0; - border-top-right-radius: .25rem; - border-bottom-right-radius: .25rem; - border-bottom-left-radius: 0 +a.badge-warning:focus, a.badge-warning:hover { + color: #212529; + background-color: #cc8a00 } -@media (min-width: 576px) { - .list-group-horizontal-sm { - flex-direction: row - } - - .list-group-horizontal-sm .list-group-item { - margin-right: -1px; - margin-bottom: 0 - } - - .list-group-horizontal-sm .list-group-item:first-child { - border-top-left-radius: .25rem; - border-bottom-left-radius: .25rem; - border-top-right-radius: 0 - } - - .list-group-horizontal-sm .list-group-item:last-child { - margin-right: 0; - border-top-right-radius: .25rem; - border-bottom-right-radius: .25rem; - border-bottom-left-radius: 0 - } +a.badge-warning.focus, a.badge-warning:focus { + outline: 0; + box-shadow: 0 0 0 .2rem rgba(255, 173, 0, .5) } -@media (min-width: 768px) { - .list-group-horizontal-md { - flex-direction: row - } - - .list-group-horizontal-md .list-group-item { - margin-right: -1px; - margin-bottom: 0 - } +.badge-danger { + color: #fff; + background-color: #a7240e +} - .list-group-horizontal-md .list-group-item:first-child { - border-top-left-radius: .25rem; - border-bottom-left-radius: .25rem; - border-top-right-radius: 0 - } +a.badge-danger:focus, a.badge-danger:hover { + color: #fff; + background-color: #c00 +} - .list-group-horizontal-md .list-group-item:last-child { - margin-right: 0; - border-top-right-radius: .25rem; - border-bottom-right-radius: .25rem; - border-bottom-left-radius: 0 - } +a.badge-danger.focus, a.badge-danger:focus { + outline: 0; + box-shadow: 0 0 0 .2rem rgba(255, 0, 0, .5) } -@media (min-width: 992px) { - .list-group-horizontal-lg { - flex-direction: row - } +.badge-light { + color: #212529; + background-color: #cfd5cd +} - .list-group-horizontal-lg .list-group-item { - margin-right: -1px; - margin-bottom: 0 - } +a.badge-light:focus, a.badge-light:hover { + color: #212529; + background-color: #fb4e0f +} - .list-group-horizontal-lg .list-group-item:first-child { - border-top-left-radius: .25rem; - border-bottom-left-radius: .25rem; - border-top-right-radius: 0 - } +a.badge-light.focus, a.badge-light:focus { + outline: 0; + box-shadow: 0 0 0 .2rem rgba(252, 115, 65, .5) +} - .list-group-horizontal-lg .list-group-item:last-child { - margin-right: 0; - border-top-right-radius: .25rem; - border-bottom-right-radius: .25rem; - border-bottom-left-radius: 0 - } +.badge-dark { + color: #fff; + background-color: #221e1e } -@media (min-width: 1200px) { - .list-group-horizontal-xl { - flex-direction: row - } +a.badge-dark:focus, a.badge-dark:hover { + color: #fff; + background-color: #070606 +} - .list-group-horizontal-xl .list-group-item { - margin-right: -1px; - margin-bottom: 0 - } +a.badge-dark.focus, a.badge-dark:focus { + outline: 0; + box-shadow: 0 0 0 .2rem rgba(34, 30, 30, .5) +} - .list-group-horizontal-xl .list-group-item:first-child { - border-top-left-radius: .25rem; - border-bottom-left-radius: .25rem; - border-top-right-radius: 0 - } +.jumbotron { + padding: 2rem 1rem; + margin-bottom: 2rem; + background-color: #f7f7f7; + border-radius: .3rem +} - .list-group-horizontal-xl .list-group-item:last-child { - margin-right: 0; - border-top-right-radius: .25rem; - border-bottom-right-radius: .25rem; - border-bottom-left-radius: 0 +@media (min-width: 576px) { + .jumbotron { + padding: 4rem 2rem } } -.list-group-flush .list-group-item { - border-right: 0; - border-left: 0; +.jumbotron-fluid { + padding-right: 0; + padding-left: 0; border-radius: 0 } -.list-group-flush .list-group-item:last-child { - margin-bottom: -1px -} - -.list-group-flush:first-child .list-group-item:first-child { - border-top: 0 +.alert { + position: relative; + padding: .75rem 1.25rem; + margin-bottom: 1rem; + border: 1px solid transparent; + border-radius: .25rem } -.list-group-flush:last-child .list-group-item:last-child { - margin-bottom: 0; - border-bottom: 0 +.alert-heading { + color: inherit } -.list-group-item-primary { - color: #00031d; - background-color: #b8b9c7 +.alert-link { + font-weight: 700 } -.list-group-item-primary.list-group-item-action:focus, .list-group-item-primary.list-group-item-action:hover { - color: #00031d; - background-color: #aaabbc +.alert-dismissible { + padding-right: 4rem } -.list-group-item-primary.list-group-item-action.active { - color: #fff; - background-color: #00031d; - border-color: #00031d +.alert-dismissible .close { + position: absolute; + top: 0; + right: 0; + padding: .75rem 1.25rem; + color: inherit } -.list-group-item-secondary { - color: #61617e; - background-color: #ececfb +.alert-primary { + color: #00031d; + background-color: #cccdd7; + border-color: #b8b9c7 } -.list-group-item-secondary.list-group-item-action:focus, .list-group-item-secondary.list-group-item-action:hover { +.alert-primary hr { + border-top-color: #aaabbc +} + +.alert-primary .alert-link { + color: #000 +} + +.alert-secondary { color: #61617e; - background-color: #d7d7f7 + background-color: #f1f1fc; + border-color: #ececfb } -.list-group-item-secondary.list-group-item-action.active { - color: #fff; - background-color: #61617e; - border-color: #61617e +.alert-secondary hr { + border-top-color: #d7d7f7 } -.list-group-item-success { - color: #316f5d; - background-color: #d2f4ea +.alert-secondary .alert-link { + color: #4b4b61 } -.list-group-item-success.list-group-item-action:focus, .list-group-item-success.list-group-item-action:hover { - color: #316f5d; - background-color: #beefe0 +.alert-success { + color: #2e2e2e; + background-color: #82aa8b; + border-color: #82aa8b } -.list-group-item-success.list-group-item-action.active { - color: #fff; - background-color: #316f5d; - border-color: #316f5d +.alert-success hr { + border-top-color: #beefe0 } -.list-group-item-info { - color: #0d4f85; - background-color: #bfe2ff +.alert-success .alert-link { + color: #214c3f } -.list-group-item-info.list-group-item-action:focus, .list-group-item-info.list-group-item-action:hover { +.alert-info { color: #0d4f85; - background-color: #a6d6ff + background-color: #d1eaff; + border-color: #bfe2ff } -.list-group-item-info.list-group-item-action.active { - color: #fff; - background-color: #0d4f85; - border-color: #0d4f85 +.alert-info hr { + border-top-color: #a6d6ff } -.list-group-item-warning { - color: #855a00; - background-color: #ffe8b8 +.alert-info .alert-link { + color: #083357 } -.list-group-item-warning.list-group-item-action:focus, .list-group-item-warning.list-group-item-action:hover { +.alert-warning { color: #855a00; - background-color: #ffe09f + background-color: #ffefcc; + border-color: #ffe8b8 } -.list-group-item-warning.list-group-item-action.active { - color: #fff; - background-color: #855a00; - border-color: #855a00 +.alert-warning hr { + border-top-color: #ffe09f } -.list-group-item-danger { - color: #850000; - background-color: #ffb8b8 +.alert-warning .alert-link { + color: #523700 } -.list-group-item-danger.list-group-item-action:focus, .list-group-item-danger.list-group-item-action:hover { +.alert-danger { color: #850000; - background-color: #ff9f9f + background-color: #fcc; + border-color: #ffb8b8 } -.list-group-item-danger.list-group-item-action.active { - color: #fff; - background-color: #850000; - border-color: #850000 +.alert-danger hr { + border-top-color: #ff9f9f } -.list-group-item-light { - color: #833c22; - background-color: #fed8ca +.alert-danger .alert-link { + color: #520000 } -.list-group-item-light.list-group-item-action:focus, .list-group-item-light.list-group-item-action:hover { +.alert-light { color: #833c22; - background-color: #fec6b1 + background-color: #fee3d9; + border-color: #fed8ca } -.list-group-item-light.list-group-item-action.active { - color: #fff; - background-color: #833c22; - border-color: #833c22 +.alert-light hr { + border-top-color: #fec6b1 } -.list-group-item-dark { - color: #121010; - background-color: #c1c0c0 +.alert-light .alert-link { + color: #5b2917 } -.list-group-item-dark.list-group-item-action:focus, .list-group-item-dark.list-group-item-action:hover { +.alert-dark { color: #121010; - background-color: #b4b3b3 + background-color: #d3d2d2; + border-color: #c1c0c0 } -.list-group-item-dark.list-group-item-action.active { - color: #fff; - background-color: #121010; - border-color: #121010 +.alert-dark hr { + border-top-color: #b4b3b3 } -.close { - float: right; - font-size: 1.5rem; - font-weight: 700; - line-height: 1; - color: #000; - text-shadow: 0 1px 0 #fff; - opacity: .5 +.alert-dark .alert-link { + color: #000 } -.close:hover { - color: #000; - text-decoration: none +@-webkit-keyframes progress-bar-stripes { + 0% { + background-position: 1rem 0 + } + to { + background-position: 0 0 + } } -.close:not(:disabled):not(.disabled):focus, .close:not(:disabled):not(.disabled):hover { - opacity: .75 +@keyframes progress-bar-stripes { + 0% { + background-position: 1rem 0 + } + to { + background-position: 0 0 + } } -button.close { - padding: 0; - background-color: transparent; - border: 0; - -webkit-appearance: none; - -moz-appearance: none; - appearance: none +.progress { + display: flex; + height: 1rem; + overflow: hidden; + font-size: .75rem; + background-color: #e9ecef; + border-radius: .25rem } -a.close.disabled { - pointer-events: none +.progress-bar { + display: flex; + flex-direction: column; + justify-content: center; + color: #fff; + text-align: center; + white-space: nowrap; + background-color: #b98766; + transition: width .6s ease } -.toast { - max-width: 350px; - overflow: hidden; - font-size: .875rem; - background-color: hsla(0, 0%, 100%, .85); - background-clip: padding-box; - border: 1px solid rgba(0, 0, 0, .1); - box-shadow: 0 .25rem .75rem rgba(0, 0, 0, .1); - -webkit-backdrop-filter: blur(10px); - backdrop-filter: blur(10px); - opacity: 0; - border-radius: .25rem -} +@media (prefers-#a7240euced-motion: #a7240euce -.toast:not(:last-child) { - margin-bottom: .75rem +) { + .progress-bar { + transition: none + } } -.toast.showing { - opacity: 1 +.progress-bar-striped { + background-image: linear-gradient(45deg, hsla(0, 0%, 100%, .15) 25%, transparent 0, transparent 50%, hsla(0, 0%, 100%, .15) 0, hsla(0, 0%, 100%, .15) 75%, transparent 0, transparent); + background-size: 1rem 1rem } -.toast.show { - display: block; - opacity: 1 +.progress-bar-animated { + -webkit-animation: progress-bar-stripes 1s linear infinite; + animation: progress-bar-stripes 1s linear infinite } -.toast.hide { - display: none +@media (prefers-#a7240euced-motion: #a7240euce + +) { + .progress-bar-animated { + -webkit-animation: none; + animation: none + } } -.toast-header { +.media { display: flex; - align-items: center; - padding: .25rem .75rem; - color: #6c757d; - background-color: hsla(0, 0%, 100%, .85); - background-clip: padding-box; - border-bottom: 1px solid rgba(0, 0, 0, .05) + align-items: flex-start } -.toast-body { - padding: .75rem +.media-body { + flex: 1 } -.modal-open { - overflow: hidden +.list-group { + display: flex; + flex-direction: column; + padding-left: 0; + margin-bottom: 0 } -.modal-open .modal { - overflow-x: hidden; - overflow-y: auto +.list-group-item-action { + width: 100%; + color: #495057; + text-align: inherit } -.modal { - position: fixed; - top: 0; - left: 0; - z-index: 1050; - display: none; - width: 100%; - height: 100%; - overflow: hidden; - outline: 0 -} - -.modal-dialog { - position: relative; - width: auto; - margin: .5rem; - pointer-events: none -} - -.modal.fade .modal-dialog { - transition: transform .3s ease-out; - transform: translateY(-50px) -} - -@media (prefers-#a7240euced-motion: #a7240euce - -) { - .modal.fade .modal-dialog { - transition: none - } -} - -.modal.show .modal-dialog { - transform: none -} - -.modal-dialog-scrollable { - display: flex; - max-height: calc(100% - 1rem) -} - -.modal-dialog-scrollable .modal-content { - max-height: calc(100vh - 1rem); - overflow: hidden -} - -.modal-dialog-scrollable .modal-footer, .modal-dialog-scrollable .modal-header { - flex-shrink: 0 -} - -.modal-dialog-scrollable .modal-body { - overflow-y: auto +.list-group-item-action:focus, .list-group-item-action:hover { + z-index: 1; + color: #495057; + text-decoration: none; + background-color: #f8f9fa } -.modal-dialog-cente#a7240e { - display: flex; - align-items: center; - min-height: calc(100% - 1rem) +.list-group-item-action:active { + color: #212529; + background-color: #e9ecef } -.modal-dialog-cente#a7240e:before { +.list-group-item { + position: relative; display: block; - height: calc(100vh - 1rem); - content: "" -} - -.modal-dialog-cente#a7240e.modal-dialog-scrollable { - flex-direction: column; - justify-content: center; - height: 100% -} - -.modal-dialog-cente#a7240e.modal-dialog-scrollable .modal-content { - max-height: none + padding: .75rem 1.25rem; + margin-bottom: -1px; + background-color: #fff; + border: 1px solid rgba(0, 0, 0, .125) } -.modal-dialog-cente#a7240e.modal-dialog-scrollable:before { - content: none +.list-group-item:first-child { + border-top-left-radius: .25rem; + border-top-right-radius: .25rem } -.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, .2); - border-radius: .3rem; - outline: 0 +.list-group-item:last-child { + margin-bottom: 0; + border-bottom-right-radius: .25rem; + border-bottom-left-radius: .25rem } -.modal-backdrop { - position: fixed; - top: 0; - left: 0; - z-index: 1040; - width: 100vw; - height: 100vh; - background-color: #000 +.list-group-item.disabled, .list-group-item:disabled { + color: #6c757d; + pointer-events: none; + background-color: #fff } -.modal-backdrop.fade { - opacity: 0 +.list-group-item.active { + z-index: 2; + color: #fff; + background-color: #b98766; + border-color: #b98766 } -.modal-backdrop.show { - opacity: .5 +.list-group-horizontal { + flex-direction: row } -.modal-header { - display: flex; - align-items: flex-start; - justify-content: space-between; - padding: 1rem; - border-bottom: 1px solid #dee2e6; - border-top-left-radius: .3rem; - border-top-right-radius: .3rem +.list-group-horizontal .list-group-item { + margin-right: -1px; + margin-bottom: 0 } -.modal-header .close { - padding: 1rem; - margin: -1rem -1rem -1rem auto +.list-group-horizontal .list-group-item:first-child { + border-top-left-radius: .25rem; + border-bottom-left-radius: .25rem; + border-top-right-radius: 0 } -.modal-title { - margin-bottom: 0; - line-height: 1.5 +.list-group-horizontal .list-group-item:last-child { + margin-right: 0; + border-top-right-radius: .25rem; + border-bottom-right-radius: .25rem; + border-bottom-left-radius: 0 } -.modal-body { - position: relative; - flex: 1 1 auto; - padding: 1rem -} +@media (min-width: 576px) { + .list-group-horizontal-sm { + flex-direction: row + } -.modal-footer { - display: flex; - align-items: center; - justify-content: flex-end; - padding: 1rem; - border-top: 1px solid #dee2e6; - border-bottom-right-radius: .3rem; - border-bottom-left-radius: .3rem -} + .list-group-horizontal-sm .list-group-item { + margin-right: -1px; + margin-bottom: 0 + } -.modal-footer > :not(:first-child) { - margin-left: .25rem -} + .list-group-horizontal-sm .list-group-item:first-child { + border-top-left-radius: .25rem; + border-bottom-left-radius: .25rem; + border-top-right-radius: 0 + } -.modal-footer > :not(:last-child) { - margin-right: .25rem + .list-group-horizontal-sm .list-group-item:last-child { + margin-right: 0; + border-top-right-radius: .25rem; + border-bottom-right-radius: .25rem; + border-bottom-left-radius: 0 + } } -.modal-scrollbar-measure { - position: absolute; - top: -9999px; - width: 50px; - height: 50px; - overflow: scroll -} +@media (min-width: 768px) { + .list-group-horizontal-md { + flex-direction: row + } -@media (min-width: 576px) { - .modal-dialog { - max-width: 500px; - margin: 1.75rem auto + .list-group-horizontal-md .list-group-item { + margin-right: -1px; + margin-bottom: 0 } - .modal-dialog-scrollable { - max-height: calc(100% - 3.5rem) + .list-group-horizontal-md .list-group-item:first-child { + border-top-left-radius: .25rem; + border-bottom-left-radius: .25rem; + border-top-right-radius: 0 } - .modal-dialog-scrollable .modal-content { - max-height: calc(100vh - 3.5rem) + .list-group-horizontal-md .list-group-item:last-child { + margin-right: 0; + border-top-right-radius: .25rem; + border-bottom-right-radius: .25rem; + border-bottom-left-radius: 0 } +} - .modal-dialog-cente#a7240e { - min-height: calc(100% - 3.5rem) +@media (min-width: 992px) { + .list-group-horizontal-lg { + flex-direction: row } - .modal-dialog-cente#a7240e:before { - height: calc(100vh - 3.5rem) + .list-group-horizontal-lg .list-group-item { + margin-right: -1px; + margin-bottom: 0 } - .modal-sm { - max-width: 300px + .list-group-horizontal-lg .list-group-item:first-child { + border-top-left-radius: .25rem; + border-bottom-left-radius: .25rem; + border-top-right-radius: 0 } -} -@media (min-width: 992px) { - .modal-lg, .modal-xl { - max-width: 800px + .list-group-horizontal-lg .list-group-item:last-child { + margin-right: 0; + border-top-right-radius: .25rem; + border-bottom-right-radius: .25rem; + border-bottom-left-radius: 0 } } @media (min-width: 1200px) { - .modal-xl { - max-width: 1140px + .list-group-horizontal-xl { + flex-direction: row } -} -.tooltip { - position: absolute; - z-index: 1070; - display: block; - margin: 0; - font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, Noto Sans, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji; - 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: .875rem; - word-wrap: break-word; - opacity: 0 -} - -.tooltip.show { - opacity: .9 -} + .list-group-horizontal-xl .list-group-item { + margin-right: -1px; + margin-bottom: 0 + } -.tooltip .arrow { - position: absolute; - display: block; - width: .8rem; - height: .4rem -} + .list-group-horizontal-xl .list-group-item:first-child { + border-top-left-radius: .25rem; + border-bottom-left-radius: .25rem; + border-top-right-radius: 0 + } -.tooltip .arrow:before { - position: absolute; - content: ""; - border-color: transparent; - border-style: solid + .list-group-horizontal-xl .list-group-item:last-child { + margin-right: 0; + border-top-right-radius: .25rem; + border-bottom-right-radius: .25rem; + border-bottom-left-radius: 0 + } } -.bs-tooltip-auto[x-placement^=top], .bs-tooltip-top { - padding: .4rem 0 +.list-group-flush .list-group-item { + border-right: 0; + border-left: 0; + border-radius: 0 } -.bs-tooltip-auto[x-placement^=top] .arrow, .bs-tooltip-top .arrow { - bottom: 0 +.list-group-flush .list-group-item:last-child { + margin-bottom: -1px } -.bs-tooltip-auto[x-placement^=top] .arrow:before, .bs-tooltip-top .arrow:before { - top: 0; - border-width: .4rem .4rem 0; - border-top-color: #000 +.list-group-flush:first-child .list-group-item:first-child { + border-top: 0 } -.bs-tooltip-auto[x-placement^=right], .bs-tooltip-right { - padding: 0 .4rem +.list-group-flush:last-child .list-group-item:last-child { + margin-bottom: 0; + border-bottom: 0 } -.bs-tooltip-auto[x-placement^=right] .arrow, .bs-tooltip-right .arrow { - left: 0; - width: .4rem; - height: .8rem +.list-group-item-primary { + color: #00031d; + background-color: #b8b9c7 } -.bs-tooltip-auto[x-placement^=right] .arrow:before, .bs-tooltip-right .arrow:before { - right: 0; - border-width: .4rem .4rem .4rem 0; - border-right-color: #000 +.list-group-item-primary.list-group-item-action:focus, .list-group-item-primary.list-group-item-action:hover { + color: #00031d; + background-color: #aaabbc } -.bs-tooltip-auto[x-placement^=bottom], .bs-tooltip-bottom { - padding: .4rem 0 +.list-group-item-primary.list-group-item-action.active { + color: #fff; + background-color: #00031d; + border-color: #00031d } -.bs-tooltip-auto[x-placement^=bottom] .arrow, .bs-tooltip-bottom .arrow { - top: 0 +.list-group-item-secondary { + color: #61617e; + background-color: #ececfb } -.bs-tooltip-auto[x-placement^=bottom] .arrow:before, .bs-tooltip-bottom .arrow:before { - bottom: 0; - border-width: 0 .4rem .4rem; - border-bottom-color: #000 +.list-group-item-secondary.list-group-item-action:focus, .list-group-item-secondary.list-group-item-action:hover { + color: #61617e; + background-color: #d7d7f7 } -.bs-tooltip-auto[x-placement^=left], .bs-tooltip-left { - padding: 0 .4rem +.list-group-item-secondary.list-group-item-action.active { + color: #fff; + background-color: #61617e; + border-color: #61617e } -.bs-tooltip-auto[x-placement^=left] .arrow, .bs-tooltip-left .arrow { - right: 0; - width: .4rem; - height: .8rem +.list-group-item-success { + color: #316f5d; + background-color: #d2f4ea } -.bs-tooltip-auto[x-placement^=left] .arrow:before, .bs-tooltip-left .arrow:before { - left: 0; - border-width: .4rem 0 .4rem .4rem; - border-left-color: #000 +.list-group-item-success.list-group-item-action:focus, .list-group-item-success.list-group-item-action:hover { + color: #316f5d; + background-color: #beefe0 } -.tooltip-inner { - max-width: 200px; - padding: .25rem .5rem; +.list-group-item-success.list-group-item-action.active { color: #fff; - text-align: center; - background-color: #000; - border-radius: .25rem + background-color: #316f5d; + border-color: #316f5d } -.popover { - top: 0; - left: 0; - z-index: 1060; - max-width: 276px; - font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, Noto Sans, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji; - 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: .875rem; - word-wrap: break-word; - background-color: #fff; - background-clip: padding-box; - border: 1px solid rgba(0, 0, 0, .2); - border-radius: .3rem +.list-group-item-info { + color: #0d4f85; + background-color: #bfe2ff } -.popover, .popover .arrow { - position: absolute; - display: block +.list-group-item-info.list-group-item-action:focus, .list-group-item-info.list-group-item-action:hover { + color: #0d4f85; + background-color: #a6d6ff } -.popover .arrow { - width: 1rem; - height: .5rem; - margin: 0 .3rem +.list-group-item-info.list-group-item-action.active { + color: #fff; + background-color: #0d4f85; + border-color: #0d4f85 } -.popover .arrow:after, .popover .arrow:before { - position: absolute; - display: block; - content: ""; - border-color: transparent; - border-style: solid +.list-group-item-warning { + color: #855a00; + background-color: #ffe8b8 } -.bs-popover-auto[x-placement^=top], .bs-popover-top { - margin-bottom: .5rem +.list-group-item-warning.list-group-item-action:focus, .list-group-item-warning.list-group-item-action:hover { + color: #855a00; + background-color: #ffe09f } -.bs-popover-auto[x-placement^=top] > .arrow, .bs-popover-top > .arrow { - bottom: calc(-.5rem + -1px) +.list-group-item-warning.list-group-item-action.active { + color: #fff; + background-color: #855a00; + border-color: #855a00 } -.bs-popover-auto[x-placement^=top] > .arrow:before, .bs-popover-top > .arrow:before { - bottom: 0; - border-width: .5rem .5rem 0; - border-top-color: rgba(0, 0, 0, .25) +.list-group-item-danger { + color: #850000; + background-color: #ffb8b8 } -.bs-popover-auto[x-placement^=top] > .arrow:after, .bs-popover-top > .arrow:after { - bottom: 1px; - border-width: .5rem .5rem 0; - border-top-color: #fff +.list-group-item-danger.list-group-item-action:focus, .list-group-item-danger.list-group-item-action:hover { + color: #850000; + background-color: #ff9f9f } -.bs-popover-auto[x-placement^=right], .bs-popover-right { - margin-left: .5rem +.list-group-item-danger.list-group-item-action.active { + color: #fff; + background-color: #850000; + border-color: #850000 } -.bs-popover-auto[x-placement^=right] > .arrow, .bs-popover-right > .arrow { - left: calc(-.5rem + -1px); - width: .5rem; - height: 1rem; - margin: .3rem 0 +.list-group-item-light { + color: #833c22; + background-color: #fed8ca } -.bs-popover-auto[x-placement^=right] > .arrow:before, .bs-popover-right > .arrow:before { - left: 0; - border-width: .5rem .5rem .5rem 0; - border-right-color: rgba(0, 0, 0, .25) +.list-group-item-light.list-group-item-action:focus, .list-group-item-light.list-group-item-action:hover { + color: #833c22; + background-color: #fec6b1 } -.bs-popover-auto[x-placement^=right] > .arrow:after, .bs-popover-right > .arrow:after { - left: 1px; - border-width: .5rem .5rem .5rem 0; - border-right-color: #fff +.list-group-item-light.list-group-item-action.active { + color: #fff; + background-color: #833c22; + border-color: #833c22 } -.bs-popover-auto[x-placement^=bottom], .bs-popover-bottom { - margin-top: .5rem +.list-group-item-dark { + color: #121010; + background-color: #c1c0c0 } -.bs-popover-auto[x-placement^=bottom] > .arrow, .bs-popover-bottom > .arrow { - top: calc(-.5rem + -1px) +.list-group-item-dark.list-group-item-action:focus, .list-group-item-dark.list-group-item-action:hover { + color: #121010; + background-color: #b4b3b3 } -.bs-popover-auto[x-placement^=bottom] > .arrow:before, .bs-popover-bottom > .arrow:before { - top: 0; - border-width: 0 .5rem .5rem; - border-bottom-color: rgba(0, 0, 0, .25) +.list-group-item-dark.list-group-item-action.active { + color: #fff; + background-color: #121010; + border-color: #121010 } -.bs-popover-auto[x-placement^=bottom] > .arrow:after, .bs-popover-bottom > .arrow:after { - top: 1px; - border-width: 0 .5rem .5rem; - border-bottom-color: #fff +.close { + float: right; + font-size: 1.5rem; + font-weight: 700; + line-height: 1; + color: #000; + text-shadow: 0 1px 0 #fff; + opacity: .5 } -.bs-popover-auto[x-placement^=bottom] .popover-header:before, .bs-popover-bottom .popover-header:before { - position: absolute; - top: 0; - left: 50%; - display: block; - width: 1rem; - margin-left: -.5rem; - content: ""; - border-bottom: 1px solid #f7f7f7 +.close:hover { + color: #000; + text-decoration: none } -.bs-popover-auto[x-placement^=left], .bs-popover-left { - margin-right: .5rem +.close:not(:disabled):not(.disabled):focus, .close:not(:disabled):not(.disabled):hover { + opacity: .75 } -.bs-popover-auto[x-placement^=left] > .arrow, .bs-popover-left > .arrow { - right: calc(-.5rem + -1px); - width: .5rem; - height: 1rem; - margin: .3rem 0 +button.close { + padding: 0; + background-color: transparent; + border: 0; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none } -.bs-popover-auto[x-placement^=left] > .arrow:before, .bs-popover-left > .arrow:before { - right: 0; - border-width: .5rem 0 .5rem .5rem; - border-left-color: rgba(0, 0, 0, .25) +a.close.disabled { + pointer-events: none } -.bs-popover-auto[x-placement^=left] > .arrow:after, .bs-popover-left > .arrow:after { - right: 1px; - border-width: .5rem 0 .5rem .5rem; - border-left-color: #fff +.toast { + max-width: 350px; + overflow: hidden; + font-size: .875rem; + background-color: hsla(0, 0%, 100%, .85); + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, .1); + box-shadow: 0 .25rem .75rem rgba(0, 0, 0, .1); + -webkit-backdrop-filter: blur(10px); + backdrop-filter: blur(10px); + opacity: 0; + border-radius: .25rem } -.popover-header { - padding: .5rem .75rem; - margin-bottom: 0; - font-size: 1rem; - background-color: #f7f7f7; - border-bottom: 1px solid #ebebeb; - border-top-left-radius: calc(.3rem - 1px); - border-top-right-radius: calc(.3rem - 1px) +.toast:not(:last-child) { + margin-bottom: .75rem } -.popover-header:empty { - display: none +.toast.showing { + opacity: 1 } -.popover-body { - padding: .5rem .75rem; - color: #212529 +.toast.show { + display: block; + opacity: 1 } -.carousel { - position: relative +.toast.hide { + display: none } -.carousel.pointer-event { - touch-action: pan-y +.toast-header { + display: flex; + align-items: center; + padding: .25rem .75rem; + color: #6c757d; + background-color: hsla(0, 0%, 100%, .85); + background-clip: padding-box; + border-bottom: 1px solid rgba(0, 0, 0, .05) } -.carousel-inner { - position: relative; - width: 100%; +.toast-body { + padding: .75rem +} + +.modal-open { overflow: hidden } -.carousel-inner:after { - display: block; - clear: both; - content: "" +.modal-open .modal { + overflow-x: hidden; + overflow-y: auto } -.carousel-item { - position: relative; +.modal { + position: fixed; + top: 0; + left: 0; + z-index: 1050; display: none; - float: left; width: 100%; - margin-right: -100%; - -webkit-backface-visibility: hidden; - backface-visibility: hidden; - transition: transform .6s ease-in-out + height: 100%; + overflow: hidden; + outline: 0 +} + +.modal-dialog { + position: relative; + width: auto; + margin: .5rem; + pointer-events: none +} + +.modal.fade .modal-dialog { + transition: transform .3s ease-out; + transform: translateY(-50px) } @media (prefers-#a7240euced-motion: #a7240euce ) { - .carousel-item { + .modal.fade .modal-dialog { transition: none } } -.carousel-item-next, .carousel-item-prev, .carousel-item.active { - display: block +.modal.show .modal-dialog { + transform: none } -.active.carousel-item-right, .carousel-item-next:not(.carousel-item-left) { - transform: translateX(100%) +.modal-dialog-scrollable { + display: flex; + max-height: calc(100% - 1rem) } -.active.carousel-item-left, .carousel-item-prev:not(.carousel-item-right) { - transform: translateX(-100%) +.modal-dialog-scrollable .modal-content { + max-height: calc(100vh - 1rem); + overflow: hidden } -.carousel-fade .carousel-item { - opacity: 0; - transition-property: opacity; - transform: none +.modal-dialog-scrollable .modal-footer, .modal-dialog-scrollable .modal-header { + flex-shrink: 0 } -.carousel-fade .carousel-item-next.carousel-item-left, .carousel-fade .carousel-item-prev.carousel-item-right, .carousel-fade .carousel-item.active { - z-index: 1; - opacity: 1 +.modal-dialog-scrollable .modal-body { + overflow-y: auto } -.carousel-fade .active.carousel-item-left, .carousel-fade .active.carousel-item-right { - z-index: 0; - opacity: 0; - transition: opacity 0s .6s +.modal-dialog-cente#a7240e { + display: flex; + align-items: center; + min-height: calc(100% - 1rem) } -@media (prefers-#a7240euced-motion: #a7240euce - -) { - .carousel-fade .active.carousel-item-left, .carousel-fade .active.carousel-item-right { - transition: none - } +.modal-dialog-cente#a7240e:before { + display: block; + height: calc(100vh - 1rem); + content: "" } -.carousel-control-next, .carousel-control-prev { - position: absolute; - top: 0; - bottom: 0; - z-index: 1; - display: flex; - align-items: center; +.modal-dialog-cente#a7240e.modal-dialog-scrollable { + flex-direction: column; justify-content: center; - width: 15%; - color: #fff; - text-align: center; - opacity: .5; - transition: opacity .15s ease + height: 100% } -@media (prefers-#a7240euced-motion: #a7240euce - -) { - .carousel-control-next, .carousel-control-prev { - transition: none - } +.modal-dialog-cente#a7240e.modal-dialog-scrollable .modal-content { + max-height: none } -.carousel-control-next:focus, .carousel-control-next:hover, .carousel-control-prev:focus, .carousel-control-prev:hover { - color: #fff; - text-decoration: none; - outline: 0; - opacity: .9 +.modal-dialog-cente#a7240e.modal-dialog-scrollable:before { + content: none } -.carousel-control-prev { - left: 0 +.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, .2); + border-radius: .3rem; + outline: 0 } -.carousel-control-next { - right: 0 +.modal-backdrop { + position: fixed; + top: 0; + left: 0; + z-index: 1040; + width: 100vw; + height: 100vh; + background-color: #000 } -.carousel-control-next-icon, .carousel-control-prev-icon { - display: inline-block; - width: 20px; - height: 20px; - background: no-repeat 50%/100% 100% +.modal-backdrop.fade { + opacity: 0 } -.carousel-control-prev-icon { - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3E%3C/svg%3E") +.modal-backdrop.show { + opacity: .5 } -.carousel-control-next-icon { - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3E%3C/svg%3E") +.modal-header { + display: flex; + align-items: flex-start; + justify-content: space-between; + padding: 1rem; + border-bottom: 1px solid #dee2e6; + border-top-left-radius: .3rem; + border-top-right-radius: .3rem } -.carousel-indicators { - position: absolute; - right: 0; - bottom: 0; - left: 0; - z-index: 15; - display: flex; - justify-content: center; - padding-left: 0; - margin-right: 15%; - margin-left: 15%; - list-style: none +.modal-header .close { + padding: 1rem; + margin: -1rem -1rem -1rem auto } -.carousel-indicators li { - box-sizing: content-box; - flex: 0 1 auto; - width: 30px; - height: 3px; - margin-right: 3px; - margin-left: 3px; - text-indent: -999px; - cursor: pointer; - background-color: #fff; - background-clip: padding-box; - border-top: 10px solid transparent; - border-bottom: 10px solid transparent; - opacity: .5; - transition: opacity .6s ease +.modal-title { + margin-bottom: 0; + line-height: 1.5 } -@media (prefers-#a7240euced-motion: #a7240euce - -) { - .carousel-indicators li { - transition: none - } +.modal-body { + position: relative; + flex: 1 1 auto; + padding: 1rem } -.carousel-indicators .active { - opacity: 1 +.modal-footer { + display: flex; + align-items: center; + justify-content: flex-end; + padding: 1rem; + border-top: 1px solid #dee2e6; + border-bottom-right-radius: .3rem; + border-bottom-left-radius: .3rem } -.carousel-caption { - position: absolute; - right: 15%; - bottom: 20px; - left: 15%; - z-index: 10; - padding-top: 20px; - padding-bottom: 20px; - color: #fff; - text-align: center +.modal-footer > :not(:first-child) { + margin-left: .25rem } -@-webkit-keyframes spinner-border { - to { - transform: rotate(1turn) - } +.modal-footer > :not(:last-child) { + margin-right: .25rem } -@keyframes spinner-border { - to { - transform: rotate(1turn) - } +.modal-scrollbar-measure { + position: absolute; + top: -9999px; + width: 50px; + height: 50px; + overflow: scroll } -.spinner-border { - display: inline-block; - width: 2rem; - height: 2rem; - vertical-align: text-bottom; - border: .25em solid; - border-right: .25em solid transparent; - border-radius: 50%; - -webkit-animation: spinner-border .75s linear infinite; - animation: spinner-border .75s linear infinite -} +@media (min-width: 576px) { + .modal-dialog { + max-width: 500px; + margin: 1.75rem auto + } -.spinner-border-sm { - width: 1rem; - height: 1rem; - border-width: .2em -} + .modal-dialog-scrollable { + max-height: calc(100% - 3.5rem) + } -@-webkit-keyframes spinner-grow { - 0% { - transform: scale(0) + .modal-dialog-scrollable .modal-content { + max-height: calc(100vh - 3.5rem) } - 50% { - opacity: 1 + + .modal-dialog-cente#a7240e { + min-height: calc(100% - 3.5rem) } -} -@keyframes spinner-grow { - 0% { - transform: scale(0) + .modal-dialog-cente#a7240e:before { + height: calc(100vh - 3.5rem) } - 50% { - opacity: 1 + + .modal-sm { + max-width: 300px } } -.spinner-grow { - display: inline-block; - width: 2rem; - height: 2rem; - vertical-align: text-bottom; - background-color: currentColor; - border-radius: 50%; - opacity: 0; - -webkit-animation: spinner-grow .75s linear infinite; - animation: spinner-grow .75s linear infinite +@media (min-width: 992px) { + .modal-lg, .modal-xl { + max-width: 800px + } } -.spinner-grow-sm { - width: 1rem; - height: 1rem +@media (min-width: 1200px) { + .modal-xl { + max-width: 1140px + } } -.align-baseline { - vertical-align: baseline !important +.tooltip { + position: absolute; + z-index: 1070; + display: block; + margin: 0; + font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, Noto Sans, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji; + 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: .875rem; + word-wrap: break-word; + opacity: 0 } -.align-top { - vertical-align: top !important +.tooltip.show { + opacity: .9 } -.align-middle { - vertical-align: middle !important +.tooltip .arrow { + position: absolute; + display: block; + width: .8rem; + height: .4rem } -.align-bottom { - vertical-align: bottom !important +.tooltip .arrow:before { + position: absolute; + content: ""; + border-color: transparent; + border-style: solid } -.align-text-bottom { - vertical-align: text-bottom !important +.bs-tooltip-auto[x-placement^=top], .bs-tooltip-top { + padding: .4rem 0 } -.align-text-top { - vertical-align: text-top !important +.bs-tooltip-auto[x-placement^=top] .arrow, .bs-tooltip-top .arrow { + bottom: 0 } -.bg-primary { - background-color: #b98766 !important +.bs-tooltip-auto[x-placement^=top] .arrow:before, .bs-tooltip-top .arrow:before { + top: 0; + border-width: .4rem .4rem 0; + border-top-color: #000 } -a.bg-primary:focus, a.bg-primary:hover, button.bg-primary:focus, button.bg-primary:hover { - background-color: #000004 !important +.bs-tooltip-auto[x-placement^=right], .bs-tooltip-right { + padding: 0 .4rem } -.bg-secondary { - background-color: #b55e4f !important +.bs-tooltip-auto[x-placement^=right] .arrow, .bs-tooltip-right .arrow { + left: 0; + width: .4rem; + height: .8rem } -a.bg-secondary:focus, a.bg-secondary:hover, button.bg-secondary:focus, button.bg-secondary:hover { - background-color: #9090ea !important +.bs-tooltip-auto[x-placement^=right] .arrow:before, .bs-tooltip-right .arrow:before { + right: 0; + border-width: .4rem .4rem .4rem 0; + border-right-color: #000 } -.bg-success { - background-color: #82aa8b !important +.bs-tooltip-auto[x-placement^=bottom], .bs-tooltip-bottom { + padding: .4rem 0 } -a.bg-success:focus, a.bg-success:hover, button.bg-success:focus, button.bg-success:hover { - background-color: #35cca0 !important +.bs-tooltip-auto[x-placement^=bottom] .arrow, .bs-tooltip-bottom .arrow { + top: 0 } -.bg-info { - background-color: #385f84 !important +.bs-tooltip-auto[x-placement^=bottom] .arrow:before, .bs-tooltip-bottom .arrow:before { + bottom: 0; + border-width: 0 .4rem .4rem; + border-bottom-color: #000 } -a.bg-info:focus, a.bg-info:hover, button.bg-info:focus, button.bg-info:hover { - background-color: #007ee5 !important +.bs-tooltip-auto[x-placement^=left], .bs-tooltip-left { + padding: 0 .4rem } -.bg-warning { - background-color: #eaaa21 !important +.bs-tooltip-auto[x-placement^=left] .arrow, .bs-tooltip-left .arrow { + right: 0; + width: .4rem; + height: .8rem } -a.bg-warning:focus, a.bg-warning:hover, button.bg-warning:focus, button.bg-warning:hover { - background-color: #cc8a00 !important +.bs-tooltip-auto[x-placement^=left] .arrow:before, .bs-tooltip-left .arrow:before { + left: 0; + border-width: .4rem 0 .4rem .4rem; + border-left-color: #000 } -.bg-danger { - background-color: #a7240e !important +.tooltip-inner { + max-width: 200px; + padding: .25rem .5rem; + color: #fff; + text-align: center; + background-color: #000; + border-radius: .25rem } -a.bg-danger:focus, a.bg-danger:hover, button.bg-danger:focus, button.bg-danger:hover { - background-color: #c00 !important +.popover { + top: 0; + left: 0; + z-index: 1060; + max-width: 276px; + font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, Noto Sans, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji; + 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: .875rem; + word-wrap: break-word; + background-color: #fff; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, .2); + border-radius: .3rem } -.bg-light { - background-color: #cfd5cd !important +.popover, .popover .arrow { + position: absolute; + display: block } -a.bg-light:focus, a.bg-light:hover, button.bg-light:focus, button.bg-light:hover { - background-color: #fb4e0f !important +.popover .arrow { + width: 1rem; + height: .5rem; + margin: 0 .3rem } -.bg-dark { - background-color: #221e1e !important +.popover .arrow:after, .popover .arrow:before { + position: absolute; + display: block; + content: ""; + border-color: transparent; + border-style: solid } -a.bg-dark:focus, a.bg-dark:hover, button.bg-dark:focus, button.bg-dark:hover { - background-color: #070606 !important +.bs-popover-auto[x-placement^=top], .bs-popover-top { + margin-bottom: .5rem } -.bg-white { - background-color: #fff !important +.bs-popover-auto[x-placement^=top] > .arrow, .bs-popover-top > .arrow { + bottom: calc(-.5rem + -1px) } -.bg-transparent { - background-color: transparent !important +.bs-popover-auto[x-placement^=top] > .arrow:before, .bs-popover-top > .arrow:before { + bottom: 0; + border-width: .5rem .5rem 0; + border-top-color: rgba(0, 0, 0, .25) } -.border { - border: 1px solid #dee2e6 !important +.bs-popover-auto[x-placement^=top] > .arrow:after, .bs-popover-top > .arrow:after { + bottom: 1px; + border-width: .5rem .5rem 0; + border-top-color: #fff } -.border-top { - border-top: 1px solid #dee2e6 !important +.bs-popover-auto[x-placement^=right], .bs-popover-right { + margin-left: .5rem } -.border-right { - border-right: 1px solid #dee2e6 !important +.bs-popover-auto[x-placement^=right] > .arrow, .bs-popover-right > .arrow { + left: calc(-.5rem + -1px); + width: .5rem; + height: 1rem; + margin: .3rem 0 } -.border-bottom { - border-bottom: 1px solid #dee2e6 !important +.bs-popover-auto[x-placement^=right] > .arrow:before, .bs-popover-right > .arrow:before { + left: 0; + border-width: .5rem .5rem .5rem 0; + border-right-color: rgba(0, 0, 0, .25) } -.border-left { - border-left: 1px solid #dee2e6 !important +.bs-popover-auto[x-placement^=right] > .arrow:after, .bs-popover-right > .arrow:after { + left: 1px; + border-width: .5rem .5rem .5rem 0; + border-right-color: #fff } -.border-0 { - border: 0 !important +.bs-popover-auto[x-placement^=bottom], .bs-popover-bottom { + margin-top: .5rem } -.border-top-0 { - border-top: 0 !important +.bs-popover-auto[x-placement^=bottom] > .arrow, .bs-popover-bottom > .arrow { + top: calc(-.5rem + -1px) } -.border-right-0 { - border-right: 0 !important +.bs-popover-auto[x-placement^=bottom] > .arrow:before, .bs-popover-bottom > .arrow:before { + top: 0; + border-width: 0 .5rem .5rem; + border-bottom-color: rgba(0, 0, 0, .25) } -.border-bottom-0 { - border-bottom: 0 !important +.bs-popover-auto[x-placement^=bottom] > .arrow:after, .bs-popover-bottom > .arrow:after { + top: 1px; + border-width: 0 .5rem .5rem; + border-bottom-color: #fff } -.border-left-0 { - border-left: 0 !important +.bs-popover-auto[x-placement^=bottom] .popover-header:before, .bs-popover-bottom .popover-header:before { + position: absolute; + top: 0; + left: 50%; + display: block; + width: 1rem; + margin-left: -.5rem; + content: ""; + border-bottom: 1px solid #f7f7f7 } -.border-primary { - border-color: #b98766 !important +.bs-popover-auto[x-placement^=left], .bs-popover-left { + margin-right: .5rem } -.border-secondary { - border-color: #b55e4f !important +.bs-popover-auto[x-placement^=left] > .arrow, .bs-popover-left > .arrow { + right: calc(-.5rem + -1px); + width: .5rem; + height: 1rem; + margin: .3rem 0 } -.border-success { - border-color: #82aa8b !important +.bs-popover-auto[x-placement^=left] > .arrow:before, .bs-popover-left > .arrow:before { + right: 0; + border-width: .5rem 0 .5rem .5rem; + border-left-color: rgba(0, 0, 0, .25) } -.border-info { - border-color: #385f84 !important +.bs-popover-auto[x-placement^=left] > .arrow:after, .bs-popover-left > .arrow:after { + right: 1px; + border-width: .5rem 0 .5rem .5rem; + border-left-color: #fff } -.border-warning { - border-color: #eaaa21 !important +.popover-header { + padding: .5rem .75rem; + margin-bottom: 0; + font-size: 1rem; + background-color: #f7f7f7; + border-bottom: 1px solid #ebebeb; + border-top-left-radius: calc(.3rem - 1px); + border-top-right-radius: calc(.3rem - 1px) } -.border-danger { - border-color: #a7240e !important +.popover-header:empty { + display: none } -.border-light { - border-color: #cfd5cd !important +.popover-body { + padding: .5rem .75rem; + color: #212529 } -.border-dark { - border-color: #221e1e !important +.carousel { + position: relative } -.border-white { - border-color: #fff !important +.carousel.pointer-event { + touch-action: pan-y } -.rounded-sm { - border-radius: .2rem !important +.carousel-inner { + position: relative; + width: 100%; + overflow: hidden } -.rounded { - border-radius: .25rem !important +.carousel-inner:after { + display: block; + clear: both; + content: "" } -.rounded-top { - border-top-left-radius: .25rem !important +.carousel-item { + position: relative; + display: none; + float: left; + width: 100%; + margin-right: -100%; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + transition: transform .6s ease-in-out } -.rounded-right, .rounded-top { - border-top-right-radius: .25rem !important -} +@media (prefers-#a7240euced-motion: #a7240euce -.rounded-bottom, .rounded-right { - border-bottom-right-radius: .25rem !important +) { + .carousel-item { + transition: none + } } -.rounded-bottom, .rounded-left { - border-bottom-left-radius: .25rem !important +.carousel-item-next, .carousel-item-prev, .carousel-item.active { + display: block } -.rounded-left { - border-top-left-radius: .25rem !important +.active.carousel-item-right, .carousel-item-next:not(.carousel-item-left) { + transform: translateX(100%) } -.rounded-lg { - border-radius: .3rem !important +.active.carousel-item-left, .carousel-item-prev:not(.carousel-item-right) { + transform: translateX(-100%) } -.rounded-circle { - border-radius: 50% !important +.carousel-fade .carousel-item { + opacity: 0; + transition-property: opacity; + transform: none } -.rounded-pill { - border-radius: 50rem !important +.carousel-fade .carousel-item-next.carousel-item-left, .carousel-fade .carousel-item-prev.carousel-item-right, .carousel-fade .carousel-item.active { + z-index: 1; + opacity: 1 } -.rounded-0 { - border-radius: 0 !important +.carousel-fade .active.carousel-item-left, .carousel-fade .active.carousel-item-right { + z-index: 0; + opacity: 0; + transition: opacity 0s .6s } -.clearfix:after { - display: block; - clear: both; - content: "" +@media (prefers-#a7240euced-motion: #a7240euce + +) { + .carousel-fade .active.carousel-item-left, .carousel-fade .active.carousel-item-right { + transition: none + } } -.d-none { - display: none !important +.carousel-control-next, .carousel-control-prev { + position: absolute; + top: 0; + bottom: 0; + z-index: 1; + display: flex; + align-items: center; + justify-content: center; + width: 15%; + color: #fff; + text-align: center; + opacity: .5; + transition: opacity .15s ease } -.d-inline { - display: inline !important +@media (prefers-#a7240euced-motion: #a7240euce + +) { + .carousel-control-next, .carousel-control-prev { + transition: none + } } -.d-inline-block { - display: inline-block !important +.carousel-control-next:focus, .carousel-control-next:hover, .carousel-control-prev:focus, .carousel-control-prev:hover { + color: #fff; + text-decoration: none; + outline: 0; + opacity: .9 } -.d-block { - display: block !important +.carousel-control-prev { + left: 0 } -.d-table { - display: table !important +.carousel-control-next { + right: 0 } -.d-table-row { - display: table-row !important +.carousel-control-next-icon, .carousel-control-prev-icon { + display: inline-block; + width: 20px; + height: 20px; + background: no-repeat 50%/100% 100% } -.d-table-cell { - display: table-cell !important +.carousel-control-prev-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3E%3C/svg%3E") } -.d-flex { - display: flex !important +.carousel-control-next-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3E%3C/svg%3E") } -.d-inline-flex { - display: inline-flex !important +.carousel-indicators { + position: absolute; + right: 0; + bottom: 0; + left: 0; + z-index: 15; + display: flex; + justify-content: center; + padding-left: 0; + margin-right: 15%; + margin-left: 15%; + list-style: none } -@media (min-width: 576px) { - .d-sm-none { - display: none !important - } +.carousel-indicators li { + box-sizing: content-box; + flex: 0 1 auto; + width: 30px; + height: 3px; + margin-right: 3px; + margin-left: 3px; + text-indent: -999px; + cursor: pointer; + background-color: #fff; + background-clip: padding-box; + border-top: 10px solid transparent; + border-bottom: 10px solid transparent; + opacity: .5; + transition: opacity .6s ease +} - .d-sm-inline { - display: inline !important - } +@media (prefers-#a7240euced-motion: #a7240euce - .d-sm-inline-block { - display: inline-block !important +) { + .carousel-indicators li { + transition: none } +} - .d-sm-block { - display: block !important - } +.carousel-indicators .active { + opacity: 1 +} - .d-sm-table { - display: table !important - } +.carousel-caption { + position: absolute; + right: 15%; + bottom: 20px; + left: 15%; + z-index: 10; + padding-top: 20px; + padding-bottom: 20px; + color: #fff; + text-align: center +} - .d-sm-table-row { - display: table-row !important +@-webkit-keyframes spinner-border { + to { + transform: rotate(1turn) } +} - .d-sm-table-cell { - display: table-cell !important +@keyframes spinner-border { + to { + transform: rotate(1turn) } +} - .d-sm-flex { - display: flex !important - } +.spinner-border { + display: inline-block; + width: 2rem; + height: 2rem; + vertical-align: text-bottom; + border: .25em solid; + border-right: .25em solid transparent; + border-radius: 50%; + -webkit-animation: spinner-border .75s linear infinite; + animation: spinner-border .75s linear infinite +} - .d-sm-inline-flex { - display: inline-flex !important - } +.spinner-border-sm { + width: 1rem; + height: 1rem; + border-width: .2em } -@media (min-width: 768px) { - .d-md-none { - display: none !important +@-webkit-keyframes spinner-grow { + 0% { + transform: scale(0) } - - .d-md-inline { - display: inline !important + 50% { + opacity: 1 } +} - .d-md-inline-block { - display: inline-block !important +@keyframes spinner-grow { + 0% { + transform: scale(0) } - - .d-md-block { - display: block !important + 50% { + opacity: 1 } +} - .d-md-table { - display: table !important - } +.spinner-grow { + display: inline-block; + width: 2rem; + height: 2rem; + vertical-align: text-bottom; + background-color: currentColor; + border-radius: 50%; + opacity: 0; + -webkit-animation: spinner-grow .75s linear infinite; + animation: spinner-grow .75s linear infinite +} - .d-md-table-row { - display: table-row !important - } +.spinner-grow-sm { + width: 1rem; + height: 1rem +} - .d-md-table-cell { - display: table-cell !important - } +.align-baseline { + vertical-align: baseline !important +} - .d-md-flex { - display: flex !important - } +.align-top { + vertical-align: top !important +} - .d-md-inline-flex { - display: inline-flex !important - } +.align-middle { + vertical-align: middle !important } -@media (min-width: 992px) { - .d-lg-none { - display: none !important - } +.align-bottom { + vertical-align: bottom !important +} - .d-lg-inline { - display: inline !important - } +.align-text-bottom { + vertical-align: text-bottom !important +} - .d-lg-inline-block { - display: inline-block !important - } +.align-text-top { + vertical-align: text-top !important +} - .d-lg-block { - display: block !important - } +/*! + * technically the wrong color but not used anywhere besides nav and this way changing nav color is supported + */ +.bg-primary { + background-color: rgb(221, 191, 134) !important; +} - .d-lg-table { - display: table !important - } +a.bg-primary:focus, a.bg-primary:hover, button.bg-primary:focus, button.bg-primary:hover { + background-color: #000004 !important +} - .d-lg-table-row { - display: table-row !important - } +.bg-secondary { + background-color: #b55e4f !important +} - .d-lg-table-cell { - display: table-cell !important - } +a.bg-secondary:focus, a.bg-secondary:hover, button.bg-secondary:focus, button.bg-secondary:hover { + background-color: #9090ea !important +} - .d-lg-flex { - display: flex !important - } +.bg-success { + background-color: #82aa8b !important +} - .d-lg-inline-flex { - display: inline-flex !important - } +a.bg-success:focus, a.bg-success:hover, button.bg-success:focus, button.bg-success:hover { + background-color: #35cca0 !important } -@media (min-width: 1200px) { - .d-xl-none { - display: none !important - } - - .d-xl-inline { - display: inline !important - } - - .d-xl-inline-block { - display: inline-block !important - } - - .d-xl-block { - display: block !important - } - - .d-xl-table { - display: table !important - } - - .d-xl-table-row { - display: table-row !important - } - - .d-xl-table-cell { - display: table-cell !important - } - - .d-xl-flex { - display: flex !important - } - - .d-xl-inline-flex { - display: inline-flex !important - } +.bg-info { + background-color: #385f84 !important } -@media print { - .d-print-none { - display: none !important - } - - .d-print-inline { - display: inline !important - } - - .d-print-inline-block { - display: inline-block !important - } - - .d-print-block { - display: block !important - } - - .d-print-table { - display: table !important - } - - .d-print-table-row { - display: table-row !important - } +a.bg-info:focus, a.bg-info:hover, button.bg-info:focus, button.bg-info:hover { + background-color: #007ee5 !important +} - .d-print-table-cell { - display: table-cell !important - } +.bg-warning { + background-color: #eaaa21 !important +} - .d-print-flex { - display: flex !important - } +a.bg-warning:focus, a.bg-warning:hover, button.bg-warning:focus, button.bg-warning:hover { + background-color: #cc8a00 !important +} - .d-print-inline-flex { - display: inline-flex !important - } +.bg-danger { + background-color: #a7240e !important } -.embed-responsive { - position: relative; - display: block; - width: 100%; - padding: 0; - overflow: hidden +a.bg-danger:focus, a.bg-danger:hover, button.bg-danger:focus, button.bg-danger:hover { + background-color: #c00 !important } -.embed-responsive:before { - display: block; - content: "" +.bg-light { + background-color: #cfd5cd !important } -.embed-responsive .embed-responsive-item, .embed-responsive embed, .embed-responsive iframe, .embed-responsive object, .embed-responsive video { - position: absolute; - top: 0; - bottom: 0; - left: 0; - width: 100%; - height: 100%; - border: 0 +a.bg-light:focus, a.bg-light:hover, button.bg-light:focus, button.bg-light:hover { + background-color: #fb4e0f !important } -.embed-responsive-21by9:before { - padding-top: 42.85714% +.bg-dark { + background-color: #221e1e !important } -.embed-responsive-16by9:before { - padding-top: 56.25% +a.bg-dark:focus, a.bg-dark:hover, button.bg-dark:focus, button.bg-dark:hover { + background-color: #070606 !important } -.embed-responsive-4by3:before { - padding-top: 75% +.bg-white { + background-color: #fff !important } -.embed-responsive-1by1:before { - padding-top: 100% +.bg-transparent { + background-color: transparent !important } -.flex-row { - flex-direction: row !important +.border { + border: 1px solid #dee2e6 !important } -.flex-column { - flex-direction: column !important +.border-top { + border-top: 1px solid #dee2e6 !important } -.flex-row-reverse { - flex-direction: row-reverse !important +.border-right { + border-right: 1px solid #dee2e6 !important } -.flex-column-reverse { - flex-direction: column-reverse !important +.border-bottom { + border-bottom: 1px solid #dee2e6 !important } -.flex-wrap { - flex-wrap: wrap !important +.border-left { + border-left: 1px solid #dee2e6 !important } -.flex-nowrap { - flex-wrap: nowrap !important +.border-0 { + border: 0 !important } -.flex-wrap-reverse { - flex-wrap: wrap-reverse !important +.border-top-0 { + border-top: 0 !important } -.flex-fill { - flex: 1 1 auto !important +.border-right-0 { + border-right: 0 !important } -.flex-grow-0 { - flex-grow: 0 !important +.border-bottom-0 { + border-bottom: 0 !important } -.flex-grow-1 { - flex-grow: 1 !important +.border-left-0 { + border-left: 0 !important } -.flex-shrink-0 { - flex-shrink: 0 !important +.border-primary { + border-color: #b98766 !important } -.flex-shrink-1 { - flex-shrink: 1 !important +.border-secondary { + border-color: #b55e4f !important } -.justify-content-start { - justify-content: flex-start !important +.border-success { + border-color: #82aa8b !important } -.justify-content-end { - justify-content: flex-end !important +.border-info { + border-color: #385f84 !important } -.justify-content-center { - justify-content: center !important +.border-warning { + border-color: #eaaa21 !important } -.justify-content-between { - justify-content: space-between !important +.border-danger { + border-color: #a7240e !important } -.justify-content-around { - justify-content: space-around !important +.border-light { + border-color: #cfd5cd !important } -.align-items-start { - align-items: flex-start !important +.border-dark { + border-color: #221e1e !important } -.align-items-end { - align-items: flex-end !important +.border-white { + border-color: #fff !important } -.align-items-center { - align-items: center !important +.rounded-sm { + border-radius: .2rem !important } -.align-items-baseline { - align-items: baseline !important +.rounded { + border-radius: .25rem !important } -.align-items-stretch { - align-items: stretch !important +.rounded-top { + border-top-left-radius: .25rem !important } -.align-content-start { - align-content: flex-start !important +.rounded-right, .rounded-top { + border-top-right-radius: .25rem !important } -.align-content-end { - align-content: flex-end !important +.rounded-bottom, .rounded-right { + border-bottom-right-radius: .25rem !important } -.align-content-center { - align-content: center !important +.rounded-bottom, .rounded-left { + border-bottom-left-radius: .25rem !important } -.align-content-between { - align-content: space-between !important +.rounded-left { + border-top-left-radius: .25rem !important } -.align-content-around { - align-content: space-around !important +.rounded-lg { + border-radius: .3rem !important } -.align-content-stretch { - align-content: stretch !important +.rounded-circle { + border-radius: 50% !important } -.align-self-auto { - align-self: auto !important +.rounded-pill { + border-radius: 50rem !important } -.align-self-start { - align-self: flex-start !important +.rounded-0 { + border-radius: 0 !important } -.align-self-end { - align-self: flex-end !important +.clearfix:after { + display: block; + clear: both; + content: "" } -.align-self-center { - align-self: center !important +.d-none { + display: none !important } -.align-self-baseline { - align-self: baseline !important +.d-inline { + display: inline !important } -.align-self-stretch { - align-self: stretch !important +.d-inline-block { + display: inline-block !important } -@media (min-width: 576px) { - .flex-sm-row { - flex-direction: row !important - } - - .flex-sm-column { - flex-direction: column !important - } +.d-block { + display: block !important +} - .flex-sm-row-reverse { - flex-direction: row-reverse !important - } +.d-table { + display: table !important +} - .flex-sm-column-reverse { - flex-direction: column-reverse !important - } +.d-table-row { + display: table-row !important +} - .flex-sm-wrap { - flex-wrap: wrap !important - } +.d-table-cell { + display: table-cell !important +} - .flex-sm-nowrap { - flex-wrap: nowrap !important - } +.d-flex { + display: flex !important +} - .flex-sm-wrap-reverse { - flex-wrap: wrap-reverse !important - } +.d-inline-flex { + display: inline-flex !important +} - .flex-sm-fill { - flex: 1 1 auto !important +@media (min-width: 576px) { + .d-sm-none { + display: none !important } - .flex-sm-grow-0 { - flex-grow: 0 !important + .d-sm-inline { + display: inline !important } - .flex-sm-grow-1 { - flex-grow: 1 !important + .d-sm-inline-block { + display: inline-block !important } - .flex-sm-shrink-0 { - flex-shrink: 0 !important + .d-sm-block { + display: block !important } - .flex-sm-shrink-1 { - flex-shrink: 1 !important + .d-sm-table { + display: table !important } - .justify-content-sm-start { - justify-content: flex-start !important + .d-sm-table-row { + display: table-row !important } - .justify-content-sm-end { - justify-content: flex-end !important + .d-sm-table-cell { + display: table-cell !important } - .justify-content-sm-center { - justify-content: center !important + .d-sm-flex { + display: flex !important } - .justify-content-sm-between { - justify-content: space-between !important + .d-sm-inline-flex { + display: inline-flex !important } +} - .justify-content-sm-around { - justify-content: space-around !important +@media (min-width: 768px) { + .d-md-none { + display: none !important } - .align-items-sm-start { - align-items: flex-start !important + .d-md-inline { + display: inline !important } - .align-items-sm-end { - align-items: flex-end !important + .d-md-inline-block { + display: inline-block !important } - .align-items-sm-center { - align-items: center !important + .d-md-block { + display: block !important } - .align-items-sm-baseline { - align-items: baseline !important + .d-md-table { + display: table !important } - .align-items-sm-stretch { - align-items: stretch !important + .d-md-table-row { + display: table-row !important } - .align-content-sm-start { - align-content: flex-start !important + .d-md-table-cell { + display: table-cell !important } - .align-content-sm-end { - align-content: flex-end !important + .d-md-flex { + display: flex !important } - .align-content-sm-center { - align-content: center !important + .d-md-inline-flex { + display: inline-flex !important } +} - .align-content-sm-between { - align-content: space-between !important +@media (min-width: 992px) { + .d-lg-none { + display: none !important } - .align-content-sm-around { - align-content: space-around !important + .d-lg-inline { + display: inline !important } - .align-content-sm-stretch { - align-content: stretch !important + .d-lg-inline-block { + display: inline-block !important } - .align-self-sm-auto { - align-self: auto !important + .d-lg-block { + display: block !important } - .align-self-sm-start { - align-self: flex-start !important + .d-lg-table { + display: table !important } - .align-self-sm-end { - align-self: flex-end !important + .d-lg-table-row { + display: table-row !important } - .align-self-sm-center { - align-self: center !important + .d-lg-table-cell { + display: table-cell !important } - .align-self-sm-baseline { - align-self: baseline !important + .d-lg-flex { + display: flex !important } - .align-self-sm-stretch { - align-self: stretch !important + .d-lg-inline-flex { + display: inline-flex !important } } -@media (min-width: 768px) { - .flex-md-row { - flex-direction: row !important - } - - .flex-md-column { - flex-direction: column !important - } - - .flex-md-row-reverse { - flex-direction: row-reverse !important +@media (min-width: 1200px) { + .d-xl-none { + display: none !important } - .flex-md-column-reverse { - flex-direction: column-reverse !important + .d-xl-inline { + display: inline !important } - .flex-md-wrap { - flex-wrap: wrap !important + .d-xl-inline-block { + display: inline-block !important } - .flex-md-nowrap { - flex-wrap: nowrap !important + .d-xl-block { + display: block !important } - .flex-md-wrap-reverse { - flex-wrap: wrap-reverse !important + .d-xl-table { + display: table !important } - .flex-md-fill { - flex: 1 1 auto !important + .d-xl-table-row { + display: table-row !important } - .flex-md-grow-0 { - flex-grow: 0 !important + .d-xl-table-cell { + display: table-cell !important } - .flex-md-grow-1 { - flex-grow: 1 !important + .d-xl-flex { + display: flex !important } - .flex-md-shrink-0 { - flex-shrink: 0 !important + .d-xl-inline-flex { + display: inline-flex !important } +} - .flex-md-shrink-1 { - flex-shrink: 1 !important +@media print { + .d-print-none { + display: none !important } - .justify-content-md-start { - justify-content: flex-start !important + .d-print-inline { + display: inline !important } - .justify-content-md-end { - justify-content: flex-end !important + .d-print-inline-block { + display: inline-block !important } - .justify-content-md-center { - justify-content: center !important + .d-print-block { + display: block !important } - .justify-content-md-between { - justify-content: space-between !important + .d-print-table { + display: table !important } - .justify-content-md-around { - justify-content: space-around !important + .d-print-table-row { + display: table-row !important } - .align-items-md-start { - align-items: flex-start !important + .d-print-table-cell { + display: table-cell !important } - .align-items-md-end { - align-items: flex-end !important + .d-print-flex { + display: flex !important } - .align-items-md-center { - align-items: center !important + .d-print-inline-flex { + display: inline-flex !important } +} - .align-items-md-baseline { - align-items: baseline !important - } +.embed-responsive { + position: relative; + display: block; + width: 100%; + padding: 0; + overflow: hidden +} - .align-items-md-stretch { - align-items: stretch !important - } +.embed-responsive:before { + display: block; + content: "" +} - .align-content-md-start { - align-content: flex-start !important - } +.embed-responsive .embed-responsive-item, .embed-responsive embed, .embed-responsive iframe, .embed-responsive object, .embed-responsive video { + position: absolute; + top: 0; + bottom: 0; + left: 0; + width: 100%; + height: 100%; + border: 0 +} - .align-content-md-end { - align-content: flex-end !important - } +.embed-responsive-21by9:before { + padding-top: 42.85714% +} - .align-content-md-center { - align-content: center !important - } +.embed-responsive-16by9:before { + padding-top: 56.25% +} - .align-content-md-between { - align-content: space-between !important - } +.embed-responsive-4by3:before { + padding-top: 75% +} - .align-content-md-around { - align-content: space-around !important - } +.embed-responsive-1by1:before { + padding-top: 100% +} - .align-content-md-stretch { - align-content: stretch !important - } +.flex-row { + flex-direction: row !important +} - .align-self-md-auto { - align-self: auto !important - } +.flex-column { + flex-direction: column !important +} - .align-self-md-start { - align-self: flex-start !important - } +.flex-row-reverse { + flex-direction: row-reverse !important +} - .align-self-md-end { - align-self: flex-end !important - } +.flex-column-reverse { + flex-direction: column-reverse !important +} - .align-self-md-center { - align-self: center !important - } +.flex-wrap { + flex-wrap: wrap !important +} - .align-self-md-baseline { - align-self: baseline !important - } +.flex-nowrap { + flex-wrap: nowrap !important +} - .align-self-md-stretch { - align-self: stretch !important - } +.flex-wrap-reverse { + flex-wrap: wrap-reverse !important } -@media (min-width: 992px) { - .flex-lg-row { +.flex-fill { + flex: 1 1 auto !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 +} + +.justify-content-start { + justify-content: flex-start !important +} + +.justify-content-end { + justify-content: flex-end !important +} + +.justify-content-center { + justify-content: center !important +} + +.justify-content-between { + justify-content: space-between !important +} + +.justify-content-around { + justify-content: space-around !important +} + +.align-items-start { + align-items: flex-start !important +} + +.align-items-end { + align-items: flex-end !important +} + +.align-items-center { + align-items: center !important +} + +.align-items-baseline { + align-items: baseline !important +} + +.align-items-stretch { + align-items: stretch !important +} + +.align-content-start { + align-content: flex-start !important +} + +.align-content-end { + align-content: flex-end !important +} + +.align-content-center { + align-content: center !important +} + +.align-content-between { + align-content: space-between !important +} + +.align-content-around { + align-content: space-around !important +} + +.align-content-stretch { + align-content: stretch !important +} + +.align-self-auto { + align-self: auto !important +} + +.align-self-start { + align-self: flex-start !important +} + +.align-self-end { + align-self: flex-end !important +} + +.align-self-center { + align-self: center !important +} + +.align-self-baseline { + align-self: baseline !important +} + +.align-self-stretch { + align-self: stretch !important +} + +@media (min-width: 576px) { + .flex-sm-row { flex-direction: row !important } - .flex-lg-column { + .flex-sm-column { flex-direction: column !important } - .flex-lg-row-reverse { + .flex-sm-row-reverse { flex-direction: row-reverse !important } - .flex-lg-column-reverse { + .flex-sm-column-reverse { flex-direction: column-reverse !important } - .flex-lg-wrap { + .flex-sm-wrap { flex-wrap: wrap !important } - .flex-lg-nowrap { + .flex-sm-nowrap { flex-wrap: nowrap !important } - .flex-lg-wrap-reverse { + .flex-sm-wrap-reverse { flex-wrap: wrap-reverse !important } - .flex-lg-fill { + .flex-sm-fill { flex: 1 1 auto !important } - .flex-lg-grow-0 { + .flex-sm-grow-0 { flex-grow: 0 !important } - .flex-lg-grow-1 { + .flex-sm-grow-1 { flex-grow: 1 !important } - .flex-lg-shrink-0 { + .flex-sm-shrink-0 { flex-shrink: 0 !important } - .flex-lg-shrink-1 { + .flex-sm-shrink-1 { flex-shrink: 1 !important } - .justify-content-lg-start { + .justify-content-sm-start { justify-content: flex-start !important } - .justify-content-lg-end { + .justify-content-sm-end { justify-content: flex-end !important } - .justify-content-lg-center { + .justify-content-sm-center { justify-content: center !important } - .justify-content-lg-between { + .justify-content-sm-between { justify-content: space-between !important } - .justify-content-lg-around { + .justify-content-sm-around { justify-content: space-around !important } - .align-items-lg-start { + .align-items-sm-start { align-items: flex-start !important } - .align-items-lg-end { + .align-items-sm-end { align-items: flex-end !important } - .align-items-lg-center { + .align-items-sm-center { align-items: center !important } - .align-items-lg-baseline { + .align-items-sm-baseline { align-items: baseline !important } - .align-items-lg-stretch { + .align-items-sm-stretch { align-items: stretch !important } - .align-content-lg-start { + .align-content-sm-start { align-content: flex-start !important } - .align-content-lg-end { + .align-content-sm-end { align-content: flex-end !important } - .align-content-lg-center { + .align-content-sm-center { align-content: center !important } - .align-content-lg-between { + .align-content-sm-between { align-content: space-between !important } - .align-content-lg-around { + .align-content-sm-around { align-content: space-around !important } - .align-content-lg-stretch { + .align-content-sm-stretch { align-content: stretch !important } - .align-self-lg-auto { + .align-self-sm-auto { align-self: auto !important } - .align-self-lg-start { + .align-self-sm-start { align-self: flex-start !important } - .align-self-lg-end { + .align-self-sm-end { align-self: flex-end !important } - .align-self-lg-center { + .align-self-sm-center { align-self: center !important } - .align-self-lg-baseline { + .align-self-sm-baseline { align-self: baseline !important } - .align-self-lg-stretch { + .align-self-sm-stretch { align-self: stretch !important } } -@media (min-width: 1200px) { - .flex-xl-row { +@media (min-width: 768px) { + .flex-md-row { flex-direction: row !important } - .flex-xl-column { + .flex-md-column { flex-direction: column !important } - .flex-xl-row-reverse { + .flex-md-row-reverse { flex-direction: row-reverse !important } - .flex-xl-column-reverse { + .flex-md-column-reverse { flex-direction: column-reverse !important } - .flex-xl-wrap { + .flex-md-wrap { flex-wrap: wrap !important } - .flex-xl-nowrap { + .flex-md-nowrap { flex-wrap: nowrap !important } - .flex-xl-wrap-reverse { + .flex-md-wrap-reverse { flex-wrap: wrap-reverse !important } - .flex-xl-fill { + .flex-md-fill { flex: 1 1 auto !important } - .flex-xl-grow-0 { + .flex-md-grow-0 { flex-grow: 0 !important } - .flex-xl-grow-1 { + .flex-md-grow-1 { flex-grow: 1 !important } - .flex-xl-shrink-0 { + .flex-md-shrink-0 { flex-shrink: 0 !important } - .flex-xl-shrink-1 { + .flex-md-shrink-1 { flex-shrink: 1 !important } - .justify-content-xl-start { + .justify-content-md-start { justify-content: flex-start !important } - .justify-content-xl-end { + .justify-content-md-end { justify-content: flex-end !important } - .justify-content-xl-center { + .justify-content-md-center { justify-content: center !important } - .justify-content-xl-between { + .justify-content-md-between { justify-content: space-between !important } - .justify-content-xl-around { + .justify-content-md-around { justify-content: space-around !important } - .align-items-xl-start { + .align-items-md-start { align-items: flex-start !important } - .align-items-xl-end { + .align-items-md-end { align-items: flex-end !important } - .align-items-xl-center { + .align-items-md-center { align-items: center !important } - .align-items-xl-baseline { + .align-items-md-baseline { align-items: baseline !important } - .align-items-xl-stretch { + .align-items-md-stretch { align-items: stretch !important } - .align-content-xl-start { + .align-content-md-start { align-content: flex-start !important } - .align-content-xl-end { + .align-content-md-end { align-content: flex-end !important } - .align-content-xl-center { + .align-content-md-center { align-content: center !important } - .align-content-xl-between { + .align-content-md-between { align-content: space-between !important } - .align-content-xl-around { + .align-content-md-around { align-content: space-around !important } - .align-content-xl-stretch { + .align-content-md-stretch { align-content: stretch !important } - .align-self-xl-auto { + .align-self-md-auto { align-self: auto !important } - .align-self-xl-start { + .align-self-md-start { align-self: flex-start !important } - .align-self-xl-end { + .align-self-md-end { align-self: flex-end !important } - .align-self-xl-center { + .align-self-md-center { align-self: center !important } - .align-self-xl-baseline { + .align-self-md-baseline { align-self: baseline !important } - .align-self-xl-stretch { + .align-self-md-stretch { align-self: stretch !important } } -.float-left { - float: left !important -} - -.float-right { - float: right !important -} +@media (min-width: 992px) { + .flex-lg-row { + flex-direction: row !important + } -.float-none { - float: none !important -} + .flex-lg-column { + flex-direction: column !important + } -@media (min-width: 576px) { - .float-sm-left { - float: left !important + .flex-lg-row-reverse { + flex-direction: row-reverse !important } - .float-sm-right { - float: right !important + .flex-lg-column-reverse { + flex-direction: column-reverse !important } - .float-sm-none { - float: none !important + .flex-lg-wrap { + flex-wrap: wrap !important } -} -@media (min-width: 768px) { - .float-md-left { - float: left !important + .flex-lg-nowrap { + flex-wrap: nowrap !important } - .float-md-right { - float: right !important + .flex-lg-wrap-reverse { + flex-wrap: wrap-reverse !important } - .float-md-none { - float: none !important + .flex-lg-fill { + flex: 1 1 auto !important } -} -@media (min-width: 992px) { - .float-lg-left { - float: left !important + .flex-lg-grow-0 { + flex-grow: 0 !important } - .float-lg-right { - float: right !important + .flex-lg-grow-1 { + flex-grow: 1 !important } - .float-lg-none { - float: none !important + .flex-lg-shrink-0 { + flex-shrink: 0 !important } -} -@media (min-width: 1200px) { - .float-xl-left { - float: left !important + .flex-lg-shrink-1 { + flex-shrink: 1 !important } - .float-xl-right { - float: right !important + .justify-content-lg-start { + justify-content: flex-start !important } - .float-xl-none { - float: none !important + .justify-content-lg-end { + justify-content: flex-end !important } -} -.overflow-auto { - overflow: auto !important -} + .justify-content-lg-center { + justify-content: center !important + } -.overflow-hidden { - overflow: hidden !important -} + .justify-content-lg-between { + justify-content: space-between !important + } -.position-static { - position: static !important -} + .justify-content-lg-around { + justify-content: space-around !important + } -.position-relative { - position: relative !important -} + .align-items-lg-start { + align-items: flex-start !important + } -.position-absolute { - position: absolute !important -} + .align-items-lg-end { + align-items: flex-end !important + } -.position-fixed { - position: fixed !important -} + .align-items-lg-center { + align-items: center !important + } -.position-sticky { - position: -webkit-sticky !important; - position: sticky !important -} + .align-items-lg-baseline { + align-items: baseline !important + } -.fixed-top { - top: 0 -} + .align-items-lg-stretch { + align-items: stretch !important + } -.fixed-bottom, .fixed-top { - position: fixed; - right: 0; - left: 0; - z-index: 1030 -} + .align-content-lg-start { + align-content: flex-start !important + } -.fixed-bottom { - bottom: 0 -} + .align-content-lg-end { + align-content: flex-end !important + } -@supports ((position:-webkit-sticky) or (position:sticky)) { - .sticky-top { - position: -webkit-sticky; - position: sticky; - top: 0; - z-index: 1020 + .align-content-lg-center { + align-content: center !important } -} -.sr-only { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - overflow: hidden; - clip: rect(0, 0, 0, 0); - white-space: nowrap; - border: 0 -} + .align-content-lg-between { + align-content: space-between !important + } -.sr-only-focusable:active, .sr-only-focusable:focus { - position: static; - width: auto; - height: auto; - overflow: visible; - clip: auto; - white-space: normal -} + .align-content-lg-around { + align-content: space-around !important + } -.shadow-sm { - box-shadow: 0 .125rem .25rem rgba(0, 0, 0, .075) !important -} + .align-content-lg-stretch { + align-content: stretch !important + } -.shadow { - box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .15) !important -} + .align-self-lg-auto { + align-self: auto !important + } -.shadow-lg { - box-shadow: 0 1rem 3rem rgba(0, 0, 0, .175) !important -} + .align-self-lg-start { + align-self: flex-start !important + } -.shadow-none { - box-shadow: none !important -} + .align-self-lg-end { + align-self: flex-end !important + } -.w-25 { - width: 25% !important -} + .align-self-lg-center { + align-self: center !important + } -.w-50 { - width: 50% !important -} + .align-self-lg-baseline { + align-self: baseline !important + } -.w-75 { - width: 75% !important + .align-self-lg-stretch { + align-self: stretch !important + } } -.w-100 { - width: 100% !important -} +@media (min-width: 1200px) { + .flex-xl-row { + flex-direction: row !important + } -.w-auto { - width: auto !important -} + .flex-xl-column { + flex-direction: column !important + } -.h-25 { - height: 25% !important -} + .flex-xl-row-reverse { + flex-direction: row-reverse !important + } -.h-50 { - height: 50% !important -} + .flex-xl-column-reverse { + flex-direction: column-reverse !important + } -.h-75 { - height: 75% !important -} + .flex-xl-wrap { + flex-wrap: wrap !important + } -.h-100 { - height: 100% !important -} + .flex-xl-nowrap { + flex-wrap: nowrap !important + } -.h-auto { - height: auto !important -} + .flex-xl-wrap-reverse { + flex-wrap: wrap-reverse !important + } -.mw-100 { - max-width: 100% !important -} + .flex-xl-fill { + flex: 1 1 auto !important + } -.mh-100 { - max-height: 100% !important -} + .flex-xl-grow-0 { + flex-grow: 0 !important + } -.min-vw-100 { - min-width: 100vw !important -} + .flex-xl-grow-1 { + flex-grow: 1 !important + } -.min-vh-100 { - min-height: 100vh !important -} + .flex-xl-shrink-0 { + flex-shrink: 0 !important + } -.vw-100 { - width: 100vw !important -} + .flex-xl-shrink-1 { + flex-shrink: 1 !important + } -.vh-100 { - height: 100vh !important -} + .justify-content-xl-start { + justify-content: flex-start !important + } -.stretched-link:after { - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 1; - pointer-events: auto; - content: ""; - background-color: transparent -} + .justify-content-xl-end { + justify-content: flex-end !important + } -.m-0 { - margin: 0 !important -} + .justify-content-xl-center { + justify-content: center !important + } -.mt-0, .my-0 { - margin-top: 0 !important -} + .justify-content-xl-between { + justify-content: space-between !important + } -.mr-0, .mx-0 { - margin-right: 0 !important -} + .justify-content-xl-around { + justify-content: space-around !important + } -.mb-0, .my-0 { - margin-bottom: 0 !important -} + .align-items-xl-start { + align-items: flex-start !important + } -.ml-0, .mx-0 { - margin-left: 0 !important -} + .align-items-xl-end { + align-items: flex-end !important + } -.m-1 { - margin: .25rem !important -} + .align-items-xl-center { + align-items: center !important + } -.mt-1, .my-1 { - margin-top: .25rem !important -} + .align-items-xl-baseline { + align-items: baseline !important + } -.mr-1, .mx-1 { - margin-right: .25rem !important -} + .align-items-xl-stretch { + align-items: stretch !important + } -.mb-1, .my-1 { - margin-bottom: .25rem !important -} + .align-content-xl-start { + align-content: flex-start !important + } -.ml-1, .mx-1 { - margin-left: .25rem !important -} + .align-content-xl-end { + align-content: flex-end !important + } -.m-2 { - margin: .5rem !important -} + .align-content-xl-center { + align-content: center !important + } -.mt-2, .my-2 { - margin-top: .5rem !important -} + .align-content-xl-between { + align-content: space-between !important + } -.mr-2, .mx-2 { - margin-right: .5rem !important -} + .align-content-xl-around { + align-content: space-around !important + } -.mb-2, .my-2 { - margin-bottom: .5rem !important -} + .align-content-xl-stretch { + align-content: stretch !important + } -.ml-2, .mx-2 { - margin-left: .5rem !important -} + .align-self-xl-auto { + align-self: auto !important + } -.m-3 { - margin: 1rem !important -} + .align-self-xl-start { + align-self: flex-start !important + } -.mt-3, .my-3 { - margin-top: 1rem !important -} + .align-self-xl-end { + align-self: flex-end !important + } -.mr-3, .mx-3 { - margin-right: 1rem !important -} + .align-self-xl-center { + align-self: center !important + } -.mb-3, .my-3 { - margin-bottom: 1rem !important -} + .align-self-xl-baseline { + align-self: baseline !important + } -.ml-3, .mx-3 { - margin-left: 1rem !important + .align-self-xl-stretch { + align-self: stretch !important + } } -.m-4 { - margin: 1.5rem !important +.float-left { + float: left !important } -.mt-4, .my-4 { - margin-top: 1.5rem !important +.float-right { + float: right !important } -.mr-4, .mx-4 { - margin-right: 1.5rem !important +.float-none { + float: none !important } -.mb-4, .my-4 { - margin-bottom: 1.5rem !important -} +@media (min-width: 576px) { + .float-sm-left { + float: left !important + } -.ml-4, .mx-4 { - margin-left: 1.5rem !important -} + .float-sm-right { + float: right !important + } -.m-5 { - margin: 3rem !important + .float-sm-none { + float: none !important + } } -.mt-5, .my-5 { - margin-top: 3rem !important -} +@media (min-width: 768px) { + .float-md-left { + float: left !important + } -.mr-5, .mx-5 { - margin-right: 3rem !important -} + .float-md-right { + float: right !important + } -.mb-5, .my-5 { - margin-bottom: 3rem !important + .float-md-none { + float: none !important + } } -.ml-5, .mx-5 { - margin-left: 3rem !important -} +@media (min-width: 992px) { + .float-lg-left { + float: left !important + } -.p-0 { - padding: 0 !important -} + .float-lg-right { + float: right !important + } -.pt-0, .py-0 { - padding-top: 0 !important + .float-lg-none { + float: none !important + } } -.pr-0, .px-0 { - padding-right: 0 !important -} +@media (min-width: 1200px) { + .float-xl-left { + float: left !important + } -.pb-0, .py-0 { - padding-bottom: 0 !important -} + .float-xl-right { + float: right !important + } -.pl-0, .px-0 { - padding-left: 0 !important + .float-xl-none { + float: none !important + } } -.p-1 { - padding: .25rem !important +.overflow-auto { + overflow: auto !important } -.pt-1, .py-1 { - padding-top: .25rem !important +.overflow-hidden { + overflow: hidden !important } -.pr-1, .px-1 { - padding-right: .25rem !important +.position-static { + position: static !important } -.pb-1, .py-1 { - padding-bottom: .25rem !important +.position-relative { + position: relative !important } -.pl-1, .px-1 { - padding-left: .25rem !important +.position-absolute { + position: absolute !important } -.p-2 { - padding: .5rem !important +.position-fixed { + position: fixed !important } -.pt-2, .py-2 { - padding-top: .5rem !important +.position-sticky { + position: -webkit-sticky !important; + position: sticky !important } -.pr-2, .px-2 { - padding-right: .5rem !important +.fixed-top { + top: 0 } -.pb-2, .py-2 { - padding-bottom: .5rem !important +.fixed-bottom, .fixed-top { + position: fixed; + right: 0; + left: 0; + z-index: 1030 } -.pl-2, .px-2 { - padding-left: .5rem !important +.fixed-bottom { + bottom: 0 } -.p-3 { - padding: 1rem !important +@supports ((position:-webkit-sticky) or (position:sticky)) { + .sticky-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020 + } } -.pt-3, .py-3 { - padding-top: 1rem !important +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border: 0 } -.pr-3, .px-3 { - padding-right: 1rem !important +.sr-only-focusable:active, .sr-only-focusable:focus { + position: static; + width: auto; + height: auto; + overflow: visible; + clip: auto; + white-space: normal } -.pb-3, .py-3 { - padding-bottom: 1rem !important +.shadow-sm { + box-shadow: 0 .125rem .25rem rgba(0, 0, 0, .075) !important } -.pl-3, .px-3 { - padding-left: 1rem !important +.shadow { + box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .15) !important } -.p-4 { - padding: 1.5rem !important +.shadow-lg { + box-shadow: 0 1rem 3rem rgba(0, 0, 0, .175) !important } -.pt-4, .py-4 { - padding-top: 1.5rem !important +.shadow-none { + box-shadow: none !important } -.pr-4, .px-4 { - padding-right: 1.5rem !important +.w-25 { + width: 25% !important } -.pb-4, .py-4 { - padding-bottom: 1.5rem !important +.w-50 { + width: 50% !important } -.pl-4, .px-4 { - padding-left: 1.5rem !important +.w-75 { + width: 75% !important } -.p-5 { - padding: 3rem !important +.w-100 { + width: 100% !important } -.pt-5, .py-5 { - padding-top: 3rem !important +.w-auto { + width: auto !important } -.pr-5, .px-5 { - padding-right: 3rem !important +.h-25 { + height: 25% !important } -.pb-5, .py-5 { - padding-bottom: 3rem !important +.h-50 { + height: 50% !important } -.pl-5, .px-5 { - padding-left: 3rem !important +.h-75 { + height: 75% !important } -.m-n1 { - margin: -.25rem !important +.h-100 { + height: 100% !important } -.mt-n1, .my-n1 { - margin-top: -.25rem !important +.h-auto { + height: auto !important } -.mr-n1, .mx-n1 { - margin-right: -.25rem !important +.mw-100 { + max-width: 100% !important } -.mb-n1, .my-n1 { - margin-bottom: -.25rem !important +.mh-100 { + max-height: 100% !important } -.ml-n1, .mx-n1 { - margin-left: -.25rem !important +.min-vw-100 { + min-width: 100vw !important } -.m-n2 { - margin: -.5rem !important +.min-vh-100 { + min-height: 100vh !important } -.mt-n2, .my-n2 { - margin-top: -.5rem !important +.vw-100 { + width: 100vw !important } -.mr-n2, .mx-n2 { - margin-right: -.5rem !important +.vh-100 { + height: 100vh !important } -.mb-n2, .my-n2 { - margin-bottom: -.5rem !important +.stretched-link:after { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1; + pointer-events: auto; + content: ""; + background-color: transparent } -.ml-n2, .mx-n2 { - margin-left: -.5rem !important +.m-0 { + margin: 0 !important } -.m-n3 { - margin: -1rem !important +.mt-0, .my-0 { + margin-top: 0 !important } -.mt-n3, .my-n3 { - margin-top: -1rem !important +.mr-0, .mx-0 { + margin-right: 0 !important } -.mr-n3, .mx-n3 { - margin-right: -1rem !important +.mb-0, .my-0 { + margin-bottom: 0 !important } -.mb-n3, .my-n3 { - margin-bottom: -1rem !important +.ml-0, .mx-0 { + margin-left: 0 !important } -.ml-n3, .mx-n3 { - margin-left: -1rem !important +.m-1 { + margin: .25rem !important } -.m-n4 { - margin: -1.5rem !important +.mt-1, .my-1 { + margin-top: .25rem !important } -.mt-n4, .my-n4 { - margin-top: -1.5rem !important +.mr-1, .mx-1 { + margin-right: .25rem !important } -.mr-n4, .mx-n4 { - margin-right: -1.5rem !important +.mb-1, .my-1 { + margin-bottom: .25rem !important } -.mb-n4, .my-n4 { - margin-bottom: -1.5rem !important +.ml-1, .mx-1 { + margin-left: .25rem !important } -.ml-n4, .mx-n4 { - margin-left: -1.5rem !important +.m-2 { + margin: .5rem !important } -.m-n5 { - margin: -3rem !important +.mt-2, .my-2 { + margin-top: .5rem !important } -.mt-n5, .my-n5 { - margin-top: -3rem !important +.mr-2, .mx-2 { + margin-right: .5rem !important } -.mr-n5, .mx-n5 { - margin-right: -3rem !important +.mb-2, .my-2 { + margin-bottom: .5rem !important } -.mb-n5, .my-n5 { - margin-bottom: -3rem !important +.ml-2, .mx-2 { + margin-left: .5rem !important } -.ml-n5, .mx-n5 { - margin-left: -3rem !important +.m-3 { + margin: 1rem !important } -.m-auto { - margin: auto !important +.mt-3, .my-3 { + margin-top: 1rem !important } -.mt-auto, .my-auto { - margin-top: auto !important +.mr-3, .mx-3 { + margin-right: 1rem !important } -.mr-auto, .mx-auto { - margin-right: auto !important +.mb-3, .my-3 { + margin-bottom: 1rem !important } -.mb-auto, .my-auto { - margin-bottom: auto !important +.ml-3, .mx-3 { + margin-left: 1rem !important } -.ml-auto, .mx-auto { - margin-left: auto !important +.m-4 { + margin: 1.5rem !important } -@media (min-width: 576px) { - .m-sm-0 { - margin: 0 !important - } - - .mt-sm-0, .my-sm-0 { - margin-top: 0 !important - } - - .mr-sm-0, .mx-sm-0 { - margin-right: 0 !important - } - - .mb-sm-0, .my-sm-0 { - margin-bottom: 0 !important - } - - .ml-sm-0, .mx-sm-0 { - margin-left: 0 !important - } - - .m-sm-1 { - margin: .25rem !important - } - - .mt-sm-1, .my-sm-1 { - margin-top: .25rem !important - } - - .mr-sm-1, .mx-sm-1 { - margin-right: .25rem !important - } - - .mb-sm-1, .my-sm-1 { - margin-bottom: .25rem !important - } - - .ml-sm-1, .mx-sm-1 { - margin-left: .25rem !important - } - - .m-sm-2 { - margin: .5rem !important - } - - .mt-sm-2, .my-sm-2 { - margin-top: .5rem !important - } - - .mr-sm-2, .mx-sm-2 { - margin-right: .5rem !important - } - - .mb-sm-2, .my-sm-2 { - margin-bottom: .5rem !important - } - - .ml-sm-2, .mx-sm-2 { - margin-left: .5rem !important - } - - .m-sm-3 { - margin: 1rem !important - } - - .mt-sm-3, .my-sm-3 { - margin-top: 1rem !important - } - - .mr-sm-3, .mx-sm-3 { - margin-right: 1rem !important - } - - .mb-sm-3, .my-sm-3 { - margin-bottom: 1rem !important - } - - .ml-sm-3, .mx-sm-3 { - margin-left: 1rem !important - } - - .m-sm-4 { - margin: 1.5rem !important - } - - .mt-sm-4, .my-sm-4 { - margin-top: 1.5rem !important - } +.mt-4, .my-4 { + margin-top: 1.5rem !important +} - .mr-sm-4, .mx-sm-4 { - margin-right: 1.5rem !important - } +.mr-4, .mx-4 { + margin-right: 1.5rem !important +} - .mb-sm-4, .my-sm-4 { - margin-bottom: 1.5rem !important - } +.mb-4, .my-4 { + margin-bottom: 1.5rem !important +} - .ml-sm-4, .mx-sm-4 { - margin-left: 1.5rem !important - } +.ml-4, .mx-4 { + margin-left: 1.5rem !important +} - .m-sm-5 { - margin: 3rem !important - } +.m-5 { + margin: 3rem !important +} - .mt-sm-5, .my-sm-5 { - margin-top: 3rem !important - } +.mt-5, .my-5 { + margin-top: 3rem !important +} - .mr-sm-5, .mx-sm-5 { - margin-right: 3rem !important - } +.mr-5, .mx-5 { + margin-right: 3rem !important +} - .mb-sm-5, .my-sm-5 { - margin-bottom: 3rem !important - } +.mb-5, .my-5 { + margin-bottom: 3rem !important +} - .ml-sm-5, .mx-sm-5 { - margin-left: 3rem !important - } +.ml-5, .mx-5 { + margin-left: 3rem !important +} - .p-sm-0 { - padding: 0 !important - } +.p-0 { + padding: 0 !important +} - .pt-sm-0, .py-sm-0 { - padding-top: 0 !important - } +.pt-0, .py-0 { + padding-top: 0 !important +} - .pr-sm-0, .px-sm-0 { - padding-right: 0 !important - } +.pr-0, .px-0 { + padding-right: 0 !important +} - .pb-sm-0, .py-sm-0 { - padding-bottom: 0 !important - } +.pb-0, .py-0 { + padding-bottom: 0 !important +} - .pl-sm-0, .px-sm-0 { - padding-left: 0 !important - } +.pl-0, .px-0 { + padding-left: 0 !important +} - .p-sm-1 { - padding: .25rem !important - } +.p-1 { + padding: .25rem !important +} - .pt-sm-1, .py-sm-1 { - padding-top: .25rem !important - } +.pt-1, .py-1 { + padding-top: .25rem !important +} - .pr-sm-1, .px-sm-1 { - padding-right: .25rem !important - } +.pr-1, .px-1 { + padding-right: .25rem !important +} - .pb-sm-1, .py-sm-1 { - padding-bottom: .25rem !important - } +.pb-1, .py-1 { + padding-bottom: .25rem !important +} - .pl-sm-1, .px-sm-1 { - padding-left: .25rem !important - } +.pl-1, .px-1 { + padding-left: .25rem !important +} - .p-sm-2 { - padding: .5rem !important - } +.p-2 { + padding: .5rem !important +} - .pt-sm-2, .py-sm-2 { - padding-top: .5rem !important - } +.pt-2, .py-2 { + padding-top: .5rem !important +} - .pr-sm-2, .px-sm-2 { - padding-right: .5rem !important - } +.pr-2, .px-2 { + padding-right: .5rem !important +} - .pb-sm-2, .py-sm-2 { - padding-bottom: .5rem !important - } +.pb-2, .py-2 { + padding-bottom: .5rem !important +} - .pl-sm-2, .px-sm-2 { - padding-left: .5rem !important - } +.pl-2, .px-2 { + padding-left: .5rem !important +} - .p-sm-3 { - padding: 1rem !important - } +.p-3 { + padding: 1rem !important +} - .pt-sm-3, .py-sm-3 { - padding-top: 1rem !important - } +.pt-3, .py-3 { + padding-top: 1rem !important +} - .pr-sm-3, .px-sm-3 { - padding-right: 1rem !important - } +.pr-3, .px-3 { + padding-right: 1rem !important +} - .pb-sm-3, .py-sm-3 { - padding-bottom: 1rem !important - } +.pb-3, .py-3 { + padding-bottom: 1rem !important +} - .pl-sm-3, .px-sm-3 { - padding-left: 1rem !important - } +.pl-3, .px-3 { + padding-left: 1rem !important +} - .p-sm-4 { - padding: 1.5rem !important - } +.p-4 { + padding: 1.5rem !important +} - .pt-sm-4, .py-sm-4 { - padding-top: 1.5rem !important - } +.pt-4, .py-4 { + padding-top: 1.5rem !important +} - .pr-sm-4, .px-sm-4 { - padding-right: 1.5rem !important - } +.pr-4, .px-4 { + padding-right: 1.5rem !important +} - .pb-sm-4, .py-sm-4 { - padding-bottom: 1.5rem !important - } +.pb-4, .py-4 { + padding-bottom: 1.5rem !important +} - .pl-sm-4, .px-sm-4 { - padding-left: 1.5rem !important - } +.pl-4, .px-4 { + padding-left: 1.5rem !important +} - .p-sm-5 { - padding: 3rem !important - } +.p-5 { + padding: 3rem !important +} - .pt-sm-5, .py-sm-5 { - padding-top: 3rem !important - } +.pt-5, .py-5 { + padding-top: 3rem !important +} - .pr-sm-5, .px-sm-5 { - padding-right: 3rem !important - } +.pr-5, .px-5 { + padding-right: 3rem !important +} - .pb-sm-5, .py-sm-5 { - padding-bottom: 3rem !important - } +.pb-5, .py-5 { + padding-bottom: 3rem !important +} - .pl-sm-5, .px-sm-5 { - padding-left: 3rem !important - } +.pl-5, .px-5 { + padding-left: 3rem !important +} - .m-sm-n1 { - margin: -.25rem !important - } +.m-n1 { + margin: -.25rem !important +} - .mt-sm-n1, .my-sm-n1 { - margin-top: -.25rem !important - } +.mt-n1, .my-n1 { + margin-top: -.25rem !important +} - .mr-sm-n1, .mx-sm-n1 { - margin-right: -.25rem !important - } +.mr-n1, .mx-n1 { + margin-right: -.25rem !important +} - .mb-sm-n1, .my-sm-n1 { - margin-bottom: -.25rem !important - } +.mb-n1, .my-n1 { + margin-bottom: -.25rem !important +} - .ml-sm-n1, .mx-sm-n1 { - margin-left: -.25rem !important - } +.ml-n1, .mx-n1 { + margin-left: -.25rem !important +} - .m-sm-n2 { - margin: -.5rem !important - } +.m-n2 { + margin: -.5rem !important +} - .mt-sm-n2, .my-sm-n2 { - margin-top: -.5rem !important - } +.mt-n2, .my-n2 { + margin-top: -.5rem !important +} - .mr-sm-n2, .mx-sm-n2 { - margin-right: -.5rem !important - } +.mr-n2, .mx-n2 { + margin-right: -.5rem !important +} - .mb-sm-n2, .my-sm-n2 { - margin-bottom: -.5rem !important - } +.mb-n2, .my-n2 { + margin-bottom: -.5rem !important +} - .ml-sm-n2, .mx-sm-n2 { - margin-left: -.5rem !important - } +.ml-n2, .mx-n2 { + margin-left: -.5rem !important +} - .m-sm-n3 { - margin: -1rem !important - } +.m-n3 { + margin: -1rem !important +} - .mt-sm-n3, .my-sm-n3 { - margin-top: -1rem !important - } +.mt-n3, .my-n3 { + margin-top: -1rem !important +} - .mr-sm-n3, .mx-sm-n3 { - margin-right: -1rem !important - } +.mr-n3, .mx-n3 { + margin-right: -1rem !important +} - .mb-sm-n3, .my-sm-n3 { - margin-bottom: -1rem !important - } +.mb-n3, .my-n3 { + margin-bottom: -1rem !important +} - .ml-sm-n3, .mx-sm-n3 { - margin-left: -1rem !important - } +.ml-n3, .mx-n3 { + margin-left: -1rem !important +} - .m-sm-n4 { - margin: -1.5rem !important - } +.m-n4 { + margin: -1.5rem !important +} - .mt-sm-n4, .my-sm-n4 { - margin-top: -1.5rem !important - } +.mt-n4, .my-n4 { + margin-top: -1.5rem !important +} - .mr-sm-n4, .mx-sm-n4 { - margin-right: -1.5rem !important - } +.mr-n4, .mx-n4 { + margin-right: -1.5rem !important +} - .mb-sm-n4, .my-sm-n4 { - margin-bottom: -1.5rem !important - } +.mb-n4, .my-n4 { + margin-bottom: -1.5rem !important +} - .ml-sm-n4, .mx-sm-n4 { - margin-left: -1.5rem !important - } +.ml-n4, .mx-n4 { + margin-left: -1.5rem !important +} - .m-sm-n5 { - margin: -3rem !important - } +.m-n5 { + margin: -3rem !important +} - .mt-sm-n5, .my-sm-n5 { - margin-top: -3rem !important - } +.mt-n5, .my-n5 { + margin-top: -3rem !important +} - .mr-sm-n5, .mx-sm-n5 { - margin-right: -3rem !important - } +.mr-n5, .mx-n5 { + margin-right: -3rem !important +} - .mb-sm-n5, .my-sm-n5 { - margin-bottom: -3rem !important - } +.mb-n5, .my-n5 { + margin-bottom: -3rem !important +} - .ml-sm-n5, .mx-sm-n5 { - margin-left: -3rem !important - } +.ml-n5, .mx-n5 { + margin-left: -3rem !important +} - .m-sm-auto { - margin: auto !important - } +.m-auto { + margin: auto !important +} - .mt-sm-auto, .my-sm-auto { - margin-top: auto !important - } +.mt-auto, .my-auto { + margin-top: auto !important +} - .mr-sm-auto, .mx-sm-auto { - margin-right: auto !important - } +.mr-auto, .mx-auto { + margin-right: auto !important +} - .mb-sm-auto, .my-sm-auto { - margin-bottom: auto !important - } +.mb-auto, .my-auto { + margin-bottom: auto !important +} - .ml-sm-auto, .mx-sm-auto { - margin-left: auto !important - } +.ml-auto, .mx-auto { + margin-left: auto !important } -@media (min-width: 768px) { - .m-md-0 { +@media (min-width: 576px) { + .m-sm-0 { margin: 0 !important } - .mt-md-0, .my-md-0 { + .mt-sm-0, .my-sm-0 { margin-top: 0 !important } - .mr-md-0, .mx-md-0 { + .mr-sm-0, .mx-sm-0 { margin-right: 0 !important } - .mb-md-0, .my-md-0 { + .mb-sm-0, .my-sm-0 { margin-bottom: 0 !important } - .ml-md-0, .mx-md-0 { + .ml-sm-0, .mx-sm-0 { margin-left: 0 !important } - .m-md-1 { + .m-sm-1 { margin: .25rem !important } - .mt-md-1, .my-md-1 { + .mt-sm-1, .my-sm-1 { margin-top: .25rem !important } - .mr-md-1, .mx-md-1 { + .mr-sm-1, .mx-sm-1 { margin-right: .25rem !important } - .mb-md-1, .my-md-1 { + .mb-sm-1, .my-sm-1 { margin-bottom: .25rem !important } - .ml-md-1, .mx-md-1 { + .ml-sm-1, .mx-sm-1 { margin-left: .25rem !important } - .m-md-2 { + .m-sm-2 { margin: .5rem !important } - .mt-md-2, .my-md-2 { + .mt-sm-2, .my-sm-2 { margin-top: .5rem !important } - .mr-md-2, .mx-md-2 { + .mr-sm-2, .mx-sm-2 { margin-right: .5rem !important } - .mb-md-2, .my-md-2 { + .mb-sm-2, .my-sm-2 { margin-bottom: .5rem !important } - .ml-md-2, .mx-md-2 { + .ml-sm-2, .mx-sm-2 { margin-left: .5rem !important } - .m-md-3 { + .m-sm-3 { margin: 1rem !important } - .mt-md-3, .my-md-3 { + .mt-sm-3, .my-sm-3 { margin-top: 1rem !important } - .mr-md-3, .mx-md-3 { + .mr-sm-3, .mx-sm-3 { margin-right: 1rem !important } - .mb-md-3, .my-md-3 { + .mb-sm-3, .my-sm-3 { margin-bottom: 1rem !important } - .ml-md-3, .mx-md-3 { + .ml-sm-3, .mx-sm-3 { margin-left: 1rem !important } - .m-md-4 { + .m-sm-4 { margin: 1.5rem !important } - .mt-md-4, .my-md-4 { + .mt-sm-4, .my-sm-4 { margin-top: 1.5rem !important } - .mr-md-4, .mx-md-4 { + .mr-sm-4, .mx-sm-4 { margin-right: 1.5rem !important } - .mb-md-4, .my-md-4 { + .mb-sm-4, .my-sm-4 { margin-bottom: 1.5rem !important } - .ml-md-4, .mx-md-4 { + .ml-sm-4, .mx-sm-4 { margin-left: 1.5rem !important } - .m-md-5 { + .m-sm-5 { margin: 3rem !important } - .mt-md-5, .my-md-5 { + .mt-sm-5, .my-sm-5 { margin-top: 3rem !important } - .mr-md-5, .mx-md-5 { + .mr-sm-5, .mx-sm-5 { margin-right: 3rem !important } - .mb-md-5, .my-md-5 { + .mb-sm-5, .my-sm-5 { margin-bottom: 3rem !important } - .ml-md-5, .mx-md-5 { + .ml-sm-5, .mx-sm-5 { margin-left: 3rem !important } - .p-md-0 { + .p-sm-0 { padding: 0 !important } - .pt-md-0, .py-md-0 { + .pt-sm-0, .py-sm-0 { padding-top: 0 !important } - .pr-md-0, .px-md-0 { + .pr-sm-0, .px-sm-0 { padding-right: 0 !important } - .pb-md-0, .py-md-0 { + .pb-sm-0, .py-sm-0 { padding-bottom: 0 !important } - .pl-md-0, .px-md-0 { + .pl-sm-0, .px-sm-0 { padding-left: 0 !important } - .p-md-1 { + .p-sm-1 { padding: .25rem !important } - .pt-md-1, .py-md-1 { + .pt-sm-1, .py-sm-1 { padding-top: .25rem !important } - .pr-md-1, .px-md-1 { + .pr-sm-1, .px-sm-1 { padding-right: .25rem !important } - .pb-md-1, .py-md-1 { + .pb-sm-1, .py-sm-1 { padding-bottom: .25rem !important } - .pl-md-1, .px-md-1 { + .pl-sm-1, .px-sm-1 { padding-left: .25rem !important } - .p-md-2 { + .p-sm-2 { padding: .5rem !important } - .pt-md-2, .py-md-2 { + .pt-sm-2, .py-sm-2 { padding-top: .5rem !important } - .pr-md-2, .px-md-2 { + .pr-sm-2, .px-sm-2 { padding-right: .5rem !important } - .pb-md-2, .py-md-2 { + .pb-sm-2, .py-sm-2 { padding-bottom: .5rem !important } - .pl-md-2, .px-md-2 { + .pl-sm-2, .px-sm-2 { padding-left: .5rem !important } - .p-md-3 { + .p-sm-3 { padding: 1rem !important } - .pt-md-3, .py-md-3 { + .pt-sm-3, .py-sm-3 { padding-top: 1rem !important } - .pr-md-3, .px-md-3 { + .pr-sm-3, .px-sm-3 { padding-right: 1rem !important } - .pb-md-3, .py-md-3 { + .pb-sm-3, .py-sm-3 { padding-bottom: 1rem !important } - .pl-md-3, .px-md-3 { + .pl-sm-3, .px-sm-3 { padding-left: 1rem !important } - .p-md-4 { + .p-sm-4 { padding: 1.5rem !important } - .pt-md-4, .py-md-4 { + .pt-sm-4, .py-sm-4 { padding-top: 1.5rem !important } - .pr-md-4, .px-md-4 { + .pr-sm-4, .px-sm-4 { padding-right: 1.5rem !important } - .pb-md-4, .py-md-4 { + .pb-sm-4, .py-sm-4 { padding-bottom: 1.5rem !important } - .pl-md-4, .px-md-4 { + .pl-sm-4, .px-sm-4 { padding-left: 1.5rem !important } - .p-md-5 { + .p-sm-5 { padding: 3rem !important } - .pt-md-5, .py-md-5 { + .pt-sm-5, .py-sm-5 { padding-top: 3rem !important } - .pr-md-5, .px-md-5 { + .pr-sm-5, .px-sm-5 { padding-right: 3rem !important } - .pb-md-5, .py-md-5 { + .pb-sm-5, .py-sm-5 { padding-bottom: 3rem !important } - .pl-md-5, .px-md-5 { + .pl-sm-5, .px-sm-5 { padding-left: 3rem !important } - .m-md-n1 { + .m-sm-n1 { margin: -.25rem !important } - .mt-md-n1, .my-md-n1 { + .mt-sm-n1, .my-sm-n1 { margin-top: -.25rem !important } - .mr-md-n1, .mx-md-n1 { + .mr-sm-n1, .mx-sm-n1 { margin-right: -.25rem !important } - .mb-md-n1, .my-md-n1 { + .mb-sm-n1, .my-sm-n1 { margin-bottom: -.25rem !important } - .ml-md-n1, .mx-md-n1 { + .ml-sm-n1, .mx-sm-n1 { margin-left: -.25rem !important } - .m-md-n2 { + .m-sm-n2 { margin: -.5rem !important } - .mt-md-n2, .my-md-n2 { + .mt-sm-n2, .my-sm-n2 { margin-top: -.5rem !important } - .mr-md-n2, .mx-md-n2 { + .mr-sm-n2, .mx-sm-n2 { margin-right: -.5rem !important } - .mb-md-n2, .my-md-n2 { + .mb-sm-n2, .my-sm-n2 { margin-bottom: -.5rem !important } - .ml-md-n2, .mx-md-n2 { + .ml-sm-n2, .mx-sm-n2 { margin-left: -.5rem !important } - .m-md-n3 { + .m-sm-n3 { margin: -1rem !important } - .mt-md-n3, .my-md-n3 { + .mt-sm-n3, .my-sm-n3 { margin-top: -1rem !important } - .mr-md-n3, .mx-md-n3 { + .mr-sm-n3, .mx-sm-n3 { margin-right: -1rem !important } - .mb-md-n3, .my-md-n3 { + .mb-sm-n3, .my-sm-n3 { margin-bottom: -1rem !important } - .ml-md-n3, .mx-md-n3 { + .ml-sm-n3, .mx-sm-n3 { margin-left: -1rem !important } - .m-md-n4 { + .m-sm-n4 { margin: -1.5rem !important } - .mt-md-n4, .my-md-n4 { + .mt-sm-n4, .my-sm-n4 { margin-top: -1.5rem !important } - .mr-md-n4, .mx-md-n4 { + .mr-sm-n4, .mx-sm-n4 { margin-right: -1.5rem !important } - .mb-md-n4, .my-md-n4 { + .mb-sm-n4, .my-sm-n4 { margin-bottom: -1.5rem !important } - .ml-md-n4, .mx-md-n4 { + .ml-sm-n4, .mx-sm-n4 { margin-left: -1.5rem !important } - .m-md-n5 { + .m-sm-n5 { margin: -3rem !important } - .mt-md-n5, .my-md-n5 { + .mt-sm-n5, .my-sm-n5 { margin-top: -3rem !important } - .mr-md-n5, .mx-md-n5 { + .mr-sm-n5, .mx-sm-n5 { margin-right: -3rem !important } - .mb-md-n5, .my-md-n5 { + .mb-sm-n5, .my-sm-n5 { margin-bottom: -3rem !important } - .ml-md-n5, .mx-md-n5 { + .ml-sm-n5, .mx-sm-n5 { margin-left: -3rem !important } - .m-md-auto { + .m-sm-auto { margin: auto !important } - .mt-md-auto, .my-md-auto { + .mt-sm-auto, .my-sm-auto { margin-top: auto !important } - .mr-md-auto, .mx-md-auto { + .mr-sm-auto, .mx-sm-auto { margin-right: auto !important } - .mb-md-auto, .my-md-auto { + .mb-sm-auto, .my-sm-auto { margin-bottom: auto !important } - .ml-md-auto, .mx-md-auto { + .ml-sm-auto, .mx-sm-auto { margin-left: auto !important } } -@media (min-width: 992px) { - .m-lg-0 { +@media (min-width: 768px) { + .m-md-0 { margin: 0 !important } - .mt-lg-0, .my-lg-0 { + .mt-md-0, .my-md-0 { margin-top: 0 !important } - .mr-lg-0, .mx-lg-0 { + .mr-md-0, .mx-md-0 { margin-right: 0 !important } - .mb-lg-0, .my-lg-0 { + .mb-md-0, .my-md-0 { margin-bottom: 0 !important } - .ml-lg-0, .mx-lg-0 { + .ml-md-0, .mx-md-0 { margin-left: 0 !important } - .m-lg-1 { + .m-md-1 { margin: .25rem !important } - .mt-lg-1, .my-lg-1 { + .mt-md-1, .my-md-1 { margin-top: .25rem !important } - .mr-lg-1, .mx-lg-1 { + .mr-md-1, .mx-md-1 { margin-right: .25rem !important } - .mb-lg-1, .my-lg-1 { + .mb-md-1, .my-md-1 { margin-bottom: .25rem !important } - .ml-lg-1, .mx-lg-1 { + .ml-md-1, .mx-md-1 { margin-left: .25rem !important } - .m-lg-2 { + .m-md-2 { margin: .5rem !important } - .mt-lg-2, .my-lg-2 { + .mt-md-2, .my-md-2 { margin-top: .5rem !important } - .mr-lg-2, .mx-lg-2 { + .mr-md-2, .mx-md-2 { margin-right: .5rem !important } - .mb-lg-2, .my-lg-2 { + .mb-md-2, .my-md-2 { margin-bottom: .5rem !important } - .ml-lg-2, .mx-lg-2 { + .ml-md-2, .mx-md-2 { margin-left: .5rem !important } - .m-lg-3 { + .m-md-3 { margin: 1rem !important } - .mt-lg-3, .my-lg-3 { + .mt-md-3, .my-md-3 { margin-top: 1rem !important } - .mr-lg-3, .mx-lg-3 { + .mr-md-3, .mx-md-3 { margin-right: 1rem !important } - .mb-lg-3, .my-lg-3 { + .mb-md-3, .my-md-3 { margin-bottom: 1rem !important } - .ml-lg-3, .mx-lg-3 { + .ml-md-3, .mx-md-3 { margin-left: 1rem !important } - .m-lg-4 { + .m-md-4 { margin: 1.5rem !important } - .mt-lg-4, .my-lg-4 { + .mt-md-4, .my-md-4 { margin-top: 1.5rem !important } - .mr-lg-4, .mx-lg-4 { + .mr-md-4, .mx-md-4 { margin-right: 1.5rem !important } - .mb-lg-4, .my-lg-4 { + .mb-md-4, .my-md-4 { margin-bottom: 1.5rem !important } - .ml-lg-4, .mx-lg-4 { + .ml-md-4, .mx-md-4 { margin-left: 1.5rem !important } - .m-lg-5 { + .m-md-5 { margin: 3rem !important } - .mt-lg-5, .my-lg-5 { + .mt-md-5, .my-md-5 { margin-top: 3rem !important } - .mr-lg-5, .mx-lg-5 { + .mr-md-5, .mx-md-5 { margin-right: 3rem !important } - .mb-lg-5, .my-lg-5 { + .mb-md-5, .my-md-5 { margin-bottom: 3rem !important } - .ml-lg-5, .mx-lg-5 { + .ml-md-5, .mx-md-5 { margin-left: 3rem !important } - .p-lg-0 { + .p-md-0 { padding: 0 !important } - .pt-lg-0, .py-lg-0 { + .pt-md-0, .py-md-0 { padding-top: 0 !important } - .pr-lg-0, .px-lg-0 { + .pr-md-0, .px-md-0 { padding-right: 0 !important } - .pb-lg-0, .py-lg-0 { + .pb-md-0, .py-md-0 { padding-bottom: 0 !important } - .pl-lg-0, .px-lg-0 { + .pl-md-0, .px-md-0 { padding-left: 0 !important } - .p-lg-1 { + .p-md-1 { padding: .25rem !important } - .pt-lg-1, .py-lg-1 { + .pt-md-1, .py-md-1 { padding-top: .25rem !important } - .pr-lg-1, .px-lg-1 { + .pr-md-1, .px-md-1 { padding-right: .25rem !important } - .pb-lg-1, .py-lg-1 { + .pb-md-1, .py-md-1 { padding-bottom: .25rem !important } - .pl-lg-1, .px-lg-1 { + .pl-md-1, .px-md-1 { padding-left: .25rem !important } - .p-lg-2 { + .p-md-2 { padding: .5rem !important } - .pt-lg-2, .py-lg-2 { + .pt-md-2, .py-md-2 { padding-top: .5rem !important } - .pr-lg-2, .px-lg-2 { + .pr-md-2, .px-md-2 { padding-right: .5rem !important } - .pb-lg-2, .py-lg-2 { + .pb-md-2, .py-md-2 { padding-bottom: .5rem !important } - .pl-lg-2, .px-lg-2 { + .pl-md-2, .px-md-2 { padding-left: .5rem !important } - .p-lg-3 { + .p-md-3 { padding: 1rem !important } - .pt-lg-3, .py-lg-3 { + .pt-md-3, .py-md-3 { padding-top: 1rem !important } - .pr-lg-3, .px-lg-3 { + .pr-md-3, .px-md-3 { padding-right: 1rem !important } - .pb-lg-3, .py-lg-3 { + .pb-md-3, .py-md-3 { padding-bottom: 1rem !important } - .pl-lg-3, .px-lg-3 { + .pl-md-3, .px-md-3 { padding-left: 1rem !important } - .p-lg-4 { + .p-md-4 { padding: 1.5rem !important } - .pt-lg-4, .py-lg-4 { + .pt-md-4, .py-md-4 { padding-top: 1.5rem !important } - .pr-lg-4, .px-lg-4 { + .pr-md-4, .px-md-4 { padding-right: 1.5rem !important } - .pb-lg-4, .py-lg-4 { + .pb-md-4, .py-md-4 { padding-bottom: 1.5rem !important } - .pl-lg-4, .px-lg-4 { + .pl-md-4, .px-md-4 { padding-left: 1.5rem !important } - .p-lg-5 { + .p-md-5 { padding: 3rem !important } - .pt-lg-5, .py-lg-5 { + .pt-md-5, .py-md-5 { padding-top: 3rem !important } - .pr-lg-5, .px-lg-5 { + .pr-md-5, .px-md-5 { padding-right: 3rem !important } - .pb-lg-5, .py-lg-5 { + .pb-md-5, .py-md-5 { padding-bottom: 3rem !important } - .pl-lg-5, .px-lg-5 { + .pl-md-5, .px-md-5 { padding-left: 3rem !important } - .m-lg-n1 { + .m-md-n1 { margin: -.25rem !important } - .mt-lg-n1, .my-lg-n1 { + .mt-md-n1, .my-md-n1 { margin-top: -.25rem !important } - .mr-lg-n1, .mx-lg-n1 { + .mr-md-n1, .mx-md-n1 { margin-right: -.25rem !important } - .mb-lg-n1, .my-lg-n1 { + .mb-md-n1, .my-md-n1 { margin-bottom: -.25rem !important } - .ml-lg-n1, .mx-lg-n1 { + .ml-md-n1, .mx-md-n1 { margin-left: -.25rem !important } - .m-lg-n2 { + .m-md-n2 { margin: -.5rem !important } - .mt-lg-n2, .my-lg-n2 { + .mt-md-n2, .my-md-n2 { margin-top: -.5rem !important } - .mr-lg-n2, .mx-lg-n2 { + .mr-md-n2, .mx-md-n2 { margin-right: -.5rem !important } - .mb-lg-n2, .my-lg-n2 { + .mb-md-n2, .my-md-n2 { margin-bottom: -.5rem !important } - .ml-lg-n2, .mx-lg-n2 { + .ml-md-n2, .mx-md-n2 { margin-left: -.5rem !important } - .m-lg-n3 { + .m-md-n3 { margin: -1rem !important } - .mt-lg-n3, .my-lg-n3 { + .mt-md-n3, .my-md-n3 { margin-top: -1rem !important } - .mr-lg-n3, .mx-lg-n3 { + .mr-md-n3, .mx-md-n3 { margin-right: -1rem !important } - .mb-lg-n3, .my-lg-n3 { + .mb-md-n3, .my-md-n3 { margin-bottom: -1rem !important } - .ml-lg-n3, .mx-lg-n3 { + .ml-md-n3, .mx-md-n3 { margin-left: -1rem !important } - .m-lg-n4 { + .m-md-n4 { margin: -1.5rem !important } - .mt-lg-n4, .my-lg-n4 { + .mt-md-n4, .my-md-n4 { margin-top: -1.5rem !important } - .mr-lg-n4, .mx-lg-n4 { + .mr-md-n4, .mx-md-n4 { margin-right: -1.5rem !important } - .mb-lg-n4, .my-lg-n4 { + .mb-md-n4, .my-md-n4 { margin-bottom: -1.5rem !important } - .ml-lg-n4, .mx-lg-n4 { + .ml-md-n4, .mx-md-n4 { margin-left: -1.5rem !important } - .m-lg-n5 { + .m-md-n5 { margin: -3rem !important } - .mt-lg-n5, .my-lg-n5 { + .mt-md-n5, .my-md-n5 { margin-top: -3rem !important } - .mr-lg-n5, .mx-lg-n5 { + .mr-md-n5, .mx-md-n5 { margin-right: -3rem !important } - .mb-lg-n5, .my-lg-n5 { + .mb-md-n5, .my-md-n5 { margin-bottom: -3rem !important } - .ml-lg-n5, .mx-lg-n5 { + .ml-md-n5, .mx-md-n5 { margin-left: -3rem !important } - .m-lg-auto { + .m-md-auto { margin: auto !important } - .mt-lg-auto, .my-lg-auto { + .mt-md-auto, .my-md-auto { margin-top: auto !important } - .mr-lg-auto, .mx-lg-auto { + .mr-md-auto, .mx-md-auto { margin-right: auto !important } - .mb-lg-auto, .my-lg-auto { + .mb-md-auto, .my-md-auto { margin-bottom: auto !important } - .ml-lg-auto, .mx-lg-auto { + .ml-md-auto, .mx-md-auto { margin-left: auto !important } } -@media (min-width: 1200px) { - .m-xl-0 { +@media (min-width: 992px) { + .m-lg-0 { margin: 0 !important } - .mt-xl-0, .my-xl-0 { + .mt-lg-0, .my-lg-0 { margin-top: 0 !important } - .mr-xl-0, .mx-xl-0 { + .mr-lg-0, .mx-lg-0 { margin-right: 0 !important } - .mb-xl-0, .my-xl-0 { + .mb-lg-0, .my-lg-0 { margin-bottom: 0 !important } - .ml-xl-0, .mx-xl-0 { + .ml-lg-0, .mx-lg-0 { margin-left: 0 !important } - .m-xl-1 { + .m-lg-1 { margin: .25rem !important } - .mt-xl-1, .my-xl-1 { + .mt-lg-1, .my-lg-1 { margin-top: .25rem !important } - .mr-xl-1, .mx-xl-1 { + .mr-lg-1, .mx-lg-1 { margin-right: .25rem !important } - .mb-xl-1, .my-xl-1 { + .mb-lg-1, .my-lg-1 { margin-bottom: .25rem !important } - .ml-xl-1, .mx-xl-1 { + .ml-lg-1, .mx-lg-1 { margin-left: .25rem !important } - .m-xl-2 { + .m-lg-2 { margin: .5rem !important } - .mt-xl-2, .my-xl-2 { + .mt-lg-2, .my-lg-2 { margin-top: .5rem !important } - .mr-xl-2, .mx-xl-2 { + .mr-lg-2, .mx-lg-2 { margin-right: .5rem !important } - .mb-xl-2, .my-xl-2 { + .mb-lg-2, .my-lg-2 { margin-bottom: .5rem !important } - .ml-xl-2, .mx-xl-2 { + .ml-lg-2, .mx-lg-2 { margin-left: .5rem !important } - .m-xl-3 { + .m-lg-3 { margin: 1rem !important } - .mt-xl-3, .my-xl-3 { + .mt-lg-3, .my-lg-3 { margin-top: 1rem !important } - .mr-xl-3, .mx-xl-3 { + .mr-lg-3, .mx-lg-3 { margin-right: 1rem !important } - .mb-xl-3, .my-xl-3 { + .mb-lg-3, .my-lg-3 { margin-bottom: 1rem !important } - .ml-xl-3, .mx-xl-3 { + .ml-lg-3, .mx-lg-3 { margin-left: 1rem !important } - .m-xl-4 { + .m-lg-4 { margin: 1.5rem !important } - .mt-xl-4, .my-xl-4 { + .mt-lg-4, .my-lg-4 { margin-top: 1.5rem !important } - .mr-xl-4, .mx-xl-4 { + .mr-lg-4, .mx-lg-4 { margin-right: 1.5rem !important } - .mb-xl-4, .my-xl-4 { + .mb-lg-4, .my-lg-4 { margin-bottom: 1.5rem !important } - .ml-xl-4, .mx-xl-4 { + .ml-lg-4, .mx-lg-4 { margin-left: 1.5rem !important } - .m-xl-5 { + .m-lg-5 { margin: 3rem !important } - .mt-xl-5, .my-xl-5 { + .mt-lg-5, .my-lg-5 { margin-top: 3rem !important } - .mr-xl-5, .mx-xl-5 { + .mr-lg-5, .mx-lg-5 { margin-right: 3rem !important } - .mb-xl-5, .my-xl-5 { + .mb-lg-5, .my-lg-5 { margin-bottom: 3rem !important } - .ml-xl-5, .mx-xl-5 { + .ml-lg-5, .mx-lg-5 { margin-left: 3rem !important } - .p-xl-0 { + .p-lg-0 { padding: 0 !important } - .pt-xl-0, .py-xl-0 { + .pt-lg-0, .py-lg-0 { padding-top: 0 !important } - .pr-xl-0, .px-xl-0 { + .pr-lg-0, .px-lg-0 { padding-right: 0 !important } - .pb-xl-0, .py-xl-0 { + .pb-lg-0, .py-lg-0 { padding-bottom: 0 !important } - .pl-xl-0, .px-xl-0 { + .pl-lg-0, .px-lg-0 { padding-left: 0 !important } - .p-xl-1 { + .p-lg-1 { padding: .25rem !important } - .pt-xl-1, .py-xl-1 { + .pt-lg-1, .py-lg-1 { padding-top: .25rem !important } - .pr-xl-1, .px-xl-1 { + .pr-lg-1, .px-lg-1 { padding-right: .25rem !important } - .pb-xl-1, .py-xl-1 { + .pb-lg-1, .py-lg-1 { padding-bottom: .25rem !important } - .pl-xl-1, .px-xl-1 { + .pl-lg-1, .px-lg-1 { padding-left: .25rem !important } - .p-xl-2 { + .p-lg-2 { padding: .5rem !important } - .pt-xl-2, .py-xl-2 { + .pt-lg-2, .py-lg-2 { padding-top: .5rem !important } - .pr-xl-2, .px-xl-2 { + .pr-lg-2, .px-lg-2 { padding-right: .5rem !important } - .pb-xl-2, .py-xl-2 { + .pb-lg-2, .py-lg-2 { padding-bottom: .5rem !important } - .pl-xl-2, .px-xl-2 { + .pl-lg-2, .px-lg-2 { padding-left: .5rem !important } - .p-xl-3 { + .p-lg-3 { padding: 1rem !important } - .pt-xl-3, .py-xl-3 { + .pt-lg-3, .py-lg-3 { padding-top: 1rem !important } - .pr-xl-3, .px-xl-3 { + .pr-lg-3, .px-lg-3 { padding-right: 1rem !important } - .pb-xl-3, .py-xl-3 { + .pb-lg-3, .py-lg-3 { padding-bottom: 1rem !important } - .pl-xl-3, .px-xl-3 { + .pl-lg-3, .px-lg-3 { padding-left: 1rem !important } - .p-xl-4 { + .p-lg-4 { padding: 1.5rem !important } - .pt-xl-4, .py-xl-4 { + .pt-lg-4, .py-lg-4 { padding-top: 1.5rem !important } - .pr-xl-4, .px-xl-4 { + .pr-lg-4, .px-lg-4 { padding-right: 1.5rem !important } - .pb-xl-4, .py-xl-4 { + .pb-lg-4, .py-lg-4 { padding-bottom: 1.5rem !important } - .pl-xl-4, .px-xl-4 { + .pl-lg-4, .px-lg-4 { padding-left: 1.5rem !important } - .p-xl-5 { + .p-lg-5 { padding: 3rem !important } - .pt-xl-5, .py-xl-5 { + .pt-lg-5, .py-lg-5 { padding-top: 3rem !important } - .pr-xl-5, .px-xl-5 { + .pr-lg-5, .px-lg-5 { padding-right: 3rem !important } - .pb-xl-5, .py-xl-5 { + .pb-lg-5, .py-lg-5 { padding-bottom: 3rem !important } - .pl-xl-5, .px-xl-5 { + .pl-lg-5, .px-lg-5 { padding-left: 3rem !important } - .m-xl-n1 { + .m-lg-n1 { margin: -.25rem !important } - .mt-xl-n1, .my-xl-n1 { + .mt-lg-n1, .my-lg-n1 { margin-top: -.25rem !important } - .mr-xl-n1, .mx-xl-n1 { + .mr-lg-n1, .mx-lg-n1 { margin-right: -.25rem !important } - .mb-xl-n1, .my-xl-n1 { + .mb-lg-n1, .my-lg-n1 { margin-bottom: -.25rem !important } - .ml-xl-n1, .mx-xl-n1 { + .ml-lg-n1, .mx-lg-n1 { margin-left: -.25rem !important } - .m-xl-n2 { + .m-lg-n2 { margin: -.5rem !important } - .mt-xl-n2, .my-xl-n2 { + .mt-lg-n2, .my-lg-n2 { margin-top: -.5rem !important } - .mr-xl-n2, .mx-xl-n2 { + .mr-lg-n2, .mx-lg-n2 { margin-right: -.5rem !important } - .mb-xl-n2, .my-xl-n2 { + .mb-lg-n2, .my-lg-n2 { margin-bottom: -.5rem !important } - .ml-xl-n2, .mx-xl-n2 { + .ml-lg-n2, .mx-lg-n2 { margin-left: -.5rem !important } - .m-xl-n3 { + .m-lg-n3 { margin: -1rem !important } - .mt-xl-n3, .my-xl-n3 { + .mt-lg-n3, .my-lg-n3 { margin-top: -1rem !important } - .mr-xl-n3, .mx-xl-n3 { + .mr-lg-n3, .mx-lg-n3 { margin-right: -1rem !important } - .mb-xl-n3, .my-xl-n3 { + .mb-lg-n3, .my-lg-n3 { margin-bottom: -1rem !important } - .ml-xl-n3, .mx-xl-n3 { + .ml-lg-n3, .mx-lg-n3 { margin-left: -1rem !important } - .m-xl-n4 { + .m-lg-n4 { margin: -1.5rem !important } - .mt-xl-n4, .my-xl-n4 { + .mt-lg-n4, .my-lg-n4 { margin-top: -1.5rem !important } - .mr-xl-n4, .mx-xl-n4 { + .mr-lg-n4, .mx-lg-n4 { margin-right: -1.5rem !important } - .mb-xl-n4, .my-xl-n4 { + .mb-lg-n4, .my-lg-n4 { margin-bottom: -1.5rem !important } - .ml-xl-n4, .mx-xl-n4 { + .ml-lg-n4, .mx-lg-n4 { margin-left: -1.5rem !important } - .m-xl-n5 { + .m-lg-n5 { margin: -3rem !important } - .mt-xl-n5, .my-xl-n5 { + .mt-lg-n5, .my-lg-n5 { margin-top: -3rem !important } - .mr-xl-n5, .mx-xl-n5 { + .mr-lg-n5, .mx-lg-n5 { margin-right: -3rem !important } - .mb-xl-n5, .my-xl-n5 { + .mb-lg-n5, .my-lg-n5 { margin-bottom: -3rem !important } - .ml-xl-n5, .mx-xl-n5 { + .ml-lg-n5, .mx-lg-n5 { margin-left: -3rem !important } - .m-xl-auto { + .m-lg-auto { margin: auto !important } - .mt-xl-auto, .my-xl-auto { + .mt-lg-auto, .my-lg-auto { margin-top: auto !important } - .mr-xl-auto, .mx-xl-auto { + .mr-lg-auto, .mx-lg-auto { margin-right: auto !important } - .mb-xl-auto, .my-xl-auto { + .mb-lg-auto, .my-lg-auto { margin-bottom: auto !important } - .ml-xl-auto, .mx-xl-auto { + .ml-lg-auto, .mx-lg-auto { margin-left: auto !important } } -.text-monospace { - font-family: SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, Courier New, monospace !important -} +@media (min-width: 1200px) { + .m-xl-0 { + margin: 0 !important + } -.text-justify { - text-align: justify !important -} + .mt-xl-0, .my-xl-0 { + margin-top: 0 !important + } -.text-wrap { - white-space: normal !important -} + .mr-xl-0, .mx-xl-0 { + margin-right: 0 !important + } -.text-nowrap { - white-space: nowrap !important -} + .mb-xl-0, .my-xl-0 { + margin-bottom: 0 !important + } -.text-truncate { - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap -} + .ml-xl-0, .mx-xl-0 { + margin-left: 0 !important + } -.text-left { - text-align: left !important -} + .m-xl-1 { + margin: .25rem !important + } -.text-right { - text-align: right !important -} + .mt-xl-1, .my-xl-1 { + margin-top: .25rem !important + } -.text-center { - text-align: center !important -} + .mr-xl-1, .mx-xl-1 { + margin-right: .25rem !important + } -@media (min-width: 576px) { - .text-sm-left { - text-align: left !important + .mb-xl-1, .my-xl-1 { + margin-bottom: .25rem !important } - .text-sm-right { - text-align: right !important + .ml-xl-1, .mx-xl-1 { + margin-left: .25rem !important } - .text-sm-center { - text-align: center !important + .m-xl-2 { + margin: .5rem !important } -} -@media (min-width: 768px) { - .text-md-left { - text-align: left !important + .mt-xl-2, .my-xl-2 { + margin-top: .5rem !important } - .text-md-right { - text-align: right !important + .mr-xl-2, .mx-xl-2 { + margin-right: .5rem !important } - .text-md-center { - text-align: center !important + .mb-xl-2, .my-xl-2 { + margin-bottom: .5rem !important } -} -@media (min-width: 992px) { - .text-lg-left { - text-align: left !important + .ml-xl-2, .mx-xl-2 { + margin-left: .5rem !important } - .text-lg-right { - text-align: right !important + .m-xl-3 { + margin: 1rem !important } - .text-lg-center { - text-align: center !important + .mt-xl-3, .my-xl-3 { + margin-top: 1rem !important } -} -@media (min-width: 1200px) { - .text-xl-left { - text-align: left !important + .mr-xl-3, .mx-xl-3 { + margin-right: 1rem !important } - .text-xl-right { - text-align: right !important + .mb-xl-3, .my-xl-3 { + margin-bottom: 1rem !important } - .text-xl-center { - text-align: center !important + .ml-xl-3, .mx-xl-3 { + margin-left: 1rem !important } -} -.text-lowercase { - text-transform: lowercase !important -} + .m-xl-4 { + margin: 1.5rem !important + } -.text-uppercase { - text-transform: uppercase !important -} + .mt-xl-4, .my-xl-4 { + margin-top: 1.5rem !important + } -.text-capitalize { - text-transform: capitalize !important -} + .mr-xl-4, .mx-xl-4 { + margin-right: 1.5rem !important + } + + .mb-xl-4, .my-xl-4 { + margin-bottom: 1.5rem !important + } + + .ml-xl-4, .mx-xl-4 { + margin-left: 1.5rem !important + } + + .m-xl-5 { + margin: 3rem !important + } + + .mt-xl-5, .my-xl-5 { + margin-top: 3rem !important + } + + .mr-xl-5, .mx-xl-5 { + margin-right: 3rem !important + } + + .mb-xl-5, .my-xl-5 { + margin-bottom: 3rem !important + } + + .ml-xl-5, .mx-xl-5 { + margin-left: 3rem !important + } + + .p-xl-0 { + padding: 0 !important + } + + .pt-xl-0, .py-xl-0 { + padding-top: 0 !important + } + + .pr-xl-0, .px-xl-0 { + padding-right: 0 !important + } + + .pb-xl-0, .py-xl-0 { + padding-bottom: 0 !important + } + + .pl-xl-0, .px-xl-0 { + padding-left: 0 !important + } -.font-weight-light { - font-weight: 300 !important -} + .p-xl-1 { + padding: .25rem !important + } -.font-weight-lighter { - font-weight: lighter !important -} + .pt-xl-1, .py-xl-1 { + padding-top: .25rem !important + } -.font-weight-normal { - font-weight: 400 !important -} + .pr-xl-1, .px-xl-1 { + padding-right: .25rem !important + } -.font-weight-bold { - font-weight: 700 !important -} + .pb-xl-1, .py-xl-1 { + padding-bottom: .25rem !important + } -.font-weight-bolder { - font-weight: bolder !important -} + .pl-xl-1, .px-xl-1 { + padding-left: .25rem !important + } -.font-italic { - font-style: italic !important -} + .p-xl-2 { + padding: .5rem !important + } -.text-white { - color: #fff !important -} + .pt-xl-2, .py-xl-2 { + padding-top: .5rem !important + } -.text-primary { - color: #b98766 !important -} + .pr-xl-2, .px-xl-2 { + padding-right: .5rem !important + } -a.text-primary:focus, a.text-primary:hover { - color: #000 !important -} + .pb-xl-2, .py-xl-2 { + padding-bottom: .5rem !important + } -.text-secondary { - color: #b55e4f !important -} + .pl-xl-2, .px-xl-2 { + padding-left: .5rem !important + } -a.text-secondary:focus, a.text-secondary:hover { - color: #7b7be6 !important -} + .p-xl-3 { + padding: 1rem !important + } -.text-success { - color: #82aa8b !important -} + .pt-xl-3, .py-xl-3 { + padding-top: 1rem !important + } -a.text-success:focus, a.text-success:hover { - color: #2fb990 !important -} + .pr-xl-3, .px-xl-3 { + padding-right: 1rem !important + } -.text-info { - color: #385f84 !important -} + .pb-xl-3, .py-xl-3 { + padding-bottom: 1rem !important + } -a.text-info:focus, a.text-info:hover { - color: #0070cc !important -} + .pl-xl-3, .px-xl-3 { + padding-left: 1rem !important + } -.text-warning { - color: #eaaa21 !important -} + .p-xl-4 { + padding: 1.5rem !important + } -a.text-warning:focus, a.text-warning:hover { - color: #b37900 !important -} + .pt-xl-4, .py-xl-4 { + padding-top: 1.5rem !important + } -.text-danger { - color: #a7240e !important -} + .pr-xl-4, .px-xl-4 { + padding-right: 1.5rem !important + } -a.text-danger:focus, a.text-danger:hover { - color: #b30000 !important -} + .pb-xl-4, .py-xl-4 { + padding-bottom: 1.5rem !important + } -.text-light { - color: #cfd5cd !important -} + .pl-xl-4, .px-xl-4 { + padding-left: 1.5rem !important + } -a.text-light:focus, a.text-light:hover { - color: #ed4204 !important -} + .p-xl-5 { + padding: 3rem !important + } -.text-dark { - color: #221e1e !important -} + .pt-xl-5, .py-xl-5 { + padding-top: 3rem !important + } -a.text-dark:focus, a.text-dark:hover { - color: #000 !important -} + .pr-xl-5, .px-xl-5 { + padding-right: 3rem !important + } -.text-body { - color: #212529 !important -} + .pb-xl-5, .py-xl-5 { + padding-bottom: 3rem !important + } -.text-muted { - color: #6e6e6e !important -} + .pl-xl-5, .px-xl-5 { + padding-left: 3rem !important + } -.text-black-50 { - color: rgba(0, 0, 0, .5) !important -} + .m-xl-n1 { + margin: -.25rem !important + } -.text-white-50 { - color: hsla(0, 0%, 100%, .5) !important -} + .mt-xl-n1, .my-xl-n1 { + margin-top: -.25rem !important + } -.text-hide { - font: 0/0 a; - color: transparent; - text-shadow: none; - background-color: transparent; - border: 0 -} + .mr-xl-n1, .mx-xl-n1 { + margin-right: -.25rem !important + } -.text-decoration-none { - text-decoration: none !important -} + .mb-xl-n1, .my-xl-n1 { + margin-bottom: -.25rem !important + } -.text-break { - word-break: break-word !important; - overflow-wrap: break-word !important -} + .ml-xl-n1, .mx-xl-n1 { + margin-left: -.25rem !important + } -.text-reset { - color: inherit !important -} + .m-xl-n2 { + margin: -.5rem !important + } -.visible { - visibility: visible !important -} + .mt-xl-n2, .my-xl-n2 { + margin-top: -.5rem !important + } -.invisible { - visibility: hidden !important -} + .mr-xl-n2, .mx-xl-n2 { + margin-right: -.5rem !important + } -@media print { - *, :after, :before { - text-shadow: none !important; - box-shadow: none !important; - background-color: transparent !important; + .mb-xl-n2, .my-xl-n2 { + margin-bottom: -.5rem !important } - a:not(.btn) { - text-decoration: underline + .ml-xl-n2, .mx-xl-n2 { + margin-left: -.5rem !important } - abbr[title]:after { - content: " (" attr(title) ")" + .m-xl-n3 { + margin: -1rem !important } - pre { - white-space: pre-wrap !important + .mt-xl-n3, .my-xl-n3 { + margin-top: -1rem !important } - blockquote, pre { - border: 1px solid #adb5bd; - page-break-inside: avoid + .mr-xl-n3, .mx-xl-n3 { + margin-right: -1rem !important } - thead { - display: table-header-group + .mb-xl-n3, .my-xl-n3 { + margin-bottom: -1rem !important } - img, tr { - page-break-inside: avoid + .ml-xl-n3, .mx-xl-n3 { + margin-left: -1rem !important } - h2, h3, p { - orphans: 3; - widows: 3 + .m-xl-n4 { + margin: -1.5rem !important } - h2, h3 { - page-break-after: avoid + .mt-xl-n4, .my-xl-n4 { + margin-top: -1.5rem !important } - @page { - size: a3 + .mr-xl-n4, .mx-xl-n4 { + margin-right: -1.5rem !important } - .container, body { - min-width: 992px !important + .mb-xl-n4, .my-xl-n4 { + margin-bottom: -1.5rem !important + } + + .ml-xl-n4, .mx-xl-n4 { + margin-left: -1.5rem !important } - .navbar { - display: none + .m-xl-n5 { + margin: -3rem !important } - .badge { - border: 1px solid #000 + .mt-xl-n5, .my-xl-n5 { + margin-top: -3rem !important } - .table { - border-collapse: collapse !important + .mr-xl-n5, .mx-xl-n5 { + margin-right: -3rem !important } - .table td, .table th { - background-color: #fff !important + .mb-xl-n5, .my-xl-n5 { + margin-bottom: -3rem !important } - .table-borde#a7240e td, .table-borde#a7240e th { - border: 1px solid #dee2e6 !important + .ml-xl-n5, .mx-xl-n5 { + margin-left: -3rem !important } - .table-dark { - color: inherit + .m-xl-auto { + margin: auto !important } - .table-dark tbody + tbody, .table-dark td, .table-dark th, .table-dark thead th { - border-color: #dee2e6 + .mt-xl-auto, .my-xl-auto { + margin-top: auto !important } - .table .thead-dark th { - color: inherit; - border-color: #dee2e6 + .mr-xl-auto, .mx-xl-auto { + margin-right: auto !important } -} -h1 { - font-size: 40px -} + .mb-xl-auto, .my-xl-auto { + margin-bottom: auto !important + } -@media (max-width: 756px) { - h1 { - font-size: 35px + .ml-xl-auto, .mx-xl-auto { + margin-left: auto !important } } -h2 { - font-size: 35px +.text-monospace { + font-family: SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, Courier New, monospace !important } -@media (max-width: 756px) { - h2 { - font-size: 32px - } +.text-justify { + text-align: justify !important } -h3 { - font-size: 30px +.text-wrap { + white-space: normal !important } -h4 { - font-size: 25px +.text-nowrap { + white-space: nowrap !important } -h5 { - font-size: 20px +.text-truncate { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap } -h6 { - font-size: 17px +.text-left { + text-align: left !important } -p { - font-size: 15px +.text-right { + text-align: right !important } -.font-weight-medium { - font-weight: 500 +.text-center { + text-align: center !important } -.font-weight-semibold { - font-weight: 600 -} +@media (min-width: 576px) { + .text-sm-left { + text-align: left !important + } -body { - font-family: Poppins, sans-serif; - margin: 0; - color: #000 -} + .text-sm-right { + text-align: right !important + } -body.body-top-padding { - padding-top: 167px + .text-sm-center { + text-align: center !important + } } -body a:hover { - text-decoration: none -} +@media (min-width: 768px) { + .text-md-left { + text-align: left !important + } -body.sidebar-open .fixed-top { - background-color: transparent -} + .text-md-right { + text-align: right !important + } -body.sidebar-open .fixed-top .navbar-brand-wrapper img { - display: none + .text-md-center { + text-align: center !important + } } -body.sidebar-open:before { - position: fixed; - content: ""; - top: 0; - left: 0; - right: 0; - bottom: 0; - z-index: 3; - background-color: rgba(0, 0, 0, .8) -} +@media (min-width: 992px) { + .text-lg-left { + text-align: left !important + } -.banner { - background-color: #f7f8fa; - text-align: center -} + .text-lg-right { + text-align: right !important + } -.content-wrapper { - padding: 27px 0 + .text-lg-center { + text-align: center !important + } } -.features-overview .content-header { - padding: 78px 0 48px; - text-align: center -} +@media (min-width: 1200px) { + .text-xl-left { + text-align: left !important + } -@media (max-width: 992px) { - .features-overview .content-header { - padding: 60px 0 + .text-xl-right { + text-align: right !important } -} -.features-overview .readmore-link { - font-size: 13px; - color: #97a3be; - font-weight: 500; - transition: color .5s ease-in-out + .text-xl-center { + text-align: center !important + } } -.features-overview .readmore-link:hover { - color: #a7240e +.text-lowercase { + text-transform: lowercase !important } -.features-overview .features-width { - flex-basis: 61% +.text-uppercase { + text-transform: uppercase !important } -@media (max-width: 767px) { - .features-overview .features-width { - flex-basis: 100% - } +.text-capitalize { + text-transform: capitalize !important } -.features-overview .img-icons { - transition: all .4s ease-in-out +.font-weight-light { + font-weight: 300 !important } -.features-overview .img-icons:hover { - transform: scale(1.1) +.font-weight-lighter { + font-weight: lighter !important } -@media (max-width: 992px) { - .digital-marketing-service .flex-item:first-of-type { - order: 2 - } +.font-weight-normal { + font-weight: 400 !important +} - .digital-marketing-service .flex-item:nth-of-type(2) { - order: 1 - } +.font-weight-bold { + font-weight: 700 !important +} - .digital-marketing-service .img-digital { - text-align: center - } +.font-weight-bolder { + font-weight: bolder !important } -.case-studies .color-cards .card-contents { - position: relative; - padding: 75px 0 +.font-italic { + font-style: italic !important } -.case-studies .color-cards .card-details p { - color: #6e6e6e; - font-weight: 500 +.text-white { + color: #fff !important } -.case-studies .color-cards:hover .card-details, .case-studies .color-cards:hover .card-details p { - color: rgba(0, 51, 204, .8) +.text-primary { + color: #b98766 !important } -.case-studies .color-cards:hover .card-desc-box { - opacity: 1 +a.text-primary:focus, a.text-primary:hover { + color: #000 !important } -.case-studies .color-cards .btn { - padding: 6px 14px; - font-size: 12px +.text-secondary { + color: #b55e4f !important } -.case-studies .bg-violet { - background: #b55e4f +a.text-secondary:focus, a.text-secondary:hover { + color: #7b7be6 !important } -.case-studies .case-studies-card-img { - height: 106px +.text-success { + color: #82aa8b !important } -.case-studies .card-desc-box { - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - background-color: rgba(0, 51, 204, .8); - transition: all .8s ease-in-out; - opacity: 0 +a.text-success:focus, a.text-success:hover { + color: #2fb990 !important } -.customer-feedback .customer-cards { - background: #f3f7fb; - font-size: 18px; - margin: 0 12px; - transition: all .7s ease-in-out +.text-info { + color: #385f84 !important } -.customer-feedback .customer-cards .img-customer { - border-radius: 50%; - transition: all .7s ease-in-out +a.text-info:focus, a.text-info:hover { + color: #0070cc !important } -.customer-feedback .customer-cards:hover { - background: #e4e7ea; - transform: scale(1.02) +.text-warning { + color: #eaaa21 !important } -.customer-feedback .customer-cards:hover .img-customer { - transform: scale(1.05) +a.text-warning:focus, a.text-warning:hover { + color: #b37900 !important } -.customer-feedback .customer-cards .content-divider { - width: 73px; - height: 3px +.text-danger { + color: #a7240e !important } -.contact-us .contact-us-bgimage { - background-position: 50%; - background-repeat: no-repeat; - background-size: cover; - text-align: center; - padding: 83px 0 68px +a.text-danger:focus, a.text-danger:hover { + color: #b30000 !important } -.contact-details .mdi { - font-size: 14px; - color: #6e6e6e; - border-radius: 50px; - border: 1px solid hsla(0, 0%, 59.2%, .24); - padding: 3px 6px; - margin-right: 10px; - transition: all .6s ease-in-out +.text-light { + color: #cfd5cd !important } -.contact-details .mdi:hover { - background: #a6a6a6; - color: #fff +a.text-light:focus, a.text-light:hover { + color: #ed4204 !important } -.contact-details a { - color: #6e6e6e; - transition: all .6s ease-in-out +.text-dark { + color: #221e1e !important } -.contact-details a:hover, footer a { - color: #a7240e +a.text-dark:focus, a.text-dark:hover { + color: #000 !important } -footer a:hover { - color: #000 +.text-body { + color: #212529 !important } -.customer-designation, .section-subtitle { - font-weight: 400 +.text-muted { + color: #6e6e6e !important } -.header-small .navbar { - background: #fff; - padding: 18px 0; - box-shadow: 0 0 30px 0 rgba(0, 0, 0, .2) +.text-black-50 { + color: rgba(0, 0, 0, .5) !important } -.header-small .navbar.fixed-top { - top: -50px; - margin-top: 50px; - transition: margin-top 1s ease +.text-white-50 { + color: hsla(0, 0%, 100%, .5) !important } -@media (min-width: 992px) { - .header-small .navbar .btn { - padding: 5px 10px; - margin-left: 20px - } +.text-hide { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0 } -.owl-nav { - font-size: 30px; - text-align: center; - color: #6e6e6e +.text-decoration-none { + text-decoration: none !important } -.owl-theme .owl-dots .owl-dot { - outline: none +.text-break { + word-break: break-word !important; + overflow-wrap: break-word !important } -.owl-theme .owl-dots .owl-dot span { - display: inline-block; - width: .9375rem; - height: .9375rem; - box-sizing: border-box; - background-color: #a7240e; - border: 3px solid transparent; - border-radius: 50%; - transform: scale(.6); - transition: all .3s ease-in-out; - opacity: .7 +.text-reset { + color: inherit !important } -.owl-theme .owl-dots .owl-dot.active span { - background-color: transparent; - border-color: #a7240e; - transform: scale(.9) +.visible { + visibility: visible !important } -.owl-carousel .owl-item { - padding: 16px 0 +.invisible { + visibility: hidden !important } -.owl-carousel .owl-item img { - width: auto; - margin: 0 auto -} +@media print { + *, :after, :before { + text-shadow: none !important; + box-shadow: none !important; + background-color: transparent !important; + } -.owl-item:nth-child(odd) .content-divider { - background-color: #000 + a:not(.btn) { + text-decoration: underline + } + + abbr[title]:after { + content: " (" attr(title) ")" + } + + pre { + white-space: pre-wrap !important + } + + blockquote, pre { + border: 1px solid #adb5bd; + page-break-inside: avoid + } + + thead { + display: table-header-group + } + + img, tr { + page-break-inside: avoid + } + + h2, h3, p { + orphans: 3; + widows: 3 + } + + h2, h3 { + page-break-after: avoid + } + + @page { + size: a3 + } + + .container, body { + min-width: 992px !important + } + + .navbar { + display: none + } + + .badge { + border: 1px solid #000 + } + + .table { + border-collapse: collapse !important + } + + .table td, .table th { + background-color: #fff !important + } + + .table-borde#a7240e td, .table-borde#a7240e th { + border: 1px solid #dee2e6 !important + } + + .table-dark { + color: inherit + } + + .table-dark tbody + tbody, .table-dark td, .table-dark th, .table-dark thead th { + border-color: #dee2e6 + } + + .table .thead-dark th { + color: inherit; + border-color: #dee2e6 + } } -.owl-item:nth-child(2n) .content-divider { - background-color: #a7240e +h1 { + font-size: 40px } -@media (max-width: 575px) { - .container { - padding: 0 30px +@media (max-width: 756px) { + h1 { + font-size: 35px } } -.navbar { - background-color: #f7f8fa; - padding: .75rem .75rem .75rem .75rem; +h2 { + font-size: 35px } -.navbar .navbar-toggler { - line-height: inherit +@media (max-width: 756px) { + h2 { + font-size: 32px + } } -.navbar .navbar-toggler .mdi-menu { +h3 { font-size: 30px } -.navbar .navbar-toggler .mdi-close { +h4 { + font-size: 25px +} + +h5 { font-size: 20px } -.navbar .navbar-menu-wrapper .navbar-nav .btn-contact-us { - margin-left: 148px; - white-space: nowrap +h6 { + font-size: 17px } -@media (max-width: 992px) { - .navbar .navbar-menu-wrapper .navbar-nav .btn-contact-us { - margin-left: 0 - } +p { + font-size: 15px +} + +.font-weight-medium { + font-weight: 500 +} + +.font-weight-semibold { + font-weight: 600 +} + +body { + font-family: Poppins, sans-serif; + margin: 0; + color: #000 } -.navbar .navbar-menu-wrapper .navbar-nav .nav-link { - font-size: .9375rem; - padding: 0 17px; - font-weight: 500; - color: #111 +body.body-top-padding { + padding-top: 167px } -.navbar .navbar-menu-wrapper .navbar-nav .nav-link:hover { - color: #a7240e; - transition: all .3s ease +body a:hover { + text-decoration: none } -.navbar .navbar-menu-wrapper .navbar-nav .nav-link.active { - color: #a7240e +body.sidebar-open .fixed-top { + background-color: transparent } -.navbar .navbar-collapse-logo { +body.sidebar-open .fixed-top .navbar-brand-wrapper img { display: none } -@media (max-width: 992px) { - .navbar .navbar-menu-wrapper .navbar-nav .nav-link { - font-size: 16px - } - - .navbar .navbar-menu-wrapper.navbar-collapse { - position: fixed; - top: 0; - right: 0; - background: #fff; - z-index: 20; - height: 100vh; - padding: 50px 0; - width: 250px; - transform: translateX(100%); - transition: transform .25s ease-in-out - } - - .navbar .navbar-menu-wrapper.navbar-collapse.show { - transform: translateX(0) - } +body.sidebar-open:before { + position: fixed; + content: ""; + top: 0; + left: 0; + right: 0; + bottom: 0; + z-index: 3; + background-color: rgba(0, 0, 0, .8) +} - .navbar .navbar-menu-wrapper.navbar-collapse ul li { - padding: 10px - } +.banner { + background-color: #f7f8fa; + text-align: center +} - .navbar .navbar-collapse-logo { - display: block - } +.content-wrapper { + padding: 27px 0 } -.grid-margin { - margin-bottom: 100px +.features-overview .content-header { + padding: 78px 0 48px; + text-align: center } @media (max-width: 992px) { - .grid-margin { - margin-bottom: 75px + .features-overview .content-header { + padding: 60px 0 } } -@media (max-width: 756px) { - .grid-margin { - margin-bottom: 60px - } +.features-overview .readmore-link { + font-size: 13px; + color: #97a3be; + font-weight: 500; + transition: color .5s ease-in-out } -@media (min-width: 992px) { - .grid-margin-lg-0 { - margin-bottom: 0 - } +.features-overview .readmore-link:hover { + color: #a7240e } -.stretch-card { - display: flex; - align-items: stretch; - justify-content: stretch +.features-overview .features-width { + flex-basis: 61% } -.stretch-card .card { - width: 100%; - min-width: 100% +@media (max-width: 767px) { + .features-overview .features-width { + flex-basis: 100% + } } -.btn { - font-size: .875rem; - font-family: Poppins, sans-serif; - padding: .625rem 1.25rem; - outline: none +.features-overview .img-icons { + transition: all .4s ease-in-out } -.btn.btn-rounded { - border-radius: 50px +.features-overview .img-icons:hover { + transform: scale(1.1) } -.btn.btn-white { - background: #fff; - transition: all .5s ease-in-out -} +@media (max-width: 992px) { + .digital-marketing-service .flex-item:first-of-type { + order: 2 + } -.btn.btn-white:hover { - background: #a7240e; - color: #fff + .digital-marketing-service .flex-item:nth-of-type(2) { + order: 1 + } + + .digital-marketing-service .img-digital { + text-align: center + } } -.btn:focus { - box-shadow: none +.case-studies .color-cards .card-contents { + position: relative; + padding: 75px 0 } -.btn-primary { - transition: all .5s ease-in-out; - color: #fff +.case-studies .color-cards .card-details p { + color: #6e6e6e; + font-weight: 500 } -.btn-primary:hover { - background: transparent; - color: #b98766; - border: 1px solid #b98766 +.case-studies .color-cards:hover .card-details, .case-studies .color-cards:hover .card-details p { + color: rgba(0, 51, 204, .8) } -.btn-secondary { - transition: all .5s ease-in-out; - color: #fff +.case-studies .color-cards:hover .card-desc-box { + opacity: 1 } -.btn-secondary:hover { - background: transparent; - color: #b55e4f; - border: 1px solid #b55e4f +.case-studies .color-cards .btn { + padding: 6px 14px; + font-size: 12px } -.btn-success { - transition: all .5s ease-in-out; - color: #fff +.case-studies .bg-violet { + background: #b55e4f } -.btn-success:hover { - background: transparent; - color: #82aa8b; - border: 1px solid #82aa8b +.case-studies .case-studies-card-img { + height: 106px } -.btn-info { - transition: all .5s ease-in-out; - color: #fff +.case-studies .card-desc-box { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: rgba(0, 51, 204, .8); + transition: all .8s ease-in-out; + opacity: 0 } -.btn-info:hover { - background: transparent; - color: #385f84; - border: 1px solid #385f84 +.customer-feedback .customer-cards { + background: #f3f7fb; + font-size: 18px; + margin: 0 12px; + transition: all .7s ease-in-out } -.btn-warning { - transition: all .5s ease-in-out; - color: #fff +.customer-feedback .customer-cards .img-customer { + border-radius: 50%; + transition: all .7s ease-in-out } -.btn-warning:hover { - background: transparent; - color: #eaaa21; - border: 1px solid #eaaa21 +.customer-feedback .customer-cards:hover { + background: #e4e7ea; + transform: scale(1.02) } -.btn-danger { - transition: all .5s ease-in-out; - color: #fff +.customer-feedback .customer-cards:hover .img-customer { + transform: scale(1.05) } -.btn-danger:hover { - background: transparent; - color: #a7240e; - border: 1px solid #a7240e +.customer-feedback .customer-cards .content-divider { + width: 73px; + height: 3px } -.btn-light { - transition: all .5s ease-in-out; - color: #fff +.contact-us .contact-us-bgimage { + background-position: 50%; + background-repeat: no-repeat; + background-size: cover; + text-align: center; + padding: 83px 0 68px } -.btn-light:hover { - background-color: hsla(0, 0%, 18%, .5); - color: #cfd5cd; - border: 1px solid hsla(0, 0%, 18%, .5) +.contact-details .mdi { + font-size: 14px; + color: #6e6e6e; + border-radius: 50px; + border: 1px solid hsla(0, 0%, 59.2%, .24); + padding: 3px 6px; + margin-right: 10px; + transition: all .6s ease-in-out } -.btn-dark { - transition: all .5s ease-in-out; +.contact-details .mdi:hover { + background: #a6a6a6; color: #fff } -.btn-dark:hover { - background: transparent; - color: #221e1e; - border: 1px solid #221e1e +.contact-details a { + color: #6e6e6e; + transition: all .6s ease-in-out } -.btn-opacity-primary { - color: #b98766; - background-color: #0012a7; - border: 2px solid transparent; - transition: all .5s ease-in-out +.contact-details a:hover, footer a { + color: #a7240e } -.btn-opacity-primary:hover { - color: #b98766; - background-color: #fff; - border: 2px solid #b98766 +footer a:hover { + color: #000 } -.btn-opacity-secondary { - color: #b55e4f; - background-color: #fff; - border: 2px solid transparent; - transition: all .5s ease-in-out +.customer-designation, .section-subtitle { + font-weight: 400 } -.btn-opacity-secondary:hover { - color: #b55e4f; - background-color: #fff; - border: 2px solid #b55e4f +.header-small .navbar { + background: #fff; + padding: 18px 0; + box-shadow: 0 0 30px 0 rgba(0, 0, 0, .2) } -.btn-opacity-success { - color: #82aa8b; - background-color: #b7eddd; - border: 2px solid transparent; - transition: all .5s ease-in-out +.header-small .navbar.fixed-top { + top: -50px; + margin-top: 50px; + transition: margin-top 1s ease } -.btn-opacity-success:hover { - color: #82aa8b; - background-color: #fff; - border: 2px solid #82aa8b +@media (min-width: 992px) { + .header-small .navbar .btn { + padding: 5px 10px; + margin-left: 20px + } } -.btn-opacity-info { - color: #385f84; - background-color: #89caff; - border: 2px solid transparent; - transition: all .5s ease-in-out +.owl-nav { + font-size: 30px; + text-align: center; + color: #6e6e6e } -.btn-opacity-info:hover { - color: #385f84; - background-color: #fff; - border: 2px solid #385f84 +.owl-theme .owl-dots .owl-dot { + outline: none } -.btn-opacity-warning { - color: #eaaa21; - background-color: #ffd170; - border: 2px solid transparent; - transition: all .5s ease-in-out +.owl-theme .owl-dots .owl-dot span { + display: inline-block; + width: .9375rem; + height: .9375rem; + box-sizing: border-box; + background-color: #a7240e; + border: 3px solid transparent; + border-radius: 50%; + transform: scale(.6); + transition: all .3s ease-in-out; + opacity: .7 } -.btn-opacity-warning:hover { - color: #eaaa21; - background-color: #fff; - border: 2px solid #eaaa21 +.owl-theme .owl-dots .owl-dot.active span { + background-color: transparent; + border-color: #a7240e; + transform: scale(.9) } -.btn-opacity-danger { - color: #a7240e; - background-color: #ff7070; - border: 2px solid transparent; - transition: all .5s ease-in-out +.owl-carousel .owl-item { + padding: 16px 0 } -.btn-opacity-danger:hover { - color: #a7240e; - background-color: #fff; - border: 2px solid #a7240e +.owl-carousel .owl-item img { + width: auto; + margin: 0 auto } -.btn-opacity-light { - color: #cfd5cd; - background-color: #fec4af; - border: 2px solid transparent; - transition: all .5s ease-in-out +.owl-item:nth-child(odd) .content-divider { + background-color: #000 } -.btn-opacity-light:hover { - color: #cfd5cd; - background-color: #fff; - border: 2px solid #cfd5cd +.owl-item:nth-child(2n) .content-divider { + background-color: #a7240e } -.btn-opacity-dark { - color: #221e1e; - background-color: #5e5353; - border: 2px solid transparent; - transition: all .5s ease-in-out +@media (max-width: 575px) { + .container { + padding: 0 30px + } } -.btn-opacity-dark:hover { - color: #221e1e; - background-color: #fff; - border: 2px solid #221e1e +.navbar { + background-color: #f7f8fa; + padding: .75rem .75rem .75rem .75rem; } -.btn-outline-primary { - color: #b98766; - background-color: #fff; - border: 2px solid #b98766; - transition: all .5s ease-in-out +.navbar .navbar-toggler { + line-height: inherit } -.btn-outline-primary:hover { - color: #fff; - background-color: #b98766 +.navbar .navbar-toggler .mdi-menu { + font-size: 30px } -.btn-outline-secondary { - color: #b55e4f; - background-color: #fff; - border: 2px solid #b55e4f; - transition: all .5s ease-in-out +.navbar .navbar-toggler .mdi-close { + font-size: 20px } -.btn-outline-secondary:hover { - color: #fff; - background-color: #b55e4f +.navbar .navbar-menu-wrapper .navbar-nav .btn-contact-us { + margin-left: 148px; + white-space: nowrap } -.btn-outline-success { - color: #82aa8b; - background-color: #fff; - border: 2px solid #82aa8b; - transition: all .5s ease-in-out +@media (max-width: 992px) { + .navbar .navbar-menu-wrapper .navbar-nav .btn-contact-us { + margin-left: 0 + } } -.btn-outline-success:hover { - color: #fff; - background-color: #82aa8b +.navbar .navbar-menu-wrapper .navbar-nav .nav-link { + font-size: .9375rem; + padding: 0 17px; + font-weight: 500; + color: #111 } -.btn-outline-info { - color: #385f84; - background-color: #fff; - border: 2px solid #385f84; - transition: all .5s ease-in-out +.navbar .navbar-menu-wrapper .navbar-nav .nav-link:hover { + color: #a7240e; + transition: all .3s ease } -.btn-outline-info:hover { - color: #fff; - background-color: #385f84 +.navbar .navbar-menu-wrapper .navbar-nav .nav-link.active { + color: #a7240e } -.btn-outline-warning { - color: #eaaa21; - background-color: #fff; - border: 2px solid #eaaa21; - transition: all .5s ease-in-out +.navbar .navbar-collapse-logo { + display: none } -.btn-outline-warning:hover { - color: #fff; - background-color: #eaaa21 +@media (max-width: 992px) { + .navbar .navbar-menu-wrapper .navbar-nav .nav-link { + font-size: 16px + } + + .navbar .navbar-menu-wrapper.navbar-collapse { + position: fixed; + top: 0; + right: 0; + background: #fff; + z-index: 20; + height: 100vh; + padding: 50px 0; + width: 250px; + transform: translateX(100%); + transition: transform .25s ease-in-out + } + + .navbar .navbar-menu-wrapper.navbar-collapse.show { + transform: translateX(0) + } + + .navbar .navbar-menu-wrapper.navbar-collapse ul li { + padding: 10px + } + + .navbar .navbar-collapse-logo { + display: block + } } -.btn-outline-danger { - color: #a7240e; - background-color: #fff; - border: 2px solid #a7240e; - transition: all .5s ease-in-out +.grid-margin { + margin-bottom: 100px } -.btn-outline-danger:hover { - color: #fff; - background-color: #a7240e +@media (max-width: 992px) { + .grid-margin { + margin-bottom: 75px + } } -.btn-outline-light { - color: #cfd5cd; - background-color: #fff; - border: 2px solid #cfd5cd; - transition: all .5s ease-in-out +@media (max-width: 756px) { + .grid-margin { + margin-bottom: 60px + } } -.btn-outline-light:hover { - color: #fff; - background-color: #cfd5cd +@media (min-width: 992px) { + .grid-margin-lg-0 { + margin-bottom: 0 + } } -.btn-outline-dark { - color: #221e1e; - background-color: #fff; - border: 2px solid #221e1e; - transition: all .5s ease-in-out +.stretch-card { + display: flex; + align-items: stretch; + justify-content: stretch } -.btn-outline-dark:hover { - color: #fff; - background-color: #221e1e +.stretch-card .card { + width: 100%; + min-width: 100% } .card { @@ -10441,7 +10455,7 @@ footer a:hover { background-color: transparent !important; } -textarea, input:not([type="submit"]):not([class="multiselect__input"]):not([class="select2-search__field"]):not([class="vue-treeselect__input"]), select { +textarea, input:not([type="submit"]):not([class="multiselect__input"]):not([class="select2-search__field"]):not([class="vue-treeselect__input"]), select { background-color: white !important; border-radius: .25rem !important; border: 1px solid #ced4da !important; @@ -10465,6 +10479,6 @@ textarea, input:not([type="submit"]):not([class="multiselect__input"]):not([clas } .ghost { - opacity: 0.5 !important; - background: #b98766 !important; + opacity: 0.5 !important; + background: #b98766 !important; } \ No newline at end of file diff --git a/cookbook/templates/base.html b/cookbook/templates/base.html index 1e36e630c0..09f891741f 100644 --- a/cookbook/templates/base.html +++ b/cookbook/templates/base.html @@ -69,7 +69,7 @@ -