expand_less
// Bootstrap functions
//
// Utility mixins and functions for evaluating source code across our variables, maps, and mixins.

// Ascending
// Used to evaluate Sass maps like our grid breakpoints.
@mixin _assert-ascending($map, $map-name) {
$prev-key: null;
$prev-num: null;
@each $key, $num in $map {
@if $prev-num == null or unit($num) == "%" or unit($prev-num) == "%" {
// Do nothing
} @else if not comparable($prev-num, $num) {
@warn "Potentially invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} whose unit makes it incomparable to #{$prev-num}, the value of the previous key '#{$prev-key}' !";
} @else if $prev-num >= $num {
@warn "Invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} which isn't greater than #{$prev-num}, the value of the previous key '#{$prev-key}' !";
}
$prev-key: $key;
$prev-num: $num;
}
}

// Starts at zero
// Used to ensure the min-width of the lowest breakpoint starts at 0.
@mixin _assert-starts-at-zero($map, $map-name: "$grid-breakpoints") {
@if length($map) > 0 {
$values: map-values($map);
$first-value: nth($values, 1);
@if $first-value != 0 {
@warn "First breakpoint in #{$map-name} must start at 0, but starts at #{$first-value}.";
}
}
}

// Colors
@function to-rgb($value) {
@return red($value), green($value), blue($value);
}

// stylelint-disable scss/dollar-variable-pattern
@function rgba-css-var($identifier, $target) {
@if $identifier == "body" and $target == "bg" {
@return rgba(var(--#{$variable-prefix}#{$identifier}-bg-rgb), var(--#{$variable-prefix}#{$target}-opacity));
} @if $identifier == "body" and $target == "text" {
@return rgba(var(--#{$variable-prefix}#{$identifier}-color-rgb), var(--#{$variable-prefix}#{$target}-opacity));
} @else {
@return rgba(var(--#{$variable-prefix}#{$identifier}-rgb), var(--#{$variable-prefix}#{$target}-opacity));
}
}

@function map-loop($map, $func, $args...) {
$_map: ();

@each $key, $value in $map {
// allow to pass the $key and $value of the map as an function argument
$_args: ();
@each $arg in $args {
$_args: append($_args, if($arg == "$key", $key, if($arg == "$value", $value, $arg)));
}

$_map: map-merge($_map, ($key: call(get-function($func), $_args...)));
}

@return $_map;
}
// stylelint-enable scss/dollar-variable-pattern

@function varify($list) {
$result: null;
@each $entry in $list {
$result: append($result, var(--#{$variable-prefix}#{$entry}), space);
}
@return $result;
}

// Internal Bootstrap function to turn maps into its negative variant.
// It prefixes the keys with `n` and makes the value negative.
@function negativify-map($map) {
$result: ();
@each $key, $value in $map {
@if $key != 0 {
$result: map-merge($result, ("n" + $key: (-$value)));
}
}
@return $result;
}

// Get multiple keys from a sass map
@function map-get-multiple($map, $values) {
$result: ();
@each $key, $value in $map {
@if (index($values, $key) != null) {
$result: map-merge($result, ($key: $value));
}
}
@return $result;
}

// Merge multiple maps
@function map-merge-multiple($maps...) {
$merged-maps: ();

@each $map in $maps {
$merged-maps: map-merge($merged-maps, $map);
}
@return $merged-maps;
}

// Replace `$search` with `$replace` in `$string`
// Used on our SVG icon backgrounds for custom forms.
//
// @author Hugo Giraudel
// @param {String} $string - Initial string
// @param {String} $search - Substring to replace
// @param {String} $replace ('') - New value
// @return {String} - Updated string
@function str-replace($string, $search, $replace: "") {
$index: str-index($string, $search);

@if $index {
@return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace);
}

@return $string;
}

// See https://codepen.io/kevinweber/pen/dXWoRw
//
// Requires the use of quotes around data URIs.

@function escape-svg($string) {
@if str-index($string, "data:image/svg+xml") {
@each $char, $encoded in $escaped-characters {
// Do not escape the url brackets
@if str-index($string, "url(") == 1 {
$string: url("#{str-replace(str-slice($string, 6, -3), $char, $encoded)}");
} @else {
$string: str-replace($string, $char, $encoded);
}
}
}

@return $string;
}

// Color contrast
// See https://github.com/twbs/bootstrap/pull/30168

// A list of pre-calculated numbers of pow(divide((divide($value, 255) + .055), 1.055), 2.4). (from 0 to 255)
// stylelint-disable-next-line scss/dollar-variable-default, scss/dollar-variable-pattern
$_luminance-list: .0008 .001 .0011 .0013 .0015 .0017 .002 .0022 .0025 .0027 .003 .0033 .0037 .004 .0044 .0048 .0052 .0056 .006 .0065 .007 .0075 .008 .0086 .0091 .0097 .0103 .011 .0116 .0123 .013 .0137 .0144 .0152 .016 .0168 .0176 .0185 .0194 .0203 .0212 .0222 .0232 .0242 .0252 .0262 .0273 .0284 .0296 .0307 .0319 .0331 .0343 .0356 .0369 .0382 .0395 .0409 .0423 .0437 .0452 .0467 .0482 .0497 .0513 .0529 .0545 .0561 .0578 .0595 .0612 .063 .0648 .0666 .0685 .0704 .0723 .0742 .0762 .0782 .0802 .0823 .0844 .0865 .0887 .0908 .0931 .0953 .0976 .0999 .1022 .1046 .107 .1095 .1119 .1144 .117 .1195 .1221 .1248 .1274 .1301 .1329 .1356 .1384 .1413 .1441 .147 .15 .1529 .1559 .159 .162 .1651 .1683 .1714 .1746 .1779 .1812 .1845 .1878 .1912 .1946 .1981 .2016 .2051 .2086 .2122 .2159 .2195 .2232 .227 .2307 .2346 .2384 .2423 .2462 .2502 .2542 .2582 .2623 .2664 .2705 .2747 .2789 .2831 .2874 .2918 .2961 .3005 .305 .3095 .314 .3185 .3231 .3278 .3325 .3372 .3419 .3467 .3515 .3564 .3613 .3663 .3712 .3763 .3813 .3864 .3916 .3968 .402 .4072 .4125 .4179 .4233 .4287 .4342 .4397 .4452 .4508 .4564 .4621 .4678 .4735 .4793 .4851 .491 .4969 .5029 .5089 .5149 .521 .5271 .5333 .5395 .5457 .552 .5583 .5647 .5711 .5776 .5841 .5906 .5972 .6038 .6105 .6172 .624 .6308 .6376 .6445 .6514 .6584 .6654 .6724 .6795 .6867 .6939 .7011 .7084 .7157 .7231 .7305 .7379 .7454 .7529 .7605 .7682 .7758 .7835 .7913 .7991 .807 .8148 .8228 .8308 .8388 .8469 .855 .8632 .8714 .8796 .8879 .8963 .9047 .9131 .9216 .9301 .9387 .9473 .956 .9647 .9734 .9823 .9911 1;

@function color-contrast($background, $color-contrast-dark: $color-contrast-dark, $color-contrast-light: $color-contrast-light, $min-contrast-ratio: $min-contrast-ratio) {
$foregrounds: $color-contrast-light, $color-contrast-dark, $white, $black;
$max-ratio: 0;
$max-ratio-color: null;

@each $color in $foregrounds {
$contrast-ratio: contrast-ratio($background, $color);
@if $contrast-ratio > $min-contrast-ratio {
@return $color;
} @else if $contrast-ratio > $max-ratio {
$max-ratio: $contrast-ratio;
$max-ratio-color: $color;
}
}

@warn "Found no color leading to #{$min-contrast-ratio}:1 contrast ratio against #{$background}...";

@return $max-ratio-color;
}

@function contrast-ratio($background, $foreground: $color-contrast-light) {
$l1: luminance($background);
$l2: luminance(opaque($background, $foreground));

@return if($l1 > $l2, divide($l1 + .05, $l2 + .05), divide($l2 + .05, $l1 + .05));
}

// Return WCAG2.0 relative luminance
// See https://www.w3.org/WAI/GL/wiki/Relative_luminance
// See https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests
@function luminance($color) {
$rgb: (
"r": red($color),
"g": green($color),
"b": blue($color)
);

@each $name, $value in $rgb {
$value: if(divide($value, 255) #808080
@function opaque($background, $foreground) {
@return mix(rgba($foreground, 1), $background, opacity($foreground) * 100);
}

// scss-docs-start color-functions
// Tint a color: mix a color with white
@function tint-color($color, $weight) {
@return mix(white, $color, $weight);
}

// Shade a color: mix a color with black
@function shade-color($color, $weight) {
@return mix(black, $color, $weight);
}

// Shade the color if the weight is positive, else tint it
@function shift-color($color, $weight) {
@return if($weight > 0, shade-color($color, $weight), tint-color($color, -$weight));
}
// scss-docs-end color-functions

// Return valid calc
@function add($value1, $value2, $return-calc: true) {
@if $value1 == null {
@return $value2;
}

@if $value2 == null {
@return $value1;
}

@if type-of($value1) == number and type-of($value2) == number and comparable($value1, $value2) {
@return $value1 + $value2;
}

@return if($return-calc == true, calc(#{$value1} + #{$value2}), $value1 + unquote(" + ") + $value2);
}

@function subtract($value1, $value2, $return-calc: true) {
@if $value1 == null and $value2 == null {
@return null;
}

@if $value1 == null {
@return -$value2;
}

@if $value2 == null {
@return $value1;
}

@if type-of($value1) == number and type-of($value2) == number and comparable($value1, $value2) {
@return $value1 - $value2;
}

@if type-of($value2) != number {
$value2: unquote("(") + $value2 + unquote(")");
}

@return if($return-calc == true, calc(#{$value1} - #{$value2}), $value1 + unquote(" - ") + $value2);
}

@function divide($dividend, $divisor, $precision: 10) {
$sign: if($dividend > 0 and $divisor > 0 or $dividend 0 and $precision >= 0) {
$quotient: 0;
@while ($remainder >= $divisor) {
$remainder: $remainder - $divisor;
$quotient: $quotient + 1;
}
$result: $result * 10 + $quotient;
$factor: $factor * .1;
$remainder: $remainder * 10;
$precision: $precision - 1;
@if ($precision = $divisor * 5) {
$result: $result + 1;
}
}
$result: $result * $factor * $sign;
$dividend-unit: unit($dividend);
$divisor-unit: unit($divisor);
$unit-map: (
"px": 1px,
"rem": 1rem,
"em": 1em,
"%": 1%
);
@if ($dividend-unit != $divisor-unit and map-has-key($unit-map, $dividend-unit)) {
$result: $result * map-get($unit-map, $dividend-unit);
}
@return $result;
}


// Minty 5.1.3
// Bootswatch

$theme: "minty" !default;

//
// Color system
//

$white: #fff !default;
$gray-100: #f8f9fa !default;
$gray-200: #f7f7f9 !default;
$gray-300: #eceeef !default;
$gray-400: #ced4da !default;
$gray-500: #aaa !default;
$gray-600: #888 !default;
$gray-700: #5a5a5a !default;
$gray-800: #343a40 !default;
$gray-900: #212529 !default;
$black: #000 !default;

$blue: #007bff !default;
$indigo: #6610f2 !default;
$purple: #6f42c1 !default;
$pink: #e83e8c !default;
$red: #ff7851 !default;
$orange: #fd7e14 !default;
$yellow: #ffce67 !default;
$green: #56cc9d !default;
$teal: #20c997 !default;
$cyan: #6cc3d5 !default;

$primary: #78c2ad !default;
$secondary: #f3969a !default;
$success: $green !default;
$info: $cyan !default;
$warning: $yellow !default;
$danger: $red !default;
$light: $gray-100 !default;
$dark: $gray-800 !default;

$min-contrast-ratio: 1.45 !default;

// Body

$body-color: $gray-600 !default;

// Components

$border-radius: .4rem !default;
$border-radius-lg: .6rem !default;
$border-radius-sm: .3rem !default;

// Fonts

// stylelint-disable-next-line value-keyword-case
$headings-font-family: Montserrat, -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif !default;
$headings-color: $gray-700 !default;

// Tables

$table-border-color: rgba(0, 0, 0, .05) !default;

$table-bg-scale: 0 !default;

// Dropdowns

$dropdown-link-hover-color: $white !default;
$dropdown-link-hover-bg: $secondary !default;

// Navbar

$navbar-dark-color: rgba($white, .6) !default;
$navbar-dark-hover-color: $white !default;
$navbar-light-color: rgba($black, .3) !default;
$navbar-light-hover-color: $gray-700 !default;
$navbar-light-active-color: $gray-700 !default;
$navbar-light-disabled-color: rgba($black, .1) !default;

// Pagination

$pagination-color: $white !default;
$pagination-bg: $primary !default;
$pagination-border-color: $primary !default;
$pagination-hover-color: $white !default;
$pagination-hover-bg: $secondary !default;
$pagination-hover-border-color: $pagination-hover-bg !default;
$pagination-active-bg: $secondary !default;
$pagination-active-border-color: $pagination-active-bg !default;
$pagination-disabled-color: $white !default;
$pagination-disabled-bg: #cce8e0 !default;
$pagination-disabled-border-color: $pagination-disabled-bg !default;

// Alerts

$alert-color-scale: 0% !default;
$alert-bg-scale: 0 !default;

// Breadcrumbs

$breadcrumb-padding-y: .375rem !default;
$breadcrumb-padding-x: .75rem !default;
$breadcrumb-bg: $primary !default;
$breadcrumb-divider-color: $white !default;
$breadcrumb-active-color: $breadcrumb-divider-color !default;
$breadcrumb-border-radius: .25rem !default;

// Variables
//
// Variables should follow the `$component-state-property-size` formula for
// consistent naming. Ex: $nav-link-disabled-color and $modal-content-box-shadow-xs.

// Color system

// scss-docs-start gray-color-variables
$white: #fff !default;
$gray-100: #f8f9fa !default;
$gray-200: #e9ecef !default;
$gray-300: #dee2e6 !default;
$gray-400: #ced4da !default;
$gray-500: #adb5bd !default;
$gray-600: #6c757d !default;
$gray-700: #495057 !default;
$gray-800: #343a40 !default;
$gray-900: #212529 !default;
$black: #000 !default;
// scss-docs-end gray-color-variables

// fusv-disable
// scss-docs-start gray-colors-map
$grays: (
"100": $gray-100,
"200": $gray-200,
"300": $gray-300,
"400": $gray-400,
"500": $gray-500,
"600": $gray-600,
"700": $gray-700,
"800": $gray-800,
"900": $gray-900
) !default;
// scss-docs-end gray-colors-map
// fusv-enable

// scss-docs-start color-variables
$blue: #0d6efd !default;
$indigo: #6610f2 !default;
$purple: #6f42c1 !default;
$pink: #d63384 !default;
$red: #dc3545 !default;
$orange: #fd7e14 !default;
$yellow: #ffc107 !default;
$green: #198754 !default;
$teal: #20c997 !default;
$cyan: #0dcaf0 !default;
// scss-docs-end color-variables

// scss-docs-start colors-map
$colors: (
"blue": $blue,
"indigo": $indigo,
"purple": $purple,
"pink": $pink,
"red": $red,
"orange": $orange,
"yellow": $yellow,
"green": $green,
"teal": $teal,
"cyan": $cyan,
"white": $white,
"gray": $gray-600,
"gray-dark": $gray-800
) !default;
// scss-docs-end colors-map

// scss-docs-start theme-color-variables
$primary: $blue !default;
$secondary: $gray-600 !default;
$success: $green !default;
$info: $cyan !default;
$warning: $yellow !default;
$danger: $red !default;
$light: $gray-100 !default;
$dark: $gray-900 !default;
// scss-docs-end theme-color-variables

// scss-docs-start theme-colors-map
$theme-colors: (
"primary": $primary,
"secondary": $secondary,
"success": $success,
"info": $info,
"warning": $warning,
"danger": $danger,
"light": $light,
"dark": $dark
) !default;
// scss-docs-end theme-colors-map

// scss-docs-start theme-colors-rgb
$theme-colors-rgb: map-loop($theme-colors, to-rgb, "$value") !default;
// scss-docs-end theme-colors-rgb

// The contrast ratio to reach against white, to determine if color changes from "light" to "dark". Acceptable values for WCAG 2.0 are 3, 4.5 and 7.
// See https://www.w3.org/TR/WCAG20/#visual-audio-contrast-contrast
$min-contrast-ratio: 4.5 !default;

// Customize the light and dark text colors for use in our color contrast function.
$color-contrast-dark: $black !default;
$color-contrast-light: $white !default;

// fusv-disable
$blue-100: tint-color($blue, 80%) !default;
$blue-200: tint-color($blue, 60%) !default;
$blue-300: tint-color($blue, 40%) !default;
$blue-400: tint-color($blue, 20%) !default;
$blue-500: $blue !default;
$blue-600: shade-color($blue, 20%) !default;
$blue-700: shade-color($blue, 40%) !default;
$blue-800: shade-color($blue, 60%) !default;
$blue-900: shade-color($blue, 80%) !default;

$indigo-100: tint-color($indigo, 80%) !default;
$indigo-200: tint-color($indigo, 60%) !default;
$indigo-300: tint-color($indigo, 40%) !default;
$indigo-400: tint-color($indigo, 20%) !default;
$indigo-500: $indigo !default;
$indigo-600: shade-color($indigo, 20%) !default;
$indigo-700: shade-color($indigo, 40%) !default;
$indigo-800: shade-color($indigo, 60%) !default;
$indigo-900: shade-color($indigo, 80%) !default;

$purple-100: tint-color($purple, 80%) !default;
$purple-200: tint-color($purple, 60%) !default;
$purple-300: tint-color($purple, 40%) !default;
$purple-400: tint-color($purple, 20%) !default;
$purple-500: $purple !default;
$purple-600: shade-color($purple, 20%) !default;
$purple-700: shade-color($purple, 40%) !default;
$purple-800: shade-color($purple, 60%) !default;
$purple-900: shade-color($purple, 80%) !default;

$pink-100: tint-color($pink, 80%) !default;
$pink-200: tint-color($pink, 60%) !default;
$pink-300: tint-color($pink, 40%) !default;
$pink-400: tint-color($pink, 20%) !default;
$pink-500: $pink !default;
$pink-600: shade-color($pink, 20%) !default;
$pink-700: shade-color($pink, 40%) !default;
$pink-800: shade-color($pink, 60%) !default;
$pink-900: shade-color($pink, 80%) !default;

$red-100: tint-color($red, 80%) !default;
$red-200: tint-color($red, 60%) !default;
$red-300: tint-color($red, 40%) !default;
$red-400: tint-color($red, 20%) !default;
$red-500: $red !default;
$red-600: shade-color($red, 20%) !default;
$red-700: shade-color($red, 40%) !default;
$red-800: shade-color($red, 60%) !default;
$red-900: shade-color($red, 80%) !default;

$orange-100: tint-color($orange, 80%) !default;
$orange-200: tint-color($orange, 60%) !default;
$orange-300: tint-color($orange, 40%) !default;
$orange-400: tint-color($orange, 20%) !default;
$orange-500: $orange !default;
$orange-600: shade-color($orange, 20%) !default;
$orange-700: shade-color($orange, 40%) !default;
$orange-800: shade-color($orange, 60%) !default;
$orange-900: shade-color($orange, 80%) !default;

$yellow-100: tint-color($yellow, 80%) !default;
$yellow-200: tint-color($yellow, 60%) !default;
$yellow-300: tint-color($yellow, 40%) !default;
$yellow-400: tint-color($yellow, 20%) !default;
$yellow-500: $yellow !default;
$yellow-600: shade-color($yellow, 20%) !default;
$yellow-700: shade-color($yellow, 40%) !default;
$yellow-800: shade-color($yellow, 60%) !default;
$yellow-900: shade-color($yellow, 80%) !default;

$green-100: tint-color($green, 80%) !default;
$green-200: tint-color($green, 60%) !default;
$green-300: tint-color($green, 40%) !default;
$green-400: tint-color($green, 20%) !default;
$green-500: $green !default;
$green-600: shade-color($green, 20%) !default;
$green-700: shade-color($green, 40%) !default;
$green-800: shade-color($green, 60%) !default;
$green-900: shade-color($green, 80%) !default;

$teal-100: tint-color($teal, 80%) !default;
$teal-200: tint-color($teal, 60%) !default;
$teal-300: tint-color($teal, 40%) !default;
$teal-400: tint-color($teal, 20%) !default;
$teal-500: $teal !default;
$teal-600: shade-color($teal, 20%) !default;
$teal-700: shade-color($teal, 40%) !default;
$teal-800: shade-color($teal, 60%) !default;
$teal-900: shade-color($teal, 80%) !default;

$cyan-100: tint-color($cyan, 80%) !default;
$cyan-200: tint-color($cyan, 60%) !default;
$cyan-300: tint-color($cyan, 40%) !default;
$cyan-400: tint-color($cyan, 20%) !default;
$cyan-500: $cyan !default;
$cyan-600: shade-color($cyan, 20%) !default;
$cyan-700: shade-color($cyan, 40%) !default;
$cyan-800: shade-color($cyan, 60%) !default;
$cyan-900: shade-color($cyan, 80%) !default;

$blues: (
"blue-100": $blue-100,
"blue-200": $blue-200,
"blue-300": $blue-300,
"blue-400": $blue-400,
"blue-500": $blue-500,
"blue-600": $blue-600,
"blue-700": $blue-700,
"blue-800": $blue-800,
"blue-900": $blue-900
) !default;

$indigos: (
"indigo-100": $indigo-100,
"indigo-200": $indigo-200,
"indigo-300": $indigo-300,
"indigo-400": $indigo-400,
"indigo-500": $indigo-500,
"indigo-600": $indigo-600,
"indigo-700": $indigo-700,
"indigo-800": $indigo-800,
"indigo-900": $indigo-900
) !default;

$purples: (
"purple-100": $purple-200,
"purple-200": $purple-100,
"purple-300": $purple-300,
"purple-400": $purple-400,
"purple-500": $purple-500,
"purple-600": $purple-600,
"purple-700": $purple-700,
"purple-800": $purple-800,
"purple-900": $purple-900
) !default;

$pinks: (
"pink-100": $pink-100,
"pink-200": $pink-200,
"pink-300": $pink-300,
"pink-400": $pink-400,
"pink-500": $pink-500,
"pink-600": $pink-600,
"pink-700": $pink-700,
"pink-800": $pink-800,
"pink-900": $pink-900
) !default;

$reds: (
"red-100": $red-100,
"red-200": $red-200,
"red-300": $red-300,
"red-400": $red-400,
"red-500": $red-500,
"red-600": $red-600,
"red-700": $red-700,
"red-800": $red-800,
"red-900": $red-900
) !default;

$oranges: (
"orange-100": $orange-100,
"orange-200": $orange-200,
"orange-300": $orange-300,
"orange-400": $orange-400,
"orange-500": $orange-500,
"orange-600": $orange-600,
"orange-700": $orange-700,
"orange-800": $orange-800,
"orange-900": $orange-900
) !default;

$yellows: (
"yellow-100": $yellow-100,
"yellow-200": $yellow-200,
"yellow-300": $yellow-300,
"yellow-400": $yellow-400,
"yellow-500": $yellow-500,
"yellow-600": $yellow-600,
"yellow-700": $yellow-700,
"yellow-800": $yellow-800,
"yellow-900": $yellow-900
) !default;

$greens: (
"green-100": $green-100,
"green-200": $green-200,
"green-300": $green-300,
"green-400": $green-400,
"green-500": $green-500,
"green-600": $green-600,
"green-700": $green-700,
"green-800": $green-800,
"green-900": $green-900
) !default;

$teals: (
"teal-100": $teal-100,
"teal-200": $teal-200,
"teal-300": $teal-300,
"teal-400": $teal-400,
"teal-500": $teal-500,
"teal-600": $teal-600,
"teal-700": $teal-700,
"teal-800": $teal-800,
"teal-900": $teal-900
) !default;

$cyans: (
"cyan-100": $cyan-100,
"cyan-200": $cyan-200,
"cyan-300": $cyan-300,
"cyan-400": $cyan-400,
"cyan-500": $cyan-500,
"cyan-600": $cyan-600,
"cyan-700": $cyan-700,
"cyan-800": $cyan-800,
"cyan-900": $cyan-900
) !default;
// fusv-enable

// Characters which are escaped by the escape-svg function
$escaped-characters: (
("", "%3e"),
("#", "%23"),
("(", "%28"),
(")", "%29"),
) !default;

// Options
//
// Quickly modify global styling by enabling or disabling optional features.

$enable-caret: true !default;
$enable-rounded: true !default;
$enable-shadows: false !default;
$enable-gradients: false !default;
$enable-transitions: true !default;
$enable-reduced-motion: true !default;
$enable-smooth-scroll: true !default;
$enable-grid-classes: true !default;
$enable-cssgrid: false !default;
$enable-button-pointers: true !default;
$enable-rfs: true !default;
$enable-validation-icons: true !default;
$enable-negative-margins: false !default;
$enable-deprecation-messages: true !default;
$enable-important-utilities: true !default;

// Prefix for :root CSS variables

$variable-prefix: bs- !default;

// Gradient
//
// The gradient which is added to components if `$enable-gradients` is `true`
// This gradient is also added to elements with `.bg-gradient`
// scss-docs-start variable-gradient
$gradient: linear-gradient(180deg, rgba($white, .15), rgba($white, 0)) !default;
// scss-docs-end variable-gradient

// Spacing
//
// Control the default styling of most Bootstrap elements by modifying these
// variables. Mostly focused on spacing.
// You can add more entries to the $spacers map, should you need more variation.

// scss-docs-start spacer-variables-maps
$spacer: 1rem !default;
$spacers: (
0: 0,
1: $spacer * .25,
2: $spacer * .5,
3: $spacer,
4: $spacer * 1.5,
5: $spacer * 3,
) !default;

$negative-spacers: if($enable-negative-margins, negativify-map($spacers), null) !default;
// scss-docs-end spacer-variables-maps

// Position
//
// Define the edge positioning anchors of the position utilities.

// scss-docs-start position-map
$position-values: (
0: 0,
50: 50%,
100: 100%
) !default;
// scss-docs-end position-map

// Body
//
// Settings for the `` element.

$body-bg: $white !default;
$body-color: $gray-900 !default;
$body-text-align: null !default;

// Utilities maps
//
// Extends the default `$theme-colors` maps to help create our utilities.

// Come v6, we'll de-dupe these variables. Until then, for backward compatibility, we keep them to reassign.
// scss-docs-start utilities-colors
$utilities-colors: $theme-colors-rgb !default;
// scss-docs-end utilities-colors

// scss-docs-start utilities-text-colors
$utilities-text: map-merge(
$utilities-colors,
(
"black": to-rgb($black),
"white": to-rgb($white),
"body": to-rgb($body-color)
)
) !default;
$utilities-text-colors: map-loop($utilities-text, rgba-css-var, "$key", "text") !default;
// scss-docs-end utilities-text-colors

// scss-docs-start utilities-bg-colors
$utilities-bg: map-merge(
$utilities-colors,
(
"black": to-rgb($black),
"white": to-rgb($white),
"body": to-rgb($body-bg)
)
) !default;
$utilities-bg-colors: map-loop($utilities-bg, rgba-css-var, "$key", "bg") !default;
// scss-docs-end utilities-bg-colors

// Links
//
// Style anchor elements.

$link-color: $primary !default;
$link-decoration: underline !default;
$link-shade-percentage: 20% !default;
$link-hover-color: shift-color($link-color, $link-shade-percentage) !default;
$link-hover-decoration: null !default;

$stretched-link-pseudo-element: after !default;
$stretched-link-z-index: 1 !default;

// Paragraphs
//
// Style p element.

$paragraph-margin-bottom: 1rem !default;


// Grid breakpoints
//
// Define the minimum dimensions at which your layout will change,
// adapting to different screen sizes, for use in media queries.

// scss-docs-start grid-breakpoints
$grid-breakpoints: (
xs: 0,
sm: 576px,
md: 768px,
lg: 992px,
xl: 1200px,
xxl: 1400px
) !default;
// scss-docs-end grid-breakpoints

@include _assert-ascending($grid-breakpoints, "$grid-breakpoints");
@include _assert-starts-at-zero($grid-breakpoints, "$grid-breakpoints");


// Grid containers
//
// Define the maximum width of `.container` for different screen sizes.

// scss-docs-start container-max-widths
$container-max-widths: (
sm: 540px,
md: 720px,
lg: 960px,
xl: 1140px,
xxl: 1320px
) !default;
// scss-docs-end container-max-widths

@include _assert-ascending($container-max-widths, "$container-max-widths");


// Grid columns
//
// Set the number of columns and specify the width of the gutters.

$grid-columns: 12 !default;
$grid-gutter-width: 1.5rem !default;
$grid-row-columns: 6 !default;

$gutters: $spacers !default;

// Container padding

$container-padding-x: $grid-gutter-width * .5 !default;


// Components
//
// Define common padding and border radius sizes and more.

// scss-docs-start border-variables
$border-width: 1px !default;
$border-widths: (
1: 1px,
2: 2px,
3: 3px,
4: 4px,
5: 5px
) !default;

$border-color: $gray-300 !default;
// scss-docs-end border-variables

// scss-docs-start border-radius-variables
$border-radius: .25rem !default;
$border-radius-sm: .2rem !default;
$border-radius-lg: .3rem !default;
$border-radius-pill: 50rem !default;
// scss-docs-end border-radius-variables

// scss-docs-start box-shadow-variables
$box-shadow: 0 .5rem 1rem rgba($black, .15) !default;
$box-shadow-sm: 0 .125rem .25rem rgba($black, .075) !default;
$box-shadow-lg: 0 1rem 3rem rgba($black, .175) !default;
$box-shadow-inset: inset 0 1px 2px rgba($black, .075) !default;
// scss-docs-end box-shadow-variables

$component-active-color: $white !default;
$component-active-bg: $primary !default;

// scss-docs-start caret-variables
$caret-width: .3em !default;
$caret-vertical-align: $caret-width * .85 !default;
$caret-spacing: $caret-width * .85 !default;
// scss-docs-end caret-variables

$transition-base: all .2s ease-in-out !default;
$transition-fade: opacity .15s linear !default;
// scss-docs-start collapse-transition
$transition-collapse: height .35s ease !default;
$transition-collapse-width: width .35s ease !default;
// scss-docs-end collapse-transition

// stylelint-disable function-disallowed-list
// scss-docs-start aspect-ratios
$aspect-ratios: (
"1x1": 100%,
"4x3": calc(3 / 4 * 100%),
"16x9": calc(9 / 16 * 100%),
"21x9": calc(9 / 21 * 100%)
) !default;
// scss-docs-end aspect-ratios
// stylelint-enable function-disallowed-list

// Typography
//
// Font, line-height, and color for body text, headings, and more.

// scss-docs-start font-variables
// stylelint-disable value-keyword-case
$font-family-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji" !default;
$font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace !default;
// stylelint-enable value-keyword-case
$font-family-base: var(--#{$variable-prefix}font-sans-serif) !default;
$font-family-code: var(--#{$variable-prefix}font-monospace) !default;

// $font-size-root affects the value of `rem`, which is used for as well font sizes, paddings, and margins
// $font-size-base affects the font size of the body text
$font-size-root: null !default;
$font-size-base: 1rem !default; // Assumes the browser default, typically `16px`
$font-size-sm: $font-size-base * .875 !default;
$font-size-lg: $font-size-base * 1.25 !default;

$font-weight-lighter: lighter !default;
$font-weight-light: 300 !default;
$font-weight-normal: 400 !default;
$font-weight-bold: 700 !default;
$font-weight-bolder: bolder !default;

$font-weight-base: $font-weight-normal !default;

$line-height-base: 1.5 !default;
$line-height-sm: 1.25 !default;
$line-height-lg: 2 !default;

$h1-font-size: $font-size-base * 2.5 !default;
$h2-font-size: $font-size-base * 2 !default;
$h3-font-size: $font-size-base * 1.75 !default;
$h4-font-size: $font-size-base * 1.5 !default;
$h5-font-size: $font-size-base * 1.25 !default;
$h6-font-size: $font-size-base !default;
// scss-docs-end font-variables

// scss-docs-start font-sizes
$font-sizes: (
1: $h1-font-size,
2: $h2-font-size,
3: $h3-font-size,
4: $h4-font-size,
5: $h5-font-size,
6: $h6-font-size
) !default;
// scss-docs-end font-sizes

// scss-docs-start headings-variables
$headings-margin-bottom: $spacer * .5 !default;
$headings-font-family: null !default;
$headings-font-style: null !default;
$headings-font-weight: 500 !default;
$headings-line-height: 1.2 !default;
$headings-color: null !default;
// scss-docs-end headings-variables

// scss-docs-start display-headings
$display-font-sizes: (
1: 5rem,
2: 4.5rem,
3: 4rem,
4: 3.5rem,
5: 3rem,
6: 2.5rem
) !default;

$display-font-weight: 300 !default;
$display-line-height: $headings-line-height !default;
// scss-docs-end display-headings

// scss-docs-start type-variables
$lead-font-size: $font-size-base * 1.25 !default;
$lead-font-weight: 300 !default;

$small-font-size: .875em !default;

$sub-sup-font-size: .75em !default;

$text-muted: $gray-600 !default;

$initialism-font-size: $small-font-size !default;

$blockquote-margin-y: $spacer !default;
$blockquote-font-size: $font-size-base * 1.25 !default;
$blockquote-footer-color: $gray-600 !default;
$blockquote-footer-font-size: $small-font-size !default;

$hr-margin-y: $spacer !default;
$hr-color: inherit !default;
$hr-height: $border-width !default;
$hr-opacity: .25 !default;

$legend-margin-bottom: .5rem !default;
$legend-font-size: 1.5rem !default;
$legend-font-weight: null !default;

$mark-padding: .2em !default;

$dt-font-weight: $font-weight-bold !default;

$nested-kbd-font-weight: $font-weight-bold !default;

$list-inline-padding: .5rem !default;

$mark-bg: #fcf8e3 !default;
// scss-docs-end type-variables


// Tables
//
// Customizes the `.table` component with basic values, each used across all table variations.

// scss-docs-start table-variables
$table-cell-padding-y: .5rem !default;
$table-cell-padding-x: .5rem !default;
$table-cell-padding-y-sm: .25rem !default;
$table-cell-padding-x-sm: .25rem !default;

$table-cell-vertical-align: top !default;

$table-color: $body-color !default;
$table-bg: transparent !default;
$table-accent-bg: transparent !default;

$table-th-font-weight: null !default;

$table-striped-color: $table-color !default;
$table-striped-bg-factor: .05 !default;
$table-striped-bg: rgba($black, $table-striped-bg-factor) !default;

$table-active-color: $table-color !default;
$table-active-bg-factor: .1 !default;
$table-active-bg: rgba($black, $table-active-bg-factor) !default;

$table-hover-color: $table-color !default;
$table-hover-bg-factor: .075 !default;
$table-hover-bg: rgba($black, $table-hover-bg-factor) !default;

$table-border-factor: .1 !default;
$table-border-width: $border-width !default;
$table-border-color: $border-color !default;

$table-striped-order: odd !default;

$table-group-separator-color: currentColor !default;

$table-caption-color: $text-muted !default;

$table-bg-scale: -80% !default;
// scss-docs-end table-variables

// scss-docs-start table-loop
$table-variants: (
"primary": shift-color($primary, $table-bg-scale),
"secondary": shift-color($secondary, $table-bg-scale),
"success": shift-color($success, $table-bg-scale),
"info": shift-color($info, $table-bg-scale),
"warning": shift-color($warning, $table-bg-scale),
"danger": shift-color($danger, $table-bg-scale),
"light": $light,
"dark": $dark,
) !default;
// scss-docs-end table-loop


// Buttons + Forms
//
// Shared variables that are reassigned to `$input-` and `$btn-` specific variables.

// scss-docs-start input-btn-variables
$input-btn-padding-y: .375rem !default;
$input-btn-padding-x: .75rem !default;
$input-btn-font-family: null !default;
$input-btn-font-size: $font-size-base !default;
$input-btn-line-height: $line-height-base !default;

$input-btn-focus-width: .25rem !default;
$input-btn-focus-color-opacity: .25 !default;
$input-btn-focus-color: rgba($component-active-bg, $input-btn-focus-color-opacity) !default;
$input-btn-focus-blur: 0 !default;
$input-btn-focus-box-shadow: 0 0 $input-btn-focus-blur $input-btn-focus-width $input-btn-focus-color !default;

$input-btn-padding-y-sm: .25rem !default;
$input-btn-padding-x-sm: .5rem !default;
$input-btn-font-size-sm: $font-size-sm !default;

$input-btn-padding-y-lg: .5rem !default;
$input-btn-padding-x-lg: 1rem !default;
$input-btn-font-size-lg: $font-size-lg !default;

$input-btn-border-width: $border-width !default;
// scss-docs-end input-btn-variables


// Buttons
//
// For each of Bootstrap's buttons, define text, background, and border color.

// scss-docs-start btn-variables
$btn-padding-y: $input-btn-padding-y !default;
$btn-padding-x: $input-btn-padding-x !default;
$btn-font-family: $input-btn-font-family !default;
$btn-font-size: $input-btn-font-size !default;
$btn-line-height: $input-btn-line-height !default;
$btn-white-space: null !default; // Set to `nowrap` to prevent text wrapping

$btn-padding-y-sm: $input-btn-padding-y-sm !default;
$btn-padding-x-sm: $input-btn-padding-x-sm !default;
$btn-font-size-sm: $input-btn-font-size-sm !default;

$btn-padding-y-lg: $input-btn-padding-y-lg !default;
$btn-padding-x-lg: $input-btn-padding-x-lg !default;
$btn-font-size-lg: $input-btn-font-size-lg !default;

$btn-border-width: $input-btn-border-width !default;

$btn-font-weight: $font-weight-normal !default;
$btn-box-shadow: inset 0 1px 0 rgba($white, .15), 0 1px 1px rgba($black, .075) !default;
$btn-focus-width: $input-btn-focus-width !default;
$btn-focus-box-shadow: $input-btn-focus-box-shadow !default;
$btn-disabled-opacity: .65 !default;
$btn-active-box-shadow: inset 0 3px 5px rgba($black, .125) !default;

$btn-link-color: $link-color !default;
$btn-link-hover-color: $link-hover-color !default;
$btn-link-disabled-color: $gray-600 !default;

// Allows for customizing button radius independently from global border radius
$btn-border-radius: $border-radius !default;
$btn-border-radius-sm: $border-radius-sm !default;
$btn-border-radius-lg: $border-radius-lg !default;

$btn-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;

$btn-hover-bg-shade-amount: 15% !default;
$btn-hover-bg-tint-amount: 15% !default;
$btn-hover-border-shade-amount: 20% !default;
$btn-hover-border-tint-amount: 10% !default;
$btn-active-bg-shade-amount: 20% !default;
$btn-active-bg-tint-amount: 20% !default;
$btn-active-border-shade-amount: 25% !default;
$btn-active-border-tint-amount: 10% !default;
// scss-docs-end btn-variables


// Forms

// scss-docs-start form-text-variables
$form-text-margin-top: .25rem !default;
$form-text-font-size: $small-font-size !default;
$form-text-font-style: null !default;
$form-text-font-weight: null !default;
$form-text-color: $text-muted !default;
// scss-docs-end form-text-variables

// scss-docs-start form-label-variables
$form-label-margin-bottom: .5rem !default;
$form-label-font-size: null !default;
$form-label-font-style: null !default;
$form-label-font-weight: null !default;
$form-label-color: null !default;
// scss-docs-end form-label-variables

// scss-docs-start form-input-variables
$input-padding-y: $input-btn-padding-y !default;
$input-padding-x: $input-btn-padding-x !default;
$input-font-family: $input-btn-font-family !default;
$input-font-size: $input-btn-font-size !default;
$input-font-weight: $font-weight-base !default;
$input-line-height: $input-btn-line-height !default;

$input-padding-y-sm: $input-btn-padding-y-sm !default;
$input-padding-x-sm: $input-btn-padding-x-sm !default;
$input-font-size-sm: $input-btn-font-size-sm !default;

$input-padding-y-lg: $input-btn-padding-y-lg !default;
$input-padding-x-lg: $input-btn-padding-x-lg !default;
$input-font-size-lg: $input-btn-font-size-lg !default;

$input-bg: $body-bg !default;
$input-disabled-bg: $gray-200 !default;
$input-disabled-border-color: null !default;

$input-color: $body-color !default;
$input-border-color: $gray-400 !default;
$input-border-width: $input-btn-border-width !default;
$input-box-shadow: $box-shadow-inset !default;

$input-border-radius: $border-radius !default;
$input-border-radius-sm: $border-radius-sm !default;
$input-border-radius-lg: $border-radius-lg !default;

$input-focus-bg: $input-bg !default;
$input-focus-border-color: tint-color($component-active-bg, 50%) !default;
$input-focus-color: $input-color !default;
$input-focus-width: $input-btn-focus-width !default;
$input-focus-box-shadow: $input-btn-focus-box-shadow !default;

$input-placeholder-color: $gray-600 !default;
$input-plaintext-color: $body-color !default;

$input-height-border: $input-border-width * 2 !default;

$input-height-inner: add($input-line-height * 1em, $input-padding-y * 2) !default;
$input-height-inner-half: add($input-line-height * .5em, $input-padding-y) !default;
$input-height-inner-quarter: add($input-line-height * .25em, $input-padding-y * .5) !default;

$input-height: add($input-line-height * 1em, add($input-padding-y * 2, $input-height-border, false)) !default;
$input-height-sm: add($input-line-height * 1em, add($input-padding-y-sm * 2, $input-height-border, false)) !default;
$input-height-lg: add($input-line-height * 1em, add($input-padding-y-lg * 2, $input-height-border, false)) !default;

$input-transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;

$form-color-width: 3rem !default;
// scss-docs-end form-input-variables

// scss-docs-start form-check-variables
$form-check-input-width: 1em !default;
$form-check-min-height: $font-size-base * $line-height-base !default;
$form-check-padding-start: $form-check-input-width + .5em !default;
$form-check-margin-bottom: .125rem !default;
$form-check-label-color: null !default;
$form-check-label-cursor: null !default;
$form-check-transition: null !default;

$form-check-input-active-filter: brightness(90%) !default;

$form-check-input-bg: $input-bg !default;
$form-check-input-border: 1px solid rgba($black, .25) !default;
$form-check-input-border-radius: .25em !default;
$form-check-radio-border-radius: 50% !default;
$form-check-input-focus-border: $input-focus-border-color !default;
$form-check-input-focus-box-shadow: $input-btn-focus-box-shadow !default;

$form-check-input-checked-color: $component-active-color !default;
$form-check-input-checked-bg-color: $component-active-bg !default;
$form-check-input-checked-border-color: $form-check-input-checked-bg-color !default;
$form-check-input-checked-bg-image: url("data:image/svg+xml,") !default;
$form-check-radio-checked-bg-image: url("data:image/svg+xml,") !default;

$form-check-input-indeterminate-color: $component-active-color !default;
$form-check-input-indeterminate-bg-color: $component-active-bg !default;
$form-check-input-indeterminate-border-color: $form-check-input-indeterminate-bg-color !default;
$form-check-input-indeterminate-bg-image: url("data:image/svg+xml,") !default;

$form-check-input-disabled-opacity: .5 !default;
$form-check-label-disabled-opacity: $form-check-input-disabled-opacity !default;
$form-check-btn-check-disabled-opacity: $btn-disabled-opacity !default;

$form-check-inline-margin-end: 1rem !default;
// scss-docs-end form-check-variables

// scss-docs-start form-switch-variables
$form-switch-color: rgba($black, .25) !default;
$form-switch-width: 2em !default;
$form-switch-padding-start: $form-switch-width + .5em !default;
$form-switch-bg-image: url("data:image/svg+xml,") !default;
$form-switch-border-radius: $form-switch-width !default;
$form-switch-transition: background-position .15s ease-in-out !default;

$form-switch-focus-color: $input-focus-border-color !default;
$form-switch-focus-bg-image: url("data:image/svg+xml,") !default;

$form-switch-checked-color: $component-active-color !default;
$form-switch-checked-bg-image: url("data:image/svg+xml,") !default;
$form-switch-checked-bg-position: right center !default;
// scss-docs-end form-switch-variables

// scss-docs-start input-group-variables
$input-group-addon-padding-y: $input-padding-y !default;
$input-group-addon-padding-x: $input-padding-x !default;
$input-group-addon-font-weight: $input-font-weight !default;
$input-group-addon-color: $input-color !default;
$input-group-addon-bg: $gray-200 !default;
$input-group-addon-border-color: $input-border-color !default;
// scss-docs-end input-group-variables

// scss-docs-start form-select-variables
$form-select-padding-y: $input-padding-y !default;
$form-select-padding-x: $input-padding-x !default;
$form-select-font-family: $input-font-family !default;
$form-select-font-size: $input-font-size !default;
$form-select-indicator-padding: $form-select-padding-x * 3 !default; // Extra padding for background-image
$form-select-font-weight: $input-font-weight !default;
$form-select-line-height: $input-line-height !default;
$form-select-color: $input-color !default;
$form-select-bg: $input-bg !default;
$form-select-disabled-color: null !default;
$form-select-disabled-bg: $gray-200 !default;
$form-select-disabled-border-color: $input-disabled-border-color !default;
$form-select-bg-position: right $form-select-padding-x center !default;
$form-select-bg-size: 16px 12px !default; // In pixels because image dimensions
$form-select-indicator-color: $gray-800 !default;
$form-select-indicator: url("data:image/svg+xml,") !default;

$form-select-feedback-icon-padding-end: $form-select-padding-x * 2.5 + $form-select-indicator-padding !default;
$form-select-feedback-icon-position: center right $form-select-indicator-padding !default;
$form-select-feedback-icon-size: $input-height-inner-half $input-height-inner-half !default;

$form-select-border-width: $input-border-width !default;
$form-select-border-color: $input-border-color !default;
$form-select-border-radius: $input-border-radius !default;
$form-select-box-shadow: $box-shadow-inset !default;

$form-select-focus-border-color: $input-focus-border-color !default;
$form-select-focus-width: $input-focus-width !default;
$form-select-focus-box-shadow: 0 0 0 $form-select-focus-width $input-btn-focus-color !default;

$form-select-padding-y-sm: $input-padding-y-sm !default;
$form-select-padding-x-sm: $input-padding-x-sm !default;
$form-select-font-size-sm: $input-font-size-sm !default;
$form-select-border-radius-sm: $input-border-radius-sm !default;

$form-select-padding-y-lg: $input-padding-y-lg !default;
$form-select-padding-x-lg: $input-padding-x-lg !default;
$form-select-font-size-lg: $input-font-size-lg !default;
$form-select-border-radius-lg: $input-border-radius-lg !default;

$form-select-transition: $input-transition !default;
// scss-docs-end form-select-variables

// scss-docs-start form-range-variables
$form-range-track-width: 100% !default;
$form-range-track-height: .5rem !default;
$form-range-track-cursor: pointer !default;
$form-range-track-bg: $gray-300 !default;
$form-range-track-border-radius: 1rem !default;
$form-range-track-box-shadow: $box-shadow-inset !default;

$form-range-thumb-width: 1rem !default;
$form-range-thumb-height: $form-range-thumb-width !default;
$form-range-thumb-bg: $component-active-bg !default;
$form-range-thumb-border: 0 !default;
$form-range-thumb-border-radius: 1rem !default;
$form-range-thumb-box-shadow: 0 .1rem .25rem rgba($black, .1) !default;
$form-range-thumb-focus-box-shadow: 0 0 0 1px $body-bg, $input-focus-box-shadow !default;
$form-range-thumb-focus-box-shadow-width: $input-focus-width !default; // For focus box shadow issue in Edge
$form-range-thumb-active-bg: tint-color($component-active-bg, 70%) !default;
$form-range-thumb-disabled-bg: $gray-500 !default;
$form-range-thumb-transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;
// scss-docs-end form-range-variables

// scss-docs-start form-file-variables
$form-file-button-color: $input-color !default;
$form-file-button-bg: $input-group-addon-bg !default;
$form-file-button-hover-bg: shade-color($form-file-button-bg, 5%) !default;
// scss-docs-end form-file-variables

// scss-docs-start form-floating-variables
$form-floating-height: add(3.5rem, $input-height-border) !default;
$form-floating-line-height: 1.25 !default;
$form-floating-padding-x: $input-padding-x !default;
$form-floating-padding-y: 1rem !default;
$form-floating-input-padding-t: 1.625rem !default;
$form-floating-input-padding-b: .625rem !default;
$form-floating-label-opacity: .65 !default;
$form-floating-label-transform: scale(.85) translateY(-.5rem) translateX(.15rem) !default;
$form-floating-transition: opacity .1s ease-in-out, transform .1s ease-in-out !default;
// scss-docs-end form-floating-variables

// Form validation

// scss-docs-start form-feedback-variables
$form-feedback-margin-top: $form-text-margin-top !default;
$form-feedback-font-size: $form-text-font-size !default;
$form-feedback-font-style: $form-text-font-style !default;
$form-feedback-valid-color: $success !default;
$form-feedback-invalid-color: $danger !default;

$form-feedback-icon-valid-color: $form-feedback-valid-color !default;
$form-feedback-icon-valid: url("data:image/svg+xml,") !default;
$form-feedback-icon-invalid-color: $form-feedback-invalid-color !default;
$form-feedback-icon-invalid: url("data:image/svg+xml,") !default;
// scss-docs-end form-feedback-variables

// scss-docs-start form-validation-states
$form-validation-states: (
"valid": (
"color": $form-feedback-valid-color,
"icon": $form-feedback-icon-valid
),
"invalid": (
"color": $form-feedback-invalid-color,
"icon": $form-feedback-icon-invalid
)
) !default;
// scss-docs-end form-validation-states

// Z-index master list
//
// Warning: Avoid customizing these values. They're used for a bird's eye view
// of components dependent on the z-axis and are designed to all work together.

// scss-docs-start zindex-stack
$zindex-dropdown: 1000 !default;
$zindex-sticky: 1020 !default;
$zindex-fixed: 1030 !default;
$zindex-offcanvas-backdrop: 1040 !default;
$zindex-offcanvas: 1045 !default;
$zindex-modal-backdrop: 1050 !default;
$zindex-modal: 1055 !default;
$zindex-popover: 1070 !default;
$zindex-tooltip: 1080 !default;
// scss-docs-end zindex-stack


// Navs

// scss-docs-start nav-variables
$nav-link-padding-y: .5rem !default;
$nav-link-padding-x: 1rem !default;
$nav-link-font-size: null !default;
$nav-link-font-weight: null !default;
$nav-link-color: $link-color !default;
$nav-link-hover-color: $link-hover-color !default;
$nav-link-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out !default;
$nav-link-disabled-color: $gray-600 !default;

$nav-tabs-border-color: $gray-300 !default;
$nav-tabs-border-width: $border-width !default;
$nav-tabs-border-radius: $border-radius !default;
$nav-tabs-link-hover-border-color: $gray-200 $gray-200 $nav-tabs-border-color !default;
$nav-tabs-link-active-color: $gray-700 !default;
$nav-tabs-link-active-bg: $body-bg !default;
$nav-tabs-link-active-border-color: $gray-300 $gray-300 $nav-tabs-link-active-bg !default;

$nav-pills-border-radius: $border-radius !default;
$nav-pills-link-active-color: $component-active-color !default;
$nav-pills-link-active-bg: $component-active-bg !default;
// scss-docs-end nav-variables


// Navbar

// scss-docs-start navbar-variables
$navbar-padding-y: $spacer * .5 !default;
$navbar-padding-x: null !default;

$navbar-nav-link-padding-x: .5rem !default;

$navbar-brand-font-size: $font-size-lg !default;
// Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link
$nav-link-height: $font-size-base * $line-height-base + $nav-link-padding-y * 2 !default;
$navbar-brand-height: $navbar-brand-font-size * $line-height-base !default;
$navbar-brand-padding-y: ($nav-link-height - $navbar-brand-height) * .5 !default;
$navbar-brand-margin-end: 1rem !default;

$navbar-toggler-padding-y: .25rem !default;
$navbar-toggler-padding-x: .75rem !default;
$navbar-toggler-font-size: $font-size-lg !default;
$navbar-toggler-border-radius: $btn-border-radius !default;
$navbar-toggler-focus-width: $btn-focus-width !default;
$navbar-toggler-transition: box-shadow .15s ease-in-out !default;
// scss-docs-end navbar-variables

// scss-docs-start navbar-theme-variables
$navbar-dark-color: rgba($white, .55) !default;
$navbar-dark-hover-color: rgba($white, .75) !default;
$navbar-dark-active-color: $white !default;
$navbar-dark-disabled-color: rgba($white, .25) !default;
$navbar-dark-toggler-icon-bg: url("data:image/svg+xml,") !default;
$navbar-dark-toggler-border-color: rgba($white, .1) !default;

$navbar-light-color: rgba($black, .55) !default;
$navbar-light-hover-color: rgba($black, .7) !default;
$navbar-light-active-color: rgba($black, .9) !default;
$navbar-light-disabled-color: rgba($black, .3) !default;
$navbar-light-toggler-icon-bg: url("data:image/svg+xml,") !default;
$navbar-light-toggler-border-color: rgba($black, .1) !default;

$navbar-light-brand-color: $navbar-light-active-color !default;
$navbar-light-brand-hover-color: $navbar-light-active-color !default;
$navbar-dark-brand-color: $navbar-dark-active-color !default;
$navbar-dark-brand-hover-color: $navbar-dark-active-color !default;
// scss-docs-end navbar-theme-variables


// Dropdowns
//
// Dropdown menu container and contents.

// scss-docs-start dropdown-variables
$dropdown-min-width: 10rem !default;
$dropdown-padding-x: 0 !default;
$dropdown-padding-y: .5rem !default;
$dropdown-spacer: .125rem !default;
$dropdown-font-size: $font-size-base !default;
$dropdown-color: $body-color !default;
$dropdown-bg: $white !default;
$dropdown-border-color: rgba($black, .15) !default;
$dropdown-border-radius: $border-radius !default;
$dropdown-border-width: $border-width !default;
$dropdown-inner-border-radius: subtract($dropdown-border-radius, $dropdown-border-width) !default;
$dropdown-divider-bg: $dropdown-border-color !default;
$dropdown-divider-margin-y: $spacer * .5 !default;
$dropdown-box-shadow: $box-shadow !default;

$dropdown-link-color: $gray-900 !default;
$dropdown-link-hover-color: shade-color($dropdown-link-color, 10%) !default;
$dropdown-link-hover-bg: $gray-200 !default;

$dropdown-link-active-color: $component-active-color !default;
$dropdown-link-active-bg: $component-active-bg !default;

$dropdown-link-disabled-color: $gray-500 !default;

$dropdown-item-padding-y: $spacer * .25 !default;
$dropdown-item-padding-x: $spacer !default;

$dropdown-header-color: $gray-600 !default;
$dropdown-header-padding: $dropdown-padding-y $dropdown-item-padding-x !default;
// scss-docs-end dropdown-variables

// scss-docs-start dropdown-dark-variables
$dropdown-dark-color: $gray-300 !default;
$dropdown-dark-bg: $gray-800 !default;
$dropdown-dark-border-color: $dropdown-border-color !default;
$dropdown-dark-divider-bg: $dropdown-divider-bg !default;
$dropdown-dark-box-shadow: null !default;
$dropdown-dark-link-color: $dropdown-dark-color !default;
$dropdown-dark-link-hover-color: $white !default;
$dropdown-dark-link-hover-bg: rgba($white, .15) !default;
$dropdown-dark-link-active-color: $dropdown-link-active-color !default;
$dropdown-dark-link-active-bg: $dropdown-link-active-bg !default;
$dropdown-dark-link-disabled-color: $gray-500 !default;
$dropdown-dark-header-color: $gray-500 !default;
// scss-docs-end dropdown-dark-variables


// Pagination

// scss-docs-start pagination-variables
$pagination-padding-y: .375rem !default;
$pagination-padding-x: .75rem !default;
$pagination-padding-y-sm: .25rem !default;
$pagination-padding-x-sm: .5rem !default;
$pagination-padding-y-lg: .75rem !default;
$pagination-padding-x-lg: 1.5rem !default;

$pagination-color: $link-color !default;
$pagination-bg: $white !default;
$pagination-border-width: $border-width !default;
$pagination-border-radius: $border-radius !default;
$pagination-margin-start: -$pagination-border-width !default;
$pagination-border-color: $gray-300 !default;

$pagination-focus-color: $link-hover-color !default;
$pagination-focus-bg: $gray-200 !default;
$pagination-focus-box-shadow: $input-btn-focus-box-shadow !default;
$pagination-focus-outline: 0 !default;

$pagination-hover-color: $link-hover-color !default;
$pagination-hover-bg: $gray-200 !default;
$pagination-hover-border-color: $gray-300 !default;

$pagination-active-color: $component-active-color !default;
$pagination-active-bg: $component-active-bg !default;
$pagination-active-border-color: $pagination-active-bg !default;

$pagination-disabled-color: $gray-600 !default;
$pagination-disabled-bg: $white !default;
$pagination-disabled-border-color: $gray-300 !default;

$pagination-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;

$pagination-border-radius-sm: $border-radius-sm !default;
$pagination-border-radius-lg: $border-radius-lg !default;
// scss-docs-end pagination-variables


// Placeholders

// scss-docs-start placeholders
$placeholder-opacity-max: .5 !default;
$placeholder-opacity-min: .2 !default;
// scss-docs-end placeholders

// Cards

// scss-docs-start card-variables
$card-spacer-y: $spacer !default;
$card-spacer-x: $spacer !default;
$card-title-spacer-y: $spacer * .5 !default;
$card-border-width: $border-width !default;
$card-border-color: rgba($black, .125) !default;
$card-border-radius: $border-radius !default;
$card-box-shadow: null !default;
$card-inner-border-radius: subtract($card-border-radius, $card-border-width) !default;
$card-cap-padding-y: $card-spacer-y * .5 !default;
$card-cap-padding-x: $card-spacer-x !default;
$card-cap-bg: rgba($black, .03) !default;
$card-cap-color: null !default;
$card-height: null !default;
$card-color: null !default;
$card-bg: $white !default;
$card-img-overlay-padding: $spacer !default;
$card-group-margin: $grid-gutter-width * .5 !default;
// scss-docs-end card-variables

// Accordion

// scss-docs-start accordion-variables
$accordion-padding-y: 1rem !default;
$accordion-padding-x: 1.25rem !default;
$accordion-color: $body-color !default;
$accordion-bg: $body-bg !default;
$accordion-border-width: $border-width !default;
$accordion-border-color: rgba($black, .125) !default;
$accordion-border-radius: $border-radius !default;
$accordion-inner-border-radius: subtract($accordion-border-radius, $accordion-border-width) !default;

$accordion-body-padding-y: $accordion-padding-y !default;
$accordion-body-padding-x: $accordion-padding-x !default;

$accordion-button-padding-y: $accordion-padding-y !default;
$accordion-button-padding-x: $accordion-padding-x !default;
$accordion-button-color: $accordion-color !default;
$accordion-button-bg: $accordion-bg !default;
$accordion-transition: $btn-transition, border-radius .15s ease !default;
$accordion-button-active-bg: tint-color($component-active-bg, 90%) !default;
$accordion-button-active-color: shade-color($primary, 10%) !default;

$accordion-button-focus-border-color: $input-focus-border-color !default;
$accordion-button-focus-box-shadow: $btn-focus-box-shadow !default;

$accordion-icon-width: 1.25rem !default;
$accordion-icon-color: $accordion-button-color !default;
$accordion-icon-active-color: $accordion-button-active-color !default;
$accordion-icon-transition: transform .2s ease-in-out !default;
$accordion-icon-transform: rotate(-180deg) !default;

$accordion-button-icon: url("data:image/svg+xml,") !default;
$accordion-button-active-icon: url("data:image/svg+xml,") !default;
// scss-docs-end accordion-variables

// Tooltips

// scss-docs-start tooltip-variables
$tooltip-font-size: $font-size-sm !default;
$tooltip-max-width: 200px !default;
$tooltip-color: $white !default;
$tooltip-bg: $black !default;
$tooltip-border-radius: $border-radius !default;
$tooltip-opacity: .9 !default;
$tooltip-padding-y: $spacer * .25 !default;
$tooltip-padding-x: $spacer * .5 !default;
$tooltip-margin: 0 !default;

$tooltip-arrow-width: .8rem !default;
$tooltip-arrow-height: .4rem !default;
$tooltip-arrow-color: $tooltip-bg !default;
// scss-docs-end tooltip-variables

// Form tooltips must come after regular tooltips
// scss-docs-start tooltip-feedback-variables
$form-feedback-tooltip-padding-y: $tooltip-padding-y !default;
$form-feedback-tooltip-padding-x: $tooltip-padding-x !default;
$form-feedback-tooltip-font-size: $tooltip-font-size !default;
$form-feedback-tooltip-line-height: null !default;
$form-feedback-tooltip-opacity: $tooltip-opacity !default;
$form-feedback-tooltip-border-radius: $tooltip-border-radius !default;
// scss-docs-end tooltip-feedback-variables


// Popovers

// scss-docs-start popover-variables
$popover-font-size: $font-size-sm !default;
$popover-bg: $white !default;
$popover-max-width: 276px !default;
$popover-border-width: $border-width !default;
$popover-border-color: rgba($black, .2) !default;
$popover-border-radius: $border-radius-lg !default;
$popover-inner-border-radius: subtract($popover-border-radius, $popover-border-width) !default;
$popover-box-shadow: $box-shadow !default;

$popover-header-bg: shade-color($popover-bg, 6%) !default;
$popover-header-color: $headings-color !default;
$popover-header-padding-y: .5rem !default;
$popover-header-padding-x: $spacer !default;

$popover-body-color: $body-color !default;
$popover-body-padding-y: $spacer !default;
$popover-body-padding-x: $spacer !default;

$popover-arrow-width: 1rem !default;
$popover-arrow-height: .5rem !default;
$popover-arrow-color: $popover-bg !default;

$popover-arrow-outer-color: fade-in($popover-border-color, .05) !default;
// scss-docs-end popover-variables


// Toasts

// scss-docs-start toast-variables
$toast-max-width: 350px !default;
$toast-padding-x: .75rem !default;
$toast-padding-y: .5rem !default;
$toast-font-size: .875rem !default;
$toast-color: null !default;
$toast-background-color: rgba($white, .85) !default;
$toast-border-width: 1px !default;
$toast-border-color: rgba($black, .1) !default;
$toast-border-radius: $border-radius !default;
$toast-box-shadow: $box-shadow !default;
$toast-spacing: $container-padding-x !default;

$toast-header-color: $gray-600 !default;
$toast-header-background-color: rgba($white, .85) !default;
$toast-header-border-color: rgba($black, .05) !default;
// scss-docs-end toast-variables


// Badges

// scss-docs-start badge-variables
$badge-font-size: .75em !default;
$badge-font-weight: $font-weight-bold !default;
$badge-color: $white !default;
$badge-padding-y: .35em !default;
$badge-padding-x: .65em !default;
$badge-border-radius: $border-radius !default;
// scss-docs-end badge-variables


// Modals

// scss-docs-start modal-variables
$modal-inner-padding: $spacer !default;

$modal-footer-margin-between: .5rem !default;

$modal-dialog-margin: .5rem !default;
$modal-dialog-margin-y-sm-up: 1.75rem !default;

$modal-title-line-height: $line-height-base !default;

$modal-content-color: null !default;
$modal-content-bg: $white !default;
$modal-content-border-color: rgba($black, .2) !default;
$modal-content-border-width: $border-width !default;
$modal-content-border-radius: $border-radius-lg !default;
$modal-content-inner-border-radius: subtract($modal-content-border-radius, $modal-content-border-width) !default;
$modal-content-box-shadow-xs: $box-shadow-sm !default;
$modal-content-box-shadow-sm-up: $box-shadow !default;

$modal-backdrop-bg: $black !default;
$modal-backdrop-opacity: .5 !default;
$modal-header-border-color: $border-color !default;
$modal-footer-border-color: $modal-header-border-color !default;
$modal-header-border-width: $modal-content-border-width !default;
$modal-footer-border-width: $modal-header-border-width !default;
$modal-header-padding-y: $modal-inner-padding !default;
$modal-header-padding-x: $modal-inner-padding !default;
$modal-header-padding: $modal-header-padding-y $modal-header-padding-x !default; // Keep this for backwards compatibility

$modal-sm: 300px !default;
$modal-md: 500px !default;
$modal-lg: 800px !default;
$modal-xl: 1140px !default;

$modal-fade-transform: translate(0, -50px) !default;
$modal-show-transform: none !default;
$modal-transition: transform .3s ease-out !default;
$modal-scale-transform: scale(1.02) !default;
// scss-docs-end modal-variables


// Alerts
//
// Define alert colors, border radius, and padding.

// scss-docs-start alert-variables
$alert-padding-y: $spacer !default;
$alert-padding-x: $spacer !default;
$alert-margin-bottom: 1rem !default;
$alert-border-radius: $border-radius !default;
$alert-link-font-weight: $font-weight-bold !default;
$alert-border-width: $border-width !default;
$alert-bg-scale: -80% !default;
$alert-border-scale: -70% !default;
$alert-color-scale: 40% !default;
$alert-dismissible-padding-r: $alert-padding-x * 3 !default; // 3x covers width of x plus default padding on either side
// scss-docs-end alert-variables


// Progress bars

// scss-docs-start progress-variables
$progress-height: 1rem !default;
$progress-font-size: $font-size-base * .75 !default;
$progress-bg: $gray-200 !default;
$progress-border-radius: $border-radius !default;
$progress-box-shadow: $box-shadow-inset !default;
$progress-bar-color: $white !default;
$progress-bar-bg: $primary !default;
$progress-bar-animation-timing: 1s linear infinite !default;
$progress-bar-transition: width .6s ease !default;
// scss-docs-end progress-variables


// List group

// scss-docs-start list-group-variables
$list-group-color: $gray-900 !default;
$list-group-bg: $white !default;
$list-group-border-color: rgba($black, .125) !default;
$list-group-border-width: $border-width !default;
$list-group-border-radius: $border-radius !default;

$list-group-item-padding-y: $spacer * .5 !default;
$list-group-item-padding-x: $spacer !default;
$list-group-item-bg-scale: -80% !default;
$list-group-item-color-scale: 40% !default;

$list-group-hover-bg: $gray-100 !default;
$list-group-active-color: $component-active-color !default;
$list-group-active-bg: $component-active-bg !default;
$list-group-active-border-color: $list-group-active-bg !default;

$list-group-disabled-color: $gray-600 !default;
$list-group-disabled-bg: $list-group-bg !default;

$list-group-action-color: $gray-700 !default;
$list-group-action-hover-color: $list-group-action-color !default;

$list-group-action-active-color: $body-color !default;
$list-group-action-active-bg: $gray-200 !default;
// scss-docs-end list-group-variables


// Image thumbnails

// scss-docs-start thumbnail-variables
$thumbnail-padding: .25rem !default;
$thumbnail-bg: $body-bg !default;
$thumbnail-border-width: $border-width !default;
$thumbnail-border-color: $gray-300 !default;
$thumbnail-border-radius: $border-radius !default;
$thumbnail-box-shadow: $box-shadow-sm !default;
// scss-docs-end thumbnail-variables


// Figures

// scss-docs-start figure-variables
$figure-caption-font-size: $small-font-size !default;
$figure-caption-color: $gray-600 !default;
// scss-docs-end figure-variables


// Breadcrumbs

// scss-docs-start breadcrumb-variables
$breadcrumb-font-size: null !default;
$breadcrumb-padding-y: 0 !default;
$breadcrumb-padding-x: 0 !default;
$breadcrumb-item-padding-x: .5rem !default;
$breadcrumb-margin-bottom: 1rem !default;
$breadcrumb-bg: null !default;
$breadcrumb-divider-color: $gray-600 !default;
$breadcrumb-active-color: $gray-600 !default;
$breadcrumb-divider: quote("/") !default;
$breadcrumb-divider-flipped: $breadcrumb-divider !default;
$breadcrumb-border-radius: null !default;
// scss-docs-end breadcrumb-variables

// Carousel

// scss-docs-start carousel-variables
$carousel-control-color: $white !default;
$carousel-control-width: 15% !default;
$carousel-control-opacity: .5 !default;
$carousel-control-hover-opacity: .9 !default;
$carousel-control-transition: opacity .15s ease !default;

$carousel-indicator-width: 30px !default;
$carousel-indicator-height: 3px !default;
$carousel-indicator-hit-area-height: 10px !default;
$carousel-indicator-spacer: 3px !default;
$carousel-indicator-opacity: .5 !default;
$carousel-indicator-active-bg: $white !default;
$carousel-indicator-active-opacity: 1 !default;
$carousel-indicator-transition: opacity .6s ease !default;

$carousel-caption-width: 70% !default;
$carousel-caption-color: $white !default;
$carousel-caption-padding-y: 1.25rem !default;
$carousel-caption-spacer: 1.25rem !default;

$carousel-control-icon-width: 2rem !default;

$carousel-control-prev-icon-bg: url("data:image/svg+xml,") !default;
$carousel-control-next-icon-bg: url("data:image/svg+xml,") !default;

$carousel-transition-duration: .6s !default;
$carousel-transition: transform $carousel-transition-duration ease-in-out !default; // Define transform transition first if using multiple transitions (e.g., `transform 2s ease, opacity .5s ease-out`)

$carousel-dark-indicator-active-bg: $black !default;
$carousel-dark-caption-color: $black !default;
$carousel-dark-control-icon-filter: invert(1) grayscale(100) !default;
// scss-docs-end carousel-variables


// Spinners

// scss-docs-start spinner-variables
$spinner-width: 2rem !default;
$spinner-height: $spinner-width !default;
$spinner-vertical-align: -.125em !default;
$spinner-border-width: .25em !default;
$spinner-animation-speed: .75s !default;

$spinner-width-sm: 1rem !default;
$spinner-height-sm: $spinner-width-sm !default;
$spinner-border-width-sm: .2em !default;
// scss-docs-end spinner-variables


// Close

// scss-docs-start close-variables
$btn-close-width: 1em !default;
$btn-close-height: $btn-close-width !default;
$btn-close-padding-x: .25em !default;
$btn-close-padding-y: $btn-close-padding-x !default;
$btn-close-color: $black !default;
$btn-close-bg: url("data:image/svg+xml,") !default;
$btn-close-focus-shadow: $input-btn-focus-box-shadow !default;
$btn-close-opacity: .5 !default;
$btn-close-hover-opacity: .75 !default;
$btn-close-focus-opacity: 1 !default;
$btn-close-disabled-opacity: .25 !default;
$btn-close-white-filter: invert(1) grayscale(100%) brightness(200%) !default;
// scss-docs-end close-variables


// Offcanvas

// scss-docs-start offcanvas-variables
$offcanvas-padding-y: $modal-inner-padding !default;
$offcanvas-padding-x: $modal-inner-padding !default;
$offcanvas-horizontal-width: 400px !default;
$offcanvas-vertical-height: 30vh !default;
$offcanvas-transition-duration: .3s !default;
$offcanvas-border-color: $modal-content-border-color !default;
$offcanvas-border-width: $modal-content-border-width !default;
$offcanvas-title-line-height: $modal-title-line-height !default;
$offcanvas-bg-color: $modal-content-bg !default;
$offcanvas-color: $modal-content-color !default;
$offcanvas-box-shadow: $modal-content-box-shadow-xs !default;
$offcanvas-backdrop-bg: $modal-backdrop-bg !default;
$offcanvas-backdrop-opacity: $modal-backdrop-opacity !default;
// scss-docs-end offcanvas-variables

// Code

$code-font-size: $small-font-size !default;
$code-color: $pink !default;

$kbd-padding-y: .2rem !default;
$kbd-padding-x: .4rem !default;
$kbd-font-size: $code-font-size !default;
$kbd-color: $white !default;
$kbd-bg: $gray-900 !default;

$pre-color: null !default;

// stylelint-disable property-blacklist, scss/dollar-variable-default

// SCSS RFS mixin
//
// Automated responsive values for font sizes, paddings, margins and much more
//
// Licensed under MIT (https://github.com/twbs/rfs/blob/main/LICENSE)

// Configuration

// Base value
$rfs-base-value: 1.25rem !default;
$rfs-unit: rem !default;

@if $rfs-unit != rem and $rfs-unit != px {
@error "`#{$rfs-unit}` is not a valid unit for $rfs-unit. Use `px` or `rem`.";
}

// Breakpoint at where values start decreasing if screen width is smaller
$rfs-breakpoint: 1200px !default;
$rfs-breakpoint-unit: px !default;

@if $rfs-breakpoint-unit != px and $rfs-breakpoint-unit != em and $rfs-breakpoint-unit != rem {
@error "`#{$rfs-breakpoint-unit}` is not a valid unit for $rfs-breakpoint-unit. Use `px`, `em` or `rem`.";
}

// Resize values based on screen height and width
$rfs-two-dimensional: false !default;

// Factor of decrease
$rfs-factor: 10 !default;

@if type-of($rfs-factor) != number or $rfs-factor 0 and $divisor > 0 or $dividend 0 and $precision >= 0) {
$quotient: 0;
@while ($remainder >= $divisor) {
$remainder: $remainder - $divisor;
$quotient: $quotient + 1;
}
$result: $result * 10 + $quotient;
$factor: $factor * .1;
$remainder: $remainder * 10;
$precision: $precision - 1;
@if ($precision = $divisor * 5) {
$result: $result + 1;
}
}
$result: $result * $factor * $sign;
$dividend-unit: unit($dividend);
$divisor-unit: unit($divisor);
$unit-map: (
"px": 1px,
"rem": 1rem,
"em": 1em,
"%": 1%
);
@if ($dividend-unit != $divisor-unit and map-has-key($unit-map, $dividend-unit)) {
$result: $result * map-get($unit-map, $dividend-unit);
}
@return $result;
}

// Remove px-unit from $rfs-base-value for calculations
@if $rfs-base-value-unit == px {
$rfs-base-value: divide($rfs-base-value, $rfs-base-value * 0 + 1);
}
@else if $rfs-base-value-unit == rem {
$rfs-base-value: divide($rfs-base-value, divide($rfs-base-value * 0 + 1, $rfs-rem-value));
}

// Cache $rfs-breakpoint unit to prevent multiple calls
$rfs-breakpoint-unit-cache: unit($rfs-breakpoint);

// Remove unit from $rfs-breakpoint for calculations
@if $rfs-breakpoint-unit-cache == px {
$rfs-breakpoint: divide($rfs-breakpoint, $rfs-breakpoint * 0 + 1);
}
@else if $rfs-breakpoint-unit-cache == rem or $rfs-breakpoint-unit-cache == "em" {
$rfs-breakpoint: divide($rfs-breakpoint, divide($rfs-breakpoint * 0 + 1, $rfs-rem-value));
}

// Calculate the media query value
$rfs-mq-value: if($rfs-breakpoint-unit == px, #{$rfs-breakpoint}px, #{divide($rfs-breakpoint, $rfs-rem-value)}#{$rfs-breakpoint-unit});
$rfs-mq-property-width: if($rfs-mode == max-media-query, max-width, min-width);
$rfs-mq-property-height: if($rfs-mode == max-media-query, max-height, min-height);

// Internal mixin used to determine which media query needs to be used
@mixin _rfs-media-query {
@if $rfs-two-dimensional {
@if $rfs-mode == max-media-query {
@media (#{$rfs-mq-property-width}: #{$rfs-mq-value}), (#{$rfs-mq-property-height}: #{$rfs-mq-value}) {
@content;
}
}
@else {
@media (#{$rfs-mq-property-width}: #{$rfs-mq-value}) and (#{$rfs-mq-property-height}: #{$rfs-mq-value}) {
@content;
}
}
}
@else {
@media (#{$rfs-mq-property-width}: #{$rfs-mq-value}) {
@content;
}
}
}

// Internal mixin that adds disable classes to the selector if needed.
@mixin _rfs-rule {
@if $rfs-class == disable and $rfs-mode == max-media-query {
// Adding an extra class increases specificity, which prevents the media query to override the property
&,
.disable-rfs &,
&.disable-rfs {
@content;
}
}
@else if $rfs-class == enable and $rfs-mode == min-media-query {
.enable-rfs &,
&.enable-rfs {
@content;
}
}
@else {
@content;
}
}

// Internal mixin that adds enable classes to the selector if needed.
@mixin _rfs-media-query-rule {

@if $rfs-class == enable {
@if $rfs-mode == min-media-query {
@content;
}

@include _rfs-media-query {
.enable-rfs &,
&.enable-rfs {
@content;
}
}
}
@else {
@if $rfs-class == disable and $rfs-mode == min-media-query {
.disable-rfs &,
&.disable-rfs {
@content;
}
}
@include _rfs-media-query {
@content;
}
}
}

// Helper function to get the formatted non-responsive value
@function rfs-value($values) {
// Convert to list
$values: if(type-of($values) != list, ($values,), $values);

$val: '';

// Loop over each value and calculate value
@each $value in $values {
@if $value == 0 {
$val: $val + ' 0';
}
@else {
// Cache $value unit
$unit: if(type-of($value) == "number", unit($value), false);

@if $unit == px {
// Convert to rem if needed
$val: $val + ' ' + if($rfs-unit == rem, #{divide($value, $value * 0 + $rfs-rem-value)}rem, $value);
}
@else if $unit == rem {
// Convert to px if needed
$val: $val + ' ' + if($rfs-unit == px, #{divide($value, $value * 0 + 1) * $rfs-rem-value}px, $value);
}
@else {
// If $value isn't a number (like inherit) or $value has a unit (not px or rem, like 1.5em) or $ is 0, just print the value
$val: $val + ' ' + $value;
}
}
}

// Remove first space
@return unquote(str-slice($val, 2));
}

// Helper function to get the responsive value calculated by RFS
@function rfs-fluid-value($values) {
// Convert to list
$values: if(type-of($values) != list, ($values,), $values);

$val: '';

// Loop over each value and calculate value
@each $value in $values {
@if $value == 0 {
$val: $val + ' 0';
}

@else {
// Cache $value unit
$unit: if(type-of($value) == "number", unit($value), false);

// If $value isn't a number (like inherit) or $value has a unit (not px or rem, like 1.5em) or $ is 0, just print the value
@if not $unit or $unit != px and $unit != rem {
$val: $val + ' ' + $value;
}

@else {
// Remove unit from $value for calculations
$value: divide($value, $value * 0 + if($unit == px, 1, divide(1, $rfs-rem-value)));

// Only add the media query if the value is greater than the minimum value
@if abs($value) > breakpoint-next(sm)
// md
// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))
// md
// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))
// md
@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {
$n: index($breakpoint-names, $name);
@if not $n {
@error "breakpoint `#{$name}` not found in `#{$breakpoints}`";
}
@return if($n > breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))
// 576px
@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {
$min: map-get($breakpoints, $name);
@return if($min != 0, $min, null);
}

// Maximum breakpoint width.
// The maximum value is reduced by 0.02px to work around the limitations of
// `min-` and `max-` prefixes and viewports with fractional widths.
// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max
// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.
// See https://bugs.webkit.org/show_bug.cgi?id=178261
//
// >> breakpoint-max(md, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))
// 767.98px
@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {
$max: map-get($breakpoints, $name);
@return if($max and $max > 0, $max - .02, null);
}

// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash in front.
// Useful for making responsive utilities.
//
// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))
// "" (Returns a blank string)
// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))
// "-sm"
@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {
@return if(breakpoint-min($name, $breakpoints) == null, "", "-#{$name}");
}

// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.
// Makes the @content apply to the given breakpoint and wider.
@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {
$min: breakpoint-min($name, $breakpoints);
@if $min {
@media (min-width: $min) {
@content;
}
} @else {
@content;
}
}

// Media of at most the maximum breakpoint width. No query for the largest breakpoint.
// Makes the @content apply to the given breakpoint and narrower.
@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {
$max: breakpoint-max($name, $breakpoints);
@if $max {
@media (max-width: $max) {
@content;
}
} @else {
@content;
}
}

// Media that spans multiple breakpoint widths.
// Makes the @content apply between the min and max breakpoints
@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {
$min: breakpoint-min($lower, $breakpoints);
$max: breakpoint-max($upper, $breakpoints);

@if $min != null and $max != null {
@media (min-width: $min) and (max-width: $max) {
@content;
}
} @else if $max == null {
@include media-breakpoint-up($lower, $breakpoints) {
@content;
}
} @else if $min == null {
@include media-breakpoint-down($upper, $breakpoints) {
@content;
}
}
}

// Media between the breakpoint's minimum and maximum widths.
// No minimum for the smallest breakpoint, and no maximum for the largest one.
// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.
@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {
$min: breakpoint-min($name, $breakpoints);
$next: breakpoint-next($name, $breakpoints);
$max: breakpoint-max($next);

@if $min != null and $max != null {
@media (min-width: $min) and (max-width: $max) {
@content;
}
} @else if $max == null {
@include media-breakpoint-up($name, $breakpoints) {
@content;
}
} @else if $min == null {
@include media-breakpoint-down($next, $breakpoints) {
@content;
}
}
}

// scss-docs-start mixin-color-scheme
@mixin color-scheme($name) {
@media (prefers-color-scheme: #{$name}) {
@content;
}
}
// scss-docs-end mixin-color-scheme

// Image Mixins
// - Responsive image
// - Retina image


// Responsive image
//
// Keep images from scaling beyond the width of their parents.

@mixin img-fluid {
// Part 1: Set a maximum relative to the parent
max-width: 100%;
// Part 2: Override the height to auto, otherwise images will be stretched
// when setting a width and height attribute on the img element.
height: auto;
}

// Resize anything

@mixin resizable($direction) {
overflow: auto; // Per CSS3 UI, `resize` only applies when `overflow` isn't `visible`
resize: $direction; // Options: horizontal, vertical, both
}

// stylelint-disable declaration-no-important

// Hide content visually while keeping it accessible to assistive technologies
//
// See: https://www.a11yproject.com/posts/2013-01-11-how-to-hide-content/
// See: https://kittygiraudel.com/2016/10/13/css-hide-and-seek/

@mixin visually-hidden() {
position: absolute !important;
width: 1px !important;
height: 1px !important;
padding: 0 !important;
margin: -1px !important; // Fix for https://github.com/twbs/bootstrap/issues/25686
overflow: hidden !important;
clip: rect(0, 0, 0, 0) !important;
white-space: nowrap !important;
border: 0 !important;
}

// Use to only display content when it's focused, or one of its child elements is focused
// (i.e. when focus is within the element/container that the class was applied to)
//
// Useful for "Skip to main content" links; see https://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1

@mixin visually-hidden-focusable() {
&:not(:focus):not(:focus-within) {
@include visually-hidden();
}
}

@mixin reset-text {
font-family: $font-family-base;
// We deliberately do NOT reset font-size or overflow-wrap / word-wrap.
font-style: normal;
font-weight: $font-weight-normal;
line-height: $line-height-base;
text-align: left; // Fallback for where `start` is not supported
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;
}

// Text truncate
// Requires inline-block or block for proper styling

@mixin text-truncate() {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}

// Utility generator
// Used to generate utilities & print utilities
@mixin generate-utility($utility, $infix, $is-rfs-media-query: false) {
$values: map-get($utility, values);

// If the values are a list or string, convert it into a map
@if type-of($values) == "string" or type-of(nth($values, 1)) != "list" {
$values: zip($values, $values);
}

@each $key, $value in $values {
$properties: map-get($utility, property);

// Multiple properties are possible, for example with vertical or horizontal margins or paddings
@if type-of($properties) == "string" {
$properties: append((), $properties);
}

// Use custom class if present
$property-class: if(map-has-key($utility, class), map-get($utility, class), nth($properties, 1));
$property-class: if($property-class == null, "", $property-class);

// State params to generate pseudo-classes
$state: if(map-has-key($utility, state), map-get($utility, state), ());

$infix: if($property-class == "" and str-slice($infix, 1, 1) == "-", str-slice($infix, 2), $infix);

// Don't prefix if value key is null (eg. with shadow class)
$property-class-modifier: if($key, if($property-class == "" and $infix == "", "", "-") + $key, "");

@if map-get($utility, rfs) {
// Inside the media query
@if $is-rfs-media-query {
$val: rfs-value($value);

// Do not render anything if fluid and non fluid values are the same
$value: if($val == rfs-fluid-value($value), null, $val);
}
@else {
$value: rfs-fluid-value($value);
}
}

$is-css-var: map-get($utility, css-var);
$is-local-vars: map-get($utility, local-vars);
$is-rtl: map-get($utility, rtl);

@if $value != null {
@if $is-rtl == false {
/* rtl:begin:remove */
}

@if $is-css-var {
.#{$property-class + $infix + $property-class-modifier} {
--#{$variable-prefix}#{$property-class}: #{$value};
}

@each $pseudo in $state {
.#{$property-class + $infix + $property-class-modifier}-#{$pseudo}:#{$pseudo} {
--#{$variable-prefix}#{$property-class}: #{$value};
}
}
} @else {
.#{$property-class + $infix + $property-class-modifier} {
@each $property in $properties {
@if $is-local-vars {
@each $local-var, $value in $is-local-vars {
--#{$variable-prefix}#{$local-var}: #{$value};
}
}
#{$property}: $value if($enable-important-utilities, !important, null);
}
}

@each $pseudo in $state {
.#{$property-class + $infix + $property-class-modifier}-#{$pseudo}:#{$pseudo} {
@each $property in $properties {
#{$property}: $value if($enable-important-utilities, !important, null);
}
}
}
}

@if $is-rtl == false {
/* rtl:end:remove */
}
}
}
}

// scss-docs-start alert-variant-mixin
@mixin alert-variant($background, $border, $color) {
color: $color;
@include gradient-bg($background);
border-color: $border;

.alert-link {
color: shade-color($color, 20%);
}
}
// scss-docs-end alert-variant-mixin

// Shared between modals and offcanvases
@mixin overlay-backdrop($zindex, $backdrop-bg, $backdrop-opacity) {
position: fixed;
top: 0;
left: 0;
z-index: $zindex;
width: 100vw;
height: 100vh;
background-color: $backdrop-bg;

// Fade for backdrop
&.fade { opacity: 0; }
&.show { opacity: $backdrop-opacity; }
}

// Button variants
//
// Easily pump out default styles, as well as :hover, :focus, :active,
// and disabled options for all buttons

// scss-docs-start btn-variant-mixin
@mixin button-variant(
$background,
$border,
$color: color-contrast($background),
$hover-background: if($color == $color-contrast-light, shade-color($background, $btn-hover-bg-shade-amount), tint-color($background, $btn-hover-bg-tint-amount)),
$hover-border: if($color == $color-contrast-light, shade-color($border, $btn-hover-border-shade-amount), tint-color($border, $btn-hover-border-tint-amount)),
$hover-color: color-contrast($hover-background),
$active-background: if($color == $color-contrast-light, shade-color($background, $btn-active-bg-shade-amount), tint-color($background, $btn-active-bg-tint-amount)),
$active-border: if($color == $color-contrast-light, shade-color($border, $btn-active-border-shade-amount), tint-color($border, $btn-active-border-tint-amount)),
$active-color: color-contrast($active-background),
$disabled-background: $background,
$disabled-border: $border,
$disabled-color: color-contrast($disabled-background)
) {
color: $color;
@include gradient-bg($background);
border-color: $border;
@include box-shadow($btn-box-shadow);

&:hover {
color: $hover-color;
@include gradient-bg($hover-background);
border-color: $hover-border;
}

.btn-check:focus + &,
&:focus {
color: $hover-color;
@include gradient-bg($hover-background);
border-color: $hover-border;
@if $enable-shadows {
@include box-shadow($btn-box-shadow, 0 0 0 $btn-focus-width rgba(mix($color, $border, 15%), .5));
} @else {
// Avoid using mixin so we can pass custom focus shadow properly
box-shadow: 0 0 0 $btn-focus-width rgba(mix($color, $border, 15%), .5);
}
}

.btn-check:checked + &,
.btn-check:active + &,
&:active,
&.active,
.show > &.dropdown-toggle {
color: $active-color;
background-color: $active-background;
// Remove CSS gradients if they're enabled
background-image: if($enable-gradients, none, null);
border-color: $active-border;

&:focus {
@if $enable-shadows {
@include box-shadow($btn-active-box-shadow, 0 0 0 $btn-focus-width rgba(mix($color, $border, 15%), .5));
} @else {
// Avoid using mixin so we can pass custom focus shadow properly
box-shadow: 0 0 0 $btn-focus-width rgba(mix($color, $border, 15%), .5);
}
}
}

&:disabled,
&.disabled {
color: $disabled-color;
background-color: $disabled-background;
// Remove CSS gradients if they're enabled
background-image: if($enable-gradients, none, null);
border-color: $disabled-border;
}
}
// scss-docs-end btn-variant-mixin

// scss-docs-start btn-outline-variant-mixin
@mixin button-outline-variant(
$color,
$color-hover: color-contrast($color),
$active-background: $color,
$active-border: $color,
$active-color: color-contrast($active-background)
) {
color: $color;
border-color: $color;

&:hover {
color: $color-hover;
background-color: $active-background;
border-color: $active-border;
}

.btn-check:focus + &,
&:focus {
box-shadow: 0 0 0 $btn-focus-width rgba($color, .5);
}

.btn-check:checked + &,
.btn-check:active + &,
&:active,
&.active,
&.dropdown-toggle.show {
color: $active-color;
background-color: $active-background;
border-color: $active-border;

&:focus {
@if $enable-shadows {
@include box-shadow($btn-active-box-shadow, 0 0 0 $btn-focus-width rgba($color, .5));
} @else {
// Avoid using mixin so we can pass custom focus shadow properly
box-shadow: 0 0 0 $btn-focus-width rgba($color, .5);
}
}
}

&:disabled,
&.disabled {
color: $color;
background-color: transparent;
}
}
// scss-docs-end btn-outline-variant-mixin

// scss-docs-start btn-size-mixin
@mixin button-size($padding-y, $padding-x, $font-size, $border-radius) {
padding: $padding-y $padding-x;
@include font-size($font-size);
// Manually declare to provide an override to the browser default
@include border-radius($border-radius, 0);
}
// scss-docs-end btn-size-mixin

// scss-docs-start caret-mixins
@mixin caret-down {
border-top: $caret-width solid;
border-right: $caret-width solid transparent;
border-bottom: 0;
border-left: $caret-width solid transparent;
}

@mixin caret-up {
border-top: 0;
border-right: $caret-width solid transparent;
border-bottom: $caret-width solid;
border-left: $caret-width solid transparent;
}

@mixin caret-end {
border-top: $caret-width solid transparent;
border-right: 0;
border-bottom: $caret-width solid transparent;
border-left: $caret-width solid;
}

@mixin caret-start {
border-top: $caret-width solid transparent;
border-right: $caret-width solid;
border-bottom: $caret-width solid transparent;
}

@mixin caret($direction: down) {
@if $enable-caret {
&::after {
display: inline-block;
margin-left: $caret-spacing;
vertical-align: $caret-vertical-align;
content: "";
@if $direction == down {
@include caret-down();
} @else if $direction == up {
@include caret-up();
} @else if $direction == end {
@include caret-end();
}
}

@if $direction == start {
&::after {
display: none;
}

&::before {
display: inline-block;
margin-right: $caret-spacing;
vertical-align: $caret-vertical-align;
content: "";
@include caret-start();
}
}

&:empty::after {
margin-left: 0;
}
}
}
// scss-docs-end caret-mixins

// Pagination

// scss-docs-start pagination-mixin
@mixin pagination-size($padding-y, $padding-x, $font-size, $border-radius) {
.page-link {
padding: $padding-y $padding-x;
@include font-size($font-size);
}

.page-item {
@if $pagination-margin-start == (-$pagination-border-width) {
&:first-child {
.page-link {
@include border-start-radius($border-radius);
}
}

&:last-child {
.page-link {
@include border-end-radius($border-radius);
}
}
} @else {
//Add border-radius to all pageLinks in case they have left margin
.page-link {
@include border-radius($border-radius);
}
}
}
}
// scss-docs-end pagination-mixin

// Lists

// Unstyled keeps list items block level, just removes default browser padding and list-style
@mixin list-unstyled {
padding-left: 0;
list-style: none;
}

// List Groups

// scss-docs-start list-group-mixin
@mixin list-group-item-variant($state, $background, $color) {
.list-group-item-#{$state} {
color: $color;
background-color: $background;

&.list-group-item-action {
&:hover,
&:focus {
color: $color;
background-color: shade-color($background, 10%);
}

&.active {
color: $white;
background-color: $color;
border-color: $color;
}
}
}
}
// scss-docs-end list-group-mixin

// This mixin uses an `if()` technique to be compatible with Dart Sass
// See https://github.com/sass/sass/issues/1873#issuecomment-152293725 for more details

// scss-docs-start form-validation-mixins
@mixin form-validation-state-selector($state) {
@if ($state == "valid" or $state == "invalid") {
.was-validated #{if(&, "&", "")}:#{$state},
#{if(&, "&", "")}.is-#{$state} {
@content;
}
} @else {
#{if(&, "&", "")}.is-#{$state} {
@content;
}
}
}

@mixin form-validation-state(
$state,
$color,
$icon,
$tooltip-color: color-contrast($color),
$tooltip-bg-color: rgba($color, $form-feedback-tooltip-opacity),
$focus-box-shadow: 0 0 $input-btn-focus-blur $input-focus-width rgba($color, $input-btn-focus-color-opacity)
) {
.#{$state}-feedback {
display: none;
width: 100%;
margin-top: $form-feedback-margin-top;
@include font-size($form-feedback-font-size);
font-style: $form-feedback-font-style;
color: $color;
}

.#{$state}-tooltip {
position: absolute;
top: 100%;
z-index: 5;
display: none;
max-width: 100%; // Contain to parent when possible
padding: $form-feedback-tooltip-padding-y $form-feedback-tooltip-padding-x;
margin-top: .1rem;
@include font-size($form-feedback-tooltip-font-size);
line-height: $form-feedback-tooltip-line-height;
color: $tooltip-color;
background-color: $tooltip-bg-color;
@include border-radius($form-feedback-tooltip-border-radius);
}

@include form-validation-state-selector($state) {
~ .#{$state}-feedback,
~ .#{$state}-tooltip {
display: block;
}
}

.form-control {
@include form-validation-state-selector($state) {
border-color: $color;

@if $enable-validation-icons {
padding-right: $input-height-inner;
background-image: escape-svg($icon);
background-repeat: no-repeat;
background-position: right $input-height-inner-quarter center;
background-size: $input-height-inner-half $input-height-inner-half;
}

&:focus {
border-color: $color;
box-shadow: $focus-box-shadow;
}
}
}

// stylelint-disable-next-line selector-no-qualifying-type
textarea.form-control {
@include form-validation-state-selector($state) {
@if $enable-validation-icons {
padding-right: $input-height-inner;
background-position: top $input-height-inner-quarter right $input-height-inner-quarter;
}
}
}

.form-select {
@include form-validation-state-selector($state) {
border-color: $color;

@if $enable-validation-icons {
&:not([multiple]):not([size]),
&:not([multiple])[size="1"] {
padding-right: $form-select-feedback-icon-padding-end;
background-image: escape-svg($form-select-indicator), escape-svg($icon);
background-position: $form-select-bg-position, $form-select-feedback-icon-position;
background-size: $form-select-bg-size, $form-select-feedback-icon-size;
}
}

&:focus {
border-color: $color;
box-shadow: $focus-box-shadow;
}
}
}

.form-check-input {
@include form-validation-state-selector($state) {
border-color: $color;

&:checked {
background-color: $color;
}

&:focus {
box-shadow: $focus-box-shadow;
}

~ .form-check-label {
color: $color;
}
}
}
.form-check-inline .form-check-input {
~ .#{$state}-feedback {
margin-left: .5em;
}
}

.input-group .form-control,
.input-group .form-select {
@include form-validation-state-selector($state) {
@if $state == "valid" {
z-index: 1;
} @else if $state == "invalid" {
z-index: 2;
}
&:focus {
z-index: 3;
}
}
}
}
// scss-docs-end form-validation-mixins

// scss-docs-start table-variant
@mixin table-variant($state, $background) {
.table-#{$state} {
$color: color-contrast(opaque($body-bg, $background));
$hover-bg: mix($color, $background, percentage($table-hover-bg-factor));
$striped-bg: mix($color, $background, percentage($table-striped-bg-factor));
$active-bg: mix($color, $background, percentage($table-active-bg-factor));

--#{$variable-prefix}table-bg: #{$background};
--#{$variable-prefix}table-striped-bg: #{$striped-bg};
--#{$variable-prefix}table-striped-color: #{color-contrast($striped-bg)};
--#{$variable-prefix}table-active-bg: #{$active-bg};
--#{$variable-prefix}table-active-color: #{color-contrast($active-bg)};
--#{$variable-prefix}table-hover-bg: #{$hover-bg};
--#{$variable-prefix}table-hover-color: #{color-contrast($hover-bg)};

color: $color;
border-color: mix($color, $background, percentage($table-border-factor));
}
}
// scss-docs-end table-variant

// stylelint-disable property-disallowed-list
// Single side border-radius

// Helper function to replace negative values with 0
@function valid-radius($radius) {
$return: ();
@each $value in $radius {
@if type-of($value) == number {
$return: append($return, max($value, 0));
} @else {
$return: append($return, $value);
}
}
@return $return;
}

// scss-docs-start border-radius-mixins
@mixin border-radius($radius: $border-radius, $fallback-border-radius: false) {
@if $enable-rounded {
border-radius: valid-radius($radius);
}
@else if $fallback-border-radius != false {
border-radius: $fallback-border-radius;
}
}

@mixin border-top-radius($radius: $border-radius) {
@if $enable-rounded {
border-top-left-radius: valid-radius($radius);
border-top-right-radius: valid-radius($radius);
}
}

@mixin border-end-radius($radius: $border-radius) {
@if $enable-rounded {
border-top-right-radius: valid-radius($radius);
border-bottom-right-radius: valid-radius($radius);
}
}

@mixin border-bottom-radius($radius: $border-radius) {
@if $enable-rounded {
border-bottom-right-radius: valid-radius($radius);
border-bottom-left-radius: valid-radius($radius);
}
}

@mixin border-start-radius($radius: $border-radius) {
@if $enable-rounded {
border-top-left-radius: valid-radius($radius);
border-bottom-left-radius: valid-radius($radius);
}
}

@mixin border-top-start-radius($radius: $border-radius) {
@if $enable-rounded {
border-top-left-radius: valid-radius($radius);
}
}

@mixin border-top-end-radius($radius: $border-radius) {
@if $enable-rounded {
border-top-right-radius: valid-radius($radius);
}
}

@mixin border-bottom-end-radius($radius: $border-radius) {
@if $enable-rounded {
border-bottom-right-radius: valid-radius($radius);
}
}

@mixin border-bottom-start-radius($radius: $border-radius) {
@if $enable-rounded {
border-bottom-left-radius: valid-radius($radius);
}
}
// scss-docs-end border-radius-mixins

@mixin box-shadow($shadow...) {
@if $enable-shadows {
$result: ();

@each $value in $shadow {
@if $value != null {
$result: append($result, $value, "comma");
}
@if $value == none and length($shadow) > 1 {
@warn "The keyword 'none' must be used as a single argument.";
}
}

@if (length($result) > 0) {
box-shadow: $result;
}
}
}

// Gradients

// scss-docs-start gradient-bg-mixin
@mixin gradient-bg($color: null) {
background-color: $color;

@if $enable-gradients {
background-image: var(--#{$variable-prefix}gradient);
}
}
// scss-docs-end gradient-bg-mixin

// scss-docs-start gradient-mixins
// Horizontal gradient, from left to right
//
// Creates two color stops, start and end, by specifying a color and position for each color stop.
@mixin gradient-x($start-color: $gray-700, $end-color: $gray-800, $start-percent: 0%, $end-percent: 100%) {
background-image: linear-gradient(to right, $start-color $start-percent, $end-color $end-percent);
}

// Vertical gradient, from top to bottom
//
// Creates two color stops, start and end, by specifying a color and position for each color stop.
@mixin gradient-y($start-color: $gray-700, $end-color: $gray-800, $start-percent: null, $end-percent: null) {
background-image: linear-gradient(to bottom, $start-color $start-percent, $end-color $end-percent);
}

@mixin gradient-directional($start-color: $gray-700, $end-color: $gray-800, $deg: 45deg) {
background-image: linear-gradient($deg, $start-color, $end-color);
}

@mixin gradient-x-three-colors($start-color: $blue, $mid-color: $purple, $color-stop: 50%, $end-color: $red) {
background-image: linear-gradient(to right, $start-color, $mid-color $color-stop, $end-color);
}

@mixin gradient-y-three-colors($start-color: $blue, $mid-color: $purple, $color-stop: 50%, $end-color: $red) {
background-image: linear-gradient($start-color, $mid-color $color-stop, $end-color);
}

@mixin gradient-radial($inner-color: $gray-700, $outer-color: $gray-800) {
background-image: radial-gradient(circle, $inner-color, $outer-color);
}

@mixin gradient-striped($color: rgba($white, .15), $angle: 45deg) {
background-image: linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);
}
// scss-docs-end gradient-mixins

// stylelint-disable property-disallowed-list
@mixin transition($transition...) {
@if length($transition) == 0 {
$transition: $transition-base;
}

@if length($transition) > 1 {
@each $value in $transition {
@if $value == null or $value == none {
@warn "The keyword 'none' or 'null' must be used as a single argument.";
}
}
}

@if $enable-transitions {
@if nth($transition, 1) != null {
transition: $transition;
}

@if $enable-reduced-motion and nth($transition, 1) != null and nth($transition, 1) != none {
@media (prefers-reduced-motion: reduce) {
transition: none;
}
}
}
}

// scss-docs-start clearfix
@mixin clearfix() {
&::after {
display: block;
clear: both;
content: "";
}
}
// scss-docs-end clearfix

// Container mixins

@mixin make-container($gutter: $container-padding-x) {
width: 100%;
padding-right: var(--#{$variable-prefix}gutter-x, #{$gutter});
padding-left: var(--#{$variable-prefix}gutter-x, #{$gutter});
margin-right: auto;
margin-left: auto;
}

// Grid system
//
// Generate semantic grid columns with these mixins.

@mixin make-row($gutter: $grid-gutter-width) {
--#{$variable-prefix}gutter-x: #{$gutter};
--#{$variable-prefix}gutter-y: 0;
display: flex;
flex-wrap: wrap;
// TODO: Revisit calc order after https://github.com/react-bootstrap/react-bootstrap/issues/6039 is fixed
margin-top: calc(-1 * var(--#{$variable-prefix}gutter-y)); // stylelint-disable-line function-disallowed-list
margin-right: calc(-.5 * var(--#{$variable-prefix}gutter-x)); // stylelint-disable-line function-disallowed-list
margin-left: calc(-.5 * var(--#{$variable-prefix}gutter-x)); // stylelint-disable-line function-disallowed-list
}

@mixin make-col-ready($gutter: $grid-gutter-width) {
// Add box sizing if only the grid is loaded
box-sizing: if(variable-exists(include-column-box-sizing) and $include-column-box-sizing, border-box, null);
// Prevent columns from becoming too narrow when at smaller grid tiers by
// always setting `width: 100%;`. This works because we set the width
// later on to override this initial width.
flex-shrink: 0;
width: 100%;
max-width: 100%; // Prevent `.col-auto`, `.col` (& responsive variants) from breaking out the grid
padding-right: calc(var(--#{$variable-prefix}gutter-x) * .5); // stylelint-disable-line function-disallowed-list
padding-left: calc(var(--#{$variable-prefix}gutter-x) * .5); // stylelint-disable-line function-disallowed-list
margin-top: var(--#{$variable-prefix}gutter-y);
}

@mixin make-col($size: false, $columns: $grid-columns) {
@if $size {
flex: 0 0 auto;
width: percentage(divide($size, $columns));

} @else {
flex: 1 1 0;
max-width: 100%;
}
}

@mixin make-col-auto() {
flex: 0 0 auto;
width: auto;
}

@mixin make-col-offset($size, $columns: $grid-columns) {
$num: divide($size, $columns);
margin-left: if($num == 0, 0, percentage($num));
}

// Row columns
//
// Specify on a parent element(e.g., .row) to force immediate children into NN
// numberof columns. Supports wrapping to new lines, but does not do a Masonry
// style grid.
@mixin row-cols($count) {
> * {
flex: 0 0 auto;
width: divide(100%, $count);
}
}

// Framework grid generation
//
// Used only by Bootstrap to generate the correct number of grid classes given
// any value of `$grid-columns`.

@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {
@each $breakpoint in map-keys($breakpoints) {
$infix: breakpoint-infix($breakpoint, $breakpoints);

@include media-breakpoint-up($breakpoint, $breakpoints) {
// Provide basic `.col-{bp}` classes for equal-width flexbox columns
.col#{$infix} {
flex: 1 0 0%; // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4
}

.row-cols#{$infix}-auto > * {
@include make-col-auto();
}

@if $grid-row-columns > 0 {
@for $i from 1 through $grid-row-columns {
.row-cols#{$infix}-#{$i} {
@include row-cols($i);
}
}
}

.col#{$infix}-auto {
@include make-col-auto();
}

@if $columns > 0 {
@for $i from 1 through $columns {
.col#{$infix}-#{$i} {
@include make-col($i, $columns);
}
}

// `$columns - 1` because offsetting by the width of an entire row isn't possible
@for $i from 0 through ($columns - 1) {
@if not ($infix == "" and $i == 0) { // Avoid emitting useless .offset-0
.offset#{$infix}-#{$i} {
@include make-col-offset($i, $columns);
}
}
}
}

// Gutters
//
// Make use of `.g-*`, `.gx-*` or `.gy-*` utilities to change spacing between the columns.
@each $key, $value in $gutters {
.g#{$infix}-#{$key},
.gx#{$infix}-#{$key} {
--#{$variable-prefix}gutter-x: #{$value};
}

.g#{$infix}-#{$key},
.gy#{$infix}-#{$key} {
--#{$variable-prefix}gutter-y: #{$value};
}
}
}
}
}

@mixin make-cssgrid($columns: $grid-columns, $breakpoints: $grid-breakpoints) {
@each $breakpoint in map-keys($breakpoints) {
$infix: breakpoint-infix($breakpoint, $breakpoints);

@include media-breakpoint-up($breakpoint, $breakpoints) {
@if $columns > 0 {
@for $i from 1 through $columns {
.g-col#{$infix}-#{$i} {
grid-column: auto / span $i;
}
}

// Start with `1` because `0` is and invalid value.
// Ends with `$columns - 1` because offsetting by the width of an entire row isn't possible.
@for $i from 1 through ($columns - 1) {
.g-start#{$infix}-#{$i} {
grid-column-start: $i;
}
}
}
}
}
}

// stylelint-disable indentation

// Utilities

$utilities: () !default;
// stylelint-disable-next-line scss/dollar-variable-default
$utilities: map-merge(
(
// scss-docs-start utils-vertical-align
"align": (
property: vertical-align,
class: align,
values: baseline top middle bottom text-bottom text-top
),
// scss-docs-end utils-vertical-align
// scss-docs-start utils-float
"float": (
responsive: true,
property: float,
values: (
start: left,
end: right,
none: none,
)
),
// scss-docs-end utils-float
// Opacity utilities
// scss-docs-start utils-opacity
"opacity": (
property: opacity,
values: (
0: 0,
25: .25,
50: .5,
75: .75,
100: 1,
)
),
// scss-docs-end utils-opacity
// scss-docs-start utils-overflow
"overflow": (
property: overflow,
values: auto hidden visible scroll,
),
// scss-docs-end utils-overflow
// scss-docs-start utils-display
"display": (
responsive: true,
print: true,
property: display,
class: d,
values: inline inline-block block grid table table-row table-cell flex inline-flex none
),
// scss-docs-end utils-display
// scss-docs-start utils-shadow
"shadow": (
property: box-shadow,
class: shadow,
values: (
null: $box-shadow,
sm: $box-shadow-sm,
lg: $box-shadow-lg,
none: none,
)
),
// scss-docs-end utils-shadow
// scss-docs-start utils-position
"position": (
property: position,
values: static relative absolute fixed sticky
),
"top": (
property: top,
values: $position-values
),
"bottom": (
property: bottom,
values: $position-values
),
"start": (
property: left,
class: start,
values: $position-values
),
"end": (
property: right,
class: end,
values: $position-values
),
"translate-middle": (
property: transform,
class: translate-middle,
values: (
null: translate(-50%, -50%),
x: translateX(-50%),
y: translateY(-50%),
)
),
// scss-docs-end utils-position
// scss-docs-start utils-borders
"border": (
property: border,
values: (
null: $border-width solid $border-color,
0: 0,
)
),
"border-top": (
property: border-top,
values: (
null: $border-width solid $border-color,
0: 0,
)
),
"border-end": (
property: border-right,
class: border-end,
values: (
null: $border-width solid $border-color,
0: 0,
)
),
"border-bottom": (
property: border-bottom,
values: (
null: $border-width solid $border-color,
0: 0,
)
),
"border-start": (
property: border-left,
class: border-start,
values: (
null: $border-width solid $border-color,
0: 0,
)
),
"border-color": (
property: border-color,
class: border,
values: map-merge($theme-colors, ("white": $white))
),
"border-width": (
property: border-width,
class: border,
values: $border-widths
),
// scss-docs-end utils-borders
// Sizing utilities
// scss-docs-start utils-sizing
"width": (
property: width,
class: w,
values: (
25: 25%,
50: 50%,
75: 75%,
100: 100%,
auto: auto
)
),
"max-width": (
property: max-width,
class: mw,
values: (100: 100%)
),
"viewport-width": (
property: width,
class: vw,
values: (100: 100vw)
),
"min-viewport-width": (
property: min-width,
class: min-vw,
values: (100: 100vw)
),
"height": (
property: height,
class: h,
values: (
25: 25%,
50: 50%,
75: 75%,
100: 100%,
auto: auto
)
),
"max-height": (
property: max-height,
class: mh,
values: (100: 100%)
),
"viewport-height": (
property: height,
class: vh,
values: (100: 100vh)
),
"min-viewport-height": (
property: min-height,
class: min-vh,
values: (100: 100vh)
),
// scss-docs-end utils-sizing
// Flex utilities
// scss-docs-start utils-flex
"flex": (
responsive: true,
property: flex,
values: (fill: 1 1 auto)
),
"flex-direction": (
responsive: true,
property: flex-direction,
class: flex,
values: row column row-reverse column-reverse
),
"flex-grow": (
responsive: true,
property: flex-grow,
class: flex,
values: (
grow-0: 0,
grow-1: 1,
)
),
"flex-shrink": (
responsive: true,
property: flex-shrink,
class: flex,
values: (
shrink-0: 0,
shrink-1: 1,
)
),
"flex-wrap": (
responsive: true,
property: flex-wrap,
class: flex,
values: wrap nowrap wrap-reverse
),
"gap": (
responsive: true,
property: gap,
class: gap,
values: $spacers
),
"justify-content": (
responsive: true,
property: justify-content,
values: (
start: flex-start,
end: flex-end,
center: center,
between: space-between,
around: space-around,
evenly: space-evenly,
)
),
"align-items": (
responsive: true,
property: align-items,
values: (
start: flex-start,
end: flex-end,
center: center,
baseline: baseline,
stretch: stretch,
)
),
"align-content": (
responsive: true,
property: align-content,
values: (
start: flex-start,
end: flex-end,
center: center,
between: space-between,
around: space-around,
stretch: stretch,
)
),
"align-self": (
responsive: true,
property: align-self,
values: (
auto: auto,
start: flex-start,
end: flex-end,
center: center,
baseline: baseline,
stretch: stretch,
)
),
"order": (
responsive: true,
property: order,
values: (
first: -1,
0: 0,
1: 1,
2: 2,
3: 3,
4: 4,
5: 5,
last: 6,
),
),
// scss-docs-end utils-flex
// Margin utilities
// scss-docs-start utils-spacing
"margin": (
responsive: true,
property: margin,
class: m,
values: map-merge($spacers, (auto: auto))
),
"margin-x": (
responsive: true,
property: margin-right margin-left,
class: mx,
values: map-merge($spacers, (auto: auto))
),
"margin-y": (
responsive: true,
property: margin-top margin-bottom,
class: my,
values: map-merge($spacers, (auto: auto))
),
"margin-top": (
responsive: true,
property: margin-top,
class: mt,
values: map-merge($spacers, (auto: auto))
),
"margin-end": (
responsive: true,
property: margin-right,
class: me,
values: map-merge($spacers, (auto: auto))
),
"margin-bottom": (
responsive: true,
property: margin-bottom,
class: mb,
values: map-merge($spacers, (auto: auto))
),
"margin-start": (
responsive: true,
property: margin-left,
class: ms,
values: map-merge($spacers, (auto: auto))
),
// Negative margin utilities
"negative-margin": (
responsive: true,
property: margin,
class: m,
values: $negative-spacers
),
"negative-margin-x": (
responsive: true,
property: margin-right margin-left,
class: mx,
values: $negative-spacers
),
"negative-margin-y": (
responsive: true,
property: margin-top margin-bottom,
class: my,
values: $negative-spacers
),
"negative-margin-top": (
responsive: true,
property: margin-top,
class: mt,
values: $negative-spacers
),
"negative-margin-end": (
responsive: true,
property: margin-right,
class: me,
values: $negative-spacers
),
"negative-margin-bottom": (
responsive: true,
property: margin-bottom,
class: mb,
values: $negative-spacers
),
"negative-margin-start": (
responsive: true,
property: margin-left,
class: ms,
values: $negative-spacers
),
// Padding utilities
"padding": (
responsive: true,
property: padding,
class: p,
values: $spacers
),
"padding-x": (
responsive: true,
property: padding-right padding-left,
class: px,
values: $spacers
),
"padding-y": (
responsive: true,
property: padding-top padding-bottom,
class: py,
values: $spacers
),
"padding-top": (
responsive: true,
property: padding-top,
class: pt,
values: $spacers
),
"padding-end": (
responsive: true,
property: padding-right,
class: pe,
values: $spacers
),
"padding-bottom": (
responsive: true,
property: padding-bottom,
class: pb,
values: $spacers
),
"padding-start": (
responsive: true,
property: padding-left,
class: ps,
values: $spacers
),
// scss-docs-end utils-spacing
// Text
// scss-docs-start utils-text
"font-family": (
property: font-family,
class: font,
values: (monospace: var(--#{$variable-prefix}font-monospace))
),
"font-size": (
rfs: true,
property: font-size,
class: fs,
values: $font-sizes
),
"font-style": (
property: font-style,
class: fst,
values: italic normal
),
"font-weight": (
property: font-weight,
class: fw,
values: (
light: $font-weight-light,
lighter: $font-weight-lighter,
normal: $font-weight-normal,
bold: $font-weight-bold,
bolder: $font-weight-bolder
)
),
"line-height": (
property: line-height,
class: lh,
values: (
1: 1,
sm: $line-height-sm,
base: $line-height-base,
lg: $line-height-lg,
)
),
"text-align": (
responsive: true,
property: text-align,
class: text,
values: (
start: left,
end: right,
center: center,
)
),
"text-decoration": (
property: text-decoration,
values: none underline line-through
),
"text-transform": (
property: text-transform,
class: text,
values: lowercase uppercase capitalize
),
"white-space": (
property: white-space,
class: text,
values: (
wrap: normal,
nowrap: nowrap,
)
),
"word-wrap": (
property: word-wrap word-break,
class: text,
values: (break: break-word),
rtl: false
),
// scss-docs-end utils-text
// scss-docs-start utils-color
"color": (
property: color,
class: text,
local-vars: (
"text-opacity": 1
),
values: map-merge(
$utilities-text-colors,
(
"muted": $text-muted,
"black-50": rgba($black, .5), // deprecated
"white-50": rgba($white, .5), // deprecated
"reset": inherit,
)
)
),
"text-opacity": (
css-var: true,
class: text-opacity,
values: (
25: .25,
50: .5,
75: .75,
100: 1
)
),
// scss-docs-end utils-color
// scss-docs-start utils-bg-color
"background-color": (
property: background-color,
class: bg,
local-vars: (
"bg-opacity": 1
),
values: map-merge(
$utilities-bg-colors,
(
"transparent": transparent
)
)
),
"bg-opacity": (
css-var: true,
class: bg-opacity,
values: (
10: .1,
25: .25,
50: .5,
75: .75,
100: 1
)
),
// scss-docs-end utils-bg-color
"gradient": (
property: background-image,
class: bg,
values: (gradient: var(--#{$variable-prefix}gradient))
),
// scss-docs-start utils-interaction
"user-select": (
property: user-select,
values: all auto none
),
"pointer-events": (
property: pointer-events,
class: pe,
values: none auto,
),
// scss-docs-end utils-interaction
// scss-docs-start utils-border-radius
"rounded": (
property: border-radius,
class: rounded,
values: (
null: $border-radius,
0: 0,
1: $border-radius-sm,
2: $border-radius,
3: $border-radius-lg,
circle: 50%,
pill: $border-radius-pill
)
),
"rounded-top": (
property: border-top-left-radius border-top-right-radius,
class: rounded-top,
values: (null: $border-radius)
),
"rounded-end": (
property: border-top-right-radius border-bottom-right-radius,
class: rounded-end,
values: (null: $border-radius)
),
"rounded-bottom": (
property: border-bottom-right-radius border-bottom-left-radius,
class: rounded-bottom,
values: (null: $border-radius)
),
"rounded-start": (
property: border-bottom-left-radius border-top-left-radius,
class: rounded-start,
values: (null: $border-radius)
),
// scss-docs-end utils-border-radius
// scss-docs-start utils-visibility
"visibility": (
property: visibility,
class: null,
values: (
visible: visible,
invisible: hidden,
)
)
// scss-docs-end utils-visibility
),
$utilities
);

:root {
// Note: Custom variable values only support SassScript inside `#{}`.

// Colors
//
// Generate palettes for full colors, grays, and theme colors.

@each $color, $value in $colors {
--#{$variable-prefix}#{$color}: #{$value};
}

@each $color, $value in $grays {
--#{$variable-prefix}gray-#{$color}: #{$value};
}

@each $color, $value in $theme-colors {
--#{$variable-prefix}#{$color}: #{$value};
}

@each $color, $value in $theme-colors-rgb {
--#{$variable-prefix}#{$color}-rgb: #{$value};
}

--#{$variable-prefix}white-rgb: #{to-rgb($white)};
--#{$variable-prefix}black-rgb: #{to-rgb($black)};
--#{$variable-prefix}body-color-rgb: #{to-rgb($body-color)};
--#{$variable-prefix}body-bg-rgb: #{to-rgb($body-bg)};

// Fonts

// Note: Use `inspect` for lists so that quoted items keep the quotes.
// See https://github.com/sass/sass/issues/2383#issuecomment-336349172
--#{$variable-prefix}font-sans-serif: #{inspect($font-family-sans-serif)};
--#{$variable-prefix}font-monospace: #{inspect($font-family-monospace)};
--#{$variable-prefix}gradient: #{$gradient};

// Root and body
// stylelint-disable custom-property-empty-line-before
// scss-docs-start root-body-variables
@if $font-size-root != null {
--#{$variable-prefix}root-font-size: #{$font-size-root};
}
--#{$variable-prefix}body-font-family: #{$font-family-base};
--#{$variable-prefix}body-font-size: #{$font-size-base};
--#{$variable-prefix}body-font-weight: #{$font-weight-base};
--#{$variable-prefix}body-line-height: #{$line-height-base};
--#{$variable-prefix}body-color: #{$body-color};
@if $body-text-align != null {
--#{$variable-prefix}body-text-align: #{$body-text-align};
}
--#{$variable-prefix}body-bg: #{$body-bg};
// scss-docs-end root-body-variables
// stylelint-enable custom-property-empty-line-before
}

// stylelint-disable declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix


// Reboot
//
// Normalization of HTML elements, manually forked from Normalize.css to remove
// styles targeting irrelevant browsers while applying new styles.
//
// Normalize is licensed MIT. https://github.com/necolas/normalize.css


// Document
//
// Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.

*,
*::before,
*::after {
box-sizing: border-box;
}


// Root
//
// Ability to the value of the root font sizes, affecting the value of `rem`.
// null by default, thus nothing is generated.

:root {
@if $font-size-root != null {
font-size: var(--#{$variable-prefix}root-font-size);
}

@if $enable-smooth-scroll {
@media (prefers-reduced-motion: no-preference) {
scroll-behavior: smooth;
}
}
}


// Body
//
// 1. Remove the margin in all browsers.
// 2. As a best practice, apply a default `background-color`.
// 3. Prevent adjustments of font size after orientation changes in iOS.
// 4. Change the default tap highlight to be completely transparent in iOS.

// scss-docs-start reboot-body-rules
body {
margin: 0; // 1
font-family: var(--#{$variable-prefix}body-font-family);
@include font-size(var(--#{$variable-prefix}body-font-size));
font-weight: var(--#{$variable-prefix}body-font-weight);
line-height: var(--#{$variable-prefix}body-line-height);
color: var(--#{$variable-prefix}body-color);
text-align: var(--#{$variable-prefix}body-text-align);
background-color: var(--#{$variable-prefix}body-bg); // 2
-webkit-text-size-adjust: 100%; // 3
-webkit-tap-highlight-color: rgba($black, 0); // 4
}
// scss-docs-end reboot-body-rules


// Content grouping
//
// 1. Reset Firefox's gray color
// 2. Set correct height and prevent the `size` attribute to make the `hr` look like an input field

hr {
margin: $hr-margin-y 0;
color: $hr-color; // 1
background-color: currentColor;
border: 0;
opacity: $hr-opacity;
}

hr:not([size]) {
height: $hr-height; // 2
}


// Typography
//
// 1. Remove top margins from headings
// By default, ``-`` all receive top and bottom margins. We nuke the top
// margin for easier control within type scales as it avoids margin collapsing.

%heading {
margin-top: 0; // 1
margin-bottom: $headings-margin-bottom;
font-family: $headings-font-family;
font-style: $headings-font-style;
font-weight: $headings-font-weight;
line-height: $headings-line-height;
color: $headings-color;
}

h1 {
@extend %heading;
@include font-size($h1-font-size);
}

h2 {
@extend %heading;
@include font-size($h2-font-size);
}

h3 {
@extend %heading;
@include font-size($h3-font-size);
}

h4 {
@extend %heading;
@include font-size($h4-font-size);
}

h5 {
@extend %heading;
@include font-size($h5-font-size);
}

h6 {
@extend %heading;
@include font-size($h6-font-size);
}


// Reset margins on paragraphs
//
// Similarly, the top margin on ``s get reset. However, we also reset the
// bottom margin to use `rem` units instead of `em`.

p {
margin-top: 0;
margin-bottom: $paragraph-margin-bottom;
}


// Abbreviations
//
// 1. Duplicate behavior to the data-bs-* attribute for our tooltip plugin
// 2. Add the correct text decoration in Chrome, Edge, Opera, and Safari.
// 3. Add explicit cursor to indicate changed behavior.
// 4. Prevent the text-decoration to be skipped.

abbr[title],
abbr[data-bs-original-title] { // 1
text-decoration: underline dotted; // 2
cursor: help; // 3
text-decoration-skip-ink: none; // 4
}


// Address

address {
margin-bottom: 1rem;
font-style: normal;
line-height: inherit;
}


// Lists

ol,
ul {
padding-left: 2rem;
}

ol,
ul,
dl {
margin-top: 0;
margin-bottom: 1rem;
}

ol ol,
ul ul,
ol ul,
ul ol {
margin-bottom: 0;
}

dt {
font-weight: $dt-font-weight;
}

// 1. Undo browser default

dd {
margin-bottom: .5rem;
margin-left: 0; // 1
}


// Blockquote

blockquote {
margin: 0 0 1rem;
}


// Strong
//
// Add the correct font weight in Chrome, Edge, and Safari

b,
strong {
font-weight: $font-weight-bolder;
}


// Small
//
// Add the correct font size in all browsers

small {
@include font-size($small-font-size);
}


// Mark

mark {
padding: $mark-padding;
background-color: $mark-bg;
}


// Sub and Sup
//
// Prevent `sub` and `sup` elements from affecting the line height in
// all browsers.

sub,
sup {
position: relative;
@include font-size($sub-sup-font-size);
line-height: 0;
vertical-align: baseline;
}

sub { bottom: -.25em; }
sup { top: -.5em; }


// Links

a {
color: $link-color;
text-decoration: $link-decoration;

&:hover {
color: $link-hover-color;
text-decoration: $link-hover-decoration;
}
}

// And undo these styles for placeholder links/named anchors (without href).
// It would be more straightforward to just use a[href] in previous block, but that
// causes specificity issues in many other styles that are too complex to fix.
// See https://github.com/twbs/bootstrap/issues/19402

a:not([href]):not([class]) {
&,
&:hover {
color: inherit;
text-decoration: none;
}
}


// Code

pre,
code,
kbd,
samp {
font-family: $font-family-code;
@include font-size(1em); // Correct the odd `em` font sizing in all browsers.
direction: ltr #{"/* rtl:ignore */"};
unicode-bidi: bidi-override;
}

// 1. Remove browser default top margin
// 2. Reset browser default of `1em` to use `rem`s
// 3. Don't allow content to break outside

pre {
display: block;
margin-top: 0; // 1
margin-bottom: 1rem; // 2
overflow: auto; // 3
@include font-size($code-font-size);
color: $pre-color;

// Account for some code outputs that place code tags in pre tags
code {
@include font-size(inherit);
color: inherit;
word-break: normal;
}
}

code {
@include font-size($code-font-size);
color: $code-color;
word-wrap: break-word;

// Streamline the style when inside anchors to avoid broken underline and more
a > & {
color: inherit;
}
}

kbd {
padding: $kbd-padding-y $kbd-padding-x;
@include font-size($kbd-font-size);
color: $kbd-color;
background-color: $kbd-bg;
@include border-radius($border-radius-sm);

kbd {
padding: 0;
@include font-size(1em);
font-weight: $nested-kbd-font-weight;
}
}


// Figures
//
// Apply a consistent margin strategy (matches our type styles).

figure {
margin: 0 0 1rem;
}


// Images and content

img,
svg {
vertical-align: middle;
}


// Tables
//
// Prevent double borders

table {
caption-side: bottom;
border-collapse: collapse;
}

caption {
padding-top: $table-cell-padding-y;
padding-bottom: $table-cell-padding-y;
color: $table-caption-color;
text-align: left;
}

// 1. Removes font-weight bold by inheriting
// 2. Matches default `` alignment by inheriting `text-align`.
// 3. Fix alignment for Safari

th {
font-weight: $table-th-font-weight; // 1
text-align: inherit; // 2
text-align: -webkit-match-parent; // 3
}

thead,
tbody,
tfoot,
tr,
td,
th {
border-color: inherit;
border-style: solid;
border-width: 0;
}


// Forms
//
// 1. Allow labels to use `margin` for spacing.

label {
display: inline-block; // 1
}

// Remove the default `border-radius` that macOS Chrome adds.
// See https://github.com/twbs/bootstrap/issues/24093

button {
// stylelint-disable-next-line property-disallowed-list
border-radius: 0;
}

// Explicitly remove focus outline in Chromium when it shouldn't be
// visible (e.g. as result of mouse click or touch tap). It already
// should be doing this automatically, but seems to currently be
// confused and applies its very visible two-tone outline anyway.

button:focus:not(:focus-visible) {
outline: 0;
}

// 1. Remove the margin in Firefox and Safari

input,
button,
select,
optgroup,
textarea {
margin: 0; // 1
font-family: inherit;
@include font-size(inherit);
line-height: inherit;
}

// Remove the inheritance of text transform in Firefox
button,
select {
text-transform: none;
}
// Set the cursor for non-`` buttons
//
// Details at https://github.com/twbs/bootstrap/pull/30562
[role="button"] {
cursor: pointer;
}

select {
// Remove the inheritance of word-wrap in Safari.
// See https://github.com/twbs/bootstrap/issues/24990
word-wrap: normal;

// Undo the opacity change from Chrome
&:disabled {
opacity: 1;
}
}

// Remove the dropdown arrow in Chrome from inputs built with datalists.
// See https://stackoverflow.com/a/54997118

[list]::-webkit-calendar-picker-indicator {
display: none;
}

// 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`
// controls in Android 4.
// 2. Correct the inability to style clickable types in iOS and Safari.
// 3. Opinionated: add "hand" cursor to non-disabled button elements.

button,
[type="button"], // 1
[type="reset"],
[type="submit"] {
-webkit-appearance: button; // 2

@if $enable-button-pointers {
&:not(:disabled) {
cursor: pointer; // 3
}
}
}

// Remove inner border and padding from Firefox, but don't restore the outline like Normalize.

::-moz-focus-inner {
padding: 0;
border-style: none;
}

// 1. Textareas should really only resize vertically so they don't break their (horizontal) containers.

textarea {
resize: vertical; // 1
}

// 1. Browsers set a default `min-width: min-content;` on fieldsets,
// unlike e.g. ``s, which have `min-width: 0;` by default.
// So we reset that to ensure fieldsets behave more like a standard block element.
// See https://github.com/twbs/bootstrap/issues/12359
// and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements
// 2. Reset the default outline behavior of fieldsets so they don't affect page layout.

fieldset {
min-width: 0; // 1
padding: 0; // 2
margin: 0; // 2
border: 0; // 2
}

// 1. By using `float: left`, the legend will behave like a block element.
// This way the border of a fieldset wraps around the legend if present.
// 2. Fix wrapping bug.
// See https://github.com/twbs/bootstrap/issues/29712

legend {
float: left; // 1
width: 100%;
padding: 0;
margin-bottom: $legend-margin-bottom;
@include font-size($legend-font-size);
font-weight: $legend-font-weight;
line-height: inherit;

+ * {
clear: left; // 2
}
}

// Fix height of inputs with a type of datetime-local, date, month, week, or time
// See https://github.com/twbs/bootstrap/issues/18842

::-webkit-datetime-edit-fields-wrapper,
::-webkit-datetime-edit-text,
::-webkit-datetime-edit-minute,
::-webkit-datetime-edit-hour-field,
::-webkit-datetime-edit-day-field,
::-webkit-datetime-edit-month-field,
::-webkit-datetime-edit-year-field {
padding: 0;
}

::-webkit-inner-spin-button {
height: auto;
}

// 1. Correct the outline style in Safari.
// 2. This overrides the extra rounded corners on search inputs in iOS so that our
// `.form-control` class can properly style them. Note that this cannot simply
// be added to `.form-control` as it's not specific enough. For details, see
// https://github.com/twbs/bootstrap/issues/11586.

[type="search"] {
outline-offset: -2px; // 1
-webkit-appearance: textfield; // 2
}

// 1. A few input types should stay LTR
// See https://rtlstyling.com/posts/rtl-styling#form-inputs
// 2. RTL only output
// See https://rtlcss.com/learn/usage-guide/control-directives/#raw

/* rtl:raw:
[type="tel"],
[type="url"],
[type="email"],
[type="number"] {
direction: ltr;
}
*/

// Remove the inner padding in Chrome and Safari on macOS.

::-webkit-search-decoration {
-webkit-appearance: none;
}

// Remove padding around color pickers in webkit browsers

::-webkit-color-swatch-wrapper {
padding: 0;
}


// Inherit font family and line height for file input buttons

::file-selector-button {
font: inherit;
}

// 1. Change font properties to `inherit`
// 2. Correct the inability to style clickable types in iOS and Safari.

::-webkit-file-upload-button {
font: inherit; // 1
-webkit-appearance: button; // 2
}

// Correct element displays

output {
display: inline-block;
}

// Remove border from iframe

iframe {
border: 0;
}

// Summary
//
// 1. Add the correct display in all browsers

summary {
display: list-item; // 1
cursor: pointer;
}


// Progress
//
// Add the correct vertical alignment in Chrome, Firefox, and Opera.

progress {
vertical-align: baseline;
}


// Hidden attribute
//
// Always hide an element with the `hidden` HTML attribute.

[hidden] {
display: none !important;
}

//
// Headings
//
.h1 {
@extend h1;
}

.h2 {
@extend h2;
}

.h3 {
@extend h3;
}

.h4 {
@extend h4;
}

.h5 {
@extend h5;
}

.h6 {
@extend h6;
}


.lead {
@include font-size($lead-font-size);
font-weight: $lead-font-weight;
}

// Type display classes
@each $display, $font-size in $display-font-sizes {
.display-#{$display} {
@include font-size($font-size);
font-weight: $display-font-weight;
line-height: $display-line-height;
}
}

//
// Emphasis
//
.small {
@extend small;
}

.mark {
@extend mark;
}

//
// Lists
//

.list-unstyled {
@include list-unstyled();
}

// Inline turns list items into inline-block
.list-inline {
@include list-unstyled();
}
.list-inline-item {
display: inline-block;

&:not(:last-child) {
margin-right: $list-inline-padding;
}
}


//
// Misc
//

// Builds on `abbr`
.initialism {
@include font-size($initialism-font-size);
text-transform: uppercase;
}

// Blockquotes
.blockquote {
margin-bottom: $blockquote-margin-y;
@include font-size($blockquote-font-size);

> :last-child {
margin-bottom: 0;
}
}

.blockquote-footer {
margin-top: -$blockquote-margin-y;
margin-bottom: $blockquote-margin-y;
@include font-size($blockquote-footer-font-size);
color: $blockquote-footer-color;

&::before {
content: "\2014\00A0"; // em dash, nbsp
}
}

// Responsive images (ensure images don't scale beyond their parents)
//
// This is purposefully opt-in via an explicit class rather than being the default for all ``s.
// We previously tried the "images are responsive by default" approach in Bootstrap v2,
// and abandoned it in Bootstrap v3 because it breaks lots of third-party widgets (including Google Maps)
// which weren't expecting the images within themselves to be involuntarily resized.
// See also https://github.com/twbs/bootstrap/issues/18178
.img-fluid {
@include img-fluid();
}


// Image thumbnails
.img-thumbnail {
padding: $thumbnail-padding;
background-color: $thumbnail-bg;
border: $thumbnail-border-width solid $thumbnail-border-color;
@include border-radius($thumbnail-border-radius);
@include box-shadow($thumbnail-box-shadow);

// Keep them at most 100% wide
@include img-fluid();
}

//
// Figures
//

.figure {
// Ensures the caption's text aligns with the image.
display: inline-block;
}

.figure-img {
margin-bottom: $spacer * .5;
line-height: 1;
}

.figure-caption {
@include font-size($figure-caption-font-size);
color: $figure-caption-color;
}

// Container widths
//
// Set the container width, and override it for fixed navbars in media queries.

@if $enable-grid-classes {
// Single container class with breakpoint max-widths
.container,
// 100% wide container at all breakpoints
.container-fluid {
@include make-container();
}

// Responsive containers that are 100% wide until a breakpoint
@each $breakpoint, $container-max-width in $container-max-widths {
.container-#{$breakpoint} {
@extend .container-fluid;
}

@include media-breakpoint-up($breakpoint, $grid-breakpoints) {
%responsive-container-#{$breakpoint} {
max-width: $container-max-width;
}

// Extend each breakpoint which is smaller or equal to the current breakpoint
$extend-breakpoint: true;

@each $name, $width in $grid-breakpoints {
@if ($extend-breakpoint) {
.container#{breakpoint-infix($name, $grid-breakpoints)} {
@extend %responsive-container-#{$breakpoint};
}

// Once the current breakpoint is reached, stop extending
@if ($breakpoint == $name) {
$extend-breakpoint: false;
}
}
}
}
}
}

// Row
//
// Rows contain your columns.

@if $enable-grid-classes {
.row {
@include make-row();

> * {
@include make-col-ready();
}
}
}

@if $enable-cssgrid {
.grid {
display: grid;
grid-template-rows: repeat(var(--#{$variable-prefix}rows, 1), 1fr);
grid-template-columns: repeat(var(--#{$variable-prefix}columns, #{$grid-columns}), 1fr);
gap: var(--#{$variable-prefix}gap, #{$grid-gutter-width});

@include make-cssgrid();
}
}


// Columns
//
// Common styles for small and large grid columns

@if $enable-grid-classes {
@include make-grid-columns();
}

//
// Basic Bootstrap table
//

.table {
--#{$variable-prefix}table-bg: #{$table-bg};
--#{$variable-prefix}table-accent-bg: #{$table-accent-bg};
--#{$variable-prefix}table-striped-color: #{$table-striped-color};
--#{$variable-prefix}table-striped-bg: #{$table-striped-bg};
--#{$variable-prefix}table-active-color: #{$table-active-color};
--#{$variable-prefix}table-active-bg: #{$table-active-bg};
--#{$variable-prefix}table-hover-color: #{$table-hover-color};
--#{$variable-prefix}table-hover-bg: #{$table-hover-bg};

width: 100%;
margin-bottom: $spacer;
color: $table-color;
vertical-align: $table-cell-vertical-align;
border-color: $table-border-color;

// Target th & td
// We need the child combinator to prevent styles leaking to nested tables which doesn't have a `.table` class.
// We use the universal selectors here to simplify the selector (else we would need 6 different selectors).
// Another advantage is that this generates less code and makes the selector less specific making it easier to override.
// stylelint-disable-next-line selector-max-universal
> :not(caption) > * > * {
padding: $table-cell-padding-y $table-cell-padding-x;
background-color: var(--#{$variable-prefix}table-bg);
border-bottom-width: $table-border-width;
box-shadow: inset 0 0 0 9999px var(--#{$variable-prefix}table-accent-bg);
}

> tbody {
vertical-align: inherit;
}

> thead {
vertical-align: bottom;
}

// Highlight border color between thead, tbody and tfoot.
> :not(:first-child) {
border-top: (2 * $table-border-width) solid $table-group-separator-color;
}
}


//
// Change placement of captions with a class
//

.caption-top {
caption-side: top;
}


//
// Condensed table w/ half padding
//

.table-sm {
// stylelint-disable-next-line selector-max-universal
> :not(caption) > * > * {
padding: $table-cell-padding-y-sm $table-cell-padding-x-sm;
}
}


// Border versions
//
// Add or remove borders all around the table and between all the columns.
//
// When borders are added on all sides of the cells, the corners can render odd when
// these borders do not have the same color or if they are semi-transparent.
// Therefor we add top and border bottoms to the `tr`s and left and right borders
// to the `td`s or `th`s

.table-bordered {
> :not(caption) > * {
border-width: $table-border-width 0;

// stylelint-disable-next-line selector-max-universal
> * {
border-width: 0 $table-border-width;
}
}
}

.table-borderless {
// stylelint-disable-next-line selector-max-universal
> :not(caption) > * > * {
border-bottom-width: 0;
}

> :not(:first-child) {
border-top-width: 0;
}
}

// Zebra-striping
//
// Default zebra-stripe styles (alternating gray and transparent backgrounds)

.table-striped {
> tbody > tr:nth-of-type(#{$table-striped-order}) > * {
--#{$variable-prefix}table-accent-bg: var(--#{$variable-prefix}table-striped-bg);
color: var(--#{$variable-prefix}table-striped-color);
}
}

// Active table
//
// The `.table-active` class can be added to highlight rows or cells

.table-active {
--#{$variable-prefix}table-accent-bg: var(--#{$variable-prefix}table-active-bg);
color: var(--#{$variable-prefix}table-active-color);
}

// Hover effect
//
// Placed here since it has to come after the potential zebra striping

.table-hover {
> tbody > tr:hover > * {
--#{$variable-prefix}table-accent-bg: var(--#{$variable-prefix}table-hover-bg);
color: var(--#{$variable-prefix}table-hover-color);
}
}


// Table variants
//
// Table variants set the table cell backgrounds, border colors
// and the colors of the striped, hovered & active tables

@each $color, $value in $table-variants {
@include table-variant($color, $value);
}

// Responsive tables
//
// Generate series of `.table-responsive-*` classes for configuring the screen
// size of where your table will overflow.

@each $breakpoint in map-keys($grid-breakpoints) {
$infix: breakpoint-infix($breakpoint, $grid-breakpoints);

@include media-breakpoint-down($breakpoint) {
.table-responsive#{$infix} {
overflow-x: auto;
-webkit-overflow-scrolling: touch;
}
}
}

//
// Labels
//

.form-label {
margin-bottom: $form-label-margin-bottom;
@include font-size($form-label-font-size);
font-style: $form-label-font-style;
font-weight: $form-label-font-weight;
color: $form-label-color;
}

// For use with horizontal and inline forms, when you need the label (or legend)
// text to align with the form controls.
.col-form-label {
padding-top: add($input-padding-y, $input-border-width);
padding-bottom: add($input-padding-y, $input-border-width);
margin-bottom: 0; // Override the `` default
@include font-size(inherit); // Override the `` default
font-style: $form-label-font-style;
font-weight: $form-label-font-weight;
line-height: $input-line-height;
color: $form-label-color;
}

.col-form-label-lg {
padding-top: add($input-padding-y-lg, $input-border-width);
padding-bottom: add($input-padding-y-lg, $input-border-width);
@include font-size($input-font-size-lg);
}

.col-form-label-sm {
padding-top: add($input-padding-y-sm, $input-border-width);
padding-bottom: add($input-padding-y-sm, $input-border-width);
@include font-size($input-font-size-sm);
}

//
// Form text
//

.form-text {
margin-top: $form-text-margin-top;
@include font-size($form-text-font-size);
font-style: $form-text-font-style;
font-weight: $form-text-font-weight;
color: $form-text-color;
}

//
// General form controls (plus a few specific high-level interventions)
//

.form-control {
display: block;
width: 100%;
padding: $input-padding-y $input-padding-x;
font-family: $input-font-family;
@include font-size($input-font-size);
font-weight: $input-font-weight;
line-height: $input-line-height;
color: $input-color;
background-color: $input-bg;
background-clip: padding-box;
border: $input-border-width solid $input-border-color;
appearance: none; // Fix appearance for date inputs in Safari

// Note: This has no effect on s in some browsers, due to the limited stylability of ``s in CSS.
@include border-radius($input-border-radius, 0);

@include box-shadow($input-box-shadow);
@include transition($input-transition);

&[type="file"] {
overflow: hidden; // prevent pseudo element button overlap

&:not(:disabled):not([readonly]) {
cursor: pointer;
}
}

// Customize the `:focus` state to imitate native WebKit styles.
&:focus {
color: $input-focus-color;
background-color: $input-focus-bg;
border-color: $input-focus-border-color;
outline: 0;
@if $enable-shadows {
@include box-shadow($input-box-shadow, $input-focus-box-shadow);
} @else {
// Avoid using mixin so we can pass custom focus shadow properly
box-shadow: $input-focus-box-shadow;
}
}

// Add some height to date inputs on iOS
// https://github.com/twbs/bootstrap/issues/23307
// TODO: we can remove this workaround once https://bugs.webkit.org/show_bug.cgi?id=198959 is resolved
&::-webkit-date-and-time-value {
// Multiply line-height by 1em if it has no unit
height: if(unit($input-line-height) == "", $input-line-height * 1em, $input-line-height);
}

// Placeholder
&::placeholder {
color: $input-placeholder-color;
// Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526.
opacity: 1;
}

// Disabled and read-only inputs
//
// HTML5 says that controls under a fieldset > legend:first-child won't be
// disabled if the fieldset is disabled. Due to implementation difficulty, we
// don't honor that edge case; we style them as disabled anyway.
&:disabled,
&[readonly] {
background-color: $input-disabled-bg;
border-color: $input-disabled-border-color;
// iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655.
opacity: 1;
}

// File input buttons theming
&::file-selector-button {
padding: $input-padding-y $input-padding-x;
margin: (-$input-padding-y) (-$input-padding-x);
margin-inline-end: $input-padding-x;
color: $form-file-button-color;
@include gradient-bg($form-file-button-bg);
pointer-events: none;
border-color: inherit;
border-style: solid;
border-width: 0;
border-inline-end-width: $input-border-width;
border-radius: 0; // stylelint-disable-line property-disallowed-list
@include transition($btn-transition);
}

&:hover:not(:disabled):not([readonly])::file-selector-button {
background-color: $form-file-button-hover-bg;
}

&::-webkit-file-upload-button {
padding: $input-padding-y $input-padding-x;
margin: (-$input-padding-y) (-$input-padding-x);
margin-inline-end: $input-padding-x;
color: $form-file-button-color;
@include gradient-bg($form-file-button-bg);
pointer-events: none;
border-color: inherit;
border-style: solid;
border-width: 0;
border-inline-end-width: $input-border-width;
border-radius: 0; // stylelint-disable-line property-disallowed-list
@include transition($btn-transition);
}

&:hover:not(:disabled):not([readonly])::-webkit-file-upload-button {
background-color: $form-file-button-hover-bg;
}
}

// Readonly controls as plain text
//
// Apply class to a readonly input to make it appear like regular plain
// text (without any border, background color, focus indicator)

.form-control-plaintext {
display: block;
width: 100%;
padding: $input-padding-y 0;
margin-bottom: 0; // match inputs if this class comes on inputs with default margins
line-height: $input-line-height;
color: $input-plaintext-color;
background-color: transparent;
border: solid transparent;
border-width: $input-border-width 0;

&.form-control-sm,
&.form-control-lg {
padding-right: 0;
padding-left: 0;
}
}

// Form control sizing
//
// Build on `.form-control` with modifier classes to decrease or increase the
// height and font-size of form controls.
//
// Repeated in `_input_group.scss` to avoid Sass extend issues.

.form-control-sm {
min-height: $input-height-sm;
padding: $input-padding-y-sm $input-padding-x-sm;
@include font-size($input-font-size-sm);
@include border-radius($input-border-radius-sm);

&::file-selector-button {
padding: $input-padding-y-sm $input-padding-x-sm;
margin: (-$input-padding-y-sm) (-$input-padding-x-sm);
margin-inline-end: $input-padding-x-sm;
}

&::-webkit-file-upload-button {
padding: $input-padding-y-sm $input-padding-x-sm;
margin: (-$input-padding-y-sm) (-$input-padding-x-sm);
margin-inline-end: $input-padding-x-sm;
}
}

.form-control-lg {
min-height: $input-height-lg;
padding: $input-padding-y-lg $input-padding-x-lg;
@include font-size($input-font-size-lg);
@include border-radius($input-border-radius-lg);

&::file-selector-button {
padding: $input-padding-y-lg $input-padding-x-lg;
margin: (-$input-padding-y-lg) (-$input-padding-x-lg);
margin-inline-end: $input-padding-x-lg;
}

&::-webkit-file-upload-button {
padding: $input-padding-y-lg $input-padding-x-lg;
margin: (-$input-padding-y-lg) (-$input-padding-x-lg);
margin-inline-end: $input-padding-x-lg;
}
}

// Make sure textareas don't shrink too much when resized
// https://github.com/twbs/bootstrap/pull/29124
// stylelint-disable selector-no-qualifying-type
textarea {
&.form-control {
min-height: $input-height;
}

&.form-control-sm {
min-height: $input-height-sm;
}

&.form-control-lg {
min-height: $input-height-lg;
}
}
// stylelint-enable selector-no-qualifying-type

.form-control-color {
width: $form-color-width;
height: auto; // Override fixed browser height
padding: $input-padding-y;

&:not(:disabled):not([readonly]) {
cursor: pointer;
}

&::-moz-color-swatch {
height: if(unit($input-line-height) == "", $input-line-height * 1em, $input-line-height);
@include border-radius($input-border-radius);
}

&::-webkit-color-swatch {
height: if(unit($input-line-height) == "", $input-line-height * 1em, $input-line-height);
@include border-radius($input-border-radius);
}
}

// Select
//
// Replaces the browser default select with a custom one, mostly pulled from
// https://primer.github.io/.

.form-select {
display: block;
width: 100%;
padding: $form-select-padding-y $form-select-indicator-padding $form-select-padding-y $form-select-padding-x;
// stylelint-disable-next-line property-no-vendor-prefix
-moz-padding-start: subtract($form-select-padding-x, 3px); // See https://github.com/twbs/bootstrap/issues/32636
font-family: $form-select-font-family;
@include font-size($form-select-font-size);
font-weight: $form-select-font-weight;
line-height: $form-select-line-height;
color: $form-select-color;
background-color: $form-select-bg;
background-image: escape-svg($form-select-indicator);
background-repeat: no-repeat;
background-position: $form-select-bg-position;
background-size: $form-select-bg-size;
border: $form-select-border-width solid $form-select-border-color;
@include border-radius($form-select-border-radius, 0);
@include box-shadow($form-select-box-shadow);
@include transition($form-select-transition);
appearance: none;

&:focus {
border-color: $form-select-focus-border-color;
outline: 0;
@if $enable-shadows {
@include box-shadow($form-select-box-shadow, $form-select-focus-box-shadow);
} @else {
// Avoid using mixin so we can pass custom focus shadow properly
box-shadow: $form-select-focus-box-shadow;
}
}

&[multiple],
&[size]:not([size="1"]) {
padding-right: $form-select-padding-x;
background-image: none;
}

&:disabled {
color: $form-select-disabled-color;
background-color: $form-select-disabled-bg;
border-color: $form-select-disabled-border-color;
}

// Remove outline from select box in FF
&:-moz-focusring {
color: transparent;
text-shadow: 0 0 0 $form-select-color;
}
}

.form-select-sm {
padding-top: $form-select-padding-y-sm;
padding-bottom: $form-select-padding-y-sm;
padding-left: $form-select-padding-x-sm;
@include font-size($form-select-font-size-sm);
@include border-radius($form-select-border-radius-sm);
}

.form-select-lg {
padding-top: $form-select-padding-y-lg;
padding-bottom: $form-select-padding-y-lg;
padding-left: $form-select-padding-x-lg;
@include font-size($form-select-font-size-lg);
@include border-radius($form-select-border-radius-lg);
}

//
// Check/radio
//

.form-check {
display: block;
min-height: $form-check-min-height;
padding-left: $form-check-padding-start;
margin-bottom: $form-check-margin-bottom;

.form-check-input {
float: left;
margin-left: $form-check-padding-start * -1;
}
}

.form-check-input {
width: $form-check-input-width;
height: $form-check-input-width;
margin-top: ($line-height-base - $form-check-input-width) * .5; // line-height minus check height
vertical-align: top;
background-color: $form-check-input-bg;
background-repeat: no-repeat;
background-position: center;
background-size: contain;
border: $form-check-input-border;
appearance: none;
color-adjust: exact; // Keep themed appearance for print
@include transition($form-check-transition);

&[type="checkbox"] {
@include border-radius($form-check-input-border-radius);
}

&[type="radio"] {
// stylelint-disable-next-line property-disallowed-list
border-radius: $form-check-radio-border-radius;
}

&:active {
filter: $form-check-input-active-filter;
}

&:focus {
border-color: $form-check-input-focus-border;
outline: 0;
box-shadow: $form-check-input-focus-box-shadow;
}

&:checked {
background-color: $form-check-input-checked-bg-color;
border-color: $form-check-input-checked-border-color;

&[type="checkbox"] {
@if $enable-gradients {
background-image: escape-svg($form-check-input-checked-bg-image), var(--#{$variable-prefix}gradient);
} @else {
background-image: escape-svg($form-check-input-checked-bg-image);
}
}

&[type="radio"] {
@if $enable-gradients {
background-image: escape-svg($form-check-radio-checked-bg-image), var(--#{$variable-prefix}gradient);
} @else {
background-image: escape-svg($form-check-radio-checked-bg-image);
}
}
}

&[type="checkbox"]:indeterminate {
background-color: $form-check-input-indeterminate-bg-color;
border-color: $form-check-input-indeterminate-border-color;

@if $enable-gradients {
background-image: escape-svg($form-check-input-indeterminate-bg-image), var(--#{$variable-prefix}gradient);
} @else {
background-image: escape-svg($form-check-input-indeterminate-bg-image);
}
}

&:disabled {
pointer-events: none;
filter: none;
opacity: $form-check-input-disabled-opacity;
}

// Use disabled attribute in addition of :disabled pseudo-class
// See: https://github.com/twbs/bootstrap/issues/28247
&[disabled],
&:disabled {
~ .form-check-label {
opacity: $form-check-label-disabled-opacity;
}
}
}

.form-check-label {
color: $form-check-label-color;
cursor: $form-check-label-cursor;
}

//
// Switch
//

.form-switch {
padding-left: $form-switch-padding-start;

.form-check-input {
width: $form-switch-width;
margin-left: $form-switch-padding-start * -1;
background-image: escape-svg($form-switch-bg-image);
background-position: left center;
@include border-radius($form-switch-border-radius);
@include transition($form-switch-transition);

&:focus {
background-image: escape-svg($form-switch-focus-bg-image);
}

&:checked {
background-position: $form-switch-checked-bg-position;

@if $enable-gradients {
background-image: escape-svg($form-switch-checked-bg-image), var(--#{$variable-prefix}gradient);
} @else {
background-image: escape-svg($form-switch-checked-bg-image);
}
}
}
}

.form-check-inline {
display: inline-block;
margin-right: $form-check-inline-margin-end;
}

.btn-check {
position: absolute;
clip: rect(0, 0, 0, 0);
pointer-events: none;

&[disabled],
&:disabled {
+ .btn {
pointer-events: none;
filter: none;
opacity: $form-check-btn-check-disabled-opacity;
}
}
}

// Range
//
// Style range inputs the same across browsers. Vendor-specific rules for pseudo
// elements cannot be mixed. As such, there are no shared styles for focus or
// active states on prefixed selectors.

.form-range {
width: 100%;
height: add($form-range-thumb-height, $form-range-thumb-focus-box-shadow-width * 2);
padding: 0; // Need to reset padding
background-color: transparent;
appearance: none;

&:focus {
outline: 0;

// Pseudo-elements must be split across multiple rulesets to have an effect.
// No box-shadow() mixin for focus accessibility.
&::-webkit-slider-thumb { box-shadow: $form-range-thumb-focus-box-shadow; }
&::-moz-range-thumb { box-shadow: $form-range-thumb-focus-box-shadow; }
}

&::-moz-focus-outer {
border: 0;
}

&::-webkit-slider-thumb {
width: $form-range-thumb-width;
height: $form-range-thumb-height;
margin-top: ($form-range-track-height - $form-range-thumb-height) * .5; // Webkit specific
@include gradient-bg($form-range-thumb-bg);
border: $form-range-thumb-border;
@include border-radius($form-range-thumb-border-radius);
@include box-shadow($form-range-thumb-box-shadow);
@include transition($form-range-thumb-transition);
appearance: none;

&:active {
@include gradient-bg($form-range-thumb-active-bg);
}
}

&::-webkit-slider-runnable-track {
width: $form-range-track-width;
height: $form-range-track-height;
color: transparent; // Why?
cursor: $form-range-track-cursor;
background-color: $form-range-track-bg;
border-color: transparent;
@include border-radius($form-range-track-border-radius);
@include box-shadow($form-range-track-box-shadow);
}

&::-moz-range-thumb {
width: $form-range-thumb-width;
height: $form-range-thumb-height;
@include gradient-bg($form-range-thumb-bg);
border: $form-range-thumb-border;
@include border-radius($form-range-thumb-border-radius);
@include box-shadow($form-range-thumb-box-shadow);
@include transition($form-range-thumb-transition);
appearance: none;

&:active {
@include gradient-bg($form-range-thumb-active-bg);
}
}

&::-moz-range-track {
width: $form-range-track-width;
height: $form-range-track-height;
color: transparent;
cursor: $form-range-track-cursor;
background-color: $form-range-track-bg;
border-color: transparent; // Firefox specific?
@include border-radius($form-range-track-border-radius);
@include box-shadow($form-range-track-box-shadow);
}

&:disabled {
pointer-events: none;

&::-webkit-slider-thumb {
background-color: $form-range-thumb-disabled-bg;
}

&::-moz-range-thumb {
background-color: $form-range-thumb-disabled-bg;
}
}
}

.form-floating {
position: relative;

> .form-control,
> .form-select {
height: $form-floating-height;
line-height: $form-floating-line-height;
}

> label {
position: absolute;
top: 0;
left: 0;
height: 100%; // allow textareas
padding: $form-floating-padding-y $form-floating-padding-x;
pointer-events: none;
border: $input-border-width solid transparent; // Required for aligning label's text with the input as it affects inner box model
transform-origin: 0 0;
@include transition($form-floating-transition);
}

// stylelint-disable no-duplicate-selectors
> .form-control {
padding: $form-floating-padding-y $form-floating-padding-x;

&::placeholder {
color: transparent;
}

&:focus,
&:not(:placeholder-shown) {
padding-top: $form-floating-input-padding-t;
padding-bottom: $form-floating-input-padding-b;
}
// Duplicated because `:-webkit-autofill` invalidates other selectors when grouped
&:-webkit-autofill {
padding-top: $form-floating-input-padding-t;
padding-bottom: $form-floating-input-padding-b;
}
}

> .form-select {
padding-top: $form-floating-input-padding-t;
padding-bottom: $form-floating-input-padding-b;
}

> .form-control:focus,
> .form-control:not(:placeholder-shown),
> .form-select {
~ label {
opacity: $form-floating-label-opacity;
transform: $form-floating-label-transform;
}
}
// Duplicated because `:-webkit-autofill` invalidates other selectors when grouped
> .form-control:-webkit-autofill {
~ label {
opacity: $form-floating-label-opacity;
transform: $form-floating-label-transform;
}
}
// stylelint-enable no-duplicate-selectors
}

//
// Base styles
//

.input-group {
position: relative;
display: flex;
flex-wrap: wrap; // For form validation feedback
align-items: stretch;
width: 100%;

> .form-control,
> .form-select {
position: relative; // For focus state's z-index
flex: 1 1 auto;
width: 1%;
min-width: 0; // https://stackoverflow.com/questions/36247140/why-dont-flex-items-shrink-past-content-size
}

// Bring the "active" form control to the top of surrounding elements
> .form-control:focus,
> .form-select:focus {
z-index: 3;
}

// Ensure buttons are always above inputs for more visually pleasing borders.
// This isn't needed for `.input-group-text` since it shares the same border-color
// as our inputs.
.btn {
position: relative;
z-index: 2;

&:focus {
z-index: 3;
}
}
}


// Textual addons
//
// Serves as a catch-all element for any text or radio/checkbox input you wish
// to prepend or append to an input.

.input-group-text {
display: flex;
align-items: center;
padding: $input-group-addon-padding-y $input-group-addon-padding-x;
@include font-size($input-font-size); // Match inputs
font-weight: $input-group-addon-font-weight;
line-height: $input-line-height;
color: $input-group-addon-color;
text-align: center;
white-space: nowrap;
background-color: $input-group-addon-bg;
border: $input-border-width solid $input-group-addon-border-color;
@include border-radius($input-border-radius);
}


// Sizing
//
// Remix the default form control sizing classes into new ones for easier
// manipulation.

.input-group-lg > .form-control,
.input-group-lg > .form-select,
.input-group-lg > .input-group-text,
.input-group-lg > .btn {
padding: $input-padding-y-lg $input-padding-x-lg;
@include font-size($input-font-size-lg);
@include border-radius($input-border-radius-lg);
}

.input-group-sm > .form-control,
.input-group-sm > .form-select,
.input-group-sm > .input-group-text,
.input-group-sm > .btn {
padding: $input-padding-y-sm $input-padding-x-sm;
@include font-size($input-font-size-sm);
@include border-radius($input-border-radius-sm);
}

.input-group-lg > .form-select,
.input-group-sm > .form-select {
padding-right: $form-select-padding-x + $form-select-indicator-padding;
}


// Rounded corners
//
// These rulesets must come after the sizing ones to properly override sm and lg
// border-radius values when extending. They're more specific than we'd like
// with the `.input-group >` part, but without it, we cannot override the sizing.

// stylelint-disable-next-line no-duplicate-selectors
.input-group {
&:not(.has-validation) {
> :not(:last-child):not(.dropdown-toggle):not(.dropdown-menu),
> .dropdown-toggle:nth-last-child(n + 3) {
@include border-end-radius(0);
}
}

&.has-validation {
> :nth-last-child(n + 3):not(.dropdown-toggle):not(.dropdown-menu),
> .dropdown-toggle:nth-last-child(n + 4) {
@include border-end-radius(0);
}
}

$validation-messages: "";
@each $state in map-keys($form-validation-states) {
$validation-messages: $validation-messages + ":not(." + unquote($state) + "-tooltip)" + ":not(." + unquote($state) + "-feedback)";
}

> :not(:first-child):not(.dropdown-menu)#{$validation-messages} {
margin-left: -$input-border-width;
@include border-start-radius(0);
}
}

// Form validation
//
// Provide feedback to users when form field values are valid or invalid. Works
// primarily for client-side validation via scoped `:invalid` and `:valid`
// pseudo-classes but also includes `.is-invalid` and `.is-valid` classes for
// server-side validation.

// scss-docs-start form-validation-states-loop
@each $state, $data in $form-validation-states {
@include form-validation-state($state, $data...);
}
// scss-docs-end form-validation-states-loop

//
// Base styles
//

.btn {
display: inline-block;
font-family: $btn-font-family;
font-weight: $btn-font-weight;
line-height: $btn-line-height;
color: $body-color;
text-align: center;
text-decoration: if($link-decoration == none, null, none);
white-space: $btn-white-space;
vertical-align: middle;
cursor: if($enable-button-pointers, pointer, null);
user-select: none;
background-color: transparent;
border: $btn-border-width solid transparent;
@include button-size($btn-padding-y, $btn-padding-x, $btn-font-size, $btn-border-radius);
@include transition($btn-transition);

&:hover {
color: $body-color;
text-decoration: if($link-hover-decoration == underline, none, null);
}

.btn-check:focus + &,
&:focus {
outline: 0;
box-shadow: $btn-focus-box-shadow;
}

.btn-check:checked + &,
.btn-check:active + &,
&:active,
&.active {
@include box-shadow($btn-active-box-shadow);

&:focus {
@include box-shadow($btn-focus-box-shadow, $btn-active-box-shadow);
}
}

&:disabled,
&.disabled,
fieldset:disabled & {
pointer-events: none;
opacity: $btn-disabled-opacity;
@include box-shadow(none);
}
}


//
// Alternate buttons
//

// scss-docs-start btn-variant-loops
@each $color, $value in $theme-colors {
.btn-#{$color} {
@include button-variant($value, $value);
}
}

@each $color, $value in $theme-colors {
.btn-outline-#{$color} {
@include button-outline-variant($value);
}
}
// scss-docs-end btn-variant-loops


//
// Link buttons
//

// Make a button look and behave like a link
.btn-link {
font-weight: $font-weight-normal;
color: $btn-link-color;
text-decoration: $link-decoration;

&:hover {
color: $btn-link-hover-color;
text-decoration: $link-hover-decoration;
}

&:focus {
text-decoration: $link-hover-decoration;
}

&:disabled,
&.disabled {
color: $btn-link-disabled-color;
}

// No need for an active state here
}


//
// Button Sizes
//

.btn-lg {
@include button-size($btn-padding-y-lg, $btn-padding-x-lg, $btn-font-size-lg, $btn-border-radius-lg);
}

.btn-sm {
@include button-size($btn-padding-y-sm, $btn-padding-x-sm, $btn-font-size-sm, $btn-border-radius-sm);
}

.fade {
@include transition($transition-fade);

&:not(.show) {
opacity: 0;
}
}

// scss-docs-start collapse-classes
.collapse {
&:not(.show) {
display: none;
}
}

.collapsing {
height: 0;
overflow: hidden;
@include transition($transition-collapse);

&.collapse-horizontal {
width: 0;
height: auto;
@include transition($transition-collapse-width);
}
}
// scss-docs-end collapse-classes

// The dropdown wrapper (``)
.dropup,
.dropend,
.dropdown,
.dropstart {
position: relative;
}

.dropdown-toggle {
white-space: nowrap;

// Generate the caret automatically
@include caret();
}

// The dropdown menu
.dropdown-menu {
position: absolute;
z-index: $zindex-dropdown;
display: none; // none by default, but block on "open" of the menu
min-width: $dropdown-min-width;
padding: $dropdown-padding-y $dropdown-padding-x;
margin: 0; // Override default margin of ul
@include font-size($dropdown-font-size);
color: $dropdown-color;
text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)
list-style: none;
background-color: $dropdown-bg;
background-clip: padding-box;
border: $dropdown-border-width solid $dropdown-border-color;
@include border-radius($dropdown-border-radius);
@include box-shadow($dropdown-box-shadow);

&[data-bs-popper] {
top: 100%;
left: 0;
margin-top: $dropdown-spacer;
}
}

// scss-docs-start responsive-breakpoints
// We deliberately hardcode the `bs-` prefix because we check
// this custom property in JS to determine Popper's positioning

@each $breakpoint in map-keys($grid-breakpoints) {
@include media-breakpoint-up($breakpoint) {
$infix: breakpoint-infix($breakpoint, $grid-breakpoints);

.dropdown-menu#{$infix}-start {
--bs-position: start;

&[data-bs-popper] {
right: auto;
left: 0;
}
}

.dropdown-menu#{$infix}-end {
--bs-position: end;

&[data-bs-popper] {
right: 0;
left: auto;
}
}
}
}
// scss-docs-end responsive-breakpoints

// Allow for dropdowns to go bottom up (aka, dropup-menu)
// Just add .dropup after the standard .dropdown class and you're set.
.dropup {
.dropdown-menu[data-bs-popper] {
top: auto;
bottom: 100%;
margin-top: 0;
margin-bottom: $dropdown-spacer;
}

.dropdown-toggle {
@include caret(up);
}
}

.dropend {
.dropdown-menu[data-bs-popper] {
top: 0;
right: auto;
left: 100%;
margin-top: 0;
margin-left: $dropdown-spacer;
}

.dropdown-toggle {
@include caret(end);
&::after {
vertical-align: 0;
}
}
}

.dropstart {
.dropdown-menu[data-bs-popper] {
top: 0;
right: 100%;
left: auto;
margin-top: 0;
margin-right: $dropdown-spacer;
}

.dropdown-toggle {
@include caret(start);
&::before {
vertical-align: 0;
}
}
}


// Dividers (basically an ``) within the dropdown
.dropdown-divider {
height: 0;
margin: $dropdown-divider-margin-y 0;
overflow: hidden;
border-top: 1px solid $dropdown-divider-bg;
}

// Links, buttons, and more within the dropdown menu
//
// ``-specific styles are denoted with `// For s`
.dropdown-item {
display: block;
width: 100%; // For ``s
padding: $dropdown-item-padding-y $dropdown-item-padding-x;
clear: both;
font-weight: $font-weight-normal;
color: $dropdown-link-color;
text-align: inherit; // For ``s
text-decoration: if($link-decoration == none, null, none);
white-space: nowrap; // prevent links from randomly breaking onto new lines
background-color: transparent; // For ``s
border: 0; // For ``s

// Prevent dropdown overflow if there's no padding
// See https://github.com/twbs/bootstrap/pull/27703
@if $dropdown-padding-y == 0 {
&:first-child {
@include border-top-radius($dropdown-inner-border-radius);
}

&:last-child {
@include border-bottom-radius($dropdown-inner-border-radius);
}
}

&:hover,
&:focus {
color: $dropdown-link-hover-color;
text-decoration: if($link-hover-decoration == underline, none, null);
@include gradient-bg($dropdown-link-hover-bg);
}

&.active,
&:active {
color: $dropdown-link-active-color;
text-decoration: none;
@include gradient-bg($dropdown-link-active-bg);
}

&.disabled,
&:disabled {
color: $dropdown-link-disabled-color;
pointer-events: none;
background-color: transparent;
// Remove CSS gradients if they're enabled
background-image: if($enable-gradients, none, null);
}
}

.dropdown-menu.show {
display: block;
}

// Dropdown section headers
.dropdown-header {
display: block;
padding: $dropdown-header-padding;
margin-bottom: 0; // for use with heading elements
@include font-size($font-size-sm);
color: $dropdown-header-color;
white-space: nowrap; // as with > li > a
}

// Dropdown text
.dropdown-item-text {
display: block;
padding: $dropdown-item-padding-y $dropdown-item-padding-x;
color: $dropdown-link-color;
}

// Dark dropdowns
.dropdown-menu-dark {
color: $dropdown-dark-color;
background-color: $dropdown-dark-bg;
border-color: $dropdown-dark-border-color;
@include box-shadow($dropdown-dark-box-shadow);

.dropdown-item {
color: $dropdown-dark-link-color;

&:hover,
&:focus {
color: $dropdown-dark-link-hover-color;
@include gradient-bg($dropdown-dark-link-hover-bg);
}

&.active,
&:active {
color: $dropdown-dark-link-active-color;
@include gradient-bg($dropdown-dark-link-active-bg);
}

&.disabled,
&:disabled {
color: $dropdown-dark-link-disabled-color;
}
}

.dropdown-divider {
border-color: $dropdown-dark-divider-bg;
}

.dropdown-item-text {
color: $dropdown-dark-link-color;
}

.dropdown-header {
color: $dropdown-dark-header-color;
}
}

// Make the div behave like a button
.btn-group,
.btn-group-vertical {
position: relative;
display: inline-flex;
vertical-align: middle; // match .btn alignment given font-size hack above

> .btn {
position: relative;
flex: 1 1 auto;
}

// Bring the hover, focused, and "active" buttons to the front to overlay
// the borders properly
> .btn-check:checked + .btn,
> .btn-check:focus + .btn,
> .btn:hover,
> .btn:focus,
> .btn:active,
> .btn.active {
z-index: 1;
}
}

// Optional: Group multiple button groups together for a toolbar
.btn-toolbar {
display: flex;
flex-wrap: wrap;
justify-content: flex-start;

.input-group {
width: auto;
}
}

.btn-group {
// Prevent double borders when buttons are next to each other
> .btn:not(:first-child),
> .btn-group:not(:first-child) {
margin-left: -$btn-border-width;
}

// Reset rounded corners
> .btn:not(:last-child):not(.dropdown-toggle),
> .btn-group:not(:last-child) > .btn {
@include border-end-radius(0);
}

// The left radius should be 0 if the button is:
// - the "third or more" child
// - the second child and the previous element isn't `.btn-check` (making it the first child visually)
// - part of a btn-group which isn't the first child
> .btn:nth-child(n + 3),
> :not(.btn-check) + .btn,
> .btn-group:not(:first-child) > .btn {
@include border-start-radius(0);
}
}

// Sizing
//
// Remix the default button sizing classes into new ones for easier manipulation.

.btn-group-sm > .btn { @extend .btn-sm; }
.btn-group-lg > .btn { @extend .btn-lg; }


//
// Split button dropdowns
//

.dropdown-toggle-split {
padding-right: $btn-padding-x * .75;
padding-left: $btn-padding-x * .75;

&::after,
.dropup &::after,
.dropend &::after {
margin-left: 0;
}

.dropstart &::before {
margin-right: 0;
}
}

.btn-sm + .dropdown-toggle-split {
padding-right: $btn-padding-x-sm * .75;
padding-left: $btn-padding-x-sm * .75;
}

.btn-lg + .dropdown-toggle-split {
padding-right: $btn-padding-x-lg * .75;
padding-left: $btn-padding-x-lg * .75;
}


// The clickable button for toggling the menu
// Set the same inset shadow as the :active state
.btn-group.show .dropdown-toggle {
@include box-shadow($btn-active-box-shadow);

// Show no shadow for `.btn-link` since it has no other button styles.
&.btn-link {
@include box-shadow(none);
}
}


//
// Vertical button groups
//

.btn-group-vertical {
flex-direction: column;
align-items: flex-start;
justify-content: center;

> .btn,
> .btn-group {
width: 100%;
}

> .btn:not(:first-child),
> .btn-group:not(:first-child) {
margin-top: -$btn-border-width;
}

// Reset rounded corners
> .btn:not(:last-child):not(.dropdown-toggle),
> .btn-group:not(:last-child) > .btn {
@include border-bottom-radius(0);
}

> .btn ~ .btn,
> .btn-group:not(:first-child) > .btn {
@include border-top-radius(0);
}
}

// Base class
//
// Kickstart any navigation component with a set of style resets. Works with
// ``s, ``s or ``s.

.nav {
display: flex;
flex-wrap: wrap;
padding-left: 0;
margin-bottom: 0;
list-style: none;
}

.nav-link {
display: block;
padding: $nav-link-padding-y $nav-link-padding-x;
@include font-size($nav-link-font-size);
font-weight: $nav-link-font-weight;
color: $nav-link-color;
text-decoration: if($link-decoration == none, null, none);
@include transition($nav-link-transition);

&:hover,
&:focus {
color: $nav-link-hover-color;
text-decoration: if($link-hover-decoration == underline, none, null);
}

// Disabled state lightens text
&.disabled {
color: $nav-link-disabled-color;
pointer-events: none;
cursor: default;
}
}

//
// Tabs
//

.nav-tabs {
border-bottom: $nav-tabs-border-width solid $nav-tabs-border-color;

.nav-link {
margin-bottom: -$nav-tabs-border-width;
background: none;
border: $nav-tabs-border-width solid transparent;
@include border-top-radius($nav-tabs-border-radius);

&:hover,
&:focus {
border-color: $nav-tabs-link-hover-border-color;
// Prevents active .nav-link tab overlapping focus outline of previous/next .nav-link
isolation: isolate;
}

&.disabled {
color: $nav-link-disabled-color;
background-color: transparent;
border-color: transparent;
}
}

.nav-link.active,
.nav-item.show .nav-link {
color: $nav-tabs-link-active-color;
background-color: $nav-tabs-link-active-bg;
border-color: $nav-tabs-link-active-border-color;
}

.dropdown-menu {
// Make dropdown border overlap tab border
margin-top: -$nav-tabs-border-width;
// Remove the top rounded corners here since there is a hard edge above the menu
@include border-top-radius(0);
}
}


//
// Pills
//

.nav-pills {
.nav-link {
background: none;
border: 0;
@include border-radius($nav-pills-border-radius);
}

.nav-link.active,
.show > .nav-link {
color: $nav-pills-link-active-color;
@include gradient-bg($nav-pills-link-active-bg);
}
}


//
// Justified variants
//

.nav-fill {
> .nav-link,
.nav-item {
flex: 1 1 auto;
text-align: center;
}
}

.nav-justified {
> .nav-link,
.nav-item {
flex-basis: 0;
flex-grow: 1;
text-align: center;
}
}

.nav-fill,
.nav-justified {
.nav-item .nav-link {
width: 100%; // Make sure button will grow
}
}


// Tabbable tabs
//
// Hide tabbable panes to start, show them when `.active`

.tab-content {
> .tab-pane {
display: none;
}
> .active {
display: block;
}
}

// Contents
//
// Navbar
// Navbar brand
// Navbar nav
// Navbar text
// Responsive navbar
// Navbar position
// Navbar themes


// Navbar
//
// Provide a static navbar from which we expand to create full-width, fixed, and
// other navbar variations.

.navbar {
position: relative;
display: flex;
flex-wrap: wrap; // allow us to do the line break for collapsing content
align-items: center;
justify-content: space-between; // space out brand from logo
padding-top: $navbar-padding-y;
padding-right: $navbar-padding-x; // default: null
padding-bottom: $navbar-padding-y;
padding-left: $navbar-padding-x; // default: null
@include gradient-bg();

// Because flex properties aren't inherited, we need to redeclare these first
// few properties so that content nested within behave properly.
// The `flex-wrap` property is inherited to simplify the expanded navbars
%container-flex-properties {
display: flex;
flex-wrap: inherit;
align-items: center;
justify-content: space-between;
}

> .container,
> .container-fluid {
@extend %container-flex-properties;
}

@each $breakpoint, $container-max-width in $container-max-widths {
> .container#{breakpoint-infix($breakpoint, $container-max-widths)} {
@extend %container-flex-properties;
}
}
}


// Navbar brand
//
// Used for brand, project, or site names.

.navbar-brand {
padding-top: $navbar-brand-padding-y;
padding-bottom: $navbar-brand-padding-y;
margin-right: $navbar-brand-margin-end;
@include font-size($navbar-brand-font-size);
text-decoration: if($link-decoration == none, null, none);
white-space: nowrap;

&:hover,
&:focus {
text-decoration: if($link-hover-decoration == underline, none, null);
}
}


// Navbar nav
//
// Custom navbar navigation (doesn't require `.nav`, but does make use of `.nav-link`).

.navbar-nav {
display: flex;
flex-direction: column; // cannot use `inherit` to get the `.navbar`s value
padding-left: 0;
margin-bottom: 0;
list-style: none;

.nav-link {
padding-right: 0;
padding-left: 0;
}

.dropdown-menu {
position: static;
}
}


// Navbar text
//
//

.navbar-text {
padding-top: $nav-link-padding-y;
padding-bottom: $nav-link-padding-y;
}


// Responsive navbar
//
// Custom styles for responsive collapsing and toggling of navbar contents.
// Powered by the collapse Bootstrap JavaScript plugin.

// When collapsed, prevent the toggleable navbar contents from appearing in
// the default flexbox row orientation. Requires the use of `flex-wrap: wrap`
// on the `.navbar` parent.
.navbar-collapse {
flex-basis: 100%;
flex-grow: 1;
// For always expanded or extra full navbars, ensure content aligns itself
// properly vertically. Can be easily overridden with flex utilities.
align-items: center;
}

// Button for toggling the navbar when in its collapsed state
.navbar-toggler {
padding: $navbar-toggler-padding-y $navbar-toggler-padding-x;
@include font-size($navbar-toggler-font-size);
line-height: 1;
background-color: transparent; // remove default button style
border: $border-width solid transparent; // remove default button style
@include border-radius($navbar-toggler-border-radius);
@include transition($navbar-toggler-transition);

&:hover {
text-decoration: none;
}

&:focus {
text-decoration: none;
outline: 0;
box-shadow: 0 0 0 $navbar-toggler-focus-width;
}
}

// Keep as a separate element so folks can easily override it with another icon
// or image file as needed.
.navbar-toggler-icon {
display: inline-block;
width: 1.5em;
height: 1.5em;
vertical-align: middle;
background-repeat: no-repeat;
background-position: center;
background-size: 100%;
}

.navbar-nav-scroll {
max-height: var(--#{$variable-prefix}scroll-height, 75vh);
overflow-y: auto;
}

// scss-docs-start navbar-expand-loop
// Generate series of `.navbar-expand-*` responsive classes for configuring
// where your navbar collapses.
.navbar-expand {
@each $breakpoint in map-keys($grid-breakpoints) {
$next: breakpoint-next($breakpoint, $grid-breakpoints);
$infix: breakpoint-infix($next, $grid-breakpoints);

// stylelint-disable-next-line scss/selector-no-union-class-name
&#{$infix} {
@include media-breakpoint-up($next) {
flex-wrap: nowrap;
justify-content: flex-start;

.navbar-nav {
flex-direction: row;

.dropdown-menu {
position: absolute;
}

.nav-link {
padding-right: $navbar-nav-link-padding-x;
padding-left: $navbar-nav-link-padding-x;
}
}

.navbar-nav-scroll {
overflow: visible;
}

.navbar-collapse {
display: flex !important; // stylelint-disable-line declaration-no-important
flex-basis: auto;
}

.navbar-toggler {
display: none;
}

.offcanvas-header {
display: none;
}

.offcanvas {
position: inherit;
bottom: 0;
z-index: 1000;
flex-grow: 1;
visibility: visible !important; // stylelint-disable-line declaration-no-important
background-color: transparent;
border-right: 0;
border-left: 0;
@include transition(none);
transform: none;
}
.offcanvas-top,
.offcanvas-bottom {
height: auto;
border-top: 0;
border-bottom: 0;
}

.offcanvas-body {
display: flex;
flex-grow: 0;
padding: 0;
overflow-y: visible;
}
}
}
}
}
// scss-docs-end navbar-expand-loop

// Navbar themes
//
// Styles for switching between navbars with light or dark background.

// Dark links against a light background
.navbar-light {
.navbar-brand {
color: $navbar-light-brand-color;

&:hover,
&:focus {
color: $navbar-light-brand-hover-color;
}
}

.navbar-nav {
.nav-link {
color: $navbar-light-color;

&:hover,
&:focus {
color: $navbar-light-hover-color;
}

&.disabled {
color: $navbar-light-disabled-color;
}
}

.show > .nav-link,
.nav-link.active {
color: $navbar-light-active-color;
}
}

.navbar-toggler {
color: $navbar-light-color;
border-color: $navbar-light-toggler-border-color;
}

.navbar-toggler-icon {
background-image: escape-svg($navbar-light-toggler-icon-bg);
}

.navbar-text {
color: $navbar-light-color;

a,
a:hover,
a:focus {
color: $navbar-light-active-color;
}
}
}

// White links against a dark background
.navbar-dark {
.navbar-brand {
color: $navbar-dark-brand-color;

&:hover,
&:focus {
color: $navbar-dark-brand-hover-color;
}
}

.navbar-nav {
.nav-link {
color: $navbar-dark-color;

&:hover,
&:focus {
color: $navbar-dark-hover-color;
}

&.disabled {
color: $navbar-dark-disabled-color;
}
}

.show > .nav-link,
.nav-link.active {
color: $navbar-dark-active-color;
}
}

.navbar-toggler {
color: $navbar-dark-color;
border-color: $navbar-dark-toggler-border-color;
}

.navbar-toggler-icon {
background-image: escape-svg($navbar-dark-toggler-icon-bg);
}

.navbar-text {
color: $navbar-dark-color;
a,
a:hover,
a:focus {
color: $navbar-dark-active-color;
}
}
}

//
// Base styles
//

.card {
position: relative;
display: flex;
flex-direction: column;
min-width: 0; // See https://github.com/twbs/bootstrap/pull/22740#issuecomment-305868106
height: $card-height;
word-wrap: break-word;
background-color: $card-bg;
background-clip: border-box;
border: $card-border-width solid $card-border-color;
@include border-radius($card-border-radius);
@include box-shadow($card-box-shadow);

> hr {
margin-right: 0;
margin-left: 0;
}

> .list-group {
border-top: inherit;
border-bottom: inherit;

&:first-child {
border-top-width: 0;
@include border-top-radius($card-inner-border-radius);
}

&:last-child {
border-bottom-width: 0;
@include border-bottom-radius($card-inner-border-radius);
}
}

// Due to specificity of the above selector (`.card > .list-group`), we must
// use a child selector here to prevent double borders.
> .card-header + .list-group,
> .list-group + .card-footer {
border-top: 0;
}
}

.card-body {
// Enable `flex-grow: 1` for decks and groups so that card blocks take up
// as much space as possible, ensuring footers are aligned to the bottom.
flex: 1 1 auto;
padding: $card-spacer-y $card-spacer-x;
color: $card-color;
}

.card-title {
margin-bottom: $card-title-spacer-y;
}

.card-subtitle {
margin-top: -$card-title-spacer-y * .5;
margin-bottom: 0;
}

.card-text:last-child {
margin-bottom: 0;
}

.card-link {
&:hover {
text-decoration: if($link-hover-decoration == underline, none, null);
}

+ .card-link {
margin-left: $card-spacer-x;
}
}

//
// Optional textual caps
//

.card-header {
padding: $card-cap-padding-y $card-cap-padding-x;
margin-bottom: 0; // Removes the default margin-bottom of
color: $card-cap-color;
background-color: $card-cap-bg;
border-bottom: $card-border-width solid $card-border-color;

&:first-child {
@include border-radius($card-inner-border-radius $card-inner-border-radius 0 0);
}
}

.card-footer {
padding: $card-cap-padding-y $card-cap-padding-x;
color: $card-cap-color;
background-color: $card-cap-bg;
border-top: $card-border-width solid $card-border-color;

&:last-child {
@include border-radius(0 0 $card-inner-border-radius $card-inner-border-radius);
}
}


//
// Header navs
//

.card-header-tabs {
margin-right: -$card-cap-padding-x * .5;
margin-bottom: -$card-cap-padding-y;
margin-left: -$card-cap-padding-x * .5;
border-bottom: 0;

@if $nav-tabs-link-active-bg != $card-bg {
.nav-link.active {
background-color: $card-bg;
border-bottom-color: $card-bg;
}
}
}

.card-header-pills {
margin-right: -$card-cap-padding-x * .5;
margin-left: -$card-cap-padding-x * .5;
}

// Card image
.card-img-overlay {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
padding: $card-img-overlay-padding;
@include border-radius($card-inner-border-radius);
}

.card-img,
.card-img-top,
.card-img-bottom {
width: 100%; // Required because we use flexbox and this inherently applies align-self: stretch
}

.card-img,
.card-img-top {
@include border-top-radius($card-inner-border-radius);
}

.card-img,
.card-img-bottom {
@include border-bottom-radius($card-inner-border-radius);
}


//
// Card groups
//

.card-group {
// The child selector allows nested `.card` within `.card-group`
// to display properly.
> .card {
margin-bottom: $card-group-margin;
}

@include media-breakpoint-up(sm) {
display: flex;
flex-flow: row wrap;
// The child selector allows nested `.card` within `.card-group`
// to display properly.
> .card {
// Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4
flex: 1 0 0%;
margin-bottom: 0;

+ .card {
margin-left: 0;
border-left: 0;
}

// Handle rounded corners
@if $enable-rounded {
&:not(:last-child) {
@include border-end-radius(0);

.card-img-top,
.card-header {
// stylelint-disable-next-line property-disallowed-list
border-top-right-radius: 0;
}
.card-img-bottom,
.card-footer {
// stylelint-disable-next-line property-disallowed-list
border-bottom-right-radius: 0;
}
}

&:not(:first-child) {
@include border-start-radius(0);

.card-img-top,
.card-header {
// stylelint-disable-next-line property-disallowed-list
border-top-left-radius: 0;
}
.card-img-bottom,
.card-footer {
// stylelint-disable-next-line property-disallowed-list
border-bottom-left-radius: 0;
}
}
}
}
}
}

//
// Base styles
//

.accordion-button {
position: relative;
display: flex;
align-items: center;
width: 100%;
padding: $accordion-button-padding-y $accordion-button-padding-x;
@include font-size($font-size-base);
color: $accordion-button-color;
text-align: left; // Reset button style
background-color: $accordion-button-bg;
border: 0;
@include border-radius(0);
overflow-anchor: none;
@include transition($accordion-transition);

&:not(.collapsed) {
color: $accordion-button-active-color;
background-color: $accordion-button-active-bg;
box-shadow: inset 0 ($accordion-border-width * -1) 0 $accordion-border-color;

&::after {
background-image: escape-svg($accordion-button-active-icon);
transform: $accordion-icon-transform;
}
}

// Accordion icon
&::after {
flex-shrink: 0;
width: $accordion-icon-width;
height: $accordion-icon-width;
margin-left: auto;
content: "";
background-image: escape-svg($accordion-button-icon);
background-repeat: no-repeat;
background-size: $accordion-icon-width;
@include transition($accordion-icon-transition);
}

&:hover {
z-index: 2;
}

&:focus {
z-index: 3;
border-color: $accordion-button-focus-border-color;
outline: 0;
box-shadow: $accordion-button-focus-box-shadow;
}
}

.accordion-header {
margin-bottom: 0;
}

.accordion-item {
background-color: $accordion-bg;
border: $accordion-border-width solid $accordion-border-color;

&:first-of-type {
@include border-top-radius($accordion-border-radius);

.accordion-button {
@include border-top-radius($accordion-inner-border-radius);
}
}

&:not(:first-of-type) {
border-top: 0;
}

// Only set a border-radius on the last item if the accordion is collapsed
&:last-of-type {
@include border-bottom-radius($accordion-border-radius);

.accordion-button {
&.collapsed {
@include border-bottom-radius($accordion-inner-border-radius);
}
}

.accordion-collapse {
@include border-bottom-radius($accordion-border-radius);
}
}
}

.accordion-body {
padding: $accordion-body-padding-y $accordion-body-padding-x;
}


// Flush accordion items
//
// Remove borders and border-radius to keep accordion items edge-to-edge.

.accordion-flush {
.accordion-collapse {
border-width: 0;
}

.accordion-item {
border-right: 0;
border-left: 0;
@include border-radius(0);

&:first-child { border-top: 0; }
&:last-child { border-bottom: 0; }

.accordion-button {
@include border-radius(0);
}
}
}

.breadcrumb {
display: flex;
flex-wrap: wrap;
padding: $breadcrumb-padding-y $breadcrumb-padding-x;
margin-bottom: $breadcrumb-margin-bottom;
@include font-size($breadcrumb-font-size);
list-style: none;
background-color: $breadcrumb-bg;
@include border-radius($breadcrumb-border-radius);
}

.breadcrumb-item {
// The separator between breadcrumbs (by default, a forward-slash: "/")
+ .breadcrumb-item {
padding-left: $breadcrumb-item-padding-x;

&::before {
float: left; // Suppress inline spacings and underlining of the separator
padding-right: $breadcrumb-item-padding-x;
color: $breadcrumb-divider-color;
content: var(--#{$variable-prefix}breadcrumb-divider, escape-svg($breadcrumb-divider)) #{"/* rtl:"} var(--#{$variable-prefix}breadcrumb-divider, escape-svg($breadcrumb-divider-flipped)) #{"*/"};
}
}

&.active {
color: $breadcrumb-active-color;
}
}

.pagination {
display: flex;
@include list-unstyled();
}

.page-link {
position: relative;
display: block;
color: $pagination-color;
text-decoration: if($link-decoration == none, null, none);
background-color: $pagination-bg;
border: $pagination-border-width solid $pagination-border-color;
@include transition($pagination-transition);

&:hover {
z-index: 2;
color: $pagination-hover-color;
text-decoration: if($link-hover-decoration == underline, none, null);
background-color: $pagination-hover-bg;
border-color: $pagination-hover-border-color;
}

&:focus {
z-index: 3;
color: $pagination-focus-color;
background-color: $pagination-focus-bg;
outline: $pagination-focus-outline;
box-shadow: $pagination-focus-box-shadow;
}
}

.page-item {
&:not(:first-child) .page-link {
margin-left: $pagination-margin-start;
}

&.active .page-link {
z-index: 3;
color: $pagination-active-color;
@include gradient-bg($pagination-active-bg);
border-color: $pagination-active-border-color;
}

&.disabled .page-link {
color: $pagination-disabled-color;
pointer-events: none;
background-color: $pagination-disabled-bg;
border-color: $pagination-disabled-border-color;
}
}


//
// Sizing
//
@include pagination-size($pagination-padding-y, $pagination-padding-x, null, $pagination-border-radius);

.pagination-lg {
@include pagination-size($pagination-padding-y-lg, $pagination-padding-x-lg, $font-size-lg, $pagination-border-radius-lg);
}

.pagination-sm {
@include pagination-size($pagination-padding-y-sm, $pagination-padding-x-sm, $font-size-sm, $pagination-border-radius-sm);
}

// Base class
//
// Requires one of the contextual, color modifier classes for `color` and
// `background-color`.

.badge {
display: inline-block;
padding: $badge-padding-y $badge-padding-x;
@include font-size($badge-font-size);
font-weight: $badge-font-weight;
line-height: 1;
color: $badge-color;
text-align: center;
white-space: nowrap;
vertical-align: baseline;
@include border-radius($badge-border-radius);
@include gradient-bg();

// Empty badges collapse automatically
&:empty {
display: none;
}
}

// Quick fix for badges in buttons
.btn .badge {
position: relative;
top: -1px;
}

//
// Base styles
//

.alert {
position: relative;
padding: $alert-padding-y $alert-padding-x;
margin-bottom: $alert-margin-bottom;
border: $alert-border-width solid transparent;
@include border-radius($alert-border-radius);
}

// Headings for larger alerts
.alert-heading {
// Specified to prevent conflicts of changing $headings-color
color: inherit;
}

// Provide class for links that match alerts
.alert-link {
font-weight: $alert-link-font-weight;
}


// Dismissible alerts
//
// Expand the right padding and account for the close button's positioning.

.alert-dismissible {
padding-right: $alert-dismissible-padding-r;

// Adjust close link position
.btn-close {
position: absolute;
top: 0;
right: 0;
z-index: $stretched-link-z-index + 1;
padding: $alert-padding-y * 1.25 $alert-padding-x;
}
}


// scss-docs-start alert-modifiers
// Generate contextual modifier classes for colorizing the alert.

@each $state, $value in $theme-colors {
$alert-background: shift-color($value, $alert-bg-scale);
$alert-border: shift-color($value, $alert-border-scale);
$alert-color: shift-color($value, $alert-color-scale);
@if (contrast-ratio($alert-background, $alert-color) , , or .

.list-group {
display: flex;
flex-direction: column;

// No need to set list-style: none; since .list-group-item is block level
padding-left: 0; // reset padding because ul and ol
margin-bottom: 0;
@include border-radius($list-group-border-radius);
}

.list-group-numbered {
list-style-type: none;
counter-reset: section;

> li::before {
// Increments only this instance of the section counter
content: counters(section, ".") ". ";
counter-increment: section;
}
}


// Interactive list items
//
// Use anchor or button elements instead of `li`s or `div`s to create interactive
// list items. Includes an extra `.active` modifier class for selected items.

.list-group-item-action {
width: 100%; // For ``s (anchors become 100% by default though)
color: $list-group-action-color;
text-align: inherit; // For ``s (anchors inherit)

// Hover state
&:hover,
&:focus {
z-index: 1; // Place hover/focus items above their siblings for proper border styling
color: $list-group-action-hover-color;
text-decoration: none;
background-color: $list-group-hover-bg;
}

&:active {
color: $list-group-action-active-color;
background-color: $list-group-action-active-bg;
}
}


// Individual list items
//
// Use on `li`s or `div`s within the `.list-group` parent.

.list-group-item {
position: relative;
display: block;
padding: $list-group-item-padding-y $list-group-item-padding-x;
color: $list-group-color;
text-decoration: if($link-decoration == none, null, none);
background-color: $list-group-bg;
border: $list-group-border-width solid $list-group-border-color;

&:first-child {
@include border-top-radius(inherit);
}

&:last-child {
@include border-bottom-radius(inherit);
}

&.disabled,
&:disabled {
color: $list-group-disabled-color;
pointer-events: none;
background-color: $list-group-disabled-bg;
}

// Include both here for ``s and ``s
&.active {
z-index: 2; // Place active items above their siblings for proper border styling
color: $list-group-active-color;
background-color: $list-group-active-bg;
border-color: $list-group-active-border-color;
}

& + & {
border-top-width: 0;

&.active {
margin-top: -$list-group-border-width;
border-top-width: $list-group-border-width;
}
}
}


// Horizontal
//
// Change the layout of list group items from vertical (default) to horizontal.

@each $breakpoint in map-keys($grid-breakpoints) {
@include media-breakpoint-up($breakpoint) {
$infix: breakpoint-infix($breakpoint, $grid-breakpoints);

.list-group-horizontal#{$infix} {
flex-direction: row;

> .list-group-item {
&:first-child {
@include border-bottom-start-radius($list-group-border-radius);
@include border-top-end-radius(0);
}

&:last-child {
@include border-top-end-radius($list-group-border-radius);
@include border-bottom-start-radius(0);
}

&.active {
margin-top: 0;
}

+ .list-group-item {
border-top-width: $list-group-border-width;
border-left-width: 0;

&.active {
margin-left: -$list-group-border-width;
border-left-width: $list-group-border-width;
}
}
}
}
}
}


// Flush list items
//
// Remove borders and border-radius to keep list group items edge-to-edge. Most
// useful within other components (e.g., cards).

.list-group-flush {
@include border-radius(0);

> .list-group-item {
border-width: 0 0 $list-group-border-width;

&:last-child {
border-bottom-width: 0;
}
}
}


// scss-docs-start list-group-modifiers
// List group contextual variants
//
// Add modifier classes to change text and background color on individual items.
// Organizationally, this must come after the `:hover` states.

@each $state, $value in $theme-colors {
$list-group-variant-bg: shift-color($value, $list-group-item-bg-scale);
$list-group-variant-color: shift-color($value, $list-group-item-color-scale);
@if (contrast-ratio($list-group-variant-bg, $list-group-variant-color) 's hover style
&:hover {
color: $btn-close-color;
text-decoration: none;
opacity: $btn-close-hover-opacity;
}

&:focus {
outline: 0;
box-shadow: $btn-close-focus-shadow;
opacity: $btn-close-focus-opacity;
}

&:disabled,
&.disabled {
pointer-events: none;
user-select: none;
opacity: $btn-close-disabled-opacity;
}
}

.btn-close-white {
filter: $btn-close-white-filter;
}

.toast {
width: $toast-max-width;
max-width: 100%;
@include font-size($toast-font-size);
color: $toast-color;
pointer-events: auto;
background-color: $toast-background-color;
background-clip: padding-box;
border: $toast-border-width solid $toast-border-color;
box-shadow: $toast-box-shadow;
@include border-radius($toast-border-radius);

&.showing {
opacity: 0;
}

&:not(.show) {
display: none;
}
}

.toast-container {
width: max-content;
max-width: 100%;
pointer-events: none;

> :not(:last-child) {
margin-bottom: $toast-spacing;
}
}

.toast-header {
display: flex;
align-items: center;
padding: $toast-padding-y $toast-padding-x;
color: $toast-header-color;
background-color: $toast-header-background-color;
background-clip: padding-box;
border-bottom: $toast-border-width solid $toast-header-border-color;
@include border-top-radius(subtract($toast-border-radius, $toast-border-width));

.btn-close {
margin-right: $toast-padding-x * -.5;
margin-left: $toast-padding-x;
}
}

.toast-body {
padding: $toast-padding-x; // apply to both vertical and horizontal
word-wrap: break-word;
}

// .modal-open - body class for killing the scroll
// .modal - container to scroll within
// .modal-dialog - positioning shell for the actual modal
// .modal-content - actual modal w/ bg and corners and stuff


// Container that the modal scrolls within
.modal {
position: fixed;
top: 0;
left: 0;
z-index: $zindex-modal;
display: none;
width: 100%;
height: 100%;
overflow-x: hidden;
overflow-y: auto;
// Prevent Chrome on Windows from adding a focus outline. For details, see
// https://github.com/twbs/bootstrap/pull/10951.
outline: 0;
// We deliberately don't use `-webkit-overflow-scrolling: touch;` due to a
// gnarly iOS Safari bug: https://bugs.webkit.org/show_bug.cgi?id=158342
// See also https://github.com/twbs/bootstrap/issues/17695
}

// Shell div to position the modal with bottom padding
.modal-dialog {
position: relative;
width: auto;
margin: $modal-dialog-margin;
// allow clicks to pass through for custom click handling to close modal
pointer-events: none;

// When fading in the modal, animate it to slide down
.modal.fade & {
@include transition($modal-transition);
transform: $modal-fade-transform;
}
.modal.show & {
transform: $modal-show-transform;
}

// When trying to close, animate focus to scale
.modal.modal-static & {
transform: $modal-scale-transform;
}
}

.modal-dialog-scrollable {
height: subtract(100%, $modal-dialog-margin * 2);

.modal-content {
max-height: 100%;
overflow: hidden;
}

.modal-body {
overflow-y: auto;
}
}

.modal-dialog-centered {
display: flex;
align-items: center;
min-height: subtract(100%, $modal-dialog-margin * 2);
}

// Actual modal
.modal-content {
position: relative;
display: flex;
flex-direction: column;
width: 100%; // Ensure `.modal-content` extends the full width of the parent `.modal-dialog`
// counteract the pointer-events: none; in the .modal-dialog
color: $modal-content-color;
pointer-events: auto;
background-color: $modal-content-bg;
background-clip: padding-box;
border: $modal-content-border-width solid $modal-content-border-color;
@include border-radius($modal-content-border-radius);
@include box-shadow($modal-content-box-shadow-xs);
// Remove focus outline from opened modal
outline: 0;
}

// Modal background
.modal-backdrop {
@include overlay-backdrop($zindex-modal-backdrop, $modal-backdrop-bg, $modal-backdrop-opacity);
}

// Modal header
// Top section of the modal w/ title and dismiss
.modal-header {
display: flex;
flex-shrink: 0;
align-items: center;
justify-content: space-between; // Put modal header elements (title and dismiss) on opposite ends
padding: $modal-header-padding;
border-bottom: $modal-header-border-width solid $modal-header-border-color;
@include border-top-radius($modal-content-inner-border-radius);

.btn-close {
padding: ($modal-header-padding-y * .5) ($modal-header-padding-x * .5);
margin: ($modal-header-padding-y * -.5) ($modal-header-padding-x * -.5) ($modal-header-padding-y * -.5) auto;
}
}

// Title text within header
.modal-title {
margin-bottom: 0;
line-height: $modal-title-line-height;
}

// Modal body
// Where all modal content resides (sibling of .modal-header and .modal-footer)
.modal-body {
position: relative;
// Enable `flex-grow: 1` so that the body take up as much space as possible
// when there should be a fixed height on `.modal-dialog`.
flex: 1 1 auto;
padding: $modal-inner-padding;
}

// Footer (for actions)
.modal-footer {
display: flex;
flex-wrap: wrap;
flex-shrink: 0;
align-items: center; // vertically center
justify-content: flex-end; // Right align buttons with flex property because text-align doesn't work on flex items
padding: $modal-inner-padding - $modal-footer-margin-between * .5;
border-top: $modal-footer-border-width solid $modal-footer-border-color;
@include border-bottom-radius($modal-content-inner-border-radius);

// Place margin between footer elements
// This solution is far from ideal because of the universal selector usage,
// but is needed to fix https://github.com/twbs/bootstrap/issues/24800
> * {
margin: $modal-footer-margin-between * .5;
}
}

// Scale up the modal
@include media-breakpoint-up(sm) {
// Automatically set modal's width for larger viewports
.modal-dialog {
max-width: $modal-md;
margin: $modal-dialog-margin-y-sm-up auto;
}

.modal-dialog-scrollable {
height: subtract(100%, $modal-dialog-margin-y-sm-up * 2);
}

.modal-dialog-centered {
min-height: subtract(100%, $modal-dialog-margin-y-sm-up * 2);
}

.modal-content {
@include box-shadow($modal-content-box-shadow-sm-up);
}

.modal-sm { max-width: $modal-sm; }
}

@include media-breakpoint-up(lg) {
.modal-lg,
.modal-xl {
max-width: $modal-lg;
}
}

@include media-breakpoint-up(xl) {
.modal-xl { max-width: $modal-xl; }
}

// scss-docs-start modal-fullscreen-loop
@each $breakpoint in map-keys($grid-breakpoints) {
$infix: breakpoint-infix($breakpoint, $grid-breakpoints);
$postfix: if($infix != "", $infix + "-down", "");

@include media-breakpoint-down($breakpoint) {
.modal-fullscreen#{$postfix} {
width: 100vw;
max-width: none;
height: 100%;
margin: 0;

.modal-content {
height: 100%;
border: 0;
@include border-radius(0);
}

.modal-header {
@include border-radius(0);
}

.modal-body {
overflow-y: auto;
}

.modal-footer {
@include border-radius(0);
}
}
}
}
// scss-docs-end modal-fullscreen-loop

// Base class
.tooltip {
position: absolute;
z-index: $zindex-tooltip;
display: block;
margin: $tooltip-margin;
// Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.
// So reset our font and text properties to avoid inheriting weird values.
@include reset-text();
@include font-size($tooltip-font-size);
// Allow breaking very long words so they don't overflow the tooltip's bounds
word-wrap: break-word;
opacity: 0;

&.show { opacity: $tooltip-opacity; }

.tooltip-arrow {
position: absolute;
display: block;
width: $tooltip-arrow-width;
height: $tooltip-arrow-height;

&::before {
position: absolute;
content: "";
border-color: transparent;
border-style: solid;
}
}
}

.bs-tooltip-top {
padding: $tooltip-arrow-height 0;

.tooltip-arrow {
bottom: 0;

&::before {
top: -1px;
border-width: $tooltip-arrow-height ($tooltip-arrow-width * .5) 0;
border-top-color: $tooltip-arrow-color;
}
}
}

.bs-tooltip-end {
padding: 0 $tooltip-arrow-height;

.tooltip-arrow {
left: 0;
width: $tooltip-arrow-height;
height: $tooltip-arrow-width;

&::before {
right: -1px;
border-width: ($tooltip-arrow-width * .5) $tooltip-arrow-height ($tooltip-arrow-width * .5) 0;
border-right-color: $tooltip-arrow-color;
}
}
}

.bs-tooltip-bottom {
padding: $tooltip-arrow-height 0;

.tooltip-arrow {
top: 0;

&::before {
bottom: -1px;
border-width: 0 ($tooltip-arrow-width * .5) $tooltip-arrow-height;
border-bottom-color: $tooltip-arrow-color;
}
}
}

.bs-tooltip-start {
padding: 0 $tooltip-arrow-height;

.tooltip-arrow {
right: 0;
width: $tooltip-arrow-height;
height: $tooltip-arrow-width;

&::before {
left: -1px;
border-width: ($tooltip-arrow-width * .5) 0 ($tooltip-arrow-width * .5) $tooltip-arrow-height;
border-left-color: $tooltip-arrow-color;
}
}
}

.bs-tooltip-auto {
&[data-popper-placement^="top"] {
@extend .bs-tooltip-top;
}
&[data-popper-placement^="right"] {
@extend .bs-tooltip-end;
}
&[data-popper-placement^="bottom"] {
@extend .bs-tooltip-bottom;
}
&[data-popper-placement^="left"] {
@extend .bs-tooltip-start;
}
}

// Wrapper for the tooltip content
.tooltip-inner {
max-width: $tooltip-max-width;
padding: $tooltip-padding-y $tooltip-padding-x;
color: $tooltip-color;
text-align: center;
background-color: $tooltip-bg;
@include border-radius($tooltip-border-radius);
}

.popover {
position: absolute;
top: 0;
left: 0 #{"/* rtl:ignore */"};
z-index: $zindex-popover;
display: block;
max-width: $popover-max-width;
// Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.
// So reset our font and text properties to avoid inheriting weird values.
@include reset-text();
@include font-size($popover-font-size);
// Allow breaking very long words so they don't overflow the popover's bounds
word-wrap: break-word;
background-color: $popover-bg;
background-clip: padding-box;
border: $popover-border-width solid $popover-border-color;
@include border-radius($popover-border-radius);
@include box-shadow($popover-box-shadow);

.popover-arrow {
position: absolute;
display: block;
width: $popover-arrow-width;
height: $popover-arrow-height;

&::before,
&::after {
position: absolute;
display: block;
content: "";
border-color: transparent;
border-style: solid;
}
}
}

.bs-popover-top {
> .popover-arrow {
bottom: subtract(-$popover-arrow-height, $popover-border-width);

&::before {
bottom: 0;
border-width: $popover-arrow-height ($popover-arrow-width * .5) 0;
border-top-color: $popover-arrow-outer-color;
}

&::after {
bottom: $popover-border-width;
border-width: $popover-arrow-height ($popover-arrow-width * .5) 0;
border-top-color: $popover-arrow-color;
}
}
}

.bs-popover-end {
> .popover-arrow {
left: subtract(-$popover-arrow-height, $popover-border-width);
width: $popover-arrow-height;
height: $popover-arrow-width;

&::before {
left: 0;
border-width: ($popover-arrow-width * .5) $popover-arrow-height ($popover-arrow-width * .5) 0;
border-right-color: $popover-arrow-outer-color;
}

&::after {
left: $popover-border-width;
border-width: ($popover-arrow-width * .5) $popover-arrow-height ($popover-arrow-width * .5) 0;
border-right-color: $popover-arrow-color;
}
}
}

.bs-popover-bottom {
> .popover-arrow {
top: subtract(-$popover-arrow-height, $popover-border-width);

&::before {
top: 0;
border-width: 0 ($popover-arrow-width * .5) $popover-arrow-height ($popover-arrow-width * .5);
border-bottom-color: $popover-arrow-outer-color;
}

&::after {
top: $popover-border-width;
border-width: 0 ($popover-arrow-width * .5) $popover-arrow-height ($popover-arrow-width * .5);
border-bottom-color: $popover-arrow-color;
}
}

// This will remove the popover-header's border just below the arrow
.popover-header::before {
position: absolute;
top: 0;
left: 50%;
display: block;
width: $popover-arrow-width;
margin-left: -$popover-arrow-width * .5;
content: "";
border-bottom: $popover-border-width solid $popover-header-bg;
}
}

.bs-popover-start {
> .popover-arrow {
right: subtract(-$popover-arrow-height, $popover-border-width);
width: $popover-arrow-height;
height: $popover-arrow-width;

&::before {
right: 0;
border-width: ($popover-arrow-width * .5) 0 ($popover-arrow-width * .5) $popover-arrow-height;
border-left-color: $popover-arrow-outer-color;
}

&::after {
right: $popover-border-width;
border-width: ($popover-arrow-width * .5) 0 ($popover-arrow-width * .5) $popover-arrow-height;
border-left-color: $popover-arrow-color;
}
}
}

.bs-popover-auto {
&[data-popper-placement^="top"] {
@extend .bs-popover-top;
}
&[data-popper-placement^="right"] {
@extend .bs-popover-end;
}
&[data-popper-placement^="bottom"] {
@extend .bs-popover-bottom;
}
&[data-popper-placement^="left"] {
@extend .bs-popover-start;
}
}

// Offset the popover to account for the popover arrow
.popover-header {
padding: $popover-header-padding-y $popover-header-padding-x;
margin-bottom: 0; // Reset the default from Reboot
@include font-size($font-size-base);
color: $popover-header-color;
background-color: $popover-header-bg;
border-bottom: $popover-border-width solid $popover-border-color;
@include border-top-radius($popover-inner-border-radius);

&:empty {
display: none;
}
}

.popover-body {
padding: $popover-body-padding-y $popover-body-padding-x;
color: $popover-body-color;
}

// Notes on the classes:
//
// 1. .carousel.pointer-event should ideally be pan-y (to allow for users to scroll vertically)
// even when their scroll action started on a carousel, but for compatibility (with Firefox)
// we're preventing all actions instead
// 2. The .carousel-item-start and .carousel-item-end is used to indicate where
// the active slide is heading.
// 3. .active.carousel-item is the current slide.
// 4. .active.carousel-item-start and .active.carousel-item-end is the current
// slide in its in-transition state. Only one of these occurs at a time.
// 5. .carousel-item-next.carousel-item-start and .carousel-item-prev.carousel-item-end
// is the upcoming slide in transition.

.carousel {
position: relative;
}

.carousel.pointer-event {
touch-action: pan-y;
}

.carousel-inner {
position: relative;
width: 100%;
overflow: hidden;
@include clearfix();
}

.carousel-item {
position: relative;
display: none;
float: left;
width: 100%;
margin-right: -100%;
backface-visibility: hidden;
@include transition($carousel-transition);
}

.carousel-item.active,
.carousel-item-next,
.carousel-item-prev {
display: block;
}

/* rtl:begin:ignore */
.carousel-item-next:not(.carousel-item-start),
.active.carousel-item-end {
transform: translateX(100%);
}

.carousel-item-prev:not(.carousel-item-end),
.active.carousel-item-start {
transform: translateX(-100%);
}

/* rtl:end:ignore */


//
// Alternate transitions
//

.carousel-fade {
.carousel-item {
opacity: 0;
transition-property: opacity;
transform: none;
}

.carousel-item.active,
.carousel-item-next.carousel-item-start,
.carousel-item-prev.carousel-item-end {
z-index: 1;
opacity: 1;
}

.active.carousel-item-start,
.active.carousel-item-end {
z-index: 0;
opacity: 0;
@include transition(opacity 0s $carousel-transition-duration);
}
}


//
// Left/right controls for nav
//

.carousel-control-prev,
.carousel-control-next {
position: absolute;
top: 0;
bottom: 0;
z-index: 1;
// Use flex for alignment (1-3)
display: flex; // 1. allow flex styles
align-items: center; // 2. vertically center contents
justify-content: center; // 3. horizontally center contents
width: $carousel-control-width;
padding: 0;
color: $carousel-control-color;
text-align: center;
background: none;
border: 0;
opacity: $carousel-control-opacity;
@include transition($carousel-control-transition);

// Hover/focus state
&:hover,
&:focus {
color: $carousel-control-color;
text-decoration: none;
outline: 0;
opacity: $carousel-control-hover-opacity;
}
}
.carousel-control-prev {
left: 0;
background-image: if($enable-gradients, linear-gradient(90deg, rgba($black, .25), rgba($black, .001)), null);
}
.carousel-control-next {
right: 0;
background-image: if($enable-gradients, linear-gradient(270deg, rgba($black, .25), rgba($black, .001)), null);
}

// Icons for within
.carousel-control-prev-icon,
.carousel-control-next-icon {
display: inline-block;
width: $carousel-control-icon-width;
height: $carousel-control-icon-width;
background-repeat: no-repeat;
background-position: 50%;
background-size: 100% 100%;
}

/* rtl:options: {
"autoRename": true,
"stringMap":[ {
"name" : "prev-next",
"search" : "prev",
"replace" : "next"
} ]
} */
.carousel-control-prev-icon {
background-image: escape-svg($carousel-control-prev-icon-bg);
}
.carousel-control-next-icon {
background-image: escape-svg($carousel-control-next-icon-bg);
}

// Optional indicator pips/controls
//
// Add a container (such as a list) with the following class and add an item (ideally a focusable control,
// like a button) with data-bs-target for each slide your carousel holds.

.carousel-indicators {
position: absolute;
right: 0;
bottom: 0;
left: 0;
z-index: 2;
display: flex;
justify-content: center;
padding: 0;
// Use the .carousel-control's width as margin so we don't overlay those
margin-right: $carousel-control-width;
margin-bottom: 1rem;
margin-left: $carousel-control-width;
list-style: none;

[data-bs-target] {
box-sizing: content-box;
flex: 0 1 auto;
width: $carousel-indicator-width;
height: $carousel-indicator-height;
padding: 0;
margin-right: $carousel-indicator-spacer;
margin-left: $carousel-indicator-spacer;
text-indent: -999px;
cursor: pointer;
background-color: $carousel-indicator-active-bg;
background-clip: padding-box;
border: 0;
// Use transparent borders to increase the hit area by 10px on top and bottom.
border-top: $carousel-indicator-hit-area-height solid transparent;
border-bottom: $carousel-indicator-hit-area-height solid transparent;
opacity: $carousel-indicator-opacity;
@include transition($carousel-indicator-transition);
}

.active {
opacity: $carousel-indicator-active-opacity;
}
}


// Optional captions
//
//

.carousel-caption {
position: absolute;
right: (100% - $carousel-caption-width) * .5;
bottom: $carousel-caption-spacer;
left: (100% - $carousel-caption-width) * .5;
padding-top: $carousel-caption-padding-y;
padding-bottom: $carousel-caption-padding-y;
color: $carousel-caption-color;
text-align: center;
}

// Dark mode carousel

.carousel-dark {
.carousel-control-prev-icon,
.carousel-control-next-icon {
filter: $carousel-dark-control-icon-filter;
}

.carousel-indicators [data-bs-target] {
background-color: $carousel-dark-indicator-active-bg;
}

.carousel-caption {
color: $carousel-dark-caption-color;
}
}

//
// Rotating border
//

// scss-docs-start spinner-border-keyframes
@keyframes spinner-border {
to { transform: rotate(360deg) #{"/* rtl:ignore */"}; }
}
// scss-docs-end spinner-border-keyframes

.spinner-border {
display: inline-block;
width: $spinner-width;
height: $spinner-height;
vertical-align: $spinner-vertical-align;
border: $spinner-border-width solid currentColor;
border-right-color: transparent;
// stylelint-disable-next-line property-disallowed-list
border-radius: 50%;
animation: $spinner-animation-speed linear infinite spinner-border;
}

.spinner-border-sm {
width: $spinner-width-sm;
height: $spinner-height-sm;
border-width: $spinner-border-width-sm;
}

//
// Growing circle
//

// scss-docs-start spinner-grow-keyframes
@keyframes spinner-grow {
0% {
transform: scale(0);
}
50% {
opacity: 1;
transform: none;
}
}
// scss-docs-end spinner-grow-keyframes

.spinner-grow {
display: inline-block;
width: $spinner-width;
height: $spinner-height;
vertical-align: $spinner-vertical-align;
background-color: currentColor;
// stylelint-disable-next-line property-disallowed-list
border-radius: 50%;
opacity: 0;
animation: $spinner-animation-speed linear infinite spinner-grow;
}

.spinner-grow-sm {
width: $spinner-width-sm;
height: $spinner-height-sm;
}

@if $enable-reduced-motion {
@media (prefers-reduced-motion: reduce) {
.spinner-border,
.spinner-grow {
animation-duration: $spinner-animation-speed * 2;
}
}
}

.offcanvas {
position: fixed;
bottom: 0;
z-index: $zindex-offcanvas;
display: flex;
flex-direction: column;
max-width: 100%;
color: $offcanvas-color;
visibility: hidden;
background-color: $offcanvas-bg-color;
background-clip: padding-box;
outline: 0;
@include box-shadow($offcanvas-box-shadow);
@include transition(transform $offcanvas-transition-duration ease-in-out);
}

.offcanvas-backdrop {
@include overlay-backdrop($zindex-offcanvas-backdrop, $offcanvas-backdrop-bg, $offcanvas-backdrop-opacity);
}

.offcanvas-header {
display: flex;
align-items: center;
justify-content: space-between;
padding: $offcanvas-padding-y $offcanvas-padding-x;

.btn-close {
padding: ($offcanvas-padding-y * .5) ($offcanvas-padding-x * .5);
margin-top: $offcanvas-padding-y * -.5;
margin-right: $offcanvas-padding-x * -.5;
margin-bottom: $offcanvas-padding-y * -.5;
}
}

.offcanvas-title {
margin-bottom: 0;
line-height: $offcanvas-title-line-height;
}

.offcanvas-body {
flex-grow: 1;
padding: $offcanvas-padding-y $offcanvas-padding-x;
overflow-y: auto;
}

.offcanvas-start {
top: 0;
left: 0;
width: $offcanvas-horizontal-width;
border-right: $offcanvas-border-width solid $offcanvas-border-color;
transform: translateX(-100%);
}

.offcanvas-end {
top: 0;
right: 0;
width: $offcanvas-horizontal-width;
border-left: $offcanvas-border-width solid $offcanvas-border-color;
transform: translateX(100%);
}

.offcanvas-top {
top: 0;
right: 0;
left: 0;
height: $offcanvas-vertical-height;
max-height: 100%;
border-bottom: $offcanvas-border-width solid $offcanvas-border-color;
transform: translateY(-100%);
}

.offcanvas-bottom {
right: 0;
left: 0;
height: $offcanvas-vertical-height;
max-height: 100%;
border-top: $offcanvas-border-width solid $offcanvas-border-color;
transform: translateY(100%);
}

.offcanvas.show {
transform: none;
}

.placeholder {
display: inline-block;
min-height: 1em;
vertical-align: middle;
cursor: wait;
background-color: currentColor;
opacity: $placeholder-opacity-max;

&.btn::before {
display: inline-block;
content: "";
}
}

// Sizing
.placeholder-xs {
min-height: .6em;
}

.placeholder-sm {
min-height: .8em;
}

.placeholder-lg {
min-height: 1.2em;
}

// Animation
.placeholder-glow {
.placeholder {
animation: placeholder-glow 2s ease-in-out infinite;
}
}

@keyframes placeholder-glow {
50% {
opacity: $placeholder-opacity-min;
}
}

.placeholder-wave {
mask-image: linear-gradient(130deg, $black 55%, rgba(0, 0, 0, (1 - $placeholder-opacity-min)) 75%, $black 95%);
mask-size: 200% 100%;
animation: placeholder-wave 2s linear infinite;
}

@keyframes placeholder-wave {
100% {
mask-position: -200% 0%;
}
}

.clearfix {
@include clearfix();
}

@each $color, $value in $theme-colors {
.link-#{$color} {
color: $value;

@if $link-shade-percentage != 0 {
&:hover,
&:focus {
color: if(color-contrast($value) == $color-contrast-light, shade-color($value, $link-shade-percentage), tint-color($value, $link-shade-percentage));
}
}
}
}

// Credit: Nicolas Gallagher and SUIT CSS.

.ratio {
position: relative;
width: 100%;

&::before {
display: block;
padding-top: var(--#{$variable-prefix}aspect-ratio);
content: "";
}

> * {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
}

@each $key, $ratio in $aspect-ratios {
.ratio-#{$key} {
--#{$variable-prefix}aspect-ratio: #{$ratio};
}
}

// Shorthand

.fixed-top {
position: fixed;
top: 0;
right: 0;
left: 0;
z-index: $zindex-fixed;
}

.fixed-bottom {
position: fixed;
right: 0;
bottom: 0;
left: 0;
z-index: $zindex-fixed;
}

// Responsive sticky top
@each $breakpoint in map-keys($grid-breakpoints) {
@include media-breakpoint-up($breakpoint) {
$infix: breakpoint-infix($breakpoint, $grid-breakpoints);

.sticky#{$infix}-top {
position: sticky;
top: 0;
z-index: $zindex-sticky;
}
}
}

// scss-docs-start stacks
.hstack {
display: flex;
flex-direction: row;
align-items: center;
align-self: stretch;
}

.vstack {
display: flex;
flex: 1 1 auto;
flex-direction: column;
align-self: stretch;
}
// scss-docs-end stacks

//
// Visually hidden
//

.visually-hidden,
.visually-hidden-focusable:not(:focus):not(:focus-within) {
@include visually-hidden();
}

//
// Stretched link
//

.stretched-link {
&::#{$stretched-link-pseudo-element} {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: $stretched-link-z-index;
content: "";
}
}

//
// Text truncation
//

.text-truncate {
@include text-truncate();
}

.vr {
display: inline-block;
align-self: stretch;
width: 1px;
min-height: 1em;
background-color: currentColor;
opacity: $hr-opacity;
}

// Loop over each breakpoint
@each $breakpoint in map-keys($grid-breakpoints) {

// Generate media query if needed
@include media-breakpoint-up($breakpoint) {
$infix: breakpoint-infix($breakpoint, $grid-breakpoints);

// Loop over each utility property
@each $key, $utility in $utilities {
// The utility can be disabled with `false`, thus check if the utility is a map first
// Only proceed if responsive media queries are enabled or if it's the base media query
@if type-of($utility) == "map" and (map-get($utility, responsive) or $infix == "") {
@include generate-utility($utility, $infix);
}
}
}
}

// RFS rescaling
@media (min-width: $rfs-mq-value) {
@each $breakpoint in map-keys($grid-breakpoints) {
$infix: breakpoint-infix($breakpoint, $grid-breakpoints);

@if (map-get($grid-breakpoints, $breakpoint) .d0-card-header-title > .card-title {
// font-size: $h2-font-size;
// color: $headings-color;
// }
// .bar-bottom .d0-card-header > .d0-card-header-title > .card-title {
// font-size: $h3-font-size;
// color: $headings-color;
// }
//}

.titled-view > .d0-card-header {
min-height: 1.5em;
}

/* links to create missing cards */

a.unknown-link {
color: $text-muted;
.card-title {
font-variant: small-caps;
}
&:hover {
color: $primary;
}
}



$credit_color: $primary !default;

.SELF-Xlogo.content_panel-view,
.SELF-Xcredit.content_panel-view {
text-align: center;
background: $white;
img {
max-width: 100%;
}
a {
color: $credit_color;
}
}

// TODO: make classes clearer (reference logo)

[id^='svg-card-'] use{ // all cards
fill: $primary;
}

[id^='svg-card-']:nth-child(even) use { // even cards
fill: $light;
}




/*---------- Card menu ------------*/

.card-menu {
position: absolute;
right: 8px;
top: 5px;
}

.d0-card-content, .titled-view > .d0-card-header {
> .card-menu {
top: 0;
}
}

.d0-card-content .card-menu i {
font-size: 1.2em
}

.modal-menu, .overlay-menu {
a {
color: $text-muted !important;
opacity: 0.6 !important;
&:hover {
opacity: 1 !important;
}
}
}


@include media-breakpoint-up(xs) {
// Hover over these, and only the card menus that are immediate children will appear
.card-slot > .d0-card-frame > .d0-card-header,
.card-slot > .d0-card-header,
.card-slot.labeled-view > .labeled-content > .d0-card-body,
.card-slot,
.card > .card-body,
.card > .card-header {
> .card-menu._show-on-hover > a {
display: none;
}
&:hover > .card-menu._show-on-hover > a {
display: inline-block;
}
}

// Hover over this one, and ANY card-menu inside will appear
.card-menu-hoverspace {
.card-menu._show-on-hover > a {
display: none;
}
&:hover .card-menu._show-on-hover > a {
display: inline-block;
}
}
}

/*-------------------- */
/*- ERRORS / NOTICES - */
/*-------------------- */

/* TODO: following should be consolidated / simplified */

.card-notice,
.new-current-revision-id,
.confirm_update_all-view,
._template,
.admin-error-message {
display: none
}

.exception p {
margin: 15px;
}

.card-notice {
background: $white;
font-weight: bold;
font-style: italic;
text-align: center;
margin: 0 0 4px 0;

.card-error-msg {
text-align: left;
}
}

.conflict-view {
text-align: left;
border: 1px solid $gray-400;
padding: 10px;
margin-top: 12px;
}

.name-editor.known-name input {
border: 3px solid $danger;
}
.name-messages {
font-style: italic;
background: $info;
}

.alert {
&.guide {
margin-left: 20px;
width: 40%;
}
}
.alert-heading.error {
margin-bottom: 30px;
}

/*-------- Help Texts --------*/
.alert-info p:last-child {
margin-bottom: 0;
}

/*-- misc --*/

.TYPE-toggle.d0-card-content {
font-style: italic;
}

// TODO: use mixin
pre,
.TYPE-plain_text.d0-card-content,
.SELF-Xhead.d0-card-content {
white-space: pre-wrap; /* css-3 */
white-space: -moz-pre-wrap; /* Mozilla, since 1999 */
white-space: -pre-wrap; /* Opera 4-6 */
white-space: -o-pre-wrap; /* Opera 7 */
word-wrap: break-word; /* Internet Explorer 5.5+ */
}
.unknown-view a {
display: inline;
}

.VIEW-type {
font-style: italic;
font-size: .85em;
}

.one-line {
text-overflow: ellipsis;
white-space: nowrap;
overflow-x: hidden;
}

.labeled-view:hover .card-menu {
display: inline-block;
}


.labeled-view {
padding: 5px 0;
max-width: 100%;
.label {
font-weight: bold;
}
.labeled-content {
.pointer-list,
.pointer-item,
.search-result-list,
.search-result-item {
font-size: 1em;
padding: 0;
text-indent: 0;
}
}
}

.btn-reduced-padding {
padding: 0.1rem 0.2rem;
}

/*-------- Icon Helpers --------*/

/* Material icon placement */
.material-icons {
vertical-align: sub;
//font-size: medium;
}

//a.external-link {
// // color: $warning;
// &:after {
// content: "\f360";
// font-weight: 900;
// right: -2px;
// position: relative;
// bottom: 4px;
// font-family: fontAwesome;
// font-size: 8px;
// text-decoration: none !important;
// display: inline;
// }
//}
//
//a.external-link,
//.closed-content a.external-link {
// padding-right: 2px !important;
//}


.d0-card-frame .toggler {
display: inline-block;
position: relative;
}

.closed-view {
position: relative;
> .d0-card-frame {
white-space: nowrap;
//padding-right: 30px;
overflow: hidden;
text-overflow: ellipsis;
position: static;
width:100%;
> .d0-card-header{
// float: left;
}
}

.d0-card-frame {
display: inline-block;
}
}
.closed-content {
margin-top: 2px;
white-space: nowrap;
text-overflow: ellipsis;
padding: 10px;

table, thead, tbody, tr, th, td, p, h1, h2, h3, h4, h5, h6, ul, li, pre, ol, div, span, a, blockquote, img, label, i {
display: inline;
white-space: nowrap;
float: none;
}
br, hr, input, textarea, object, :after, :before {
display: none;
}
}


.closed-view.panel {
margin: 0;
width: 100%;
}
.closed-content {
table, tbody, tr, th, td, p, h1, h2, h3, h4, h5, h6, ul, li, pre, ol, div, span, a, blockquote, img {
font-size: 1em;
margin: 0 6px 0 0;
padding: 0;
border: 0;
}
a {
margin: 0;
}
img {
max-height: 1em;
width: auto;
}
}

.toggler > i.material-icons{
color: $black;
font-size: 15px;
font-weight: bolder!important;
border: 2px solid $black;
border-radius: 3px;
margin-right: 3px;
}

ul.pointer {
margin: 0;
padding: 0;
}

.pointer-list-editor {
margin: 0px;
padding: 0px;
li {
list-style: none;
white-space: nowrap;
}

.input-group-btn {
.btn {
border-bottom-width: 1px;
}
}

._pointer-item-add {
margin-top: 10px;
}

.input-group-addon.handle {
padding-left: 1px;
padding-right: 1px;

.glyphicon-option-vertical.left {
margin-right: -7px;
}
.glyphicon-option-vertical.right {
margin-left: -7px;
}
}
}

/*---------- ( Link list )-------------*/

.group-text-middle {
border-left: none;
border-right: none;
}

.group-text-left {
border-right: none;
}

.group-text-right {
border-left: none;
}


/*---------- ( Nest list editor )-------------*/

.input-nest-syntax {
background-color: $input-bg;
font-weight: 200;
font-size: 1.3rem;
padding-top: 0.1rem;
padding-bottom: 0.1rem;
}

.nest-form-header .input-group {
height: 2rem;

.input-group-text {
visibility: hidden;
}
}

.one-line-pointer-list {
div.pointer-item {
display: inline-block
}
}

/*-------------------- */
/*- SEARCH & POINTER - */
/*-------------------- */

// TODO: use shared class for pointers and searches

div.pointer-list,
div.search-result-list {
list-style: none;
padding: 5px 0;
margin: 0;
.closed-view > .d0-card-frame {
margin-bottom: 0;
}
}
div.pointer-list .pointer-item,
div.search-result-list .search-result-item {
margin: 0;
}
.search-result-item.item-link,
.pointer-item.item-link,
.search-result-item.item-name,
.pointer-item.item-name {
text-indent: -15px;
padding-left: 15px;
}

.perm-editor {
margin-left: 40px;
}

.perm-section {
margin-bottom: 20px;
}
.perm-section h5 {
margin: 0 0 10px 0;
}


/* Help text */
.help-text {
color: $text-muted
}

.nav-pills .nav-link.active .help-text {
color: lighten($primary, 40%);
}


.d0-search-box {
width: 100%;
}

.search-keyword {
font-style: italic;
}

.search-count {
float: right;
color: $gray-600;
}

.closed-content .search-no-results:after {
content:'';
}

/* english content in css. ugh */
.search-no-results:after {
content:'0 results';
}

.search-box-nav {
flex: 1 0 50%;
.search-box-form {
width: 100%;
}
.select2-results > .select2-results__options {
max-height: none !important;
}
.select2-search__field {
width: 100% !important;
}
}

.search-box-item-label {
float: left;
position: relative;
font-size: 10px;
width: 50px;
padding: 3px 0 3px 5px;
}
.search-box-item-value mark {
padding: 0.2em 0;
}

.ui-autocomplete {
z-index: 2000 !important; // to move it in front of modals (= 1050)
.ui-menu-item-wrapper {
display: block;
}
}

.autocomplete-item {
display: flex;
margin: 0.4em 0;
.autocomplete-icon {
width: 30px;
margin-right: 1em;
text-align: center;
img, svg {
max-width: 100% !important;
max-height: 100% !important;
min-width: auto !important;
min-height: auto !important;
}
}
}

/*-------------------------- */
/*- SETS, SETTINGS, RULES - */
/*-------------------------- */

.setting-klass,
.rule-setting {
font-weight: bold;
}

.rule-set {
white-space: nowrap;
}

.closed-rule {
height: 30px;
.rule-content {
width: 350px;
}
}

.rule-content-container {
max-width: 350px;
overflow: hidden;
text-overflow: ellipsis;
line-height: inherit;
background: inherit;
white-space: nowrap;
.closed-content,
.closed-content .pointer-list,
.closed-content .search-list {
margin: 0;
}
}
.rule-setting {
padding-top: 4px;
}
.open-rule > .rule-setting {
width: 28%;
float: left;
}
.open-rule .d0-card-body {
clear: both;
}
.open-rule .rule-instruction {
float: right;
text-align: left;
max-width: 68%;
}
.edit-rule,
.set-list{
.set-editor {
ul {
list-style-type: none;
}
.current-set-label {
font-weight: bold;
}
}
.edit-button-area {
clear: both;
padding-top: 5px;
}
}
.rule-delete-section {
float: right;
}
.guide-line-number {
display: inline-block;
background: #000;
color: $white;
border-radius: 100%;
width: 21px;
height: 21px;
font-size: 61%;
text-align: center;
padding-top: 3px;
font-weight: bold;
margin-left: -1.7rem;
position: relative;
top: -5px;
left: -4px;
}

.guide-line {
border-left: 1px solid $border-color;
}

.rule-section {
padding-left: 20px;
margin-left: 12px;
margin-right: 5px;
h4 {
position: relative;
top: -4px;
}
}

.template_link-view {
display: inline;
}

.rule-item {
h5 {
font-weight: bold;
}
background-color: $list-group-bg;
border: 1px solid $list-group-border-color;
border-left: 5px solid $list-group-border-color;
margin-bottom: -1px;
padding: 5px;
&:hover, &.active {
border-left-color: $list-group-active-bg;
}
}

// reduce bottom margins
.card-slot.set-info {
.form-group {
margin-bottom: 0.3rem;
label {
margin-bottom: 0.2rem;
}
}
p {
margin-bottom: 0.5rem;
}
}

.help-text.rule-instruction > div p:last-child {
margin-bottom: 0;
}

a.setting-link {
font-style: italic;
margin-left: 2%;
font-weight: normal;
color: $black;
white-space: nowrap;
}
h2.set-label {
padding-bottom: 10px;
}


// Board
._modal-stack {
z-index: 1010;
}

.modal-header .card-title {
margin-bottom: 0;
}

.modal-dialog.no-gaps > .modal-content {
> .modal-body {
padding: 0;
}
> .modal-header > nav > ol.breadcrumb {
margin-bottom: 0;
padding: 0.2rem 0.3rem;
}
}

$board-line-color: $border-color;

.board-sidebar {
background-color: darken($body-bg, 15%);
padding-left: 0;
padding-right: 0;
min-height: calc(100vh - 90px);

.guide-text {
padding: 15px;
background-color: $body-bg;
}
}

.bg-body {
background-color: $body-bg !important;
}

.board-main {
border-right: 1px solid $board-line-color;
padding-left: 0;
padding-right: 0;

> .overlay-container {
> .board-view {
padding-top: 0px;
}

> .card-slot > .d0-card-frame > .d0-card-body {
padding: 1em;
}
}

> ._overlay-container-placeholder > .board-view {
padding-top: 1em;
padding-left: 1.5em;
padding-right: 1.5em;
}
}



.board-pills {
.help-text {
font-size: 0.8rem;
}
> .nav-item {
padding: 0;
> a {
color: inherit
}
background-color: $body-bg;
border: 1px solid $nav-tabs-border-color;
border-left: 3px solid $nav-tabs-border-color;
margin-bottom: -1px;

&:hover, &.active, &:focus {
border-left-color: $nav-pills-link-active-bg;
}
}
}

.board {
.perm-editor {
margin-left: 0;
}

.set-editor {
ul {
background: $white;
padding-left: 0;
margin-left: 15px;

&:first-child {
margin-left: 0;
}
}
li.radio {
padding: 10px 0px 0px 15px;
border-left: 1px solid $board-line-color;
border-top: 1px solid $board-line-color;
margin-top: 10px;
}
}

.board-sidebar {
.history_tab-view > div {
margin: 0.5rem;
}
.d0-card-header-title > .card-title {
font-size: 1rem;
}
.nav-link {
padding: 0.5rem 0.5rem;
}
}
}

.card-editor {
white-space: normal;
padding-bottom: 15px;
}

.button-form-group {
display: flex
}
.rename-button-form-group .btn {
margin-right: 1rem;
}

.d0-card-header a {
color: $body-color;
&.edit-link, &.board-link, &.help-link {
color: $text-muted;
}
}

//
///*-------------------- */
///*- EDIT INTERFACE - */
///*-------------------- */
//
//textarea,
//.content-editor > input[type=text],
//.content-editor > input[type=password],
//.name-editor input {
// width: 97.5%;
//}
///* width + padding = 99.5%, which leaves 0.5% for the borders. This is imprecise, but borders can't be specified as a percentage */
//textarea {
// max-height: 500px;
//}
/*----------- (Account Request)--------------*/

.SELF-Xsignin {
> .d0-card-body {
display: flex;
justify-content: center;
> .card-form {
width: 400px;
max-width: 400px;
}
.signin-buttons > div {
margin-bottom: 1em;
button {
width: 100%
}
}
.signup-button {
text-align: center;
}
}
}

.invite-links {
padding: 10px;
margin-top: 10px;
text-align: center;
a {
font-weight: bold;
margin: 0 20px;
}
}

/*-- sign in page --*/

#sign-in input#login_field,
#sign-in input#password,
#forgot-password input#email {
width: 50%;
}

#forgot-password {
margin-top: 40px;
}

.new-account-link {
text-align: center;
}

.form-group .signup-link {
display: inline;
}

// FIXME - decko should handle better
//#my-card-link {
// padding-right: 0.6em;
//}

.history-slot {
overflow: hidden;
clear: both;
}

ul.action-list {
list-style-type: none;
padding-left: 15px;
li {
border: 1px solid $border-color;
}
li:before {
font-family: 'Material Icons';
font-weight: normal;
font-style: normal;
display: inline-block;
line-height: 1;
text-transform: none;
letter-spacing: normal;
word-wrap: normal;
white-space: nowrap;
direction: ltr;
-webkit-font-smoothing: antialiased;
text-rendering: optimizeLegibility;
-moz-osx-font-smoothing: grayscale;
font-feature-settings: 'liga';


float: left;
margin-top: 8px;
margin-left: -2rem;
font-size: 120%;
padding-left: 4px;
max-height: 30px;
}

li.update:before {
content: "edit";
color: $gray-600;
}

li.create:before {
content: "add_circle";
color: $green;
}

li.delete:before {
content: "remove_circle";
color: $red;
}

li.draft:before {
content: "build";
color: $gray-600;
}
}


/*----------- Change View ---------*/

.change-view {
padding: 5px 0px;
clear: both;
.change-card{
font-weight: bold;
}
.last-update {
float:right;
text-align: right;
a {
white-space: nowrap;
}
}
}

.diff-deleted {
text-decoration: line-through;
color: $red;
background: $red-200;
img {
border: 2px solid $red;
}
}
.diff-added {
color: $green;
background: $green-200;
text-decoration: none;
img {
margin: 0px 4px 0px 4px;
border: 2px solid $green;
}
}

/* -- file upload -- */
.fileupload-buttonbar .btn, .fileupload-buttonbar .toggle {
margin-bottom: 5px;
}

.fileinput-button {
position: relative;
overflow: hidden;
display: inline-block;
input {
position: absolute;
top: 0;
right: 0;
margin: 0;
opacity: 0;
-ms-filter: 'alpha(opacity=0)';
font-size: 200px;
direction: ltr;
cursor: pointer;
}
}

.TYPE-image {
.d0-card-content, .d0-card-body, &.d0-card-content {
img {
max-width: 100%;
max-height: 100%;
}
}
}

.api-key-core {
display: flex;
width: 100%;
justify-content: space-between;
padding: 1em;
.current-api-key {
width: 50%;
input {
width: 100%;
font-family: monospace;
font-size: 1.3rem;
border: 1px solid transparent;
box-shadow: none;
background-color: lightyellow;
}
}
.current-api-key:hover input {
border: 1px solid #DDD;
}
}

.ui-menu-icons .ui-menu-item a {
padding-left: 0;
}

.ui-icon {
background-image: url([[/mod/style/jquery-ui-smoothness/ui-icons_454545_256x240.png]])
}

.ui-menu-item {
.glyphicon {
float: left;
font-size: 10px;
padding: 3px 0 3px 0px;
}
}

/*! jQuery UI - v1.12.1 - 2018-05-16
* http://jqueryui.com
* Includes: draggable.css, core.css, resizable.css, selectable.css, sortable.css, autocomplete.css, menu.css, button.css, controlgroup.css, checkboxradio.css, dialog.css, theme.css
* To view and modify this theme, visit http://jqueryui.com/themeroller/?scope=&folderName=smoothness&cornerRadiusShadow=8px&offsetLeftShadow=-8px&offsetTopShadow=-8px&thicknessShadow=8px&opacityShadow=30&bgImgOpacityShadow=0&bgTextureShadow=flat&bgColorShadow=aaaaaa&opacityOverlay=30&bgImgOpacityOverlay=0&bgTextureOverlay=flat&bgColorOverlay=aaaaaa&iconColorError=cd0a0a&fcError=cd0a0a&borderColorError=cd0a0a&bgImgOpacityError=95&bgTextureError=glass&bgColorError=fef1ec&iconColorHighlight=2e83ff&fcHighlight=363636&borderColorHighlight=fcefa1&bgImgOpacityHighlight=55&bgTextureHighlight=glass&bgColorHighlight=fbf9ee&iconColorActive=454545&fcActive=212121&borderColorActive=aaaaaa&bgImgOpacityActive=65&bgTextureActive=glass&bgColorActive=ffffff&iconColorHover=454545&fcHover=212121&borderColorHover=999999&bgImgOpacityHover=75&bgTextureHover=glass&bgColorHover=dadada&iconColorDefault=888888&fcDefault=555555&borderColorDefault=d3d3d3&bgImgOpacityDefault=75&bgTextureDefault=glass&bgColorDefault=e6e6e6&iconColorContent=222222&fcContent=222222&borderColorContent=aaaaaa&bgImgOpacityContent=75&bgTextureContent=flat&bgColorContent=ffffff&iconColorHeader=222222&fcHeader=222222&borderColorHeader=aaaaaa&bgImgOpacityHeader=75&bgTextureHeader=highlight_soft&bgColorHeader=cccccc&cornerRadius=4px&fsDefault=1.1em&fwDefault=normal&ffDefault=Verdana%2CArial%2Csans-serif
* Copyright jQuery Foundation and other contributors; Licensed MIT */

.ui-draggable-handle {
-ms-touch-action: none;
touch-action: none;
}
/* Layout helpers
----------------------------------*/
.ui-helper-hidden {
display: none;
}
.ui-helper-hidden-accessible {
border: 0;
clip: rect(0 0 0 0);
height: 1px;
margin: -1px;
overflow: hidden;
padding: 0;
position: absolute;
width: 1px;
}
.ui-helper-reset {
margin: 0;
padding: 0;
border: 0;
outline: 0;
line-height: 1.3;
text-decoration: none;
font-size: 100%;
list-style: none;
}
.ui-helper-clearfix:before,
.ui-helper-clearfix:after {
content: "";
display: table;
border-collapse: collapse;
}
.ui-helper-clearfix:after {
clear: both;
}
.ui-helper-zfix {
width: 100%;
height: 100%;
top: 0;
left: 0;
position: absolute;
opacity: 0;
filter:Alpha(Opacity=0); /* support: IE8 */
}

.ui-front {
z-index: 100;
}


/* Interaction Cues
----------------------------------*/
.ui-state-disabled {
cursor: default !important;
pointer-events: none;
}


/* Icons
----------------------------------*/
.ui-icon {
display: inline-block;
vertical-align: middle;
margin-top: -.25em;
position: relative;
text-indent: -99999px;
overflow: hidden;
background-repeat: no-repeat;
}

.ui-widget-icon-block {
left: 50%;
margin-left: -8px;
display: block;
}

/* Misc visuals
----------------------------------*/

/* Overlays */
.ui-widget-overlay {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
.ui-resizable {
position: relative;
}
.ui-resizable-handle {
position: absolute;
font-size: 0.1px;
display: block;
-ms-touch-action: none;
touch-action: none;
}
.ui-resizable-disabled .ui-resizable-handle,
.ui-resizable-autohide .ui-resizable-handle {
display: none;
}
.ui-resizable-n {
cursor: n-resize;
height: 7px;
width: 100%;
top: -5px;
left: 0;
}
.ui-resizable-s {
cursor: s-resize;
height: 7px;
width: 100%;
bottom: -5px;
left: 0;
}
.ui-resizable-e {
cursor: e-resize;
width: 7px;
right: -5px;
top: 0;
height: 100%;
}
.ui-resizable-w {
cursor: w-resize;
width: 7px;
left: -5px;
top: 0;
height: 100%;
}
.ui-resizable-se {
cursor: se-resize;
width: 12px;
height: 12px;
right: 1px;
bottom: 1px;
}
.ui-resizable-sw {
cursor: sw-resize;
width: 9px;
height: 9px;
left: -5px;
bottom: -5px;
}
.ui-resizable-nw {
cursor: nw-resize;
width: 9px;
height: 9px;
left: -5px;
top: -5px;
}
.ui-resizable-ne {
cursor: ne-resize;
width: 9px;
height: 9px;
right: -5px;
top: -5px;
}
.ui-selectable {
-ms-touch-action: none;
touch-action: none;
}
.ui-selectable-helper {
position: absolute;
z-index: 100;
border: 1px dotted black;
}
.ui-sortable-handle {
-ms-touch-action: none;
touch-action: none;
}
.ui-autocomplete {
position: absolute;
top: 0;
left: 0;
cursor: default;
}
.ui-menu {
list-style: none;
padding: 0;
margin: 0;
display: block;
outline: 0;
}
.ui-menu .ui-menu {
position: absolute;
}
.ui-menu .ui-menu-item {
margin: 0;
cursor: pointer;
/* support: IE10, see #8844 */
list-style-image: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7");
}
.ui-menu .ui-menu-item-wrapper {
position: relative;
padding: 3px 1em 3px .4em;
}
.ui-menu .ui-menu-divider {
margin: 5px 0;
height: 0;
font-size: 0;
line-height: 0;
border-width: 1px 0 0 0;
}
.ui-menu .ui-state-focus,
.ui-menu .ui-state-active {
margin: -1px;
}

/* icon support */
.ui-menu-icons {
position: relative;
}
.ui-menu-icons .ui-menu-item-wrapper {
padding-left: 2em;
}

/* left-aligned */
.ui-menu .ui-icon {
position: absolute;
top: 0;
bottom: 0;
left: .2em;
margin: auto 0;
}

/* right-aligned */
.ui-menu .ui-menu-icon {
left: auto;
right: 0;
}
.ui-button {
padding: .4em 1em;
display: inline-block;
position: relative;
line-height: normal;
margin-right: .1em;
cursor: pointer;
vertical-align: middle;
text-align: center;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;

/* Support: IE .ui-controlgroup-item {
float: left;
margin-left: 0;
margin-right: 0;
}
.ui-controlgroup > .ui-controlgroup-item:focus,
.ui-controlgroup > .ui-controlgroup-item.ui-visual-focus {
z-index: 9999;
}
.ui-controlgroup-vertical > .ui-controlgroup-item {
display: block;
float: none;
width: 100%;
margin-top: 0;
margin-bottom: 0;
text-align: left;
}
.ui-controlgroup-vertical .ui-controlgroup-item {
box-sizing: border-box;
}
.ui-controlgroup .ui-controlgroup-label {
padding: .4em 1em;
}
.ui-controlgroup .ui-controlgroup-label span {
font-size: 80%;
}
.ui-controlgroup-horizontal .ui-controlgroup-label + .ui-controlgroup-item {
border-left: none;
}
.ui-controlgroup-vertical .ui-controlgroup-label + .ui-controlgroup-item {
border-top: none;
}
.ui-controlgroup-horizontal .ui-controlgroup-label.ui-widget-content {
border-right: none;
}
.ui-controlgroup-vertical .ui-controlgroup-label.ui-widget-content {
border-bottom: none;
}

/* Spinner specific style fixes */
.ui-controlgroup-vertical .ui-spinner-input {

/* Support: IE8 only, Android .bar-body, > .bar-menu, > .accordion-header >.accordion-button {
background-color: $gray-200;
}
}
&.accordion-item {
.bar-left, .bar-right {
padding: 0;
}
}
}

.selected .bar, .selected .box {
border: 3px solid $primary !important;
}

// not sure this ever gets used:
.bar-accordion {
.accordion-body {
padding: 0;
.bar {
border-left: 1px solid $border-color !important;
}
}
}


.bar {
border-left: 3px solid $bar_stripe_color !important;

.media {
width: 100%
}
.media-left {
max-width: 25%
}
}

.bar-left, .bar-right, .bar-middle {
display: flex;
padding: 0.5rem;
flex-wrap: wrap;
align-items: center;
}

.bar-left {
font-weight: bold;
align-items: flex-start;
}

.bar-middle {
justify-content: center;
}

.bar-right {
justify-content: flex-end;
}

.bar-menu {
min-width: 3em;
width: 3em;
display: flex;
align-items: center;
}

.bar-body {
width: 100%;
display: flex;
}

.bar.with-bar-menu .bar-body {
width: calc(100% - 3em);
}

.bar-menu-button {
padding: 0.2em 0.75em;
&:hover {
background-color: $secondary;
color: $white;
border-radius: 5px;
}
// disable bootstrap dropdown caret
&:after {
display: none;
}
}

// links in bar menu
.bar-menu-list a i {
padding-right: 0.4em;
}

// card submenu in accordion bar
.accordion-subheader > .card-menu {
position: static;
background: inherit !important;
}

@include media-breakpoint-up(md) {
.bar-menu-button {
display: none;
}

._card-link:hover .bar-menu-button {
display: block;
}
}

$box_stripe_color: $secondary !default;

.box {
border: 1px solid $border-color;
box-shadow: $box-shadow-sm;
&:hover {
box-shadow: $box-shadow-lg;
cursor: pointer
}
border-top: 3px solid $box_stripe_color;
width: 320px;
}

.box-top {
display: flex;
min-height: 60px;
flex-direction: column;
justify-content: center;
overflow: auto;
h1, h2, h3, h4, h5, h6, div, span, a {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
}

.box-middle {
min-height: 180px;
overflow: hidden;
text-overflow: ellipsis;
display: flex;
justify-content: center;
img {
object-fit: contain;
height: 130px;
width: 190px;
}
i {
display: flex;
justify-content: center;
min-height: 130px;
align-items: center;
font-size: 70px;
color: $text-muted;
}
}

.box-bottom {
display: flex;
align-items: center;
justify-content: space-around;
}

// card-list in which items are in box view
.card-list-box {
display: flex;
flex-wrap: wrap;
justify-content: center;
}

// wrapper around box in list context
.item-box {
display: inline-block;
padding: 10px 1%;
vertical-align: top;
}
//images

@mixin image-box-size($sizename, $sidelength) {
&.#{$sizename} {
width: $sidelength;
height: $sidelength;
min-width: $sidelength;
min-height: $sidelength;
i {
font-size: $sidelength / 2;
}
}
}

.image-box {
display: flex;
align-items: center;
justify-content: center;

width: 94px;
height: 94px;
min-width: 94px;
min-height: 94px;

box-sizing: border-box;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;

border: 1px solid #eee;
border-radius: 0;

background-color: $gray-100;

margin-right: 0.5rem;
overflow: hidden;

//text-align: center;
@include image-box-size(icon, 16px);
@include image-box-size(small, 40px);
@include image-box-size(medium, 64px);
@include image-box-size(large, 94px);
@include image-box-size(xlarge, 150px);

a, i {
width: 100%;
text-align: center;
}
i {
color: $text-muted;
}
&.icon a {
line-height: 0;
height: 8px;
}
img {
max-width: 100%;
max-height: 100%;
height: auto;
display: inline !important;
}
}

@media (max-width: 1260px) {
.image-box {
@include image-box-size(large, 120px);
}
.media-body {
padding: 6px;
}
}

@include media-breakpoint-down(sm) {
.image-box {
@include image-box-size(xlarge, 100px);
@include image-box-size(large, 80px);
}
.media-body {
padding: 4px;
}
}

.media {
display: flex;
}
.media-body {
.media-heading {
a {
color: inherit;
}
}
.media-text {
clear: both;
}
}

//.select2-container--bootstrap .select2-search-box-autocomplete.select2-selection--multiple {
// .select2-selection__choice {
// background: none !important;
// border: none !important;
// }
//
// .select2-selection__choice__remove {
// display: none !important;
// }
//}

.badge {
vertical-align: text-top !important;
}

.dropdown-menu {
z-index: 1005;
}

/*!
* Font Awesome Free 5.15.1 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
*/
.fa,
.fas,
.far,
.fal,
.fad,
.fab {
-moz-osx-font-smoothing: grayscale;
-webkit-font-smoothing: antialiased;
display: inline-block;
font-style: normal;
font-variant: normal;
text-rendering: auto;
line-height: 1; }

.fa-lg {
font-size: 1.33333em;
line-height: 0.75em;
vertical-align: -.0667em; }

.fa-xs {
font-size: .75em; }

.fa-sm {
font-size: .875em; }

.fa-1x {
font-size: 1em; }

.fa-2x {
font-size: 2em; }

.fa-3x {
font-size: 3em; }

.fa-4x {
font-size: 4em; }

.fa-5x {
font-size: 5em; }

.fa-6x {
font-size: 6em; }

.fa-7x {
font-size: 7em; }

.fa-8x {
font-size: 8em; }

.fa-9x {
font-size: 9em; }

.fa-10x {
font-size: 10em; }

.fa-fw {
text-align: center;
width: 1.25em; }

.fa-ul {
list-style-type: none;
margin-left: 2.5em;
padding-left: 0; }
.fa-ul > li {
position: relative; }

.fa-li {
left: -2em;
position: absolute;
text-align: center;
width: 2em;
line-height: inherit; }

.fa-border {
border: solid 0.08em #eee;
border-radius: .1em;
padding: .2em .25em .15em; }

.fa-pull-left {
float: left; }

.fa-pull-right {
float: right; }

.fa.fa-pull-left,
.fas.fa-pull-left,
.far.fa-pull-left,
.fal.fa-pull-left,
.fab.fa-pull-left {
margin-right: .3em; }

.fa.fa-pull-right,
.fas.fa-pull-right,
.far.fa-pull-right,
.fal.fa-pull-right,
.fab.fa-pull-right {
margin-left: .3em; }

.fa-spin {
-webkit-animation: fa-spin 2s infinite linear;
animation: fa-spin 2s infinite linear; }

.fa-pulse {
-webkit-animation: fa-spin 1s infinite steps(8);
animation: fa-spin 1s infinite steps(8); }

@-webkit-keyframes fa-spin {
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg); }
100% {
-webkit-transform: rotate(360deg);
transform: rotate(360deg); } }

@keyframes fa-spin {
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg); }
100% {
-webkit-transform: rotate(360deg);
transform: rotate(360deg); } }

.fa-rotate-90 {
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";
-webkit-transform: rotate(90deg);
transform: rotate(90deg); }

.fa-rotate-180 {
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";
-webkit-transform: rotate(180deg);
transform: rotate(180deg); }

.fa-rotate-270 {
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";
-webkit-transform: rotate(270deg);
transform: rotate(270deg); }

.fa-flip-horizontal {
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";
-webkit-transform: scale(-1, 1);
transform: scale(-1, 1); }

.fa-flip-vertical {
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
-webkit-transform: scale(1, -1);
transform: scale(1, -1); }

.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical {
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
-webkit-transform: scale(-1, -1);
transform: scale(-1, -1); }

:root .fa-rotate-90,
:root .fa-rotate-180,
:root .fa-rotate-270,
:root .fa-flip-horizontal,
:root .fa-flip-vertical,
:root .fa-flip-both {
-webkit-filter: none;
filter: none; }

.fa-stack {
display: inline-block;
height: 2em;
line-height: 2em;
position: relative;
vertical-align: middle;
width: 2.5em; }

.fa-stack-1x,
.fa-stack-2x {
left: 0;
position: absolute;
text-align: center;
width: 100%; }

.fa-stack-1x {
line-height: inherit; }

.fa-stack-2x {
font-size: 2em; }

.fa-inverse {
color: #fff; }

/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
readers do not read off random characters that represent icons */
.fa-500px:before {
content: "\f26e"; }

.fa-accessible-icon:before {
content: "\f368"; }

.fa-accusoft:before {
content: "\f369"; }

.fa-acquisitions-incorporated:before {
content: "\f6af"; }

.fa-ad:before {
content: "\f641"; }

.fa-address-book:before {
content: "\f2b9"; }

.fa-address-card:before {
content: "\f2bb"; }

.fa-adjust:before {
content: "\f042"; }

.fa-adn:before {
content: "\f170"; }

.fa-adversal:before {
content: "\f36a"; }

.fa-affiliatetheme:before {
content: "\f36b"; }

.fa-air-freshener:before {
content: "\f5d0"; }

.fa-airbnb:before {
content: "\f834"; }

.fa-algolia:before {
content: "\f36c"; }

.fa-align-center:before {
content: "\f037"; }

.fa-align-justify:before {
content: "\f039"; }

.fa-align-left:before {
content: "\f036"; }

.fa-align-right:before {
content: "\f038"; }

.fa-alipay:before {
content: "\f642"; }

.fa-allergies:before {
content: "\f461"; }

.fa-amazon:before {
content: "\f270"; }

.fa-amazon-pay:before {
content: "\f42c"; }

.fa-ambulance:before {
content: "\f0f9"; }

.fa-american-sign-language-interpreting:before {
content: "\f2a3"; }

.fa-amilia:before {
content: "\f36d"; }

.fa-anchor:before {
content: "\f13d"; }

.fa-android:before {
content: "\f17b"; }

.fa-angellist:before {
content: "\f209"; }

.fa-angle-double-down:before {
content: "\f103"; }

.fa-angle-double-left:before {
content: "\f100"; }

.fa-angle-double-right:before {
content: "\f101"; }

.fa-angle-double-up:before {
content: "\f102"; }

.fa-angle-down:before {
content: "\f107"; }

.fa-angle-left:before {
content: "\f104"; }

.fa-angle-right:before {
content: "\f105"; }

.fa-angle-up:before {
content: "\f106"; }

.fa-angry:before {
content: "\f556"; }

.fa-angrycreative:before {
content: "\f36e"; }

.fa-angular:before {
content: "\f420"; }

.fa-ankh:before {
content: "\f644"; }

.fa-app-store:before {
content: "\f36f"; }

.fa-app-store-ios:before {
content: "\f370"; }

.fa-apper:before {
content: "\f371"; }

.fa-apple:before {
content: "\f179"; }

.fa-apple-alt:before {
content: "\f5d1"; }

.fa-apple-pay:before {
content: "\f415"; }

.fa-archive:before {
content: "\f187"; }

.fa-archway:before {
content: "\f557"; }

.fa-arrow-alt-circle-down:before {
content: "\f358"; }

.fa-arrow-alt-circle-left:before {
content: "\f359"; }

.fa-arrow-alt-circle-right:before {
content: "\f35a"; }

.fa-arrow-alt-circle-up:before {
content: "\f35b"; }

.fa-arrow-circle-down:before {
content: "\f0ab"; }

.fa-arrow-circle-left:before {
content: "\f0a8"; }

.fa-arrow-circle-right:before {
content: "\f0a9"; }

.fa-arrow-circle-up:before {
content: "\f0aa"; }

.fa-arrow-down:before {
content: "\f063"; }

.fa-arrow-left:before {
content: "\f060"; }

.fa-arrow-right:before {
content: "\f061"; }

.fa-arrow-up:before {
content: "\f062"; }

.fa-arrows-alt:before {
content: "\f0b2"; }

.fa-arrows-alt-h:before {
content: "\f337"; }

.fa-arrows-alt-v:before {
content: "\f338"; }

.fa-artstation:before {
content: "\f77a"; }

.fa-assistive-listening-systems:before {
content: "\f2a2"; }

.fa-asterisk:before {
content: "\f069"; }

.fa-asymmetrik:before {
content: "\f372"; }

.fa-at:before {
content: "\f1fa"; }

.fa-atlas:before {
content: "\f558"; }

.fa-atlassian:before {
content: "\f77b"; }

.fa-atom:before {
content: "\f5d2"; }

.fa-audible:before {
content: "\f373"; }

.fa-audio-description:before {
content: "\f29e"; }

.fa-autoprefixer:before {
content: "\f41c"; }

.fa-avianex:before {
content: "\f374"; }

.fa-aviato:before {
content: "\f421"; }

.fa-award:before {
content: "\f559"; }

.fa-aws:before {
content: "\f375"; }

.fa-baby:before {
content: "\f77c"; }

.fa-baby-carriage:before {
content: "\f77d"; }

.fa-backspace:before {
content: "\f55a"; }

.fa-backward:before {
content: "\f04a"; }

.fa-bacon:before {
content: "\f7e5"; }

.fa-bacteria:before {
content: "\e059"; }

.fa-bacterium:before {
content: "\e05a"; }

.fa-bahai:before {
content: "\f666"; }

.fa-balance-scale:before {
content: "\f24e"; }

.fa-balance-scale-left:before {
content: "\f515"; }

.fa-balance-scale-right:before {
content: "\f516"; }

.fa-ban:before {
content: "\f05e"; }

.fa-band-aid:before {
content: "\f462"; }

.fa-bandcamp:before {
content: "\f2d5"; }

.fa-barcode:before {
content: "\f02a"; }

.fa-bars:before {
content: "\f0c9"; }

.fa-baseball-ball:before {
content: "\f433"; }

.fa-basketball-ball:before {
content: "\f434"; }

.fa-bath:before {
content: "\f2cd"; }

.fa-battery-empty:before {
content: "\f244"; }

.fa-battery-full:before {
content: "\f240"; }

.fa-battery-half:before {
content: "\f242"; }

.fa-battery-quarter:before {
content: "\f243"; }

.fa-battery-three-quarters:before {
content: "\f241"; }

.fa-battle-net:before {
content: "\f835"; }

.fa-bed:before {
content: "\f236"; }

.fa-beer:before {
content: "\f0fc"; }

.fa-behance:before {
content: "\f1b4"; }

.fa-behance-square:before {
content: "\f1b5"; }

.fa-bell:before {
content: "\f0f3"; }

.fa-bell-slash:before {
content: "\f1f6"; }

.fa-bezier-curve:before {
content: "\f55b"; }

.fa-bible:before {
content: "\f647"; }

.fa-bicycle:before {
content: "\f206"; }

.fa-biking:before {
content: "\f84a"; }

.fa-bimobject:before {
content: "\f378"; }

.fa-binoculars:before {
content: "\f1e5"; }

.fa-biohazard:before {
content: "\f780"; }

.fa-birthday-cake:before {
content: "\f1fd"; }

.fa-bitbucket:before {
content: "\f171"; }

.fa-bitcoin:before {
content: "\f379"; }

.fa-bity:before {
content: "\f37a"; }

.fa-black-tie:before {
content: "\f27e"; }

.fa-blackberry:before {
content: "\f37b"; }

.fa-blender:before {
content: "\f517"; }

.fa-blender-phone:before {
content: "\f6b6"; }

.fa-blind:before {
content: "\f29d"; }

.fa-blog:before {
content: "\f781"; }

.fa-blogger:before {
content: "\f37c"; }

.fa-blogger-b:before {
content: "\f37d"; }

.fa-bluetooth:before {
content: "\f293"; }

.fa-bluetooth-b:before {
content: "\f294"; }

.fa-bold:before {
content: "\f032"; }

.fa-bolt:before {
content: "\f0e7"; }

.fa-bomb:before {
content: "\f1e2"; }

.fa-bone:before {
content: "\f5d7"; }

.fa-bong:before {
content: "\f55c"; }

.fa-book:before {
content: "\f02d"; }

.fa-book-dead:before {
content: "\f6b7"; }

.fa-book-medical:before {
content: "\f7e6"; }

.fa-book-open:before {
content: "\f518"; }

.fa-book-reader:before {
content: "\f5da"; }

.fa-bookmark:before {
content: "\f02e"; }

.fa-bootstrap:before {
content: "\f836"; }

.fa-border-all:before {
content: "\f84c"; }

.fa-border-none:before {
content: "\f850"; }

.fa-border-style:before {
content: "\f853"; }

.fa-bowling-ball:before {
content: "\f436"; }

.fa-box:before {
content: "\f466"; }

.fa-box-open:before {
content: "\f49e"; }

.fa-box-tissue:before {
content: "\e05b"; }

.fa-boxes:before {
content: "\f468"; }

.fa-braille:before {
content: "\f2a1"; }

.fa-brain:before {
content: "\f5dc"; }

.fa-bread-slice:before {
content: "\f7ec"; }

.fa-briefcase:before {
content: "\f0b1"; }

.fa-briefcase-medical:before {
content: "\f469"; }

.fa-broadcast-tower:before {
content: "\f519"; }

.fa-broom:before {
content: "\f51a"; }

.fa-brush:before {
content: "\f55d"; }

.fa-btc:before {
content: "\f15a"; }

.fa-buffer:before {
content: "\f837"; }

.fa-bug:before {
content: "\f188"; }

.fa-building:before {
content: "\f1ad"; }

.fa-bullhorn:before {
content: "\f0a1"; }

.fa-bullseye:before {
content: "\f140"; }

.fa-burn:before {
content: "\f46a"; }

.fa-buromobelexperte:before {
content: "\f37f"; }

.fa-bus:before {
content: "\f207"; }

.fa-bus-alt:before {
content: "\f55e"; }

.fa-business-time:before {
content: "\f64a"; }

.fa-buy-n-large:before {
content: "\f8a6"; }

.fa-buysellads:before {
content: "\f20d"; }

.fa-calculator:before {
content: "\f1ec"; }

.fa-calendar:before {
content: "\f133"; }

.fa-calendar-alt:before {
content: "\f073"; }

.fa-calendar-check:before {
content: "\f274"; }

.fa-calendar-day:before {
content: "\f783"; }

.fa-calendar-minus:before {
content: "\f272"; }

.fa-calendar-plus:before {
content: "\f271"; }

.fa-calendar-times:before {
content: "\f273"; }

.fa-calendar-week:before {
content: "\f784"; }

.fa-camera:before {
content: "\f030"; }

.fa-camera-retro:before {
content: "\f083"; }

.fa-campground:before {
content: "\f6bb"; }

.fa-canadian-maple-leaf:before {
content: "\f785"; }

.fa-candy-cane:before {
content: "\f786"; }

.fa-cannabis:before {
content: "\f55f"; }

.fa-capsules:before {
content: "\f46b"; }

.fa-car:before {
content: "\f1b9"; }

.fa-car-alt:before {
content: "\f5de"; }

.fa-car-battery:before {
content: "\f5df"; }

.fa-car-crash:before {
content: "\f5e1"; }

.fa-car-side:before {
content: "\f5e4"; }

.fa-caravan:before {
content: "\f8ff"; }

.fa-caret-down:before {
content: "\f0d7"; }

.fa-caret-left:before {
content: "\f0d9"; }

.fa-caret-right:before {
content: "\f0da"; }

.fa-caret-square-down:before {
content: "\f150"; }

.fa-caret-square-left:before {
content: "\f191"; }

.fa-caret-square-right:before {
content: "\f152"; }

.fa-caret-square-up:before {
content: "\f151"; }

.fa-caret-up:before {
content: "\f0d8"; }

.fa-carrot:before {
content: "\f787"; }

.fa-cart-arrow-down:before {
content: "\f218"; }

.fa-cart-plus:before {
content: "\f217"; }

.fa-cash-register:before {
content: "\f788"; }

.fa-cat:before {
content: "\f6be"; }

.fa-cc-amazon-pay:before {
content: "\f42d"; }

.fa-cc-amex:before {
content: "\f1f3"; }

.fa-cc-apple-pay:before {
content: "\f416"; }

.fa-cc-diners-club:before {
content: "\f24c"; }

.fa-cc-discover:before {
content: "\f1f2"; }

.fa-cc-jcb:before {
content: "\f24b"; }

.fa-cc-mastercard:before {
content: "\f1f1"; }

.fa-cc-paypal:before {
content: "\f1f4"; }

.fa-cc-stripe:before {
content: "\f1f5"; }

.fa-cc-visa:before {
content: "\f1f0"; }

.fa-centercode:before {
content: "\f380"; }

.fa-centos:before {
content: "\f789"; }

.fa-certificate:before {
content: "\f0a3"; }

.fa-chair:before {
content: "\f6c0"; }

.fa-chalkboard:before {
content: "\f51b"; }

.fa-chalkboard-teacher:before {
content: "\f51c"; }

.fa-charging-station:before {
content: "\f5e7"; }

.fa-chart-area:before {
content: "\f1fe"; }

.fa-chart-bar:before {
content: "\f080"; }

.fa-chart-line:before {
content: "\f201"; }

.fa-chart-pie:before {
content: "\f200"; }

.fa-check:before {
content: "\f00c"; }

.fa-check-circle:before {
content: "\f058"; }

.fa-check-double:before {
content: "\f560"; }

.fa-check-square:before {
content: "\f14a"; }

.fa-cheese:before {
content: "\f7ef"; }

.fa-chess:before {
content: "\f439"; }

.fa-chess-bishop:before {
content: "\f43a"; }

.fa-chess-board:before {
content: "\f43c"; }

.fa-chess-king:before {
content: "\f43f"; }

.fa-chess-knight:before {
content: "\f441"; }

.fa-chess-pawn:before {
content: "\f443"; }

.fa-chess-queen:before {
content: "\f445"; }

.fa-chess-rook:before {
content: "\f447"; }

.fa-chevron-circle-down:before {
content: "\f13a"; }

.fa-chevron-circle-left:before {
content: "\f137"; }

.fa-chevron-circle-right:before {
content: "\f138"; }

.fa-chevron-circle-up:before {
content: "\f139"; }

.fa-chevron-down:before {
content: "\f078"; }

.fa-chevron-left:before {
content: "\f053"; }

.fa-chevron-right:before {
content: "\f054"; }

.fa-chevron-up:before {
content: "\f077"; }

.fa-child:before {
content: "\f1ae"; }

.fa-chrome:before {
content: "\f268"; }

.fa-chromecast:before {
content: "\f838"; }

.fa-church:before {
content: "\f51d"; }

.fa-circle:before {
content: "\f111"; }

.fa-circle-notch:before {
content: "\f1ce"; }

.fa-city:before {
content: "\f64f"; }

.fa-clinic-medical:before {
content: "\f7f2"; }

.fa-clipboard:before {
content: "\f328"; }

.fa-clipboard-check:before {
content: "\f46c"; }

.fa-clipboard-list:before {
content: "\f46d"; }

.fa-clock:before {
content: "\f017"; }

.fa-clone:before {
content: "\f24d"; }

.fa-closed-captioning:before {
content: "\f20a"; }

.fa-cloud:before {
content: "\f0c2"; }

.fa-cloud-download-alt:before {
content: "\f381"; }

.fa-cloud-meatball:before {
content: "\f73b"; }

.fa-cloud-moon:before {
content: "\f6c3"; }

.fa-cloud-moon-rain:before {
content: "\f73c"; }

.fa-cloud-rain:before {
content: "\f73d"; }

.fa-cloud-showers-heavy:before {
content: "\f740"; }

.fa-cloud-sun:before {
content: "\f6c4"; }

.fa-cloud-sun-rain:before {
content: "\f743"; }

.fa-cloud-upload-alt:before {
content: "\f382"; }

.fa-cloudflare:before {
content: "\e07d"; }

.fa-cloudscale:before {
content: "\f383"; }

.fa-cloudsmith:before {
content: "\f384"; }

.fa-cloudversify:before {
content: "\f385"; }

.fa-cocktail:before {
content: "\f561"; }

.fa-code:before {
content: "\f121"; }

.fa-code-branch:before {
content: "\f126"; }

.fa-codepen:before {
content: "\f1cb"; }

.fa-codiepie:before {
content: "\f284"; }

.fa-coffee:before {
content: "\f0f4"; }

.fa-cog:before {
content: "\f013"; }

.fa-cogs:before {
content: "\f085"; }

.fa-coins:before {
content: "\f51e"; }

.fa-columns:before {
content: "\f0db"; }

.fa-comment:before {
content: "\f075"; }

.fa-comment-alt:before {
content: "\f27a"; }

.fa-comment-dollar:before {
content: "\f651"; }

.fa-comment-dots:before {
content: "\f4ad"; }

.fa-comment-medical:before {
content: "\f7f5"; }

.fa-comment-slash:before {
content: "\f4b3"; }

.fa-comments:before {
content: "\f086"; }

.fa-comments-dollar:before {
content: "\f653"; }

.fa-compact-disc:before {
content: "\f51f"; }

.fa-compass:before {
content: "\f14e"; }

.fa-compress:before {
content: "\f066"; }

.fa-compress-alt:before {
content: "\f422"; }

.fa-compress-arrows-alt:before {
content: "\f78c"; }

.fa-concierge-bell:before {
content: "\f562"; }

.fa-confluence:before {
content: "\f78d"; }

.fa-connectdevelop:before {
content: "\f20e"; }

.fa-contao:before {
content: "\f26d"; }

.fa-cookie:before {
content: "\f563"; }

.fa-cookie-bite:before {
content: "\f564"; }

.fa-copy:before {
content: "\f0c5"; }

.fa-copyright:before {
content: "\f1f9"; }

.fa-cotton-bureau:before {
content: "\f89e"; }

.fa-couch:before {
content: "\f4b8"; }

.fa-cpanel:before {
content: "\f388"; }

.fa-creative-commons:before {
content: "\f25e"; }

.fa-creative-commons-by:before {
content: "\f4e7"; }

.fa-creative-commons-nc:before {
content: "\f4e8"; }

.fa-creative-commons-nc-eu:before {
content: "\f4e9"; }

.fa-creative-commons-nc-jp:before {
content: "\f4ea"; }

.fa-creative-commons-nd:before {
content: "\f4eb"; }

.fa-creative-commons-pd:before {
content: "\f4ec"; }

.fa-creative-commons-pd-alt:before {
content: "\f4ed"; }

.fa-creative-commons-remix:before {
content: "\f4ee"; }

.fa-creative-commons-sa:before {
content: "\f4ef"; }

.fa-creative-commons-sampling:before {
content: "\f4f0"; }

.fa-creative-commons-sampling-plus:before {
content: "\f4f1"; }

.fa-creative-commons-share:before {
content: "\f4f2"; }

.fa-creative-commons-zero:before {
content: "\f4f3"; }

.fa-credit-card:before {
content: "\f09d"; }

.fa-critical-role:before {
content: "\f6c9"; }

.fa-crop:before {
content: "\f125"; }

.fa-crop-alt:before {
content: "\f565"; }

.fa-cross:before {
content: "\f654"; }

.fa-crosshairs:before {
content: "\f05b"; }

.fa-crow:before {
content: "\f520"; }

.fa-crown:before {
content: "\f521"; }

.fa-crutch:before {
content: "\f7f7"; }

.fa-css3:before {
content: "\f13c"; }

.fa-css3-alt:before {
content: "\f38b"; }

.fa-cube:before {
content: "\f1b2"; }

.fa-cubes:before {
content: "\f1b3"; }

.fa-cut:before {
content: "\f0c4"; }

.fa-cuttlefish:before {
content: "\f38c"; }

.fa-d-and-d:before {
content: "\f38d"; }

.fa-d-and-d-beyond:before {
content: "\f6ca"; }

.fa-dailymotion:before {
content: "\e052"; }

.fa-dashcube:before {
content: "\f210"; }

.fa-database:before {
content: "\f1c0"; }

.fa-deaf:before {
content: "\f2a4"; }

.fa-deezer:before {
content: "\e077"; }

.fa-delicious:before {
content: "\f1a5"; }

.fa-democrat:before {
content: "\f747"; }

.fa-deploydog:before {
content: "\f38e"; }

.fa-deskpro:before {
content: "\f38f"; }

.fa-desktop:before {
content: "\f108"; }

.fa-dev:before {
content: "\f6cc"; }

.fa-deviantart:before {
content: "\f1bd"; }

.fa-dharmachakra:before {
content: "\f655"; }

.fa-dhl:before {
content: "\f790"; }

.fa-diagnoses:before {
content: "\f470"; }

.fa-diaspora:before {
content: "\f791"; }

.fa-dice:before {
content: "\f522"; }

.fa-dice-d20:before {
content: "\f6cf"; }

.fa-dice-d6:before {
content: "\f6d1"; }

.fa-dice-five:before {
content: "\f523"; }

.fa-dice-four:before {
content: "\f524"; }

.fa-dice-one:before {
content: "\f525"; }

.fa-dice-six:before {
content: "\f526"; }

.fa-dice-three:before {
content: "\f527"; }

.fa-dice-two:before {
content: "\f528"; }

.fa-digg:before {
content: "\f1a6"; }

.fa-digital-ocean:before {
content: "\f391"; }

.fa-digital-tachograph:before {
content: "\f566"; }

.fa-directions:before {
content: "\f5eb"; }

.fa-discord:before {
content: "\f392"; }

.fa-discourse:before {
content: "\f393"; }

.fa-disease:before {
content: "\f7fa"; }

.fa-divide:before {
content: "\f529"; }

.fa-dizzy:before {
content: "\f567"; }

.fa-dna:before {
content: "\f471"; }

.fa-dochub:before {
content: "\f394"; }

.fa-docker:before {
content: "\f395"; }

.fa-dog:before {
content: "\f6d3"; }

.fa-dollar-sign:before {
content: "\f155"; }

.fa-dolly:before {
content: "\f472"; }

.fa-dolly-flatbed:before {
content: "\f474"; }

.fa-donate:before {
content: "\f4b9"; }

.fa-door-closed:before {
content: "\f52a"; }

.fa-door-open:before {
content: "\f52b"; }

.fa-dot-circle:before {
content: "\f192"; }

.fa-dove:before {
content: "\f4ba"; }

.fa-download:before {
content: "\f019"; }

.fa-draft2digital:before {
content: "\f396"; }

.fa-drafting-compass:before {
content: "\f568"; }

.fa-dragon:before {
content: "\f6d5"; }

.fa-draw-polygon:before {
content: "\f5ee"; }

.fa-dribbble:before {
content: "\f17d"; }

.fa-dribbble-square:before {
content: "\f397"; }

.fa-dropbox:before {
content: "\f16b"; }

.fa-drum:before {
content: "\f569"; }

.fa-drum-steelpan:before {
content: "\f56a"; }

.fa-drumstick-bite:before {
content: "\f6d7"; }

.fa-drupal:before {
content: "\f1a9"; }

.fa-dumbbell:before {
content: "\f44b"; }

.fa-dumpster:before {
content: "\f793"; }

.fa-dumpster-fire:before {
content: "\f794"; }

.fa-dungeon:before {
content: "\f6d9"; }

.fa-dyalog:before {
content: "\f399"; }

.fa-earlybirds:before {
content: "\f39a"; }

.fa-ebay:before {
content: "\f4f4"; }

.fa-edge:before {
content: "\f282"; }

.fa-edge-legacy:before {
content: "\e078"; }

.fa-edit:before {
content: "\f044"; }

.fa-egg:before {
content: "\f7fb"; }

.fa-eject:before {
content: "\f052"; }

.fa-elementor:before {
content: "\f430"; }

.fa-ellipsis-h:before {
content: "\f141"; }

.fa-ellipsis-v:before {
content: "\f142"; }

.fa-ello:before {
content: "\f5f1"; }

.fa-ember:before {
content: "\f423"; }

.fa-empire:before {
content: "\f1d1"; }

.fa-envelope:before {
content: "\f0e0"; }

.fa-envelope-open:before {
content: "\f2b6"; }

.fa-envelope-open-text:before {
content: "\f658"; }

.fa-envelope-square:before {
content: "\f199"; }

.fa-envira:before {
content: "\f299"; }

.fa-equals:before {
content: "\f52c"; }

.fa-eraser:before {
content: "\f12d"; }

.fa-erlang:before {
content: "\f39d"; }

.fa-ethereum:before {
content: "\f42e"; }

.fa-ethernet:before {
content: "\f796"; }

.fa-etsy:before {
content: "\f2d7"; }

.fa-euro-sign:before {
content: "\f153"; }

.fa-evernote:before {
content: "\f839"; }

.fa-exchange-alt:before {
content: "\f362"; }

.fa-exclamation:before {
content: "\f12a"; }

.fa-exclamation-circle:before {
content: "\f06a"; }

.fa-exclamation-triangle:before {
content: "\f071"; }

.fa-expand:before {
content: "\f065"; }

.fa-expand-alt:before {
content: "\f424"; }

.fa-expand-arrows-alt:before {
content: "\f31e"; }

.fa-expeditedssl:before {
content: "\f23e"; }

.fa-external-link-alt:before {
content: "\f35d"; }

.fa-external-link-square-alt:before {
content: "\f360"; }

.fa-eye:before {
content: "\f06e"; }

.fa-eye-dropper:before {
content: "\f1fb"; }

.fa-eye-slash:before {
content: "\f070"; }

.fa-facebook:before {
content: "\f09a"; }

.fa-facebook-f:before {
content: "\f39e"; }

.fa-facebook-messenger:before {
content: "\f39f"; }

.fa-facebook-square:before {
content: "\f082"; }

.fa-fan:before {
content: "\f863"; }

.fa-fantasy-flight-games:before {
content: "\f6dc"; }

.fa-fast-backward:before {
content: "\f049"; }

.fa-fast-forward:before {
content: "\f050"; }

.fa-faucet:before {
content: "\e005"; }

.fa-fax:before {
content: "\f1ac"; }

.fa-feather:before {
content: "\f52d"; }

.fa-feather-alt:before {
content: "\f56b"; }

.fa-fedex:before {
content: "\f797"; }

.fa-fedora:before {
content: "\f798"; }

.fa-female:before {
content: "\f182"; }

.fa-fighter-jet:before {
content: "\f0fb"; }

.fa-figma:before {
content: "\f799"; }

.fa-file:before {
content: "\f15b"; }

.fa-file-alt:before {
content: "\f15c"; }

.fa-file-archive:before {
content: "\f1c6"; }

.fa-file-audio:before {
content: "\f1c7"; }

.fa-file-code:before {
content: "\f1c9"; }

.fa-file-contract:before {
content: "\f56c"; }

.fa-file-csv:before {
content: "\f6dd"; }

.fa-file-download:before {
content: "\f56d"; }

.fa-file-excel:before {
content: "\f1c3"; }

.fa-file-export:before {
content: "\f56e"; }

.fa-file-image:before {
content: "\f1c5"; }

.fa-file-import:before {
content: "\f56f"; }

.fa-file-invoice:before {
content: "\f570"; }

.fa-file-invoice-dollar:before {
content: "\f571"; }

.fa-file-medical:before {
content: "\f477"; }

.fa-file-medical-alt:before {
content: "\f478"; }

.fa-file-pdf:before {
content: "\f1c1"; }

.fa-file-powerpoint:before {
content: "\f1c4"; }

.fa-file-prescription:before {
content: "\f572"; }

.fa-file-signature:before {
content: "\f573"; }

.fa-file-upload:before {
content: "\f574"; }

.fa-file-video:before {
content: "\f1c8"; }

.fa-file-word:before {
content: "\f1c2"; }

.fa-fill:before {
content: "\f575"; }

.fa-fill-drip:before {
content: "\f576"; }

.fa-film:before {
content: "\f008"; }

.fa-filter:before {
content: "\f0b0"; }

.fa-fingerprint:before {
content: "\f577"; }

.fa-fire:before {
content: "\f06d"; }

.fa-fire-alt:before {
content: "\f7e4"; }

.fa-fire-extinguisher:before {
content: "\f134"; }

.fa-firefox:before {
content: "\f269"; }

.fa-firefox-browser:before {
content: "\e007"; }

.fa-first-aid:before {
content: "\f479"; }

.fa-first-order:before {
content: "\f2b0"; }

.fa-first-order-alt:before {
content: "\f50a"; }

.fa-firstdraft:before {
content: "\f3a1"; }

.fa-fish:before {
content: "\f578"; }

.fa-fist-raised:before {
content: "\f6de"; }

.fa-flag:before {
content: "\f024"; }

.fa-flag-checkered:before {
content: "\f11e"; }

.fa-flag-usa:before {
content: "\f74d"; }

.fa-flask:before {
content: "\f0c3"; }

.fa-flickr:before {
content: "\f16e"; }

.fa-flipboard:before {
content: "\f44d"; }

.fa-flushed:before {
content: "\f579"; }

.fa-fly:before {
content: "\f417"; }

.fa-folder:before {
content: "\f07b"; }

.fa-folder-minus:before {
content: "\f65d"; }

.fa-folder-open:before {
content: "\f07c"; }

.fa-folder-plus:before {
content: "\f65e"; }

.fa-font:before {
content: "\f031"; }

.fa-font-awesome:before {
content: "\f2b4"; }

.fa-font-awesome-alt:before {
content: "\f35c"; }

.fa-font-awesome-flag:before {
content: "\f425"; }

.fa-font-awesome-logo-full:before {
content: "\f4e6"; }

.fa-fonticons:before {
content: "\f280"; }

.fa-fonticons-fi:before {
content: "\f3a2"; }

.fa-football-ball:before {
content: "\f44e"; }

.fa-fort-awesome:before {
content: "\f286"; }

.fa-fort-awesome-alt:before {
content: "\f3a3"; }

.fa-forumbee:before {
content: "\f211"; }

.fa-forward:before {
content: "\f04e"; }

.fa-foursquare:before {
content: "\f180"; }

.fa-free-code-camp:before {
content: "\f2c5"; }

.fa-freebsd:before {
content: "\f3a4"; }

.fa-frog:before {
content: "\f52e"; }

.fa-frown:before {
content: "\f119"; }

.fa-frown-open:before {
content: "\f57a"; }

.fa-fulcrum:before {
content: "\f50b"; }

.fa-funnel-dollar:before {
content: "\f662"; }

.fa-futbol:before {
content: "\f1e3"; }

.fa-galactic-republic:before {
content: "\f50c"; }

.fa-galactic-senate:before {
content: "\f50d"; }

.fa-gamepad:before {
content: "\f11b"; }

.fa-gas-pump:before {
content: "\f52f"; }

.fa-gavel:before {
content: "\f0e3"; }

.fa-gem:before {
content: "\f3a5"; }

.fa-genderless:before {
content: "\f22d"; }

.fa-get-pocket:before {
content: "\f265"; }

.fa-gg:before {
content: "\f260"; }

.fa-gg-circle:before {
content: "\f261"; }

.fa-ghost:before {
content: "\f6e2"; }

.fa-gift:before {
content: "\f06b"; }

.fa-gifts:before {
content: "\f79c"; }

.fa-git:before {
content: "\f1d3"; }

.fa-git-alt:before {
content: "\f841"; }

.fa-git-square:before {
content: "\f1d2"; }

.fa-github:before {
content: "\f09b"; }

.fa-github-alt:before {
content: "\f113"; }

.fa-github-square:before {
content: "\f092"; }

.fa-gitkraken:before {
content: "\f3a6"; }

.fa-gitlab:before {
content: "\f296"; }

.fa-gitter:before {
content: "\f426"; }

.fa-glass-cheers:before {
content: "\f79f"; }

.fa-glass-martini:before {
content: "\f000"; }

.fa-glass-martini-alt:before {
content: "\f57b"; }

.fa-glass-whiskey:before {
content: "\f7a0"; }

.fa-glasses:before {
content: "\f530"; }

.fa-glide:before {
content: "\f2a5"; }

.fa-glide-g:before {
content: "\f2a6"; }

.fa-globe:before {
content: "\f0ac"; }

.fa-globe-africa:before {
content: "\f57c"; }

.fa-globe-americas:before {
content: "\f57d"; }

.fa-globe-asia:before {
content: "\f57e"; }

.fa-globe-europe:before {
content: "\f7a2"; }

.fa-gofore:before {
content: "\f3a7"; }

.fa-golf-ball:before {
content: "\f450"; }

.fa-goodreads:before {
content: "\f3a8"; }

.fa-goodreads-g:before {
content: "\f3a9"; }

.fa-google:before {
content: "\f1a0"; }

.fa-google-drive:before {
content: "\f3aa"; }

.fa-google-pay:before {
content: "\e079"; }

.fa-google-play:before {
content: "\f3ab"; }

.fa-google-plus:before {
content: "\f2b3"; }

.fa-google-plus-g:before {
content: "\f0d5"; }

.fa-google-plus-square:before {
content: "\f0d4"; }

.fa-google-wallet:before {
content: "\f1ee"; }

.fa-gopuram:before {
content: "\f664"; }

.fa-graduation-cap:before {
content: "\f19d"; }

.fa-gratipay:before {
content: "\f184"; }

.fa-grav:before {
content: "\f2d6"; }

.fa-greater-than:before {
content: "\f531"; }

.fa-greater-than-equal:before {
content: "\f532"; }

.fa-grimace:before {
content: "\f57f"; }

.fa-grin:before {
content: "\f580"; }

.fa-grin-alt:before {
content: "\f581"; }

.fa-grin-beam:before {
content: "\f582"; }

.fa-grin-beam-sweat:before {
content: "\f583"; }

.fa-grin-hearts:before {
content: "\f584"; }

.fa-grin-squint:before {
content: "\f585"; }

.fa-grin-squint-tears:before {
content: "\f586"; }

.fa-grin-stars:before {
content: "\f587"; }

.fa-grin-tears:before {
content: "\f588"; }

.fa-grin-tongue:before {
content: "\f589"; }

.fa-grin-tongue-squint:before {
content: "\f58a"; }

.fa-grin-tongue-wink:before {
content: "\f58b"; }

.fa-grin-wink:before {
content: "\f58c"; }

.fa-grip-horizontal:before {
content: "\f58d"; }

.fa-grip-lines:before {
content: "\f7a4"; }

.fa-grip-lines-vertical:before {
content: "\f7a5"; }

.fa-grip-vertical:before {
content: "\f58e"; }

.fa-gripfire:before {
content: "\f3ac"; }

.fa-grunt:before {
content: "\f3ad"; }

.fa-guilded:before {
content: "\e07e"; }

.fa-guitar:before {
content: "\f7a6"; }

.fa-gulp:before {
content: "\f3ae"; }

.fa-h-square:before {
content: "\f0fd"; }

.fa-hacker-news:before {
content: "\f1d4"; }

.fa-hacker-news-square:before {
content: "\f3af"; }

.fa-hackerrank:before {
content: "\f5f7"; }

.fa-hamburger:before {
content: "\f805"; }

.fa-hammer:before {
content: "\f6e3"; }

.fa-hamsa:before {
content: "\f665"; }

.fa-hand-holding:before {
content: "\f4bd"; }

.fa-hand-holding-heart:before {
content: "\f4be"; }

.fa-hand-holding-medical:before {
content: "\e05c"; }

.fa-hand-holding-usd:before {
content: "\f4c0"; }

.fa-hand-holding-water:before {
content: "\f4c1"; }

.fa-hand-lizard:before {
content: "\f258"; }

.fa-hand-middle-finger:before {
content: "\f806"; }

.fa-hand-paper:before {
content: "\f256"; }

.fa-hand-peace:before {
content: "\f25b"; }

.fa-hand-point-down:before {
content: "\f0a7"; }

.fa-hand-point-left:before {
content: "\f0a5"; }

.fa-hand-point-right:before {
content: "\f0a4"; }

.fa-hand-point-up:before {
content: "\f0a6"; }

.fa-hand-pointer:before {
content: "\f25a"; }

.fa-hand-rock:before {
content: "\f255"; }

.fa-hand-scissors:before {
content: "\f257"; }

.fa-hand-sparkles:before {
content: "\e05d"; }

.fa-hand-spock:before {
content: "\f259"; }

.fa-hands:before {
content: "\f4c2"; }

.fa-hands-helping:before {
content: "\f4c4"; }

.fa-hands-wash:before {
content: "\e05e"; }

.fa-handshake:before {
content: "\f2b5"; }

.fa-handshake-alt-slash:before {
content: "\e05f"; }

.fa-handshake-slash:before {
content: "\e060"; }

.fa-hanukiah:before {
content: "\f6e6"; }

.fa-hard-hat:before {
content: "\f807"; }

.fa-hashtag:before {
content: "\f292"; }

.fa-hat-cowboy:before {
content: "\f8c0"; }

.fa-hat-cowboy-side:before {
content: "\f8c1"; }

.fa-hat-wizard:before {
content: "\f6e8"; }

.fa-hdd:before {
content: "\f0a0"; }

.fa-head-side-cough:before {
content: "\e061"; }

.fa-head-side-cough-slash:before {
content: "\e062"; }

.fa-head-side-mask:before {
content: "\e063"; }

.fa-head-side-virus:before {
content: "\e064"; }

.fa-heading:before {
content: "\f1dc"; }

.fa-headphones:before {
content: "\f025"; }

.fa-headphones-alt:before {
content: "\f58f"; }

.fa-headset:before {
content: "\f590"; }

.fa-heart:before {
content: "\f004"; }

.fa-heart-broken:before {
content: "\f7a9"; }

.fa-heartbeat:before {
content: "\f21e"; }

.fa-helicopter:before {
content: "\f533"; }

.fa-highlighter:before {
content: "\f591"; }

.fa-hiking:before {
content: "\f6ec"; }

.fa-hippo:before {
content: "\f6ed"; }

.fa-hips:before {
content: "\f452"; }

.fa-hire-a-helper:before {
content: "\f3b0"; }

.fa-history:before {
content: "\f1da"; }

.fa-hive:before {
content: "\e07f"; }

.fa-hockey-puck:before {
content: "\f453"; }

.fa-holly-berry:before {
content: "\f7aa"; }

.fa-home:before {
content: "\f015"; }

.fa-hooli:before {
content: "\f427"; }

.fa-hornbill:before {
content: "\f592"; }

.fa-horse:before {
content: "\f6f0"; }

.fa-horse-head:before {
content: "\f7ab"; }

.fa-hospital:before {
content: "\f0f8"; }

.fa-hospital-alt:before {
content: "\f47d"; }

.fa-hospital-symbol:before {
content: "\f47e"; }

.fa-hospital-user:before {
content: "\f80d"; }

.fa-hot-tub:before {
content: "\f593"; }

.fa-hotdog:before {
content: "\f80f"; }

.fa-hotel:before {
content: "\f594"; }

.fa-hotjar:before {
content: "\f3b1"; }

.fa-hourglass:before {
content: "\f254"; }

.fa-hourglass-end:before {
content: "\f253"; }

.fa-hourglass-half:before {
content: "\f252"; }

.fa-hourglass-start:before {
content: "\f251"; }

.fa-house-damage:before {
content: "\f6f1"; }

.fa-house-user:before {
content: "\e065"; }

.fa-houzz:before {
content: "\f27c"; }

.fa-hryvnia:before {
content: "\f6f2"; }

.fa-html5:before {
content: "\f13b"; }

.fa-hubspot:before {
content: "\f3b2"; }

.fa-i-cursor:before {
content: "\f246"; }

.fa-ice-cream:before {
content: "\f810"; }

.fa-icicles:before {
content: "\f7ad"; }

.fa-icons:before {
content: "\f86d"; }

.fa-id-badge:before {
content: "\f2c1"; }

.fa-id-card:before {
content: "\f2c2"; }

.fa-id-card-alt:before {
content: "\f47f"; }

.fa-ideal:before {
content: "\e013"; }

.fa-igloo:before {
content: "\f7ae"; }

.fa-image:before {
content: "\f03e"; }

.fa-images:before {
content: "\f302"; }

.fa-imdb:before {
content: "\f2d8"; }

.fa-inbox:before {
content: "\f01c"; }

.fa-indent:before {
content: "\f03c"; }

.fa-industry:before {
content: "\f275"; }

.fa-infinity:before {
content: "\f534"; }

.fa-info:before {
content: "\f129"; }

.fa-info-circle:before {
content: "\f05a"; }

.fa-innosoft:before {
content: "\e080"; }

.fa-instagram:before {
content: "\f16d"; }

.fa-instagram-square:before {
content: "\e055"; }

.fa-instalod:before {
content: "\e081"; }

.fa-intercom:before {
content: "\f7af"; }

.fa-internet-explorer:before {
content: "\f26b"; }

.fa-invision:before {
content: "\f7b0"; }

.fa-ioxhost:before {
content: "\f208"; }

.fa-italic:before {
content: "\f033"; }

.fa-itch-io:before {
content: "\f83a"; }

.fa-itunes:before {
content: "\f3b4"; }

.fa-itunes-note:before {
content: "\f3b5"; }

.fa-java:before {
content: "\f4e4"; }

.fa-jedi:before {
content: "\f669"; }

.fa-jedi-order:before {
content: "\f50e"; }

.fa-jenkins:before {
content: "\f3b6"; }

.fa-jira:before {
content: "\f7b1"; }

.fa-joget:before {
content: "\f3b7"; }

.fa-joint:before {
content: "\f595"; }

.fa-joomla:before {
content: "\f1aa"; }

.fa-journal-whills:before {
content: "\f66a"; }

.fa-js:before {
content: "\f3b8"; }

.fa-js-square:before {
content: "\f3b9"; }

.fa-jsfiddle:before {
content: "\f1cc"; }

.fa-kaaba:before {
content: "\f66b"; }

.fa-kaggle:before {
content: "\f5fa"; }

.fa-key:before {
content: "\f084"; }

.fa-keybase:before {
content: "\f4f5"; }

.fa-keyboard:before {
content: "\f11c"; }

.fa-keycdn:before {
content: "\f3ba"; }

.fa-khanda:before {
content: "\f66d"; }

.fa-kickstarter:before {
content: "\f3bb"; }

.fa-kickstarter-k:before {
content: "\f3bc"; }

.fa-kiss:before {
content: "\f596"; }

.fa-kiss-beam:before {
content: "\f597"; }

.fa-kiss-wink-heart:before {
content: "\f598"; }

.fa-kiwi-bird:before {
content: "\f535"; }

.fa-korvue:before {
content: "\f42f"; }

.fa-landmark:before {
content: "\f66f"; }

.fa-language:before {
content: "\f1ab"; }

.fa-laptop:before {
content: "\f109"; }

.fa-laptop-code:before {
content: "\f5fc"; }

.fa-laptop-house:before {
content: "\e066"; }

.fa-laptop-medical:before {
content: "\f812"; }

.fa-laravel:before {
content: "\f3bd"; }

.fa-lastfm:before {
content: "\f202"; }

.fa-lastfm-square:before {
content: "\f203"; }

.fa-laugh:before {
content: "\f599"; }

.fa-laugh-beam:before {
content: "\f59a"; }

.fa-laugh-squint:before {
content: "\f59b"; }

.fa-laugh-wink:before {
content: "\f59c"; }

.fa-layer-group:before {
content: "\f5fd"; }

.fa-leaf:before {
content: "\f06c"; }

.fa-leanpub:before {
content: "\f212"; }

.fa-lemon:before {
content: "\f094"; }

.fa-less:before {
content: "\f41d"; }

.fa-less-than:before {
content: "\f536"; }

.fa-less-than-equal:before {
content: "\f537"; }

.fa-level-down-alt:before {
content: "\f3be"; }

.fa-level-up-alt:before {
content: "\f3bf"; }

.fa-life-ring:before {
content: "\f1cd"; }

.fa-lightbulb:before {
content: "\f0eb"; }

.fa-line:before {
content: "\f3c0"; }

.fa-link:before {
content: "\f0c1"; }

.fa-linkedin:before {
content: "\f08c"; }

.fa-linkedin-in:before {
content: "\f0e1"; }

.fa-linode:before {
content: "\f2b8"; }

.fa-linux:before {
content: "\f17c"; }

.fa-lira-sign:before {
content: "\f195"; }

.fa-list:before {
content: "\f03a"; }

.fa-list-alt:before {
content: "\f022"; }

.fa-list-ol:before {
content: "\f0cb"; }

.fa-list-ul:before {
content: "\f0ca"; }

.fa-location-arrow:before {
content: "\f124"; }

.fa-lock:before {
content: "\f023"; }

.fa-lock-open:before {
content: "\f3c1"; }

.fa-long-arrow-alt-down:before {
content: "\f309"; }

.fa-long-arrow-alt-left:before {
content: "\f30a"; }

.fa-long-arrow-alt-right:before {
content: "\f30b"; }

.fa-long-arrow-alt-up:before {
content: "\f30c"; }

.fa-low-vision:before {
content: "\f2a8"; }

.fa-luggage-cart:before {
content: "\f59d"; }

.fa-lungs:before {
content: "\f604"; }

.fa-lungs-virus:before {
content: "\e067"; }

.fa-lyft:before {
content: "\f3c3"; }

.fa-magento:before {
content: "\f3c4"; }

.fa-magic:before {
content: "\f0d0"; }

.fa-magnet:before {
content: "\f076"; }

.fa-mail-bulk:before {
content: "\f674"; }

.fa-mailchimp:before {
content: "\f59e"; }

.fa-male:before {
content: "\f183"; }

.fa-mandalorian:before {
content: "\f50f"; }

.fa-map:before {
content: "\f279"; }

.fa-map-marked:before {
content: "\f59f"; }

.fa-map-marked-alt:before {
content: "\f5a0"; }

.fa-map-marker:before {
content: "\f041"; }

.fa-map-marker-alt:before {
content: "\f3c5"; }

.fa-map-pin:before {
content: "\f276"; }

.fa-map-signs:before {
content: "\f277"; }

.fa-markdown:before {
content: "\f60f"; }

.fa-marker:before {
content: "\f5a1"; }

.fa-mars:before {
content: "\f222"; }

.fa-mars-double:before {
content: "\f227"; }

.fa-mars-stroke:before {
content: "\f229"; }

.fa-mars-stroke-h:before {
content: "\f22b"; }

.fa-mars-stroke-v:before {
content: "\f22a"; }

.fa-mask:before {
content: "\f6fa"; }

.fa-mastodon:before {
content: "\f4f6"; }

.fa-maxcdn:before {
content: "\f136"; }

.fa-mdb:before {
content: "\f8ca"; }

.fa-medal:before {
content: "\f5a2"; }

.fa-medapps:before {
content: "\f3c6"; }

.fa-medium:before {
content: "\f23a"; }

.fa-medium-m:before {
content: "\f3c7"; }

.fa-medkit:before {
content: "\f0fa"; }

.fa-medrt:before {
content: "\f3c8"; }

.fa-meetup:before {
content: "\f2e0"; }

.fa-megaport:before {
content: "\f5a3"; }

.fa-meh:before {
content: "\f11a"; }

.fa-meh-blank:before {
content: "\f5a4"; }

.fa-meh-rolling-eyes:before {
content: "\f5a5"; }

.fa-memory:before {
content: "\f538"; }

.fa-mendeley:before {
content: "\f7b3"; }

.fa-menorah:before {
content: "\f676"; }

.fa-mercury:before {
content: "\f223"; }

.fa-meteor:before {
content: "\f753"; }

.fa-microblog:before {
content: "\e01a"; }

.fa-microchip:before {
content: "\f2db"; }

.fa-microphone:before {
content: "\f130"; }

.fa-microphone-alt:before {
content: "\f3c9"; }

.fa-microphone-alt-slash:before {
content: "\f539"; }

.fa-microphone-slash:before {
content: "\f131"; }

.fa-microscope:before {
content: "\f610"; }

.fa-microsoft:before {
content: "\f3ca"; }

.fa-minus:before {
content: "\f068"; }

.fa-minus-circle:before {
content: "\f056"; }

.fa-minus-square:before {
content: "\f146"; }

.fa-mitten:before {
content: "\f7b5"; }

.fa-mix:before {
content: "\f3cb"; }

.fa-mixcloud:before {
content: "\f289"; }

.fa-mixer:before {
content: "\e056"; }

.fa-mizuni:before {
content: "\f3cc"; }

.fa-mobile:before {
content: "\f10b"; }

.fa-mobile-alt:before {
content: "\f3cd"; }

.fa-modx:before {
content: "\f285"; }

.fa-monero:before {
content: "\f3d0"; }

.fa-money-bill:before {
content: "\f0d6"; }

.fa-money-bill-alt:before {
content: "\f3d1"; }

.fa-money-bill-wave:before {
content: "\f53a"; }

.fa-money-bill-wave-alt:before {
content: "\f53b"; }

.fa-money-check:before {
content: "\f53c"; }

.fa-money-check-alt:before {
content: "\f53d"; }

.fa-monument:before {
content: "\f5a6"; }

.fa-moon:before {
content: "\f186"; }

.fa-mortar-pestle:before {
content: "\f5a7"; }

.fa-mosque:before {
content: "\f678"; }

.fa-motorcycle:before {
content: "\f21c"; }

.fa-mountain:before {
content: "\f6fc"; }

.fa-mouse:before {
content: "\f8cc"; }

.fa-mouse-pointer:before {
content: "\f245"; }

.fa-mug-hot:before {
content: "\f7b6"; }

.fa-music:before {
content: "\f001"; }

.fa-napster:before {
content: "\f3d2"; }

.fa-neos:before {
content: "\f612"; }

.fa-network-wired:before {
content: "\f6ff"; }

.fa-neuter:before {
content: "\f22c"; }

.fa-newspaper:before {
content: "\f1ea"; }

.fa-nimblr:before {
content: "\f5a8"; }

.fa-node:before {
content: "\f419"; }

.fa-node-js:before {
content: "\f3d3"; }

.fa-not-equal:before {
content: "\f53e"; }

.fa-notes-medical:before {
content: "\f481"; }

.fa-npm:before {
content: "\f3d4"; }

.fa-ns8:before {
content: "\f3d5"; }

.fa-nutritionix:before {
content: "\f3d6"; }

.fa-object-group:before {
content: "\f247"; }

.fa-object-ungroup:before {
content: "\f248"; }

.fa-octopus-deploy:before {
content: "\e082"; }

.fa-odnoklassniki:before {
content: "\f263"; }

.fa-odnoklassniki-square:before {
content: "\f264"; }

.fa-oil-can:before {
content: "\f613"; }

.fa-old-republic:before {
content: "\f510"; }

.fa-om:before {
content: "\f679"; }

.fa-opencart:before {
content: "\f23d"; }

.fa-openid:before {
content: "\f19b"; }

.fa-opera:before {
content: "\f26a"; }

.fa-optin-monster:before {
content: "\f23c"; }

.fa-orcid:before {
content: "\f8d2"; }

.fa-osi:before {
content: "\f41a"; }

.fa-otter:before {
content: "\f700"; }

.fa-outdent:before {
content: "\f03b"; }

.fa-page4:before {
content: "\f3d7"; }

.fa-pagelines:before {
content: "\f18c"; }

.fa-pager:before {
content: "\f815"; }

.fa-paint-brush:before {
content: "\f1fc"; }

.fa-paint-roller:before {
content: "\f5aa"; }

.fa-palette:before {
content: "\f53f"; }

.fa-palfed:before {
content: "\f3d8"; }

.fa-pallet:before {
content: "\f482"; }

.fa-paper-plane:before {
content: "\f1d8"; }

.fa-paperclip:before {
content: "\f0c6"; }

.fa-parachute-box:before {
content: "\f4cd"; }

.fa-paragraph:before {
content: "\f1dd"; }

.fa-parking:before {
content: "\f540"; }

.fa-passport:before {
content: "\f5ab"; }

.fa-pastafarianism:before {
content: "\f67b"; }

.fa-paste:before {
content: "\f0ea"; }

.fa-patreon:before {
content: "\f3d9"; }

.fa-pause:before {
content: "\f04c"; }

.fa-pause-circle:before {
content: "\f28b"; }

.fa-paw:before {
content: "\f1b0"; }

.fa-paypal:before {
content: "\f1ed"; }

.fa-peace:before {
content: "\f67c"; }

.fa-pen:before {
content: "\f304"; }

.fa-pen-alt:before {
content: "\f305"; }

.fa-pen-fancy:before {
content: "\f5ac"; }

.fa-pen-nib:before {
content: "\f5ad"; }

.fa-pen-square:before {
content: "\f14b"; }

.fa-pencil-alt:before {
content: "\f303"; }

.fa-pencil-ruler:before {
content: "\f5ae"; }

.fa-penny-arcade:before {
content: "\f704"; }

.fa-people-arrows:before {
content: "\e068"; }

.fa-people-carry:before {
content: "\f4ce"; }

.fa-pepper-hot:before {
content: "\f816"; }

.fa-perbyte:before {
content: "\e083"; }

.fa-percent:before {
content: "\f295"; }

.fa-percentage:before {
content: "\f541"; }

.fa-periscope:before {
content: "\f3da"; }

.fa-person-booth:before {
content: "\f756"; }

.fa-phabricator:before {
content: "\f3db"; }

.fa-phoenix-framework:before {
content: "\f3dc"; }

.fa-phoenix-squadron:before {
content: "\f511"; }

.fa-phone:before {
content: "\f095"; }

.fa-phone-alt:before {
content: "\f879"; }

.fa-phone-slash:before {
content: "\f3dd"; }

.fa-phone-square:before {
content: "\f098"; }

.fa-phone-square-alt:before {
content: "\f87b"; }

.fa-phone-volume:before {
content: "\f2a0"; }

.fa-photo-video:before {
content: "\f87c"; }

.fa-php:before {
content: "\f457"; }

.fa-pied-piper:before {
content: "\f2ae"; }

.fa-pied-piper-alt:before {
content: "\f1a8"; }

.fa-pied-piper-hat:before {
content: "\f4e5"; }

.fa-pied-piper-pp:before {
content: "\f1a7"; }

.fa-pied-piper-square:before {
content: "\e01e"; }

.fa-piggy-bank:before {
content: "\f4d3"; }

.fa-pills:before {
content: "\f484"; }

.fa-pinterest:before {
content: "\f0d2"; }

.fa-pinterest-p:before {
content: "\f231"; }

.fa-pinterest-square:before {
content: "\f0d3"; }

.fa-pizza-slice:before {
content: "\f818"; }

.fa-place-of-worship:before {
content: "\f67f"; }

.fa-plane:before {
content: "\f072"; }

.fa-plane-arrival:before {
content: "\f5af"; }

.fa-plane-departure:before {
content: "\f5b0"; }

.fa-plane-slash:before {
content: "\e069"; }

.fa-play:before {
content: "\f04b"; }

.fa-play-circle:before {
content: "\f144"; }

.fa-playstation:before {
content: "\f3df"; }

.fa-plug:before {
content: "\f1e6"; }

.fa-plus:before {
content: "\f067"; }

.fa-plus-circle:before {
content: "\f055"; }

.fa-plus-square:before {
content: "\f0fe"; }

.fa-podcast:before {
content: "\f2ce"; }

.fa-poll:before {
content: "\f681"; }

.fa-poll-h:before {
content: "\f682"; }

.fa-poo:before {
content: "\f2fe"; }

.fa-poo-storm:before {
content: "\f75a"; }

.fa-poop:before {
content: "\f619"; }

.fa-portrait:before {
content: "\f3e0"; }

.fa-pound-sign:before {
content: "\f154"; }

.fa-power-off:before {
content: "\f011"; }

.fa-pray:before {
content: "\f683"; }

.fa-praying-hands:before {
content: "\f684"; }

.fa-prescription:before {
content: "\f5b1"; }

.fa-prescription-bottle:before {
content: "\f485"; }

.fa-prescription-bottle-alt:before {
content: "\f486"; }

.fa-print:before {
content: "\f02f"; }

.fa-procedures:before {
content: "\f487"; }

.fa-product-hunt:before {
content: "\f288"; }

.fa-project-diagram:before {
content: "\f542"; }

.fa-pump-medical:before {
content: "\e06a"; }

.fa-pump-soap:before {
content: "\e06b"; }

.fa-pushed:before {
content: "\f3e1"; }

.fa-puzzle-piece:before {
content: "\f12e"; }

.fa-python:before {
content: "\f3e2"; }

.fa-qq:before {
content: "\f1d6"; }

.fa-qrcode:before {
content: "\f029"; }

.fa-question:before {
content: "\f128"; }

.fa-question-circle:before {
content: "\f059"; }

.fa-quidditch:before {
content: "\f458"; }

.fa-quinscape:before {
content: "\f459"; }

.fa-quora:before {
content: "\f2c4"; }

.fa-quote-left:before {
content: "\f10d"; }

.fa-quote-right:before {
content: "\f10e"; }

.fa-quran:before {
content: "\f687"; }

.fa-r-project:before {
content: "\f4f7"; }

.fa-radiation:before {
content: "\f7b9"; }

.fa-radiation-alt:before {
content: "\f7ba"; }

.fa-rainbow:before {
content: "\f75b"; }

.fa-random:before {
content: "\f074"; }

.fa-raspberry-pi:before {
content: "\f7bb"; }

.fa-ravelry:before {
content: "\f2d9"; }

.fa-react:before {
content: "\f41b"; }

.fa-reacteurope:before {
content: "\f75d"; }

.fa-readme:before {
content: "\f4d5"; }

.fa-rebel:before {
content: "\f1d0"; }

.fa-receipt:before {
content: "\f543"; }

.fa-record-vinyl:before {
content: "\f8d9"; }

.fa-recycle:before {
content: "\f1b8"; }

.fa-red-river:before {
content: "\f3e3"; }

.fa-reddit:before {
content: "\f1a1"; }

.fa-reddit-alien:before {
content: "\f281"; }

.fa-reddit-square:before {
content: "\f1a2"; }

.fa-redhat:before {
content: "\f7bc"; }

.fa-redo:before {
content: "\f01e"; }

.fa-redo-alt:before {
content: "\f2f9"; }

.fa-registered:before {
content: "\f25d"; }

.fa-remove-format:before {
content: "\f87d"; }

.fa-renren:before {
content: "\f18b"; }

.fa-reply:before {
content: "\f3e5"; }

.fa-reply-all:before {
content: "\f122"; }

.fa-replyd:before {
content: "\f3e6"; }

.fa-republican:before {
content: "\f75e"; }

.fa-researchgate:before {
content: "\f4f8"; }

.fa-resolving:before {
content: "\f3e7"; }

.fa-restroom:before {
content: "\f7bd"; }

.fa-retweet:before {
content: "\f079"; }

.fa-rev:before {
content: "\f5b2"; }

.fa-ribbon:before {
content: "\f4d6"; }

.fa-ring:before {
content: "\f70b"; }

.fa-road:before {
content: "\f018"; }

.fa-robot:before {
content: "\f544"; }

.fa-rocket:before {
content: "\f135"; }

.fa-rocketchat:before {
content: "\f3e8"; }

.fa-rockrms:before {
content: "\f3e9"; }

.fa-route:before {
content: "\f4d7"; }

.fa-rss:before {
content: "\f09e"; }

.fa-rss-square:before {
content: "\f143"; }

.fa-ruble-sign:before {
content: "\f158"; }

.fa-ruler:before {
content: "\f545"; }

.fa-ruler-combined:before {
content: "\f546"; }

.fa-ruler-horizontal:before {
content: "\f547"; }

.fa-ruler-vertical:before {
content: "\f548"; }

.fa-running:before {
content: "\f70c"; }

.fa-rupee-sign:before {
content: "\f156"; }

.fa-rust:before {
content: "\e07a"; }

.fa-sad-cry:before {
content: "\f5b3"; }

.fa-sad-tear:before {
content: "\f5b4"; }

.fa-safari:before {
content: "\f267"; }

.fa-salesforce:before {
content: "\f83b"; }

.fa-sass:before {
content: "\f41e"; }

.fa-satellite:before {
content: "\f7bf"; }

.fa-satellite-dish:before {
content: "\f7c0"; }

.fa-save:before {
content: "\f0c7"; }

.fa-schlix:before {
content: "\f3ea"; }

.fa-school:before {
content: "\f549"; }

.fa-screwdriver:before {
content: "\f54a"; }

.fa-scribd:before {
content: "\f28a"; }

.fa-scroll:before {
content: "\f70e"; }

.fa-sd-card:before {
content: "\f7c2"; }

.fa-search:before {
content: "\f002"; }

.fa-search-dollar:before {
content: "\f688"; }

.fa-search-location:before {
content: "\f689"; }

.fa-search-minus:before {
content: "\f010"; }

.fa-search-plus:before {
content: "\f00e"; }

.fa-searchengin:before {
content: "\f3eb"; }

.fa-seedling:before {
content: "\f4d8"; }

.fa-sellcast:before {
content: "\f2da"; }

.fa-sellsy:before {
content: "\f213"; }

.fa-server:before {
content: "\f233"; }

.fa-servicestack:before {
content: "\f3ec"; }

.fa-shapes:before {
content: "\f61f"; }

.fa-share:before {
content: "\f064"; }

.fa-share-alt:before {
content: "\f1e0"; }

.fa-share-alt-square:before {
content: "\f1e1"; }

.fa-share-square:before {
content: "\f14d"; }

.fa-shekel-sign:before {
content: "\f20b"; }

.fa-shield-alt:before {
content: "\f3ed"; }

.fa-shield-virus:before {
content: "\e06c"; }

.fa-ship:before {
content: "\f21a"; }

.fa-shipping-fast:before {
content: "\f48b"; }

.fa-shirtsinbulk:before {
content: "\f214"; }

.fa-shoe-prints:before {
content: "\f54b"; }

.fa-shopify:before {
content: "\e057"; }

.fa-shopping-bag:before {
content: "\f290"; }

.fa-shopping-basket:before {
content: "\f291"; }

.fa-shopping-cart:before {
content: "\f07a"; }

.fa-shopware:before {
content: "\f5b5"; }

.fa-shower:before {
content: "\f2cc"; }

.fa-shuttle-van:before {
content: "\f5b6"; }

.fa-sign:before {
content: "\f4d9"; }

.fa-sign-in-alt:before {
content: "\f2f6"; }

.fa-sign-language:before {
content: "\f2a7"; }

.fa-sign-out-alt:before {
content: "\f2f5"; }

.fa-signal:before {
content: "\f012"; }

.fa-signature:before {
content: "\f5b7"; }

.fa-sim-card:before {
content: "\f7c4"; }

.fa-simplybuilt:before {
content: "\f215"; }

.fa-sink:before {
content: "\e06d"; }

.fa-sistrix:before {
content: "\f3ee"; }

.fa-sitemap:before {
content: "\f0e8"; }

.fa-sith:before {
content: "\f512"; }

.fa-skating:before {
content: "\f7c5"; }

.fa-sketch:before {
content: "\f7c6"; }

.fa-skiing:before {
content: "\f7c9"; }

.fa-skiing-nordic:before {
content: "\f7ca"; }

.fa-skull:before {
content: "\f54c"; }

.fa-skull-crossbones:before {
content: "\f714"; }

.fa-skyatlas:before {
content: "\f216"; }

.fa-skype:before {
content: "\f17e"; }

.fa-slack:before {
content: "\f198"; }

.fa-slack-hash:before {
content: "\f3ef"; }

.fa-slash:before {
content: "\f715"; }

.fa-sleigh:before {
content: "\f7cc"; }

.fa-sliders-h:before {
content: "\f1de"; }

.fa-slideshare:before {
content: "\f1e7"; }

.fa-smile:before {
content: "\f118"; }

.fa-smile-beam:before {
content: "\f5b8"; }

.fa-smile-wink:before {
content: "\f4da"; }

.fa-smog:before {
content: "\f75f"; }

.fa-smoking:before {
content: "\f48d"; }

.fa-smoking-ban:before {
content: "\f54d"; }

.fa-sms:before {
content: "\f7cd"; }

.fa-snapchat:before {
content: "\f2ab"; }

.fa-snapchat-ghost:before {
content: "\f2ac"; }

.fa-snapchat-square:before {
content: "\f2ad"; }

.fa-snowboarding:before {
content: "\f7ce"; }

.fa-snowflake:before {
content: "\f2dc"; }

.fa-snowman:before {
content: "\f7d0"; }

.fa-snowplow:before {
content: "\f7d2"; }

.fa-soap:before {
content: "\e06e"; }

.fa-socks:before {
content: "\f696"; }

.fa-solar-panel:before {
content: "\f5ba"; }

.fa-sort:before {
content: "\f0dc"; }

.fa-sort-alpha-down:before {
content: "\f15d"; }

.fa-sort-alpha-down-alt:before {
content: "\f881"; }

.fa-sort-alpha-up:before {
content: "\f15e"; }

.fa-sort-alpha-up-alt:before {
content: "\f882"; }

.fa-sort-amount-down:before {
content: "\f160"; }

.fa-sort-amount-down-alt:before {
content: "\f884"; }

.fa-sort-amount-up:before {
content: "\f161"; }

.fa-sort-amount-up-alt:before {
content: "\f885"; }

.fa-sort-down:before {
content: "\f0dd"; }

.fa-sort-numeric-down:before {
content: "\f162"; }

.fa-sort-numeric-down-alt:before {
content: "\f886"; }

.fa-sort-numeric-up:before {
content: "\f163"; }

.fa-sort-numeric-up-alt:before {
content: "\f887"; }

.fa-sort-up:before {
content: "\f0de"; }

.fa-soundcloud:before {
content: "\f1be"; }

.fa-sourcetree:before {
content: "\f7d3"; }

.fa-spa:before {
content: "\f5bb"; }

.fa-space-shuttle:before {
content: "\f197"; }

.fa-speakap:before {
content: "\f3f3"; }

.fa-speaker-deck:before {
content: "\f83c"; }

.fa-spell-check:before {
content: "\f891"; }

.fa-spider:before {
content: "\f717"; }

.fa-spinner:before {
content: "\f110"; }

.fa-splotch:before {
content: "\f5bc"; }

.fa-spotify:before {
content: "\f1bc"; }

.fa-spray-can:before {
content: "\f5bd"; }

.fa-square:before {
content: "\f0c8"; }

.fa-square-full:before {
content: "\f45c"; }

.fa-square-root-alt:before {
content: "\f698"; }

.fa-squarespace:before {
content: "\f5be"; }

.fa-stack-exchange:before {
content: "\f18d"; }

.fa-stack-overflow:before {
content: "\f16c"; }

.fa-stackpath:before {
content: "\f842"; }

.fa-stamp:before {
content: "\f5bf"; }

.fa-star:before {
content: "\f005"; }

.fa-star-and-crescent:before {
content: "\f699"; }

.fa-star-half:before {
content: "\f089"; }

.fa-star-half-alt:before {
content: "\f5c0"; }

.fa-star-of-david:before {
content: "\f69a"; }

.fa-star-of-life:before {
content: "\f621"; }

.fa-staylinked:before {
content: "\f3f5"; }

.fa-steam:before {
content: "\f1b6"; }

.fa-steam-square:before {
content: "\f1b7"; }

.fa-steam-symbol:before {
content: "\f3f6"; }

.fa-step-backward:before {
content: "\f048"; }

.fa-step-forward:before {
content: "\f051"; }

.fa-stethoscope:before {
content: "\f0f1"; }

.fa-sticker-mule:before {
content: "\f3f7"; }

.fa-sticky-note:before {
content: "\f249"; }

.fa-stop:before {
content: "\f04d"; }

.fa-stop-circle:before {
content: "\f28d"; }

.fa-stopwatch:before {
content: "\f2f2"; }

.fa-stopwatch-20:before {
content: "\e06f"; }

.fa-store:before {
content: "\f54e"; }

.fa-store-alt:before {
content: "\f54f"; }

.fa-store-alt-slash:before {
content: "\e070"; }

.fa-store-slash:before {
content: "\e071"; }

.fa-strava:before {
content: "\f428"; }

.fa-stream:before {
content: "\f550"; }

.fa-street-view:before {
content: "\f21d"; }

.fa-strikethrough:before {
content: "\f0cc"; }

.fa-stripe:before {
content: "\f429"; }

.fa-stripe-s:before {
content: "\f42a"; }

.fa-stroopwafel:before {
content: "\f551"; }

.fa-studiovinari:before {
content: "\f3f8"; }

.fa-stumbleupon:before {
content: "\f1a4"; }

.fa-stumbleupon-circle:before {
content: "\f1a3"; }

.fa-subscript:before {
content: "\f12c"; }

.fa-subway:before {
content: "\f239"; }

.fa-suitcase:before {
content: "\f0f2"; }

.fa-suitcase-rolling:before {
content: "\f5c1"; }

.fa-sun:before {
content: "\f185"; }

.fa-superpowers:before {
content: "\f2dd"; }

.fa-superscript:before {
content: "\f12b"; }

.fa-supple:before {
content: "\f3f9"; }

.fa-surprise:before {
content: "\f5c2"; }

.fa-suse:before {
content: "\f7d6"; }

.fa-swatchbook:before {
content: "\f5c3"; }

.fa-swift:before {
content: "\f8e1"; }

.fa-swimmer:before {
content: "\f5c4"; }

.fa-swimming-pool:before {
content: "\f5c5"; }

.fa-symfony:before {
content: "\f83d"; }

.fa-synagogue:before {
content: "\f69b"; }

.fa-sync:before {
content: "\f021"; }

.fa-sync-alt:before {
content: "\f2f1"; }

.fa-syringe:before {
content: "\f48e"; }

.fa-table:before {
content: "\f0ce"; }

.fa-table-tennis:before {
content: "\f45d"; }

.fa-tablet:before {
content: "\f10a"; }

.fa-tablet-alt:before {
content: "\f3fa"; }

.fa-tablets:before {
content: "\f490"; }

.fa-tachometer-alt:before {
content: "\f3fd"; }

.fa-tag:before {
content: "\f02b"; }

.fa-tags:before {
content: "\f02c"; }

.fa-tape:before {
content: "\f4db"; }

.fa-tasks:before {
content: "\f0ae"; }

.fa-taxi:before {
content: "\f1ba"; }

.fa-teamspeak:before {
content: "\f4f9"; }

.fa-teeth:before {
content: "\f62e"; }

.fa-teeth-open:before {
content: "\f62f"; }

.fa-telegram:before {
content: "\f2c6"; }

.fa-telegram-plane:before {
content: "\f3fe"; }

.fa-temperature-high:before {
content: "\f769"; }

.fa-temperature-low:before {
content: "\f76b"; }

.fa-tencent-weibo:before {
content: "\f1d5"; }

.fa-tenge:before {
content: "\f7d7"; }

.fa-terminal:before {
content: "\f120"; }

.fa-text-height:before {
content: "\f034"; }

.fa-text-width:before {
content: "\f035"; }

.fa-th:before {
content: "\f00a"; }

.fa-th-large:before {
content: "\f009"; }

.fa-th-list:before {
content: "\f00b"; }

.fa-the-red-yeti:before {
content: "\f69d"; }

.fa-theater-masks:before {
content: "\f630"; }

.fa-themeco:before {
content: "\f5c6"; }

.fa-themeisle:before {
content: "\f2b2"; }

.fa-thermometer:before {
content: "\f491"; }

.fa-thermometer-empty:before {
content: "\f2cb"; }

.fa-thermometer-full:before {
content: "\f2c7"; }

.fa-thermometer-half:before {
content: "\f2c9"; }

.fa-thermometer-quarter:before {
content: "\f2ca"; }

.fa-thermometer-three-quarters:before {
content: "\f2c8"; }

.fa-think-peaks:before {
content: "\f731"; }

.fa-thumbs-down:before {
content: "\f165"; }

.fa-thumbs-up:before {
content: "\f164"; }

.fa-thumbtack:before {
content: "\f08d"; }

.fa-ticket-alt:before {
content: "\f3ff"; }

.fa-tiktok:before {
content: "\e07b"; }

.fa-times:before {
content: "\f00d"; }

.fa-times-circle:before {
content: "\f057"; }

.fa-tint:before {
content: "\f043"; }

.fa-tint-slash:before {
content: "\f5c7"; }

.fa-tired:before {
content: "\f5c8"; }

.fa-toggle-off:before {
content: "\f204"; }

.fa-toggle-on:before {
content: "\f205"; }

.fa-toilet:before {
content: "\f7d8"; }

.fa-toilet-paper:before {
content: "\f71e"; }

.fa-toilet-paper-slash:before {
content: "\e072"; }

.fa-toolbox:before {
content: "\f552"; }

.fa-tools:before {
content: "\f7d9"; }

.fa-tooth:before {
content: "\f5c9"; }

.fa-torah:before {
content: "\f6a0"; }

.fa-torii-gate:before {
content: "\f6a1"; }

.fa-tractor:before {
content: "\f722"; }

.fa-trade-federation:before {
content: "\f513"; }

.fa-trademark:before {
content: "\f25c"; }

.fa-traffic-light:before {
content: "\f637"; }

.fa-trailer:before {
content: "\e041"; }

.fa-train:before {
content: "\f238"; }

.fa-tram:before {
content: "\f7da"; }

.fa-transgender:before {
content: "\f224"; }

.fa-transgender-alt:before {
content: "\f225"; }

.fa-trash:before {
content: "\f1f8"; }

.fa-trash-alt:before {
content: "\f2ed"; }

.fa-trash-restore:before {
content: "\f829"; }

.fa-trash-restore-alt:before {
content: "\f82a"; }

.fa-tree:before {
content: "\f1bb"; }

.fa-trello:before {
content: "\f181"; }

.fa-tripadvisor:before {
content: "\f262"; }

.fa-trophy:before {
content: "\f091"; }

.fa-truck:before {
content: "\f0d1"; }

.fa-truck-loading:before {
content: "\f4de"; }

.fa-truck-monster:before {
content: "\f63b"; }

.fa-truck-moving:before {
content: "\f4df"; }

.fa-truck-pickup:before {
content: "\f63c"; }

.fa-tshirt:before {
content: "\f553"; }

.fa-tty:before {
content: "\f1e4"; }

.fa-tumblr:before {
content: "\f173"; }

.fa-tumblr-square:before {
content: "\f174"; }

.fa-tv:before {
content: "\f26c"; }

.fa-twitch:before {
content: "\f1e8"; }

.fa-twitter:before {
content: "\f099"; }

.fa-twitter-square:before {
content: "\f081"; }

.fa-typo3:before {
content: "\f42b"; }

.fa-uber:before {
content: "\f402"; }

.fa-ubuntu:before {
content: "\f7df"; }

.fa-uikit:before {
content: "\f403"; }

.fa-umbraco:before {
content: "\f8e8"; }

.fa-umbrella:before {
content: "\f0e9"; }

.fa-umbrella-beach:before {
content: "\f5ca"; }

.fa-uncharted:before {
content: "\e084"; }

.fa-underline:before {
content: "\f0cd"; }

.fa-undo:before {
content: "\f0e2"; }

.fa-undo-alt:before {
content: "\f2ea"; }

.fa-uniregistry:before {
content: "\f404"; }

.fa-unity:before {
content: "\e049"; }

.fa-universal-access:before {
content: "\f29a"; }

.fa-university:before {
content: "\f19c"; }

.fa-unlink:before {
content: "\f127"; }

.fa-unlock:before {
content: "\f09c"; }

.fa-unlock-alt:before {
content: "\f13e"; }

.fa-unsplash:before {
content: "\e07c"; }

.fa-untappd:before {
content: "\f405"; }

.fa-upload:before {
content: "\f093"; }

.fa-ups:before {
content: "\f7e0"; }

.fa-usb:before {
content: "\f287"; }

.fa-user:before {
content: "\f007"; }

.fa-user-alt:before {
content: "\f406"; }

.fa-user-alt-slash:before {
content: "\f4fa"; }

.fa-user-astronaut:before {
content: "\f4fb"; }

.fa-user-check:before {
content: "\f4fc"; }

.fa-user-circle:before {
content: "\f2bd"; }

.fa-user-clock:before {
content: "\f4fd"; }

.fa-user-cog:before {
content: "\f4fe"; }

.fa-user-edit:before {
content: "\f4ff"; }

.fa-user-friends:before {
content: "\f500"; }

.fa-user-graduate:before {
content: "\f501"; }

.fa-user-injured:before {
content: "\f728"; }

.fa-user-lock:before {
content: "\f502"; }

.fa-user-md:before {
content: "\f0f0"; }

.fa-user-minus:before {
content: "\f503"; }

.fa-user-ninja:before {
content: "\f504"; }

.fa-user-nurse:before {
content: "\f82f"; }

.fa-user-plus:before {
content: "\f234"; }

.fa-user-secret:before {
content: "\f21b"; }

.fa-user-shield:before {
content: "\f505"; }

.fa-user-slash:before {
content: "\f506"; }

.fa-user-tag:before {
content: "\f507"; }

.fa-user-tie:before {
content: "\f508"; }

.fa-user-times:before {
content: "\f235"; }

.fa-users:before {
content: "\f0c0"; }

.fa-users-cog:before {
content: "\f509"; }

.fa-users-slash:before {
content: "\e073"; }

.fa-usps:before {
content: "\f7e1"; }

.fa-ussunnah:before {
content: "\f407"; }

.fa-utensil-spoon:before {
content: "\f2e5"; }

.fa-utensils:before {
content: "\f2e7"; }

.fa-vaadin:before {
content: "\f408"; }

.fa-vector-square:before {
content: "\f5cb"; }

.fa-venus:before {
content: "\f221"; }

.fa-venus-double:before {
content: "\f226"; }

.fa-venus-mars:before {
content: "\f228"; }

.fa-vest:before {
content: "\e085"; }

.fa-vest-patches:before {
content: "\e086"; }

.fa-viacoin:before {
content: "\f237"; }

.fa-viadeo:before {
content: "\f2a9"; }

.fa-viadeo-square:before {
content: "\f2aa"; }

.fa-vial:before {
content: "\f492"; }

.fa-vials:before {
content: "\f493"; }

.fa-viber:before {
content: "\f409"; }

.fa-video:before {
content: "\f03d"; }

.fa-video-slash:before {
content: "\f4e2"; }

.fa-vihara:before {
content: "\f6a7"; }

.fa-vimeo:before {
content: "\f40a"; }

.fa-vimeo-square:before {
content: "\f194"; }

.fa-vimeo-v:before {
content: "\f27d"; }

.fa-vine:before {
content: "\f1ca"; }

.fa-virus:before {
content: "\e074"; }

.fa-virus-slash:before {
content: "\e075"; }

.fa-viruses:before {
content: "\e076"; }

.fa-vk:before {
content: "\f189"; }

.fa-vnv:before {
content: "\f40b"; }

.fa-voicemail:before {
content: "\f897"; }

.fa-volleyball-ball:before {
content: "\f45f"; }

.fa-volume-down:before {
content: "\f027"; }

.fa-volume-mute:before {
content: "\f6a9"; }

.fa-volume-off:before {
content: "\f026"; }

.fa-volume-up:before {
content: "\f028"; }

.fa-vote-yea:before {
content: "\f772"; }

.fa-vr-cardboard:before {
content: "\f729"; }

.fa-vuejs:before {
content: "\f41f"; }

.fa-walking:before {
content: "\f554"; }

.fa-wallet:before {
content: "\f555"; }

.fa-warehouse:before {
content: "\f494"; }

.fa-watchman-monitoring:before {
content: "\e087"; }

.fa-water:before {
content: "\f773"; }

.fa-wave-square:before {
content: "\f83e"; }

.fa-waze:before {
content: "\f83f"; }

.fa-weebly:before {
content: "\f5cc"; }

.fa-weibo:before {
content: "\f18a"; }

.fa-weight:before {
content: "\f496"; }

.fa-weight-hanging:before {
content: "\f5cd"; }

.fa-weixin:before {
content: "\f1d7"; }

.fa-whatsapp:before {
content: "\f232"; }

.fa-whatsapp-square:before {
content: "\f40c"; }

.fa-wheelchair:before {
content: "\f193"; }

.fa-whmcs:before {
content: "\f40d"; }

.fa-wifi:before {
content: "\f1eb"; }

.fa-wikipedia-w:before {
content: "\f266"; }

.fa-wind:before {
content: "\f72e"; }

.fa-window-close:before {
content: "\f410"; }

.fa-window-maximize:before {
content: "\f2d0"; }

.fa-window-minimize:before {
content: "\f2d1"; }

.fa-window-restore:before {
content: "\f2d2"; }

.fa-windows:before {
content: "\f17a"; }

.fa-wine-bottle:before {
content: "\f72f"; }

.fa-wine-glass:before {
content: "\f4e3"; }

.fa-wine-glass-alt:before {
content: "\f5ce"; }

.fa-wix:before {
content: "\f5cf"; }

.fa-wizards-of-the-coast:before {
content: "\f730"; }

.fa-wodu:before {
content: "\e088"; }

.fa-wolf-pack-battalion:before {
content: "\f514"; }

.fa-won-sign:before {
content: "\f159"; }

.fa-wordpress:before {
content: "\f19a"; }

.fa-wordpress-simple:before {
content: "\f411"; }

.fa-wpbeginner:before {
content: "\f297"; }

.fa-wpexplorer:before {
content: "\f2de"; }

.fa-wpforms:before {
content: "\f298"; }

.fa-wpressr:before {
content: "\f3e4"; }

.fa-wrench:before {
content: "\f0ad"; }

.fa-x-ray:before {
content: "\f497"; }

.fa-xbox:before {
content: "\f412"; }

.fa-xing:before {
content: "\f168"; }

.fa-xing-square:before {
content: "\f169"; }

.fa-y-combinator:before {
content: "\f23b"; }

.fa-yahoo:before {
content: "\f19e"; }

.fa-yammer:before {
content: "\f840"; }

.fa-yandex:before {
content: "\f413"; }

.fa-yandex-international:before {
content: "\f414"; }

.fa-yarn:before {
content: "\f7e3"; }

.fa-yelp:before {
content: "\f1e9"; }

.fa-yen-sign:before {
content: "\f157"; }

.fa-yin-yang:before {
content: "\f6ad"; }

.fa-yoast:before {
content: "\f2b1"; }

.fa-youtube:before {
content: "\f167"; }

.fa-youtube-square:before {
content: "\f431"; }

.fa-zhihu:before {
content: "\f63f"; }

.sr-only {
border: 0;
clip: rect(0, 0, 0, 0);
height: 1px;
margin: -1px;
overflow: hidden;
padding: 0;
position: absolute;
width: 1px; }

.sr-only-focusable:active, .sr-only-focusable:focus {
clip: auto;
height: auto;
margin: 0;
overflow: visible;
position: static;
width: auto; }
@font-face {
font-family: 'Font Awesome 5 Brands';
font-style: normal;
font-weight: 400;
font-display: block;
src: url([[/mod/bootstrap/fonts/fa-brands-400.eot]]);
src: url([[/mod/bootstrap/fonts/fa-brands-400.eot?#iefix]]) format("embedded-opentype"), url([[/mod/bootstrap/fonts/fa-brands-400.woff2]]) format("woff2"), url([[/mod/bootstrap/fonts/fa-brands-400.woff]]) format("woff"), url([[/mod/bootstrap/fonts/fa-brands-400.ttf]]) format("truetype"), url([[/mod/bootstrap/fonts/fa-brands-400.svg#fontawesome]]) format("svg"); }

.fab {
font-family: 'Font Awesome 5 Brands';
font-weight: 400; }
@font-face {
font-family: 'FontAwesome';
font-style: normal;
font-weight: 400;
font-display: block;
src: url([[/mod/bootstrap/fonts/fa-regular-400.eot]]);
src: url([[/mod/bootstrap/fonts/fa-regular-400.eot?#iefix]]) format("embedded-opentype"), url([[/mod/bootstrap/fonts/fa-regular-400.woff2]]) format("woff2"), url([[/mod/bootstrap/fonts/fa-regular-400.woff]]) format("woff"), url([[/mod/bootstrap/fonts/fa-regular-400.ttf]]) format("truetype"), url([[/mod/bootstrap/fonts/fa-regular-400.svg#fontawesome]]) format("svg"); }

.far {
font-family: 'FontAwesome';
font-weight: 400; }
@font-face {
font-family: 'FontAwesome';
font-style: normal;
font-weight: 900;
font-display: block;
src: url([[/mod/bootstrap/fonts/fa-solid-900.eot]]);
src: url([[/mod/bootstrap/fonts/fa-solid-900.eot?#iefix]]) format("embedded-opentype"), url([[/mod/bootstrap/fonts/fa-solid-900.woff2]]) format("woff2"), url([[/mod/bootstrap/fonts/fa-solid-900.woff]]) format("woff"), url([[/mod/bootstrap/fonts/fa-solid-900.ttf]]) format("truetype"), url([[/mod/bootstrap/fonts/fa-solid-900.svg#fontawesome]]) format("svg"); }

.fa,
.fas {
font-family: 'FontAwesome';
font-weight: 900; }

@font-face {
font-display: block;
font-family: "bootstrap-icons";
src: url([[/mod/bootstrap/fonts/bootstrap-icons.woff2?24e3eb84d0bcaf83d77f904c78ac1f47]]) format("woff2"),
url([[/mod/bootstrap/fonts/bootstrap-icons.woff?24e3eb84d0bcaf83d77f904c78ac1f47]]) format("woff");
}

.bi::before,
[class^="bi-"]::before,
[class*=" bi-"]::before {
display: inline-block;
font-family: bootstrap-icons !important;
font-style: normal;
font-weight: normal !important;
font-variant: normal;
text-transform: none;
line-height: 1;
vertical-align: -.125em;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}

.bi-123::before { content: "\f67f"; }
.bi-alarm-fill::before { content: "\f101"; }
.bi-alarm::before { content: "\f102"; }
.bi-align-bottom::before { content: "\f103"; }
.bi-align-center::before { content: "\f104"; }
.bi-align-end::before { content: "\f105"; }
.bi-align-middle::before { content: "\f106"; }
.bi-align-start::before { content: "\f107"; }
.bi-align-top::before { content: "\f108"; }
.bi-alt::before { content: "\f109"; }
.bi-app-indicator::before { content: "\f10a"; }
.bi-app::before { content: "\f10b"; }
.bi-archive-fill::before { content: "\f10c"; }
.bi-archive::before { content: "\f10d"; }
.bi-arrow-90deg-down::before { content: "\f10e"; }
.bi-arrow-90deg-left::before { content: "\f10f"; }
.bi-arrow-90deg-right::before { content: "\f110"; }
.bi-arrow-90deg-up::before { content: "\f111"; }
.bi-arrow-bar-down::before { content: "\f112"; }
.bi-arrow-bar-left::before { content: "\f113"; }
.bi-arrow-bar-right::before { content: "\f114"; }
.bi-arrow-bar-up::before { content: "\f115"; }
.bi-arrow-clockwise::before { content: "\f116"; }
.bi-arrow-counterclockwise::before { content: "\f117"; }
.bi-arrow-down-circle-fill::before { content: "\f118"; }
.bi-arrow-down-circle::before { content: "\f119"; }
.bi-arrow-down-left-circle-fill::before { content: "\f11a"; }
.bi-arrow-down-left-circle::before { content: "\f11b"; }
.bi-arrow-down-left-square-fill::before { content: "\f11c"; }
.bi-arrow-down-left-square::before { content: "\f11d"; }
.bi-arrow-down-left::before { content: "\f11e"; }
.bi-arrow-down-right-circle-fill::before { content: "\f11f"; }
.bi-arrow-down-right-circle::before { content: "\f120"; }
.bi-arrow-down-right-square-fill::before { content: "\f121"; }
.bi-arrow-down-right-square::before { content: "\f122"; }
.bi-arrow-down-right::before { content: "\f123"; }
.bi-arrow-down-short::before { content: "\f124"; }
.bi-arrow-down-square-fill::before { content: "\f125"; }
.bi-arrow-down-square::before { content: "\f126"; }
.bi-arrow-down-up::before { content: "\f127"; }
.bi-arrow-down::before { content: "\f128"; }
.bi-arrow-left-circle-fill::before { content: "\f129"; }
.bi-arrow-left-circle::before { content: "\f12a"; }
.bi-arrow-left-right::before { content: "\f12b"; }
.bi-arrow-left-short::before { content: "\f12c"; }
.bi-arrow-left-square-fill::before { content: "\f12d"; }
.bi-arrow-left-square::before { content: "\f12e"; }
.bi-arrow-left::before { content: "\f12f"; }
.bi-arrow-repeat::before { content: "\f130"; }
.bi-arrow-return-left::before { content: "\f131"; }
.bi-arrow-return-right::before { content: "\f132"; }
.bi-arrow-right-circle-fill::before { content: "\f133"; }
.bi-arrow-right-circle::before { content: "\f134"; }
.bi-arrow-right-short::before { content: "\f135"; }
.bi-arrow-right-square-fill::before { content: "\f136"; }
.bi-arrow-right-square::before { content: "\f137"; }
.bi-arrow-right::before { content: "\f138"; }
.bi-arrow-up-circle-fill::before { content: "\f139"; }
.bi-arrow-up-circle::before { content: "\f13a"; }
.bi-arrow-up-left-circle-fill::before { content: "\f13b"; }
.bi-arrow-up-left-circle::before { content: "\f13c"; }
.bi-arrow-up-left-square-fill::before { content: "\f13d"; }
.bi-arrow-up-left-square::before { content: "\f13e"; }
.bi-arrow-up-left::before { content: "\f13f"; }
.bi-arrow-up-right-circle-fill::before { content: "\f140"; }
.bi-arrow-up-right-circle::before { content: "\f141"; }
.bi-arrow-up-right-square-fill::before { content: "\f142"; }
.bi-arrow-up-right-square::before { content: "\f143"; }
.bi-arrow-up-right::before { content: "\f144"; }
.bi-arrow-up-short::before { content: "\f145"; }
.bi-arrow-up-square-fill::before { content: "\f146"; }
.bi-arrow-up-square::before { content: "\f147"; }
.bi-arrow-up::before { content: "\f148"; }
.bi-arrows-angle-contract::before { content: "\f149"; }
.bi-arrows-angle-expand::before { content: "\f14a"; }
.bi-arrows-collapse::before { content: "\f14b"; }
.bi-arrows-expand::before { content: "\f14c"; }
.bi-arrows-fullscreen::before { content: "\f14d"; }
.bi-arrows-move::before { content: "\f14e"; }
.bi-aspect-ratio-fill::before { content: "\f14f"; }
.bi-aspect-ratio::before { content: "\f150"; }
.bi-asterisk::before { content: "\f151"; }
.bi-at::before { content: "\f152"; }
.bi-award-fill::before { content: "\f153"; }
.bi-award::before { content: "\f154"; }
.bi-back::before { content: "\f155"; }
.bi-backspace-fill::before { content: "\f156"; }
.bi-backspace-reverse-fill::before { content: "\f157"; }
.bi-backspace-reverse::before { content: "\f158"; }
.bi-backspace::before { content: "\f159"; }
.bi-badge-3d-fill::before { content: "\f15a"; }
.bi-badge-3d::before { content: "\f15b"; }
.bi-badge-4k-fill::before { content: "\f15c"; }
.bi-badge-4k::before { content: "\f15d"; }
.bi-badge-8k-fill::before { content: "\f15e"; }
.bi-badge-8k::before { content: "\f15f"; }
.bi-badge-ad-fill::before { content: "\f160"; }
.bi-badge-ad::before { content: "\f161"; }
.bi-badge-ar-fill::before { content: "\f162"; }
.bi-badge-ar::before { content: "\f163"; }
.bi-badge-cc-fill::before { content: "\f164"; }
.bi-badge-cc::before { content: "\f165"; }
.bi-badge-hd-fill::before { content: "\f166"; }
.bi-badge-hd::before { content: "\f167"; }
.bi-badge-tm-fill::before { content: "\f168"; }
.bi-badge-tm::before { content: "\f169"; }
.bi-badge-vo-fill::before { content: "\f16a"; }
.bi-badge-vo::before { content: "\f16b"; }
.bi-badge-vr-fill::before { content: "\f16c"; }
.bi-badge-vr::before { content: "\f16d"; }
.bi-badge-wc-fill::before { content: "\f16e"; }
.bi-badge-wc::before { content: "\f16f"; }
.bi-bag-check-fill::before { content: "\f170"; }
.bi-bag-check::before { content: "\f171"; }
.bi-bag-dash-fill::before { content: "\f172"; }
.bi-bag-dash::before { content: "\f173"; }
.bi-bag-fill::before { content: "\f174"; }
.bi-bag-plus-fill::before { content: "\f175"; }
.bi-bag-plus::before { content: "\f176"; }
.bi-bag-x-fill::before { content: "\f177"; }
.bi-bag-x::before { content: "\f178"; }
.bi-bag::before { content: "\f179"; }
.bi-bar-chart-fill::before { content: "\f17a"; }
.bi-bar-chart-line-fill::before { content: "\f17b"; }
.bi-bar-chart-line::before { content: "\f17c"; }
.bi-bar-chart-steps::before { content: "\f17d"; }
.bi-bar-chart::before { content: "\f17e"; }
.bi-basket-fill::before { content: "\f17f"; }
.bi-basket::before { content: "\f180"; }
.bi-basket2-fill::before { content: "\f181"; }
.bi-basket2::before { content: "\f182"; }
.bi-basket3-fill::before { content: "\f183"; }
.bi-basket3::before { content: "\f184"; }
.bi-battery-charging::before { content: "\f185"; }
.bi-battery-full::before { content: "\f186"; }
.bi-battery-half::before { content: "\f187"; }
.bi-battery::before { content: "\f188"; }
.bi-bell-fill::before { content: "\f189"; }
.bi-bell::before { content: "\f18a"; }
.bi-bezier::before { content: "\f18b"; }
.bi-bezier2::before { content: "\f18c"; }
.bi-bicycle::before { content: "\f18d"; }
.bi-binoculars-fill::before { content: "\f18e"; }
.bi-binoculars::before { content: "\f18f"; }
.bi-blockquote-left::before { content: "\f190"; }
.bi-blockquote-right::before { content: "\f191"; }
.bi-book-fill::before { content: "\f192"; }
.bi-book-half::before { content: "\f193"; }
.bi-book::before { content: "\f194"; }
.bi-bookmark-check-fill::before { content: "\f195"; }
.bi-bookmark-check::before { content: "\f196"; }
.bi-bookmark-dash-fill::before { content: "\f197"; }
.bi-bookmark-dash::before { content: "\f198"; }
.bi-bookmark-fill::before { content: "\f199"; }
.bi-bookmark-heart-fill::before { content: "\f19a"; }
.bi-bookmark-heart::before { content: "\f19b"; }
.bi-bookmark-plus-fill::before { content: "\f19c"; }
.bi-bookmark-plus::before { content: "\f19d"; }
.bi-bookmark-star-fill::before { content: "\f19e"; }
.bi-bookmark-star::before { content: "\f19f"; }
.bi-bookmark-x-fill::before { content: "\f1a0"; }
.bi-bookmark-x::before { content: "\f1a1"; }
.bi-bookmark::before { content: "\f1a2"; }
.bi-bookmarks-fill::before { content: "\f1a3"; }
.bi-bookmarks::before { content: "\f1a4"; }
.bi-bookshelf::before { content: "\f1a5"; }
.bi-bootstrap-fill::before { content: "\f1a6"; }
.bi-bootstrap-reboot::before { content: "\f1a7"; }
.bi-bootstrap::before { content: "\f1a8"; }
.bi-border-all::before { content: "\f1a9"; }
.bi-border-bottom::before { content: "\f1aa"; }
.bi-border-center::before { content: "\f1ab"; }
.bi-border-inner::before { content: "\f1ac"; }
.bi-border-left::before { content: "\f1ad"; }
.bi-border-middle::before { content: "\f1ae"; }
.bi-border-outer::before { content: "\f1af"; }
.bi-border-right::before { content: "\f1b0"; }
.bi-border-style::before { content: "\f1b1"; }
.bi-border-top::before { content: "\f1b2"; }
.bi-border-width::before { content: "\f1b3"; }
.bi-border::before { content: "\f1b4"; }
.bi-bounding-box-circles::before { content: "\f1b5"; }
.bi-bounding-box::before { content: "\f1b6"; }
.bi-box-arrow-down-left::before { content: "\f1b7"; }
.bi-box-arrow-down-right::before { content: "\f1b8"; }
.bi-box-arrow-down::before { content: "\f1b9"; }
.bi-box-arrow-in-down-left::before { content: "\f1ba"; }
.bi-box-arrow-in-down-right::before { content: "\f1bb"; }
.bi-box-arrow-in-down::before { content: "\f1bc"; }
.bi-box-arrow-in-left::before { content: "\f1bd"; }
.bi-box-arrow-in-right::before { content: "\f1be"; }
.bi-box-arrow-in-up-left::before { content: "\f1bf"; }
.bi-box-arrow-in-up-right::before { content: "\f1c0"; }
.bi-box-arrow-in-up::before { content: "\f1c1"; }
.bi-box-arrow-left::before { content: "\f1c2"; }
.bi-box-arrow-right::before { content: "\f1c3"; }
.bi-box-arrow-up-left::before { content: "\f1c4"; }
.bi-box-arrow-up-right::before { content: "\f1c5"; }
.bi-box-arrow-up::before { content: "\f1c6"; }
.bi-box-seam::before { content: "\f1c7"; }
.bi-box::before { content: "\f1c8"; }
.bi-braces::before { content: "\f1c9"; }
.bi-bricks::before { content: "\f1ca"; }
.bi-briefcase-fill::before { content: "\f1cb"; }
.bi-briefcase::before { content: "\f1cc"; }
.bi-brightness-alt-high-fill::before { content: "\f1cd"; }
.bi-brightness-alt-high::before { content: "\f1ce"; }
.bi-brightness-alt-low-fill::before { content: "\f1cf"; }
.bi-brightness-alt-low::before { content: "\f1d0"; }
.bi-brightness-high-fill::before { content: "\f1d1"; }
.bi-brightness-high::before { content: "\f1d2"; }
.bi-brightness-low-fill::before { content: "\f1d3"; }
.bi-brightness-low::before { content: "\f1d4"; }
.bi-broadcast-pin::before { content: "\f1d5"; }
.bi-broadcast::before { content: "\f1d6"; }
.bi-brush-fill::before { content: "\f1d7"; }
.bi-brush::before { content: "\f1d8"; }
.bi-bucket-fill::before { content: "\f1d9"; }
.bi-bucket::before { content: "\f1da"; }
.bi-bug-fill::before { content: "\f1db"; }
.bi-bug::before { content: "\f1dc"; }
.bi-building::before { content: "\f1dd"; }
.bi-bullseye::before { content: "\f1de"; }
.bi-calculator-fill::before { content: "\f1df"; }
.bi-calculator::before { content: "\f1e0"; }
.bi-calendar-check-fill::before { content: "\f1e1"; }
.bi-calendar-check::before { content: "\f1e2"; }
.bi-calendar-date-fill::before { content: "\f1e3"; }
.bi-calendar-date::before { content: "\f1e4"; }
.bi-calendar-day-fill::before { content: "\f1e5"; }
.bi-calendar-day::before { content: "\f1e6"; }
.bi-calendar-event-fill::before { content: "\f1e7"; }
.bi-calendar-event::before { content: "\f1e8"; }
.bi-calendar-fill::before { content: "\f1e9"; }
.bi-calendar-minus-fill::before { content: "\f1ea"; }
.bi-calendar-minus::before { content: "\f1eb"; }
.bi-calendar-month-fill::before { content: "\f1ec"; }
.bi-calendar-month::before { content: "\f1ed"; }
.bi-calendar-plus-fill::before { content: "\f1ee"; }
.bi-calendar-plus::before { content: "\f1ef"; }
.bi-calendar-range-fill::before { content: "\f1f0"; }
.bi-calendar-range::before { content: "\f1f1"; }
.bi-calendar-week-fill::before { content: "\f1f2"; }
.bi-calendar-week::before { content: "\f1f3"; }
.bi-calendar-x-fill::before { content: "\f1f4"; }
.bi-calendar-x::before { content: "\f1f5"; }
.bi-calendar::before { content: "\f1f6"; }
.bi-calendar2-check-fill::before { content: "\f1f7"; }
.bi-calendar2-check::before { content: "\f1f8"; }
.bi-calendar2-date-fill::before { content: "\f1f9"; }
.bi-calendar2-date::before { content: "\f1fa"; }
.bi-calendar2-day-fill::before { content: "\f1fb"; }
.bi-calendar2-day::before { content: "\f1fc"; }
.bi-calendar2-event-fill::before { content: "\f1fd"; }
.bi-calendar2-event::before { content: "\f1fe"; }
.bi-calendar2-fill::before { content: "\f1ff"; }
.bi-calendar2-minus-fill::before { content: "\f200"; }
.bi-calendar2-minus::before { content: "\f201"; }
.bi-calendar2-month-fill::before { content: "\f202"; }
.bi-calendar2-month::before { content: "\f203"; }
.bi-calendar2-plus-fill::before { content: "\f204"; }
.bi-calendar2-plus::before { content: "\f205"; }
.bi-calendar2-range-fill::before { content: "\f206"; }
.bi-calendar2-range::before { content: "\f207"; }
.bi-calendar2-week-fill::before { content: "\f208"; }
.bi-calendar2-week::before { content: "\f209"; }
.bi-calendar2-x-fill::before { content: "\f20a"; }
.bi-calendar2-x::before { content: "\f20b"; }
.bi-calendar2::before { content: "\f20c"; }
.bi-calendar3-event-fill::before { content: "\f20d"; }
.bi-calendar3-event::before { content: "\f20e"; }
.bi-calendar3-fill::before { content: "\f20f"; }
.bi-calendar3-range-fill::before { content: "\f210"; }
.bi-calendar3-range::before { content: "\f211"; }
.bi-calendar3-week-fill::before { content: "\f212"; }
.bi-calendar3-week::before { content: "\f213"; }
.bi-calendar3::before { content: "\f214"; }
.bi-calendar4-event::before { content: "\f215"; }
.bi-calendar4-range::before { content: "\f216"; }
.bi-calendar4-week::before { content: "\f217"; }
.bi-calendar4::before { content: "\f218"; }
.bi-camera-fill::before { content: "\f219"; }
.bi-camera-reels-fill::before { content: "\f21a"; }
.bi-camera-reels::before { content: "\f21b"; }
.bi-camera-video-fill::before { content: "\f21c"; }
.bi-camera-video-off-fill::before { content: "\f21d"; }
.bi-camera-video-off::before { content: "\f21e"; }
.bi-camera-video::before { content: "\f21f"; }
.bi-camera::before { content: "\f220"; }
.bi-camera2::before { content: "\f221"; }
.bi-capslock-fill::before { content: "\f222"; }
.bi-capslock::before { content: "\f223"; }
.bi-card-checklist::before { content: "\f224"; }
.bi-card-heading::before { content: "\f225"; }
.bi-card-image::before { content: "\f226"; }
.bi-card-list::before { content: "\f227"; }
.bi-card-text::before { content: "\f228"; }
.bi-caret-down-fill::before { content: "\f229"; }
.bi-caret-down-square-fill::before { content: "\f22a"; }
.bi-caret-down-square::before { content: "\f22b"; }
.bi-caret-down::before { content: "\f22c"; }
.bi-caret-left-fill::before { content: "\f22d"; }
.bi-caret-left-square-fill::before { content: "\f22e"; }
.bi-caret-left-square::before { content: "\f22f"; }
.bi-caret-left::before { content: "\f230"; }
.bi-caret-right-fill::before { content: "\f231"; }
.bi-caret-right-square-fill::before { content: "\f232"; }
.bi-caret-right-square::before { content: "\f233"; }
.bi-caret-right::before { content: "\f234"; }
.bi-caret-up-fill::before { content: "\f235"; }
.bi-caret-up-square-fill::before { content: "\f236"; }
.bi-caret-up-square::before { content: "\f237"; }
.bi-caret-up::before { content: "\f238"; }
.bi-cart-check-fill::before { content: "\f239"; }
.bi-cart-check::before { content: "\f23a"; }
.bi-cart-dash-fill::before { content: "\f23b"; }
.bi-cart-dash::before { content: "\f23c"; }
.bi-cart-fill::before { content: "\f23d"; }
.bi-cart-plus-fill::before { content: "\f23e"; }
.bi-cart-plus::before { content: "\f23f"; }
.bi-cart-x-fill::before { content: "\f240"; }
.bi-cart-x::before { content: "\f241"; }
.bi-cart::before { content: "\f242"; }
.bi-cart2::before { content: "\f243"; }
.bi-cart3::before { content: "\f244"; }
.bi-cart4::before { content: "\f245"; }
.bi-cash-stack::before { content: "\f246"; }
.bi-cash::before { content: "\f247"; }
.bi-cast::before { content: "\f248"; }
.bi-chat-dots-fill::before { content: "\f249"; }
.bi-chat-dots::before { content: "\f24a"; }
.bi-chat-fill::before { content: "\f24b"; }
.bi-chat-left-dots-fill::before { content: "\f24c"; }
.bi-chat-left-dots::before { content: "\f24d"; }
.bi-chat-left-fill::before { content: "\f24e"; }
.bi-chat-left-quote-fill::before { content: "\f24f"; }
.bi-chat-left-quote::before { content: "\f250"; }
.bi-chat-left-text-fill::before { content: "\f251"; }
.bi-chat-left-text::before { content: "\f252"; }
.bi-chat-left::before { content: "\f253"; }
.bi-chat-quote-fill::before { content: "\f254"; }
.bi-chat-quote::before { content: "\f255"; }
.bi-chat-right-dots-fill::before { content: "\f256"; }
.bi-chat-right-dots::before { content: "\f257"; }
.bi-chat-right-fill::before { content: "\f258"; }
.bi-chat-right-quote-fill::before { content: "\f259"; }
.bi-chat-right-quote::before { content: "\f25a"; }
.bi-chat-right-text-fill::before { content: "\f25b"; }
.bi-chat-right-text::before { content: "\f25c"; }
.bi-chat-right::before { content: "\f25d"; }
.bi-chat-square-dots-fill::before { content: "\f25e"; }
.bi-chat-square-dots::before { content: "\f25f"; }
.bi-chat-square-fill::before { content: "\f260"; }
.bi-chat-square-quote-fill::before { content: "\f261"; }
.bi-chat-square-quote::before { content: "\f262"; }
.bi-chat-square-text-fill::before { content: "\f263"; }
.bi-chat-square-text::before { content: "\f264"; }
.bi-chat-square::before { content: "\f265"; }
.bi-chat-text-fill::before { content: "\f266"; }
.bi-chat-text::before { content: "\f267"; }
.bi-chat::before { content: "\f268"; }
.bi-check-all::before { content: "\f269"; }
.bi-check-circle-fill::before { content: "\f26a"; }
.bi-check-circle::before { content: "\f26b"; }
.bi-check-square-fill::before { content: "\f26c"; }
.bi-check-square::before { content: "\f26d"; }
.bi-check::before { content: "\f26e"; }
.bi-check2-all::before { content: "\f26f"; }
.bi-check2-circle::before { content: "\f270"; }
.bi-check2-square::before { content: "\f271"; }
.bi-check2::before { content: "\f272"; }
.bi-chevron-bar-contract::before { content: "\f273"; }
.bi-chevron-bar-down::before { content: "\f274"; }
.bi-chevron-bar-expand::before { content: "\f275"; }
.bi-chevron-bar-left::before { content: "\f276"; }
.bi-chevron-bar-right::before { content: "\f277"; }
.bi-chevron-bar-up::before { content: "\f278"; }
.bi-chevron-compact-down::before { content: "\f279"; }
.bi-chevron-compact-left::before { content: "\f27a"; }
.bi-chevron-compact-right::before { content: "\f27b"; }
.bi-chevron-compact-up::before { content: "\f27c"; }
.bi-chevron-contract::before { content: "\f27d"; }
.bi-chevron-double-down::before { content: "\f27e"; }
.bi-chevron-double-left::before { content: "\f27f"; }
.bi-chevron-double-right::before { content: "\f280"; }
.bi-chevron-double-up::before { content: "\f281"; }
.bi-chevron-down::before { content: "\f282"; }
.bi-chevron-expand::before { content: "\f283"; }
.bi-chevron-left::before { content: "\f284"; }
.bi-chevron-right::before { content: "\f285"; }
.bi-chevron-up::before { content: "\f286"; }
.bi-circle-fill::before { content: "\f287"; }
.bi-circle-half::before { content: "\f288"; }
.bi-circle-square::before { content: "\f289"; }
.bi-circle::before { content: "\f28a"; }
.bi-clipboard-check::before { content: "\f28b"; }
.bi-clipboard-data::before { content: "\f28c"; }
.bi-clipboard-minus::before { content: "\f28d"; }
.bi-clipboard-plus::before { content: "\f28e"; }
.bi-clipboard-x::before { content: "\f28f"; }
.bi-clipboard::before { content: "\f290"; }
.bi-clock-fill::before { content: "\f291"; }
.bi-clock-history::before { content: "\f292"; }
.bi-clock::before { content: "\f293"; }
.bi-cloud-arrow-down-fill::before { content: "\f294"; }
.bi-cloud-arrow-down::before { content: "\f295"; }
.bi-cloud-arrow-up-fill::before { content: "\f296"; }
.bi-cloud-arrow-up::before { content: "\f297"; }
.bi-cloud-check-fill::before { content: "\f298"; }
.bi-cloud-check::before { content: "\f299"; }
.bi-cloud-download-fill::before { content: "\f29a"; }
.bi-cloud-download::before { content: "\f29b"; }
.bi-cloud-drizzle-fill::before { content: "\f29c"; }
.bi-cloud-drizzle::before { content: "\f29d"; }
.bi-cloud-fill::before { content: "\f29e"; }
.bi-cloud-fog-fill::before { content: "\f29f"; }
.bi-cloud-fog::before { content: "\f2a0"; }
.bi-cloud-fog2-fill::before { content: "\f2a1"; }
.bi-cloud-fog2::before { content: "\f2a2"; }
.bi-cloud-hail-fill::before { content: "\f2a3"; }
.bi-cloud-hail::before { content: "\f2a4"; }
.bi-cloud-haze-1::before { content: "\f2a5"; }
.bi-cloud-haze-fill::before { content: "\f2a6"; }
.bi-cloud-haze::before { content: "\f2a7"; }
.bi-cloud-haze2-fill::before { content: "\f2a8"; }
.bi-cloud-lightning-fill::before { content: "\f2a9"; }
.bi-cloud-lightning-rain-fill::before { content: "\f2aa"; }
.bi-cloud-lightning-rain::before { content: "\f2ab"; }
.bi-cloud-lightning::before { content: "\f2ac"; }
.bi-cloud-minus-fill::before { content: "\f2ad"; }
.bi-cloud-minus::before { content: "\f2ae"; }
.bi-cloud-moon-fill::before { content: "\f2af"; }
.bi-cloud-moon::before { content: "\f2b0"; }
.bi-cloud-plus-fill::before { content: "\f2b1"; }
.bi-cloud-plus::before { content: "\f2b2"; }
.bi-cloud-rain-fill::before { content: "\f2b3"; }
.bi-cloud-rain-heavy-fill::before { content: "\f2b4"; }
.bi-cloud-rain-heavy::before { content: "\f2b5"; }
.bi-cloud-rain::before { content: "\f2b6"; }
.bi-cloud-slash-fill::before { content: "\f2b7"; }
.bi-cloud-slash::before { content: "\f2b8"; }
.bi-cloud-sleet-fill::before { content: "\f2b9"; }
.bi-cloud-sleet::before { content: "\f2ba"; }
.bi-cloud-snow-fill::before { content: "\f2bb"; }
.bi-cloud-snow::before { content: "\f2bc"; }
.bi-cloud-sun-fill::before { content: "\f2bd"; }
.bi-cloud-sun::before { content: "\f2be"; }
.bi-cloud-upload-fill::before { content: "\f2bf"; }
.bi-cloud-upload::before { content: "\f2c0"; }
.bi-cloud::before { content: "\f2c1"; }
.bi-clouds-fill::before { content: "\f2c2"; }
.bi-clouds::before { content: "\f2c3"; }
.bi-cloudy-fill::before { content: "\f2c4"; }
.bi-cloudy::before { content: "\f2c5"; }
.bi-code-slash::before { content: "\f2c6"; }
.bi-code-square::before { content: "\f2c7"; }
.bi-code::before { content: "\f2c8"; }
.bi-collection-fill::before { content: "\f2c9"; }
.bi-collection-play-fill::before { content: "\f2ca"; }
.bi-collection-play::before { content: "\f2cb"; }
.bi-collection::before { content: "\f2cc"; }
.bi-columns-gap::before { content: "\f2cd"; }
.bi-columns::before { content: "\f2ce"; }
.bi-command::before { content: "\f2cf"; }
.bi-compass-fill::before { content: "\f2d0"; }
.bi-compass::before { content: "\f2d1"; }
.bi-cone-striped::before { content: "\f2d2"; }
.bi-cone::before { content: "\f2d3"; }
.bi-controller::before { content: "\f2d4"; }
.bi-cpu-fill::before { content: "\f2d5"; }
.bi-cpu::before { content: "\f2d6"; }
.bi-credit-card-2-back-fill::before { content: "\f2d7"; }
.bi-credit-card-2-back::before { content: "\f2d8"; }
.bi-credit-card-2-front-fill::before { content: "\f2d9"; }
.bi-credit-card-2-front::before { content: "\f2da"; }
.bi-credit-card-fill::before { content: "\f2db"; }
.bi-credit-card::before { content: "\f2dc"; }
.bi-crop::before { content: "\f2dd"; }
.bi-cup-fill::before { content: "\f2de"; }
.bi-cup-straw::before { content: "\f2df"; }
.bi-cup::before { content: "\f2e0"; }
.bi-cursor-fill::before { content: "\f2e1"; }
.bi-cursor-text::before { content: "\f2e2"; }
.bi-cursor::before { content: "\f2e3"; }
.bi-dash-circle-dotted::before { content: "\f2e4"; }
.bi-dash-circle-fill::before { content: "\f2e5"; }
.bi-dash-circle::before { content: "\f2e6"; }
.bi-dash-square-dotted::before { content: "\f2e7"; }
.bi-dash-square-fill::before { content: "\f2e8"; }
.bi-dash-square::before { content: "\f2e9"; }
.bi-dash::before { content: "\f2ea"; }
.bi-diagram-2-fill::before { content: "\f2eb"; }
.bi-diagram-2::before { content: "\f2ec"; }
.bi-diagram-3-fill::before { content: "\f2ed"; }
.bi-diagram-3::before { content: "\f2ee"; }
.bi-diamond-fill::before { content: "\f2ef"; }
.bi-diamond-half::before { content: "\f2f0"; }
.bi-diamond::before { content: "\f2f1"; }
.bi-dice-1-fill::before { content: "\f2f2"; }
.bi-dice-1::before { content: "\f2f3"; }
.bi-dice-2-fill::before { content: "\f2f4"; }
.bi-dice-2::before { content: "\f2f5"; }
.bi-dice-3-fill::before { content: "\f2f6"; }
.bi-dice-3::before { content: "\f2f7"; }
.bi-dice-4-fill::before { content: "\f2f8"; }
.bi-dice-4::before { content: "\f2f9"; }
.bi-dice-5-fill::before { content: "\f2fa"; }
.bi-dice-5::before { content: "\f2fb"; }
.bi-dice-6-fill::before { content: "\f2fc"; }
.bi-dice-6::before { content: "\f2fd"; }
.bi-disc-fill::before { content: "\f2fe"; }
.bi-disc::before { content: "\f2ff"; }
.bi-discord::before { content: "\f300"; }
.bi-display-fill::before { content: "\f301"; }
.bi-display::before { content: "\f302"; }
.bi-distribute-horizontal::before { content: "\f303"; }
.bi-distribute-vertical::before { content: "\f304"; }
.bi-door-closed-fill::before { content: "\f305"; }
.bi-door-closed::before { content: "\f306"; }
.bi-door-open-fill::before { content: "\f307"; }
.bi-door-open::before { content: "\f308"; }
.bi-dot::before { content: "\f309"; }
.bi-download::before { content: "\f30a"; }
.bi-droplet-fill::before { content: "\f30b"; }
.bi-droplet-half::before { content: "\f30c"; }
.bi-droplet::before { content: "\f30d"; }
.bi-earbuds::before { content: "\f30e"; }
.bi-easel-fill::before { content: "\f30f"; }
.bi-easel::before { content: "\f310"; }
.bi-egg-fill::before { content: "\f311"; }
.bi-egg-fried::before { content: "\f312"; }
.bi-egg::before { content: "\f313"; }
.bi-eject-fill::before { content: "\f314"; }
.bi-eject::before { content: "\f315"; }
.bi-emoji-angry-fill::before { content: "\f316"; }
.bi-emoji-angry::before { content: "\f317"; }
.bi-emoji-dizzy-fill::before { content: "\f318"; }
.bi-emoji-dizzy::before { content: "\f319"; }
.bi-emoji-expressionless-fill::before { content: "\f31a"; }
.bi-emoji-expressionless::before { content: "\f31b"; }
.bi-emoji-frown-fill::before { content: "\f31c"; }
.bi-emoji-frown::before { content: "\f31d"; }
.bi-emoji-heart-eyes-fill::before { content: "\f31e"; }
.bi-emoji-heart-eyes::before { content: "\f31f"; }
.bi-emoji-laughing-fill::before { content: "\f320"; }
.bi-emoji-laughing::before { content: "\f321"; }
.bi-emoji-neutral-fill::before { content: "\f322"; }
.bi-emoji-neutral::before { content: "\f323"; }
.bi-emoji-smile-fill::before { content: "\f324"; }
.bi-emoji-smile-upside-down-fill::before { content: "\f325"; }
.bi-emoji-smile-upside-down::before { content: "\f326"; }
.bi-emoji-smile::before { content: "\f327"; }
.bi-emoji-sunglasses-fill::before { content: "\f328"; }
.bi-emoji-sunglasses::before { content: "\f329"; }
.bi-emoji-wink-fill::before { content: "\f32a"; }
.bi-emoji-wink::before { content: "\f32b"; }
.bi-envelope-fill::before { content: "\f32c"; }
.bi-envelope-open-fill::before { content: "\f32d"; }
.bi-envelope-open::before { content: "\f32e"; }
.bi-envelope::before { content: "\f32f"; }
.bi-eraser-fill::before { content: "\f330"; }
.bi-eraser::before { content: "\f331"; }
.bi-exclamation-circle-fill::before { content: "\f332"; }
.bi-exclamation-circle::before { content: "\f333"; }
.bi-exclamation-diamond-fill::before { content: "\f334"; }
.bi-exclamation-diamond::before { content: "\f335"; }
.bi-exclamation-octagon-fill::before { content: "\f336"; }
.bi-exclamation-octagon::before { content: "\f337"; }
.bi-exclamation-square-fill::before { content: "\f338"; }
.bi-exclamation-square::before { content: "\f339"; }
.bi-exclamation-triangle-fill::before { content: "\f33a"; }
.bi-exclamation-triangle::before { content: "\f33b"; }
.bi-exclamation::before { content: "\f33c"; }
.bi-exclude::before { content: "\f33d"; }
.bi-eye-fill::before { content: "\f33e"; }
.bi-eye-slash-fill::before { content: "\f33f"; }
.bi-eye-slash::before { content: "\f340"; }
.bi-eye::before { content: "\f341"; }
.bi-eyedropper::before { content: "\f342"; }
.bi-eyeglasses::before { content: "\f343"; }
.bi-facebook::before { content: "\f344"; }
.bi-file-arrow-down-fill::before { content: "\f345"; }
.bi-file-arrow-down::before { content: "\f346"; }
.bi-file-arrow-up-fill::before { content: "\f347"; }
.bi-file-arrow-up::before { content: "\f348"; }
.bi-file-bar-graph-fill::before { content: "\f349"; }
.bi-file-bar-graph::before { content: "\f34a"; }
.bi-file-binary-fill::before { content: "\f34b"; }
.bi-file-binary::before { content: "\f34c"; }
.bi-file-break-fill::before { content: "\f34d"; }
.bi-file-break::before { content: "\f34e"; }
.bi-file-check-fill::before { content: "\f34f"; }
.bi-file-check::before { content: "\f350"; }
.bi-file-code-fill::before { content: "\f351"; }
.bi-file-code::before { content: "\f352"; }
.bi-file-diff-fill::before { content: "\f353"; }
.bi-file-diff::before { content: "\f354"; }
.bi-file-earmark-arrow-down-fill::before { content: "\f355"; }
.bi-file-earmark-arrow-down::before { content: "\f356"; }
.bi-file-earmark-arrow-up-fill::before { content: "\f357"; }
.bi-file-earmark-arrow-up::before { content: "\f358"; }
.bi-file-earmark-bar-graph-fill::before { content: "\f359"; }
.bi-file-earmark-bar-graph::before { content: "\f35a"; }
.bi-file-earmark-binary-fill::before { content: "\f35b"; }
.bi-file-earmark-binary::before { content: "\f35c"; }
.bi-file-earmark-break-fill::before { content: "\f35d"; }
.bi-file-earmark-break::before { content: "\f35e"; }
.bi-file-earmark-check-fill::before { content: "\f35f"; }
.bi-file-earmark-check::before { content: "\f360"; }
.bi-file-earmark-code-fill::before { content: "\f361"; }
.bi-file-earmark-code::before { content: "\f362"; }
.bi-file-earmark-diff-fill::before { content: "\f363"; }
.bi-file-earmark-diff::before { content: "\f364"; }
.bi-file-earmark-easel-fill::before { content: "\f365"; }
.bi-file-earmark-easel::before { content: "\f366"; }
.bi-file-earmark-excel-fill::before { content: "\f367"; }
.bi-file-earmark-excel::before { content: "\f368"; }
.bi-file-earmark-fill::before { content: "\f369"; }
.bi-file-earmark-font-fill::before { content: "\f36a"; }
.bi-file-earmark-font::before { content: "\f36b"; }
.bi-file-earmark-image-fill::before { content: "\f36c"; }
.bi-file-earmark-image::before { content: "\f36d"; }
.bi-file-earmark-lock-fill::before { content: "\f36e"; }
.bi-file-earmark-lock::before { content: "\f36f"; }
.bi-file-earmark-lock2-fill::before { content: "\f370"; }
.bi-file-earmark-lock2::before { content: "\f371"; }
.bi-file-earmark-medical-fill::before { content: "\f372"; }
.bi-file-earmark-medical::before { content: "\f373"; }
.bi-file-earmark-minus-fill::before { content: "\f374"; }
.bi-file-earmark-minus::before { content: "\f375"; }
.bi-file-earmark-music-fill::before { content: "\f376"; }
.bi-file-earmark-music::before { content: "\f377"; }
.bi-file-earmark-person-fill::before { content: "\f378"; }
.bi-file-earmark-person::before { content: "\f379"; }
.bi-file-earmark-play-fill::before { content: "\f37a"; }
.bi-file-earmark-play::before { content: "\f37b"; }
.bi-file-earmark-plus-fill::before { content: "\f37c"; }
.bi-file-earmark-plus::before { content: "\f37d"; }
.bi-file-earmark-post-fill::before { content: "\f37e"; }
.bi-file-earmark-post::before { content: "\f37f"; }
.bi-file-earmark-ppt-fill::before { content: "\f380"; }
.bi-file-earmark-ppt::before { content: "\f381"; }
.bi-file-earmark-richtext-fill::before { content: "\f382"; }
.bi-file-earmark-richtext::before { content: "\f383"; }
.bi-file-earmark-ruled-fill::before { content: "\f384"; }
.bi-file-earmark-ruled::before { content: "\f385"; }
.bi-file-earmark-slides-fill::before { content: "\f386"; }
.bi-file-earmark-slides::before { content: "\f387"; }
.bi-file-earmark-spreadsheet-fill::before { content: "\f388"; }
.bi-file-earmark-spreadsheet::before { content: "\f389"; }
.bi-file-earmark-text-fill::before { content: "\f38a"; }
.bi-file-earmark-text::before { content: "\f38b"; }
.bi-file-earmark-word-fill::before { content: "\f38c"; }
.bi-file-earmark-word::before { content: "\f38d"; }
.bi-file-earmark-x-fill::before { content: "\f38e"; }
.bi-file-earmark-x::before { content: "\f38f"; }
.bi-file-earmark-zip-fill::before { content: "\f390"; }
.bi-file-earmark-zip::before { content: "\f391"; }
.bi-file-earmark::before { content: "\f392"; }
.bi-file-easel-fill::before { content: "\f393"; }
.bi-file-easel::before { content: "\f394"; }
.bi-file-excel-fill::before { content: "\f395"; }
.bi-file-excel::before { content: "\f396"; }
.bi-file-fill::before { content: "\f397"; }
.bi-file-font-fill::before { content: "\f398"; }
.bi-file-font::before { content: "\f399"; }
.bi-file-image-fill::before { content: "\f39a"; }
.bi-file-image::before { content: "\f39b"; }
.bi-file-lock-fill::before { content: "\f39c"; }
.bi-file-lock::before { content: "\f39d"; }
.bi-file-lock2-fill::before { content: "\f39e"; }
.bi-file-lock2::before { content: "\f39f"; }
.bi-file-medical-fill::before { content: "\f3a0"; }
.bi-file-medical::before { content: "\f3a1"; }
.bi-file-minus-fill::before { content: "\f3a2"; }
.bi-file-minus::before { content: "\f3a3"; }
.bi-file-music-fill::before { content: "\f3a4"; }
.bi-file-music::before { content: "\f3a5"; }
.bi-file-person-fill::before { content: "\f3a6"; }
.bi-file-person::before { content: "\f3a7"; }
.bi-file-play-fill::before { content: "\f3a8"; }
.bi-file-play::before { content: "\f3a9"; }
.bi-file-plus-fill::before { content: "\f3aa"; }
.bi-file-plus::before { content: "\f3ab"; }
.bi-file-post-fill::before { content: "\f3ac"; }
.bi-file-post::before { content: "\f3ad"; }
.bi-file-ppt-fill::before { content: "\f3ae"; }
.bi-file-ppt::before { content: "\f3af"; }
.bi-file-richtext-fill::before { content: "\f3b0"; }
.bi-file-richtext::before { content: "\f3b1"; }
.bi-file-ruled-fill::before { content: "\f3b2"; }
.bi-file-ruled::before { content: "\f3b3"; }
.bi-file-slides-fill::before { content: "\f3b4"; }
.bi-file-slides::before { content: "\f3b5"; }
.bi-file-spreadsheet-fill::before { content: "\f3b6"; }
.bi-file-spreadsheet::before { content: "\f3b7"; }
.bi-file-text-fill::before { content: "\f3b8"; }
.bi-file-text::before { content: "\f3b9"; }
.bi-file-word-fill::before { content: "\f3ba"; }
.bi-file-word::before { content: "\f3bb"; }
.bi-file-x-fill::before { content: "\f3bc"; }
.bi-file-x::before { content: "\f3bd"; }
.bi-file-zip-fill::before { content: "\f3be"; }
.bi-file-zip::before { content: "\f3bf"; }
.bi-file::before { content: "\f3c0"; }
.bi-files-alt::before { content: "\f3c1"; }
.bi-files::before { content: "\f3c2"; }
.bi-film::before { content: "\f3c3"; }
.bi-filter-circle-fill::before { content: "\f3c4"; }
.bi-filter-circle::before { content: "\f3c5"; }
.bi-filter-left::before { content: "\f3c6"; }
.bi-filter-right::before { content: "\f3c7"; }
.bi-filter-square-fill::before { content: "\f3c8"; }
.bi-filter-square::before { content: "\f3c9"; }
.bi-filter::before { content: "\f3ca"; }
.bi-flag-fill::before { content: "\f3cb"; }
.bi-flag::before { content: "\f3cc"; }
.bi-flower1::before { content: "\f3cd"; }
.bi-flower2::before { content: "\f3ce"; }
.bi-flower3::before { content: "\f3cf"; }
.bi-folder-check::before { content: "\f3d0"; }
.bi-folder-fill::before { content: "\f3d1"; }
.bi-folder-minus::before { content: "\f3d2"; }
.bi-folder-plus::before { content: "\f3d3"; }
.bi-folder-symlink-fill::before { content: "\f3d4"; }
.bi-folder-symlink::before { content: "\f3d5"; }
.bi-folder-x::before { content: "\f3d6"; }
.bi-folder::before { content: "\f3d7"; }
.bi-folder2-open::before { content: "\f3d8"; }
.bi-folder2::before { content: "\f3d9"; }
.bi-fonts::before { content: "\f3da"; }
.bi-forward-fill::before { content: "\f3db"; }
.bi-forward::before { content: "\f3dc"; }
.bi-front::before { content: "\f3dd"; }
.bi-fullscreen-exit::before { content: "\f3de"; }
.bi-fullscreen::before { content: "\f3df"; }
.bi-funnel-fill::before { content: "\f3e0"; }
.bi-funnel::before { content: "\f3e1"; }
.bi-gear-fill::before { content: "\f3e2"; }
.bi-gear-wide-connected::before { content: "\f3e3"; }
.bi-gear-wide::before { content: "\f3e4"; }
.bi-gear::before { content: "\f3e5"; }
.bi-gem::before { content: "\f3e6"; }
.bi-geo-alt-fill::before { content: "\f3e7"; }
.bi-geo-alt::before { content: "\f3e8"; }
.bi-geo-fill::before { content: "\f3e9"; }
.bi-geo::before { content: "\f3ea"; }
.bi-gift-fill::before { content: "\f3eb"; }
.bi-gift::before { content: "\f3ec"; }
.bi-github::before { content: "\f3ed"; }
.bi-globe::before { content: "\f3ee"; }
.bi-globe2::before { content: "\f3ef"; }
.bi-google::before { content: "\f3f0"; }
.bi-graph-down::before { content: "\f3f1"; }
.bi-graph-up::before { content: "\f3f2"; }
.bi-grid-1x2-fill::before { content: "\f3f3"; }
.bi-grid-1x2::before { content: "\f3f4"; }
.bi-grid-3x2-gap-fill::before { content: "\f3f5"; }
.bi-grid-3x2-gap::before { content: "\f3f6"; }
.bi-grid-3x2::before { content: "\f3f7"; }
.bi-grid-3x3-gap-fill::before { content: "\f3f8"; }
.bi-grid-3x3-gap::before { content: "\f3f9"; }
.bi-grid-3x3::before { content: "\f3fa"; }
.bi-grid-fill::before { content: "\f3fb"; }
.bi-grid::before { content: "\f3fc"; }
.bi-grip-horizontal::before { content: "\f3fd"; }
.bi-grip-vertical::before { content: "\f3fe"; }
.bi-hammer::before { content: "\f3ff"; }
.bi-hand-index-fill::before { content: "\f400"; }
.bi-hand-index-thumb-fill::before { content: "\f401"; }
.bi-hand-index-thumb::before { content: "\f402"; }
.bi-hand-index::before { content: "\f403"; }
.bi-hand-thumbs-down-fill::before { content: "\f404"; }
.bi-hand-thumbs-down::before { content: "\f405"; }
.bi-hand-thumbs-up-fill::before { content: "\f406"; }
.bi-hand-thumbs-up::before { content: "\f407"; }
.bi-handbag-fill::before { content: "\f408"; }
.bi-handbag::before { content: "\f409"; }
.bi-hash::before { content: "\f40a"; }
.bi-hdd-fill::before { content: "\f40b"; }
.bi-hdd-network-fill::before { content: "\f40c"; }
.bi-hdd-network::before { content: "\f40d"; }
.bi-hdd-rack-fill::before { content: "\f40e"; }
.bi-hdd-rack::before { content: "\f40f"; }
.bi-hdd-stack-fill::before { content: "\f410"; }
.bi-hdd-stack::before { content: "\f411"; }
.bi-hdd::before { content: "\f412"; }
.bi-headphones::before { content: "\f413"; }
.bi-headset::before { content: "\f414"; }
.bi-heart-fill::before { content: "\f415"; }
.bi-heart-half::before { content: "\f416"; }
.bi-heart::before { content: "\f417"; }
.bi-heptagon-fill::before { content: "\f418"; }
.bi-heptagon-half::before { content: "\f419"; }
.bi-heptagon::before { content: "\f41a"; }
.bi-hexagon-fill::before { content: "\f41b"; }
.bi-hexagon-half::before { content: "\f41c"; }
.bi-hexagon::before { content: "\f41d"; }
.bi-hourglass-bottom::before { content: "\f41e"; }
.bi-hourglass-split::before { content: "\f41f"; }
.bi-hourglass-top::before { content: "\f420"; }
.bi-hourglass::before { content: "\f421"; }
.bi-house-door-fill::before { content: "\f422"; }
.bi-house-door::before { content: "\f423"; }
.bi-house-fill::before { content: "\f424"; }
.bi-house::before { content: "\f425"; }
.bi-hr::before { content: "\f426"; }
.bi-hurricane::before { content: "\f427"; }
.bi-image-alt::before { content: "\f428"; }
.bi-image-fill::before { content: "\f429"; }
.bi-image::before { content: "\f42a"; }
.bi-images::before { content: "\f42b"; }
.bi-inbox-fill::before { content: "\f42c"; }
.bi-inbox::before { content: "\f42d"; }
.bi-inboxes-fill::before { content: "\f42e"; }
.bi-inboxes::before { content: "\f42f"; }
.bi-info-circle-fill::before { content: "\f430"; }
.bi-info-circle::before { content: "\f431"; }
.bi-info-square-fill::before { content: "\f432"; }
.bi-info-square::before { content: "\f433"; }
.bi-info::before { content: "\f434"; }
.bi-input-cursor-text::before { content: "\f435"; }
.bi-input-cursor::before { content: "\f436"; }
.bi-instagram::before { content: "\f437"; }
.bi-intersect::before { content: "\f438"; }
.bi-journal-album::before { content: "\f439"; }
.bi-journal-arrow-down::before { content: "\f43a"; }
.bi-journal-arrow-up::before { content: "\f43b"; }
.bi-journal-bookmark-fill::before { content: "\f43c"; }
.bi-journal-bookmark::before { content: "\f43d"; }
.bi-journal-check::before { content: "\f43e"; }
.bi-journal-code::before { content: "\f43f"; }
.bi-journal-medical::before { content: "\f440"; }
.bi-journal-minus::before { content: "\f441"; }
.bi-journal-plus::before { content: "\f442"; }
.bi-journal-richtext::before { content: "\f443"; }
.bi-journal-text::before { content: "\f444"; }
.bi-journal-x::before { content: "\f445"; }
.bi-journal::before { content: "\f446"; }
.bi-journals::before { content: "\f447"; }
.bi-joystick::before { content: "\f448"; }
.bi-justify-left::before { content: "\f449"; }
.bi-justify-right::before { content: "\f44a"; }
.bi-justify::before { content: "\f44b"; }
.bi-kanban-fill::before { content: "\f44c"; }
.bi-kanban::before { content: "\f44d"; }
.bi-key-fill::before { content: "\f44e"; }
.bi-key::before { content: "\f44f"; }
.bi-keyboard-fill::before { content: "\f450"; }
.bi-keyboard::before { content: "\f451"; }
.bi-ladder::before { content: "\f452"; }
.bi-lamp-fill::before { content: "\f453"; }
.bi-lamp::before { content: "\f454"; }
.bi-laptop-fill::before { content: "\f455"; }
.bi-laptop::before { content: "\f456"; }
.bi-layer-backward::before { content: "\f457"; }
.bi-layer-forward::before { content: "\f458"; }
.bi-layers-fill::before { content: "\f459"; }
.bi-layers-half::before { content: "\f45a"; }
.bi-layers::before { content: "\f45b"; }
.bi-layout-sidebar-inset-reverse::before { content: "\f45c"; }
.bi-layout-sidebar-inset::before { content: "\f45d"; }
.bi-layout-sidebar-reverse::before { content: "\f45e"; }
.bi-layout-sidebar::before { content: "\f45f"; }
.bi-layout-split::before { content: "\f460"; }
.bi-layout-text-sidebar-reverse::before { content: "\f461"; }
.bi-layout-text-sidebar::before { content: "\f462"; }
.bi-layout-text-window-reverse::before { content: "\f463"; }
.bi-layout-text-window::before { content: "\f464"; }
.bi-layout-three-columns::before { content: "\f465"; }
.bi-layout-wtf::before { content: "\f466"; }
.bi-life-preserver::before { content: "\f467"; }
.bi-lightbulb-fill::before { content: "\f468"; }
.bi-lightbulb-off-fill::before { content: "\f469"; }
.bi-lightbulb-off::before { content: "\f46a"; }
.bi-lightbulb::before { content: "\f46b"; }
.bi-lightning-charge-fill::before { content: "\f46c"; }
.bi-lightning-charge::before { content: "\f46d"; }
.bi-lightning-fill::before { content: "\f46e"; }
.bi-lightning::before { content: "\f46f"; }
.bi-link-45deg::before { content: "\f470"; }
.bi-link::before { content: "\f471"; }
.bi-linkedin::before { content: "\f472"; }
.bi-list-check::before { content: "\f473"; }
.bi-list-nested::before { content: "\f474"; }
.bi-list-ol::before { content: "\f475"; }
.bi-list-stars::before { content: "\f476"; }
.bi-list-task::before { content: "\f477"; }
.bi-list-ul::before { content: "\f478"; }
.bi-list::before { content: "\f479"; }
.bi-lock-fill::before { content: "\f47a"; }
.bi-lock::before { content: "\f47b"; }
.bi-mailbox::before { content: "\f47c"; }
.bi-mailbox2::before { content: "\f47d"; }
.bi-map-fill::before { content: "\f47e"; }
.bi-map::before { content: "\f47f"; }
.bi-markdown-fill::before { content: "\f480"; }
.bi-markdown::before { content: "\f481"; }
.bi-mask::before { content: "\f482"; }
.bi-megaphone-fill::before { content: "\f483"; }
.bi-megaphone::before { content: "\f484"; }
.bi-menu-app-fill::before { content: "\f485"; }
.bi-menu-app::before { content: "\f486"; }
.bi-menu-button-fill::before { content: "\f487"; }
.bi-menu-button-wide-fill::before { content: "\f488"; }
.bi-menu-button-wide::before { content: "\f489"; }
.bi-menu-button::before { content: "\f48a"; }
.bi-menu-down::before { content: "\f48b"; }
.bi-menu-up::before { content: "\f48c"; }
.bi-mic-fill::before { content: "\f48d"; }
.bi-mic-mute-fill::before { content: "\f48e"; }
.bi-mic-mute::before { content: "\f48f"; }
.bi-mic::before { content: "\f490"; }
.bi-minecart-loaded::before { content: "\f491"; }
.bi-minecart::before { content: "\f492"; }
.bi-moisture::before { content: "\f493"; }
.bi-moon-fill::before { content: "\f494"; }
.bi-moon-stars-fill::before { content: "\f495"; }
.bi-moon-stars::before { content: "\f496"; }
.bi-moon::before { content: "\f497"; }
.bi-mouse-fill::before { content: "\f498"; }
.bi-mouse::before { content: "\f499"; }
.bi-mouse2-fill::before { content: "\f49a"; }
.bi-mouse2::before { content: "\f49b"; }
.bi-mouse3-fill::before { content: "\f49c"; }
.bi-mouse3::before { content: "\f49d"; }
.bi-music-note-beamed::before { content: "\f49e"; }
.bi-music-note-list::before { content: "\f49f"; }
.bi-music-note::before { content: "\f4a0"; }
.bi-music-player-fill::before { content: "\f4a1"; }
.bi-music-player::before { content: "\f4a2"; }
.bi-newspaper::before { content: "\f4a3"; }
.bi-node-minus-fill::before { content: "\f4a4"; }
.bi-node-minus::before { content: "\f4a5"; }
.bi-node-plus-fill::before { content: "\f4a6"; }
.bi-node-plus::before { content: "\f4a7"; }
.bi-nut-fill::before { content: "\f4a8"; }
.bi-nut::before { content: "\f4a9"; }
.bi-octagon-fill::before { content: "\f4aa"; }
.bi-octagon-half::before { content: "\f4ab"; }
.bi-octagon::before { content: "\f4ac"; }
.bi-option::before { content: "\f4ad"; }
.bi-outlet::before { content: "\f4ae"; }
.bi-paint-bucket::before { content: "\f4af"; }
.bi-palette-fill::before { content: "\f4b0"; }
.bi-palette::before { content: "\f4b1"; }
.bi-palette2::before { content: "\f4b2"; }
.bi-paperclip::before { content: "\f4b3"; }
.bi-paragraph::before { content: "\f4b4"; }
.bi-patch-check-fill::before { content: "\f4b5"; }
.bi-patch-check::before { content: "\f4b6"; }
.bi-patch-exclamation-fill::before { content: "\f4b7"; }
.bi-patch-exclamation::before { content: "\f4b8"; }
.bi-patch-minus-fill::before { content: "\f4b9"; }
.bi-patch-minus::before { content: "\f4ba"; }
.bi-patch-plus-fill::before { content: "\f4bb"; }
.bi-patch-plus::before { content: "\f4bc"; }
.bi-patch-question-fill::before { content: "\f4bd"; }
.bi-patch-question::before { content: "\f4be"; }
.bi-pause-btn-fill::before { content: "\f4bf"; }
.bi-pause-btn::before { content: "\f4c0"; }
.bi-pause-circle-fill::before { content: "\f4c1"; }
.bi-pause-circle::before { content: "\f4c2"; }
.bi-pause-fill::before { content: "\f4c3"; }
.bi-pause::before { content: "\f4c4"; }
.bi-peace-fill::before { content: "\f4c5"; }
.bi-peace::before { content: "\f4c6"; }
.bi-pen-fill::before { content: "\f4c7"; }
.bi-pen::before { content: "\f4c8"; }
.bi-pencil-fill::before { content: "\f4c9"; }
.bi-pencil-square::before { content: "\f4ca"; }
.bi-pencil::before { content: "\f4cb"; }
.bi-pentagon-fill::before { content: "\f4cc"; }
.bi-pentagon-half::before { content: "\f4cd"; }
.bi-pentagon::before { content: "\f4ce"; }
.bi-people-fill::before { content: "\f4cf"; }
.bi-people::before { content: "\f4d0"; }
.bi-percent::before { content: "\f4d1"; }
.bi-person-badge-fill::before { content: "\f4d2"; }
.bi-person-badge::before { content: "\f4d3"; }
.bi-person-bounding-box::before { content: "\f4d4"; }
.bi-person-check-fill::before { content: "\f4d5"; }
.bi-person-check::before { content: "\f4d6"; }
.bi-person-circle::before { content: "\f4d7"; }
.bi-person-dash-fill::before { content: "\f4d8"; }
.bi-person-dash::before { content: "\f4d9"; }
.bi-person-fill::before { content: "\f4da"; }
.bi-person-lines-fill::before { content: "\f4db"; }
.bi-person-plus-fill::before { content: "\f4dc"; }
.bi-person-plus::before { content: "\f4dd"; }
.bi-person-square::before { content: "\f4de"; }
.bi-person-x-fill::before { content: "\f4df"; }
.bi-person-x::before { content: "\f4e0"; }
.bi-person::before { content: "\f4e1"; }
.bi-phone-fill::before { content: "\f4e2"; }
.bi-phone-landscape-fill::before { content: "\f4e3"; }
.bi-phone-landscape::before { content: "\f4e4"; }
.bi-phone-vibrate-fill::before { content: "\f4e5"; }
.bi-phone-vibrate::before { content: "\f4e6"; }
.bi-phone::before { content: "\f4e7"; }
.bi-pie-chart-fill::before { content: "\f4e8"; }
.bi-pie-chart::before { content: "\f4e9"; }
.bi-pin-angle-fill::before { content: "\f4ea"; }
.bi-pin-angle::before { content: "\f4eb"; }
.bi-pin-fill::before { content: "\f4ec"; }
.bi-pin::before { content: "\f4ed"; }
.bi-pip-fill::before { content: "\f4ee"; }
.bi-pip::before { content: "\f4ef"; }
.bi-play-btn-fill::before { content: "\f4f0"; }
.bi-play-btn::before { content: "\f4f1"; }
.bi-play-circle-fill::before { content: "\f4f2"; }
.bi-play-circle::before { content: "\f4f3"; }
.bi-play-fill::before { content: "\f4f4"; }
.bi-play::before { content: "\f4f5"; }
.bi-plug-fill::before { content: "\f4f6"; }
.bi-plug::before { content: "\f4f7"; }
.bi-plus-circle-dotted::before { content: "\f4f8"; }
.bi-plus-circle-fill::before { content: "\f4f9"; }
.bi-plus-circle::before { content: "\f4fa"; }
.bi-plus-square-dotted::before { content: "\f4fb"; }
.bi-plus-square-fill::before { content: "\f4fc"; }
.bi-plus-square::before { content: "\f4fd"; }
.bi-plus::before { content: "\f4fe"; }
.bi-power::before { content: "\f4ff"; }
.bi-printer-fill::before { content: "\f500"; }
.bi-printer::before { content: "\f501"; }
.bi-puzzle-fill::before { content: "\f502"; }
.bi-puzzle::before { content: "\f503"; }
.bi-question-circle-fill::before { content: "\f504"; }
.bi-question-circle::before { content: "\f505"; }
.bi-question-diamond-fill::before { content: "\f506"; }
.bi-question-diamond::before { content: "\f507"; }
.bi-question-octagon-fill::before { content: "\f508"; }
.bi-question-octagon::before { content: "\f509"; }
.bi-question-square-fill::before { content: "\f50a"; }
.bi-question-square::before { content: "\f50b"; }
.bi-question::before { content: "\f50c"; }
.bi-rainbow::before { content: "\f50d"; }
.bi-receipt-cutoff::before { content: "\f50e"; }
.bi-receipt::before { content: "\f50f"; }
.bi-reception-0::before { content: "\f510"; }
.bi-reception-1::before { content: "\f511"; }
.bi-reception-2::before { content: "\f512"; }
.bi-reception-3::before { content: "\f513"; }
.bi-reception-4::before { content: "\f514"; }
.bi-record-btn-fill::before { content: "\f515"; }
.bi-record-btn::before { content: "\f516"; }
.bi-record-circle-fill::before { content: "\f517"; }
.bi-record-circle::before { content: "\f518"; }
.bi-record-fill::before { content: "\f519"; }
.bi-record::before { content: "\f51a"; }
.bi-record2-fill::before { content: "\f51b"; }
.bi-record2::before { content: "\f51c"; }
.bi-reply-all-fill::before { content: "\f51d"; }
.bi-reply-all::before { content: "\f51e"; }
.bi-reply-fill::before { content: "\f51f"; }
.bi-reply::before { content: "\f520"; }
.bi-rss-fill::before { content: "\f521"; }
.bi-rss::before { content: "\f522"; }
.bi-rulers::before { content: "\f523"; }
.bi-save-fill::before { content: "\f524"; }
.bi-save::before { content: "\f525"; }
.bi-save2-fill::before { content: "\f526"; }
.bi-save2::before { content: "\f527"; }
.bi-scissors::before { content: "\f528"; }
.bi-screwdriver::before { content: "\f529"; }
.bi-search::before { content: "\f52a"; }
.bi-segmented-nav::before { content: "\f52b"; }
.bi-server::before { content: "\f52c"; }
.bi-share-fill::before { content: "\f52d"; }
.bi-share::before { content: "\f52e"; }
.bi-shield-check::before { content: "\f52f"; }
.bi-shield-exclamation::before { content: "\f530"; }
.bi-shield-fill-check::before { content: "\f531"; }
.bi-shield-fill-exclamation::before { content: "\f532"; }
.bi-shield-fill-minus::before { content: "\f533"; }
.bi-shield-fill-plus::before { content: "\f534"; }
.bi-shield-fill-x::before { content: "\f535"; }
.bi-shield-fill::before { content: "\f536"; }
.bi-shield-lock-fill::before { content: "\f537"; }
.bi-shield-lock::before { content: "\f538"; }
.bi-shield-minus::before { content: "\f539"; }
.bi-shield-plus::before { content: "\f53a"; }
.bi-shield-shaded::before { content: "\f53b"; }
.bi-shield-slash-fill::before { content: "\f53c"; }
.bi-shield-slash::before { content: "\f53d"; }
.bi-shield-x::before { content: "\f53e"; }
.bi-shield::before { content: "\f53f"; }
.bi-shift-fill::before { content: "\f540"; }
.bi-shift::before { content: "\f541"; }
.bi-shop-window::before { content: "\f542"; }
.bi-shop::before { content: "\f543"; }
.bi-shuffle::before { content: "\f544"; }
.bi-signpost-2-fill::before { content: "\f545"; }
.bi-signpost-2::before { content: "\f546"; }
.bi-signpost-fill::before { content: "\f547"; }
.bi-signpost-split-fill::before { content: "\f548"; }
.bi-signpost-split::before { content: "\f549"; }
.bi-signpost::before { content: "\f54a"; }
.bi-sim-fill::before { content: "\f54b"; }
.bi-sim::before { content: "\f54c"; }
.bi-skip-backward-btn-fill::before { content: "\f54d"; }
.bi-skip-backward-btn::before { content: "\f54e"; }
.bi-skip-backward-circle-fill::before { content: "\f54f"; }
.bi-skip-backward-circle::before { content: "\f550"; }
.bi-skip-backward-fill::before { content: "\f551"; }
.bi-skip-backward::before { content: "\f552"; }
.bi-skip-end-btn-fill::before { content: "\f553"; }
.bi-skip-end-btn::before { content: "\f554"; }
.bi-skip-end-circle-fill::before { content: "\f555"; }
.bi-skip-end-circle::before { content: "\f556"; }
.bi-skip-end-fill::before { content: "\f557"; }
.bi-skip-end::before { content: "\f558"; }
.bi-skip-forward-btn-fill::before { content: "\f559"; }
.bi-skip-forward-btn::before { content: "\f55a"; }
.bi-skip-forward-circle-fill::before { content: "\f55b"; }
.bi-skip-forward-circle::before { content: "\f55c"; }
.bi-skip-forward-fill::before { content: "\f55d"; }
.bi-skip-forward::before { content: "\f55e"; }
.bi-skip-start-btn-fill::before { content: "\f55f"; }
.bi-skip-start-btn::before { content: "\f560"; }
.bi-skip-start-circle-fill::before { content: "\f561"; }
.bi-skip-start-circle::before { content: "\f562"; }
.bi-skip-start-fill::before { content: "\f563"; }
.bi-skip-start::before { content: "\f564"; }
.bi-slack::before { content: "\f565"; }
.bi-slash-circle-fill::before { content: "\f566"; }
.bi-slash-circle::before { content: "\f567"; }
.bi-slash-square-fill::before { content: "\f568"; }
.bi-slash-square::before { content: "\f569"; }
.bi-slash::before { content: "\f56a"; }
.bi-sliders::before { content: "\f56b"; }
.bi-smartwatch::before { content: "\f56c"; }
.bi-snow::before { content: "\f56d"; }
.bi-snow2::before { content: "\f56e"; }
.bi-snow3::before { content: "\f56f"; }
.bi-sort-alpha-down-alt::before { content: "\f570"; }
.bi-sort-alpha-down::before { content: "\f571"; }
.bi-sort-alpha-up-alt::before { content: "\f572"; }
.bi-sort-alpha-up::before { content: "\f573"; }
.bi-sort-down-alt::before { content: "\f574"; }
.bi-sort-down::before { content: "\f575"; }
.bi-sort-numeric-down-alt::before { content: "\f576"; }
.bi-sort-numeric-down::before { content: "\f577"; }
.bi-sort-numeric-up-alt::before { content: "\f578"; }
.bi-sort-numeric-up::before { content: "\f579"; }
.bi-sort-up-alt::before { content: "\f57a"; }
.bi-sort-up::before { content: "\f57b"; }
.bi-soundwave::before { content: "\f57c"; }
.bi-speaker-fill::before { content: "\f57d"; }
.bi-speaker::before { content: "\f57e"; }
.bi-speedometer::before { content: "\f57f"; }
.bi-speedometer2::before { content: "\f580"; }
.bi-spellcheck::before { content: "\f581"; }
.bi-square-fill::before { content: "\f582"; }
.bi-square-half::before { content: "\f583"; }
.bi-square::before { content: "\f584"; }
.bi-stack::before { content: "\f585"; }
.bi-star-fill::before { content: "\f586"; }
.bi-star-half::before { content: "\f587"; }
.bi-star::before { content: "\f588"; }
.bi-stars::before { content: "\f589"; }
.bi-stickies-fill::before { content: "\f58a"; }
.bi-stickies::before { content: "\f58b"; }
.bi-sticky-fill::before { content: "\f58c"; }
.bi-sticky::before { content: "\f58d"; }
.bi-stop-btn-fill::before { content: "\f58e"; }
.bi-stop-btn::before { content: "\f58f"; }
.bi-stop-circle-fill::before { content: "\f590"; }
.bi-stop-circle::before { content: "\f591"; }
.bi-stop-fill::before { content: "\f592"; }
.bi-stop::before { content: "\f593"; }
.bi-stoplights-fill::before { content: "\f594"; }
.bi-stoplights::before { content: "\f595"; }
.bi-stopwatch-fill::before { content: "\f596"; }
.bi-stopwatch::before { content: "\f597"; }
.bi-subtract::before { content: "\f598"; }
.bi-suit-club-fill::before { content: "\f599"; }
.bi-suit-club::before { content: "\f59a"; }
.bi-suit-diamond-fill::before { content: "\f59b"; }
.bi-suit-diamond::before { content: "\f59c"; }
.bi-suit-heart-fill::before { content: "\f59d"; }
.bi-suit-heart::before { content: "\f59e"; }
.bi-suit-spade-fill::before { content: "\f59f"; }
.bi-suit-spade::before { content: "\f5a0"; }
.bi-sun-fill::before { content: "\f5a1"; }
.bi-sun::before { content: "\f5a2"; }
.bi-sunglasses::before { content: "\f5a3"; }
.bi-sunrise-fill::before { content: "\f5a4"; }
.bi-sunrise::before { content: "\f5a5"; }
.bi-sunset-fill::before { content: "\f5a6"; }
.bi-sunset::before { content: "\f5a7"; }
.bi-symmetry-horizontal::before { content: "\f5a8"; }
.bi-symmetry-vertical::before { content: "\f5a9"; }
.bi-table::before { content: "\f5aa"; }
.bi-tablet-fill::before { content: "\f5ab"; }
.bi-tablet-landscape-fill::before { content: "\f5ac"; }
.bi-tablet-landscape::before { content: "\f5ad"; }
.bi-tablet::before { content: "\f5ae"; }
.bi-tag-fill::before { content: "\f5af"; }
.bi-tag::before { content: "\f5b0"; }
.bi-tags-fill::before { content: "\f5b1"; }
.bi-tags::before { content: "\f5b2"; }
.bi-telegram::before { content: "\f5b3"; }
.bi-telephone-fill::before { content: "\f5b4"; }
.bi-telephone-forward-fill::before { content: "\f5b5"; }
.bi-telephone-forward::before { content: "\f5b6"; }
.bi-telephone-inbound-fill::before { content: "\f5b7"; }
.bi-telephone-inbound::before { content: "\f5b8"; }
.bi-telephone-minus-fill::before { content: "\f5b9"; }
.bi-telephone-minus::before { content: "\f5ba"; }
.bi-telephone-outbound-fill::before { content: "\f5bb"; }
.bi-telephone-outbound::before { content: "\f5bc"; }
.bi-telephone-plus-fill::before { content: "\f5bd"; }
.bi-telephone-plus::before { content: "\f5be"; }
.bi-telephone-x-fill::before { content: "\f5bf"; }
.bi-telephone-x::before { content: "\f5c0"; }
.bi-telephone::before { content: "\f5c1"; }
.bi-terminal-fill::before { content: "\f5c2"; }
.bi-terminal::before { content: "\f5c3"; }
.bi-text-center::before { content: "\f5c4"; }
.bi-text-indent-left::before { content: "\f5c5"; }
.bi-text-indent-right::before { content: "\f5c6"; }
.bi-text-left::before { content: "\f5c7"; }
.bi-text-paragraph::before { content: "\f5c8"; }
.bi-text-right::before { content: "\f5c9"; }
.bi-textarea-resize::before { content: "\f5ca"; }
.bi-textarea-t::before { content: "\f5cb"; }
.bi-textarea::before { content: "\f5cc"; }
.bi-thermometer-half::before { content: "\f5cd"; }
.bi-thermometer-high::before { content: "\f5ce"; }
.bi-thermometer-low::before { content: "\f5cf"; }
.bi-thermometer-snow::before { content: "\f5d0"; }
.bi-thermometer-sun::before { content: "\f5d1"; }
.bi-thermometer::before { content: "\f5d2"; }
.bi-three-dots-vertical::before { content: "\f5d3"; }
.bi-three-dots::before { content: "\f5d4"; }
.bi-toggle-off::before { content: "\f5d5"; }
.bi-toggle-on::before { content: "\f5d6"; }
.bi-toggle2-off::before { content: "\f5d7"; }
.bi-toggle2-on::before { content: "\f5d8"; }
.bi-toggles::before { content: "\f5d9"; }
.bi-toggles2::before { content: "\f5da"; }
.bi-tools::before { content: "\f5db"; }
.bi-tornado::before { content: "\f5dc"; }
.bi-trash-fill::before { content: "\f5dd"; }
.bi-trash::before { content: "\f5de"; }
.bi-trash2-fill::before { content: "\f5df"; }
.bi-trash2::before { content: "\f5e0"; }
.bi-tree-fill::before { content: "\f5e1"; }
.bi-tree::before { content: "\f5e2"; }
.bi-triangle-fill::before { content: "\f5e3"; }
.bi-triangle-half::before { content: "\f5e4"; }
.bi-triangle::before { content: "\f5e5"; }
.bi-trophy-fill::before { content: "\f5e6"; }
.bi-trophy::before { content: "\f5e7"; }
.bi-tropical-storm::before { content: "\f5e8"; }
.bi-truck-flatbed::before { content: "\f5e9"; }
.bi-truck::before { content: "\f5ea"; }
.bi-tsunami::before { content: "\f5eb"; }
.bi-tv-fill::before { content: "\f5ec"; }
.bi-tv::before { content: "\f5ed"; }
.bi-twitch::before { content: "\f5ee"; }
.bi-twitter::before { content: "\f5ef"; }
.bi-type-bold::before { content: "\f5f0"; }
.bi-type-h1::before { content: "\f5f1"; }
.bi-type-h2::before { content: "\f5f2"; }
.bi-type-h3::before { content: "\f5f3"; }
.bi-type-italic::before { content: "\f5f4"; }
.bi-type-strikethrough::before { content: "\f5f5"; }
.bi-type-underline::before { content: "\f5f6"; }
.bi-type::before { content: "\f5f7"; }
.bi-ui-checks-grid::before { content: "\f5f8"; }
.bi-ui-checks::before { content: "\f5f9"; }
.bi-ui-radios-grid::before { content: "\f5fa"; }
.bi-ui-radios::before { content: "\f5fb"; }
.bi-umbrella-fill::before { content: "\f5fc"; }
.bi-umbrella::before { content: "\f5fd"; }
.bi-union::before { content: "\f5fe"; }
.bi-unlock-fill::before { content: "\f5ff"; }
.bi-unlock::before { content: "\f600"; }
.bi-upc-scan::before { content: "\f601"; }
.bi-upc::before { content: "\f602"; }
.bi-upload::before { content: "\f603"; }
.bi-vector-pen::before { content: "\f604"; }
.bi-view-list::before { content: "\f605"; }
.bi-view-stacked::before { content: "\f606"; }
.bi-vinyl-fill::before { content: "\f607"; }
.bi-vinyl::before { content: "\f608"; }
.bi-voicemail::before { content: "\f609"; }
.bi-volume-down-fill::before { content: "\f60a"; }
.bi-volume-down::before { content: "\f60b"; }
.bi-volume-mute-fill::before { content: "\f60c"; }
.bi-volume-mute::before { content: "\f60d"; }
.bi-volume-off-fill::before { content: "\f60e"; }
.bi-volume-off::before { content: "\f60f"; }
.bi-volume-up-fill::before { content: "\f610"; }
.bi-volume-up::before { content: "\f611"; }
.bi-vr::before { content: "\f612"; }
.bi-wallet-fill::before { content: "\f613"; }
.bi-wallet::before { content: "\f614"; }
.bi-wallet2::before { content: "\f615"; }
.bi-watch::before { content: "\f616"; }
.bi-water::before { content: "\f617"; }
.bi-whatsapp::before { content: "\f618"; }
.bi-wifi-1::before { content: "\f619"; }
.bi-wifi-2::before { content: "\f61a"; }
.bi-wifi-off::before { content: "\f61b"; }
.bi-wifi::before { content: "\f61c"; }
.bi-wind::before { content: "\f61d"; }
.bi-window-dock::before { content: "\f61e"; }
.bi-window-sidebar::before { content: "\f61f"; }
.bi-window::before { content: "\f620"; }
.bi-wrench::before { content: "\f621"; }
.bi-x-circle-fill::before { content: "\f622"; }
.bi-x-circle::before { content: "\f623"; }
.bi-x-diamond-fill::before { content: "\f624"; }
.bi-x-diamond::before { content: "\f625"; }
.bi-x-octagon-fill::before { content: "\f626"; }
.bi-x-octagon::before { content: "\f627"; }
.bi-x-square-fill::before { content: "\f628"; }
.bi-x-square::before { content: "\f629"; }
.bi-x::before { content: "\f62a"; }
.bi-youtube::before { content: "\f62b"; }
.bi-zoom-in::before { content: "\f62c"; }
.bi-zoom-out::before { content: "\f62d"; }
.bi-bank::before { content: "\f62e"; }
.bi-bank2::before { content: "\f62f"; }
.bi-bell-slash-fill::before { content: "\f630"; }
.bi-bell-slash::before { content: "\f631"; }
.bi-cash-coin::before { content: "\f632"; }
.bi-check-lg::before { content: "\f633"; }
.bi-coin::before { content: "\f634"; }
.bi-currency-bitcoin::before { content: "\f635"; }
.bi-currency-dollar::before { content: "\f636"; }
.bi-currency-euro::before { content: "\f637"; }
.bi-currency-exchange::before { content: "\f638"; }
.bi-currency-pound::before { content: "\f639"; }
.bi-currency-yen::before { content: "\f63a"; }
.bi-dash-lg::before { content: "\f63b"; }
.bi-exclamation-lg::before { content: "\f63c"; }
.bi-file-earmark-pdf-fill::before { content: "\f63d"; }
.bi-file-earmark-pdf::before { content: "\f63e"; }
.bi-file-pdf-fill::before { content: "\f63f"; }
.bi-file-pdf::before { content: "\f640"; }
.bi-gender-ambiguous::before { content: "\f641"; }
.bi-gender-female::before { content: "\f642"; }
.bi-gender-male::before { content: "\f643"; }
.bi-gender-trans::before { content: "\f644"; }
.bi-headset-vr::before { content: "\f645"; }
.bi-info-lg::before { content: "\f646"; }
.bi-mastodon::before { content: "\f647"; }
.bi-messenger::before { content: "\f648"; }
.bi-piggy-bank-fill::before { content: "\f649"; }
.bi-piggy-bank::before { content: "\f64a"; }
.bi-pin-map-fill::before { content: "\f64b"; }
.bi-pin-map::before { content: "\f64c"; }
.bi-plus-lg::before { content: "\f64d"; }
.bi-question-lg::before { content: "\f64e"; }
.bi-recycle::before { content: "\f64f"; }
.bi-reddit::before { content: "\f650"; }
.bi-safe-fill::before { content: "\f651"; }
.bi-safe2-fill::before { content: "\f652"; }
.bi-safe2::before { content: "\f653"; }
.bi-sd-card-fill::before { content: "\f654"; }
.bi-sd-card::before { content: "\f655"; }
.bi-skype::before { content: "\f656"; }
.bi-slash-lg::before { content: "\f657"; }
.bi-translate::before { content: "\f658"; }
.bi-x-lg::before { content: "\f659"; }
.bi-safe::before { content: "\f65a"; }
.bi-apple::before { content: "\f65b"; }
.bi-microsoft::before { content: "\f65d"; }
.bi-windows::before { content: "\f65e"; }
.bi-behance::before { content: "\f65c"; }
.bi-dribbble::before { content: "\f65f"; }
.bi-line::before { content: "\f660"; }
.bi-medium::before { content: "\f661"; }
.bi-paypal::before { content: "\f662"; }
.bi-pinterest::before { content: "\f663"; }
.bi-signal::before { content: "\f664"; }
.bi-snapchat::before { content: "\f665"; }
.bi-spotify::before { content: "\f666"; }
.bi-stack-overflow::before { content: "\f667"; }
.bi-strava::before { content: "\f668"; }
.bi-wordpress::before { content: "\f669"; }
.bi-vimeo::before { content: "\f66a"; }
.bi-activity::before { content: "\f66b"; }
.bi-easel2-fill::before { content: "\f66c"; }
.bi-easel2::before { content: "\f66d"; }
.bi-easel3-fill::before { content: "\f66e"; }
.bi-easel3::before { content: "\f66f"; }
.bi-fan::before { content: "\f670"; }
.bi-fingerprint::before { content: "\f671"; }
.bi-graph-down-arrow::before { content: "\f672"; }
.bi-graph-up-arrow::before { content: "\f673"; }
.bi-hypnotize::before { content: "\f674"; }
.bi-magic::before { content: "\f675"; }
.bi-person-rolodex::before { content: "\f676"; }
.bi-person-video::before { content: "\f677"; }
.bi-person-video2::before { content: "\f678"; }
.bi-person-video3::before { content: "\f679"; }
.bi-person-workspace::before { content: "\f67a"; }
.bi-radioactive::before { content: "\f67b"; }
.bi-webcam-fill::before { content: "\f67c"; }
.bi-webcam::before { content: "\f67d"; }
.bi-yin-yang::before { content: "\f67e"; }
.bi-bandaid-fill::before { content: "\f680"; }
.bi-bandaid::before { content: "\f681"; }
.bi-bluetooth::before { content: "\f682"; }
.bi-body-text::before { content: "\f683"; }
.bi-boombox::before { content: "\f684"; }
.bi-boxes::before { content: "\f685"; }
.bi-dpad-fill::before { content: "\f686"; }
.bi-dpad::before { content: "\f687"; }
.bi-ear-fill::before { content: "\f688"; }
.bi-ear::before { content: "\f689"; }
.bi-envelope-check-1::before { content: "\f68a"; }
.bi-envelope-check-fill::before { content: "\f68b"; }
.bi-envelope-check::before { content: "\f68c"; }
.bi-envelope-dash-1::before { content: "\f68d"; }
.bi-envelope-dash-fill::before { content: "\f68e"; }
.bi-envelope-dash::before { content: "\f68f"; }
.bi-envelope-exclamation-1::before { content: "\f690"; }
.bi-envelope-exclamation-fill::before { content: "\f691"; }
.bi-envelope-exclamation::before { content: "\f692"; }
.bi-envelope-plus-fill::before { content: "\f693"; }
.bi-envelope-plus::before { content: "\f694"; }
.bi-envelope-slash-1::before { content: "\f695"; }
.bi-envelope-slash-fill::before { content: "\f696"; }
.bi-envelope-slash::before { content: "\f697"; }
.bi-envelope-x-1::before { content: "\f698"; }
.bi-envelope-x-fill::before { content: "\f699"; }
.bi-envelope-x::before { content: "\f69a"; }
.bi-explicit-fill::before { content: "\f69b"; }
.bi-explicit::before { content: "\f69c"; }
.bi-git::before { content: "\f69d"; }
.bi-infinity::before { content: "\f69e"; }
.bi-list-columns-reverse::before { content: "\f69f"; }
.bi-list-columns::before { content: "\f6a0"; }
.bi-meta::before { content: "\f6a1"; }
.bi-mortorboard-fill::before { content: "\f6a2"; }
.bi-mortorboard::before { content: "\f6a3"; }
.bi-nintendo-switch::before { content: "\f6a4"; }
.bi-pc-display-horizontal::before { content: "\f6a5"; }
.bi-pc-display::before { content: "\f6a6"; }
.bi-pc-horizontal::before { content: "\f6a7"; }
.bi-pc::before { content: "\f6a8"; }
.bi-playstation::before { content: "\f6a9"; }
.bi-plus-slash-minus::before { content: "\f6aa"; }
.bi-projector-fill::before { content: "\f6ab"; }
.bi-projector::before { content: "\f6ac"; }
.bi-qr-code-scan::before { content: "\f6ad"; }
.bi-qr-code::before { content: "\f6ae"; }
.bi-quora::before { content: "\f6af"; }
.bi-quote::before { content: "\f6b0"; }
.bi-robot::before { content: "\f6b1"; }
.bi-send-check-fill::before { content: "\f6b2"; }
.bi-send-check::before { content: "\f6b3"; }
.bi-send-dash-fill::before { content: "\f6b4"; }
.bi-send-dash::before { content: "\f6b5"; }
.bi-send-exclamation-1::before { content: "\f6b6"; }
.bi-send-exclamation-fill::before { content: "\f6b7"; }
.bi-send-exclamation::before { content: "\f6b8"; }
.bi-send-fill::before { content: "\f6b9"; }
.bi-send-plus-fill::before { content: "\f6ba"; }
.bi-send-plus::before { content: "\f6bb"; }
.bi-send-slash-fill::before { content: "\f6bc"; }
.bi-send-slash::before { content: "\f6bd"; }
.bi-send-x-fill::before { content: "\f6be"; }
.bi-send-x::before { content: "\f6bf"; }
.bi-send::before { content: "\f6c0"; }
.bi-steam::before { content: "\f6c1"; }
.bi-terminal-dash-1::before { content: "\f6c2"; }
.bi-terminal-dash::before { content: "\f6c3"; }
.bi-terminal-plus::before { content: "\f6c4"; }
.bi-terminal-split::before { content: "\f6c5"; }
.bi-ticket-detailed-fill::before { content: "\f6c6"; }
.bi-ticket-detailed::before { content: "\f6c7"; }
.bi-ticket-fill::before { content: "\f6c8"; }
.bi-ticket-perforated-fill::before { content: "\f6c9"; }
.bi-ticket-perforated::before { content: "\f6ca"; }
.bi-ticket::before { content: "\f6cb"; }
.bi-tiktok::before { content: "\f6cc"; }
.bi-window-dash::before { content: "\f6cd"; }
.bi-window-desktop::before { content: "\f6ce"; }
.bi-window-fullscreen::before { content: "\f6cf"; }
.bi-window-plus::before { content: "\f6d0"; }
.bi-window-split::before { content: "\f6d1"; }
.bi-window-stack::before { content: "\f6d2"; }
.bi-window-x::before { content: "\f6d3"; }
.bi-xbox::before { content: "\f6d4"; }
.bi-ethernet::before { content: "\f6d5"; }
.bi-hdmi-fill::before { content: "\f6d6"; }
.bi-hdmi::before { content: "\f6d7"; }
.bi-usb-c-fill::before { content: "\f6d8"; }
.bi-usb-c::before { content: "\f6d9"; }
.bi-usb-fill::before { content: "\f6da"; }
.bi-usb-plug-fill::before { content: "\f6db"; }
.bi-usb-plug::before { content: "\f6dc"; }
.bi-usb-symbol::before { content: "\f6dd"; }
.bi-usb::before { content: "\f6de"; }
.bi-boombox-fill::before { content: "\f6df"; }
.bi-displayport-1::before { content: "\f6e0"; }
.bi-displayport::before { content: "\f6e1"; }
.bi-gpu-card::before { content: "\f6e2"; }
.bi-memory::before { content: "\f6e3"; }
.bi-modem-fill::before { content: "\f6e4"; }
.bi-modem::before { content: "\f6e5"; }
.bi-motherboard-fill::before { content: "\f6e6"; }
.bi-motherboard::before { content: "\f6e7"; }
.bi-optical-audio-fill::before { content: "\f6e8"; }
.bi-optical-audio::before { content: "\f6e9"; }
.bi-pci-card::before { content: "\f6ea"; }
.bi-router-fill::before { content: "\f6eb"; }
.bi-router::before { content: "\f6ec"; }
.bi-ssd-fill::before { content: "\f6ed"; }
.bi-ssd::before { content: "\f6ee"; }
.bi-thunderbolt-fill::before { content: "\f6ef"; }
.bi-thunderbolt::before { content: "\f6f0"; }
.bi-usb-drive-fill::before { content: "\f6f1"; }
.bi-usb-drive::before { content: "\f6f2"; }
.bi-usb-micro-fill::before { content: "\f6f3"; }
.bi-usb-micro::before { content: "\f6f4"; }
.bi-usb-mini-fill::before { content: "\f6f5"; }
.bi-usb-mini::before { content: "\f6f6"; }
.bi-cloud-haze2::before { content: "\f6f7"; }
.bi-device-hdd-fill::before { content: "\f6f8"; }
.bi-device-hdd::before { content: "\f6f9"; }
.bi-device-ssd-fill::before { content: "\f6fa"; }
.bi-device-ssd::before { content: "\f6fb"; }
.bi-displayport-fill::before { content: "\f6fc"; }
.bi-mortarboard-fill::before { content: "\f6fd"; }
.bi-mortarboard::before { content: "\f6fe"; }
.bi-terminal-x::before { content: "\f6ff"; }
.bi-arrow-through-heart-fill::before { content: "\f700"; }
.bi-arrow-through-heart::before { content: "\f701"; }
.bi-badge-sd-fill::before { content: "\f702"; }
.bi-badge-sd::before { content: "\f703"; }
.bi-bag-heart-fill::before { content: "\f704"; }
.bi-bag-heart::before { content: "\f705"; }
.bi-balloon-fill::before { content: "\f706"; }
.bi-balloon-heart-fill::before { content: "\f707"; }
.bi-balloon-heart::before { content: "\f708"; }
.bi-balloon::before { content: "\f709"; }
.bi-box2-fill::before { content: "\f70a"; }
.bi-box2-heart-fill::before { content: "\f70b"; }
.bi-box2-heart::before { content: "\f70c"; }
.bi-box2::before { content: "\f70d"; }
.bi-braces-asterisk::before { content: "\f70e"; }
.bi-calendar-heart-fill::before { content: "\f70f"; }
.bi-calendar-heart::before { content: "\f710"; }
.bi-calendar2-heart-fill::before { content: "\f711"; }
.bi-calendar2-heart::before { content: "\f712"; }
.bi-chat-heart-fill::before { content: "\f713"; }
.bi-chat-heart::before { content: "\f714"; }
.bi-chat-left-heart-fill::before { content: "\f715"; }
.bi-chat-left-heart::before { content: "\f716"; }
.bi-chat-right-heart-fill::before { content: "\f717"; }
.bi-chat-right-heart::before { content: "\f718"; }
.bi-chat-square-heart-fill::before { content: "\f719"; }
.bi-chat-square-heart::before { content: "\f71a"; }
.bi-clipboard-check-fill::before { content: "\f71b"; }
.bi-clipboard-data-fill::before { content: "\f71c"; }
.bi-clipboard-fill::before { content: "\f71d"; }
.bi-clipboard-heart-fill::before { content: "\f71e"; }
.bi-clipboard-heart::before { content: "\f71f"; }
.bi-clipboard-minus-fill::before { content: "\f720"; }
.bi-clipboard-plus-fill::before { content: "\f721"; }
.bi-clipboard-pulse::before { content: "\f722"; }
.bi-clipboard-x-fill::before { content: "\f723"; }
.bi-clipboard2-check-fill::before { content: "\f724"; }
.bi-clipboard2-check::before { content: "\f725"; }
.bi-clipboard2-data-fill::before { content: "\f726"; }
.bi-clipboard2-data::before { content: "\f727"; }
.bi-clipboard2-fill::before { content: "\f728"; }
.bi-clipboard2-heart-fill::before { content: "\f729"; }
.bi-clipboard2-heart::before { content: "\f72a"; }
.bi-clipboard2-minus-fill::before { content: "\f72b"; }
.bi-clipboard2-minus::before { content: "\f72c"; }
.bi-clipboard2-plus-fill::before { content: "\f72d"; }
.bi-clipboard2-plus::before { content: "\f72e"; }
.bi-clipboard2-pulse-fill::before { content: "\f72f"; }
.bi-clipboard2-pulse::before { content: "\f730"; }
.bi-clipboard2-x-fill::before { content: "\f731"; }
.bi-clipboard2-x::before { content: "\f732"; }
.bi-clipboard2::before { content: "\f733"; }
.bi-emoji-kiss-fill::before { content: "\f734"; }
.bi-emoji-kiss::before { content: "\f735"; }
.bi-envelope-heart-fill::before { content: "\f736"; }
.bi-envelope-heart::before { content: "\f737"; }
.bi-envelope-open-heart-fill::before { content: "\f738"; }
.bi-envelope-open-heart::before { content: "\f739"; }
.bi-envelope-paper-fill::before { content: "\f73a"; }
.bi-envelope-paper-heart-fill::before { content: "\f73b"; }
.bi-envelope-paper-heart::before { content: "\f73c"; }
.bi-envelope-paper::before { content: "\f73d"; }
.bi-filetype-aac::before { content: "\f73e"; }
.bi-filetype-ai::before { content: "\f73f"; }
.bi-filetype-bmp::before { content: "\f740"; }
.bi-filetype-cs::before { content: "\f741"; }
.bi-filetype-css::before { content: "\f742"; }
.bi-filetype-csv::before { content: "\f743"; }
.bi-filetype-doc::before { content: "\f744"; }
.bi-filetype-docx::before { content: "\f745"; }
.bi-filetype-exe::before { content: "\f746"; }
.bi-filetype-gif::before { content: "\f747"; }
.bi-filetype-heic::before { content: "\f748"; }
.bi-filetype-html::before { content: "\f749"; }
.bi-filetype-java::before { content: "\f74a"; }
.bi-filetype-jpg::before { content: "\f74b"; }
.bi-filetype-js::before { content: "\f74c"; }
.bi-filetype-jsx::before { content: "\f74d"; }
.bi-filetype-key::before { content: "\f74e"; }
.bi-filetype-m4p::before { content: "\f74f"; }
.bi-filetype-md::before { content: "\f750"; }
.bi-filetype-mdx::before { content: "\f751"; }
.bi-filetype-mov::before { content: "\f752"; }
.bi-filetype-mp3::before { content: "\f753"; }
.bi-filetype-mp4::before { content: "\f754"; }
.bi-filetype-otf::before { content: "\f755"; }
.bi-filetype-pdf::before { content: "\f756"; }
.bi-filetype-php::before { content: "\f757"; }
.bi-filetype-png::before { content: "\f758"; }
.bi-filetype-ppt-1::before { content: "\f759"; }
.bi-filetype-ppt::before { content: "\f75a"; }
.bi-filetype-psd::before { content: "\f75b"; }
.bi-filetype-py::before { content: "\f75c"; }
.bi-filetype-raw::before { content: "\f75d"; }
.bi-filetype-rb::before { content: "\f75e"; }
.bi-filetype-sass::before { content: "\f75f"; }
.bi-filetype-scss::before { content: "\f760"; }
.bi-filetype-sh::before { content: "\f761"; }
.bi-filetype-svg::before { content: "\f762"; }
.bi-filetype-tiff::before { content: "\f763"; }
.bi-filetype-tsx::before { content: "\f764"; }
.bi-filetype-ttf::before { content: "\f765"; }
.bi-filetype-txt::before { content: "\f766"; }
.bi-filetype-wav::before { content: "\f767"; }
.bi-filetype-woff::before { content: "\f768"; }
.bi-filetype-xls-1::before { content: "\f769"; }
.bi-filetype-xls::before { content: "\f76a"; }
.bi-filetype-xml::before { content: "\f76b"; }
.bi-filetype-yml::before { content: "\f76c"; }
.bi-heart-arrow::before { content: "\f76d"; }
.bi-heart-pulse-fill::before { content: "\f76e"; }
.bi-heart-pulse::before { content: "\f76f"; }
.bi-heartbreak-fill::before { content: "\f770"; }
.bi-heartbreak::before { content: "\f771"; }
.bi-hearts::before { content: "\f772"; }
.bi-hospital-fill::before { content: "\f773"; }
.bi-hospital::before { content: "\f774"; }
.bi-house-heart-fill::before { content: "\f775"; }
.bi-house-heart::before { content: "\f776"; }
.bi-incognito::before { content: "\f777"; }
.bi-magnet-fill::before { content: "\f778"; }
.bi-magnet::before { content: "\f779"; }
.bi-person-heart::before { content: "\f77a"; }
.bi-person-hearts::before { content: "\f77b"; }
.bi-phone-flip::before { content: "\f77c"; }
.bi-plugin::before { content: "\f77d"; }
.bi-postage-fill::before { content: "\f77e"; }
.bi-postage-heart-fill::before { content: "\f77f"; }
.bi-postage-heart::before { content: "\f780"; }
.bi-postage::before { content: "\f781"; }
.bi-postcard-fill::before { content: "\f782"; }
.bi-postcard-heart-fill::before { content: "\f783"; }
.bi-postcard-heart::before { content: "\f784"; }
.bi-postcard::before { content: "\f785"; }
.bi-search-heart-fill::before { content: "\f786"; }
.bi-search-heart::before { content: "\f787"; }
.bi-sliders2-vertical::before { content: "\f788"; }
.bi-sliders2::before { content: "\f789"; }
.bi-trash3-fill::before { content: "\f78a"; }
.bi-trash3::before { content: "\f78b"; }
.bi-valentine::before { content: "\f78c"; }
.bi-valentine2::before { content: "\f78d"; }
.bi-wrench-adjustable-circle-fill::before { content: "\f78e"; }
.bi-wrench-adjustable-circle::before { content: "\f78f"; }
.bi-wrench-adjustable::before { content: "\f790"; }
.bi-filetype-json::before { content: "\f791"; }
.bi-filetype-pptx::before { content: "\f792"; }
.bi-filetype-xlsx::before { content: "\f793"; }
.bi-1-circle-1::before { content: "\f794"; }
.bi-1-circle-fill-1::before { content: "\f795"; }
.bi-1-circle-fill::before { content: "\f796"; }
.bi-1-circle::before { content: "\f797"; }
.bi-1-square-fill::before { content: "\f798"; }
.bi-1-square::before { content: "\f799"; }
.bi-2-circle-1::before { content: "\f79a"; }
.bi-2-circle-fill-1::before { content: "\f79b"; }
.bi-2-circle-fill::before { content: "\f79c"; }
.bi-2-circle::before { content: "\f79d"; }
.bi-2-square-fill::before { content: "\f79e"; }
.bi-2-square::before { content: "\f79f"; }
.bi-3-circle-1::before { content: "\f7a0"; }
.bi-3-circle-fill-1::before { content: "\f7a1"; }
.bi-3-circle-fill::before { content: "\f7a2"; }
.bi-3-circle::before { content: "\f7a3"; }
.bi-3-square-fill::before { content: "\f7a4"; }
.bi-3-square::before { content: "\f7a5"; }
.bi-4-circle-1::before { content: "\f7a6"; }
.bi-4-circle-fill-1::before { content: "\f7a7"; }
.bi-4-circle-fill::before { content: "\f7a8"; }
.bi-4-circle::before { content: "\f7a9"; }
.bi-4-square-fill::before { content: "\f7aa"; }
.bi-4-square::before { content: "\f7ab"; }
.bi-5-circle-1::before { content: "\f7ac"; }
.bi-5-circle-fill-1::before { content: "\f7ad"; }
.bi-5-circle-fill::before { content: "\f7ae"; }
.bi-5-circle::before { content: "\f7af"; }
.bi-5-square-fill::before { content: "\f7b0"; }
.bi-5-square::before { content: "\f7b1"; }
.bi-6-circle-1::before { content: "\f7b2"; }
.bi-6-circle-fill-1::before { content: "\f7b3"; }
.bi-6-circle-fill::before { content: "\f7b4"; }
.bi-6-circle::before { content: "\f7b5"; }
.bi-6-square-fill::before { content: "\f7b6"; }
.bi-6-square::before { content: "\f7b7"; }
.bi-7-circle-1::before { content: "\f7b8"; }
.bi-7-circle-fill-1::before { content: "\f7b9"; }
.bi-7-circle-fill::before { content: "\f7ba"; }
.bi-7-circle::before { content: "\f7bb"; }
.bi-7-square-fill::before { content: "\f7bc"; }
.bi-7-square::before { content: "\f7bd"; }
.bi-8-circle-1::before { content: "\f7be"; }
.bi-8-circle-fill-1::before { content: "\f7bf"; }
.bi-8-circle-fill::before { content: "\f7c0"; }
.bi-8-circle::before { content: "\f7c1"; }
.bi-8-square-fill::before { content: "\f7c2"; }
.bi-8-square::before { content: "\f7c3"; }
.bi-9-circle-1::before { content: "\f7c4"; }
.bi-9-circle-fill-1::before { content: "\f7c5"; }
.bi-9-circle-fill::before { content: "\f7c6"; }
.bi-9-circle::before { content: "\f7c7"; }
.bi-9-square-fill::before { content: "\f7c8"; }
.bi-9-square::before { content: "\f7c9"; }
.bi-airplane-engines-fill::before { content: "\f7ca"; }
.bi-airplane-engines::before { content: "\f7cb"; }
.bi-airplane-fill::before { content: "\f7cc"; }
.bi-airplane::before { content: "\f7cd"; }
.bi-alexa::before { content: "\f7ce"; }
.bi-alipay::before { content: "\f7cf"; }
.bi-android::before { content: "\f7d0"; }
.bi-android2::before { content: "\f7d1"; }
.bi-box-fill::before { content: "\f7d2"; }
.bi-box-seam-fill::before { content: "\f7d3"; }
.bi-browser-chrome::before { content: "\f7d4"; }
.bi-browser-edge::before { content: "\f7d5"; }
.bi-browser-firefox::before { content: "\f7d6"; }
.bi-browser-safari::before { content: "\f7d7"; }
.bi-c-circle-1::before { content: "\f7d8"; }
.bi-c-circle-fill-1::before { content: "\f7d9"; }
.bi-c-circle-fill::before { content: "\f7da"; }
.bi-c-circle::before { content: "\f7db"; }
.bi-c-square-fill::before { content: "\f7dc"; }
.bi-c-square::before { content: "\f7dd"; }
.bi-capsule-pill::before { content: "\f7de"; }
.bi-capsule::before { content: "\f7df"; }
.bi-car-front-fill::before { content: "\f7e0"; }
.bi-car-front::before { content: "\f7e1"; }
.bi-cassette-fill::before { content: "\f7e2"; }
.bi-cassette::before { content: "\f7e3"; }
.bi-cc-circle-1::before { content: "\f7e4"; }
.bi-cc-circle-fill-1::before { content: "\f7e5"; }
.bi-cc-circle-fill::before { content: "\f7e6"; }
.bi-cc-circle::before { content: "\f7e7"; }
.bi-cc-square-fill::before { content: "\f7e8"; }
.bi-cc-square::before { content: "\f7e9"; }
.bi-cup-hot-fill::before { content: "\f7ea"; }
.bi-cup-hot::before { content: "\f7eb"; }
.bi-currency-rupee::before { content: "\f7ec"; }
.bi-dropbox::before { content: "\f7ed"; }
.bi-escape::before { content: "\f7ee"; }
.bi-fast-forward-btn-fill::before { content: "\f7ef"; }
.bi-fast-forward-btn::before { content: "\f7f0"; }
.bi-fast-forward-circle-fill::before { content: "\f7f1"; }
.bi-fast-forward-circle::before { content: "\f7f2"; }
.bi-fast-forward-fill::before { content: "\f7f3"; }
.bi-fast-forward::before { content: "\f7f4"; }
.bi-filetype-sql::before { content: "\f7f5"; }
.bi-fire::before { content: "\f7f6"; }
.bi-google-play::before { content: "\f7f7"; }
.bi-h-circle-1::before { content: "\f7f8"; }
.bi-h-circle-fill-1::before { content: "\f7f9"; }
.bi-h-circle-fill::before { content: "\f7fa"; }
.bi-h-circle::before { content: "\f7fb"; }
.bi-h-square-fill::before { content: "\f7fc"; }
.bi-h-square::before { content: "\f7fd"; }
.bi-indent::before { content: "\f7fe"; }
.bi-lungs-fill::before { content: "\f7ff"; }
.bi-lungs::before { content: "\f800"; }
.bi-microsoft-teams::before { content: "\f801"; }
.bi-p-circle-1::before { content: "\f802"; }
.bi-p-circle-fill-1::before { content: "\f803"; }
.bi-p-circle-fill::before { content: "\f804"; }
.bi-p-circle::before { content: "\f805"; }
.bi-p-square-fill::before { content: "\f806"; }
.bi-p-square::before { content: "\f807"; }
.bi-pass-fill::before { content: "\f808"; }
.bi-pass::before { content: "\f809"; }
.bi-prescription::before { content: "\f80a"; }
.bi-prescription2::before { content: "\f80b"; }
.bi-r-circle-1::before { content: "\f80c"; }
.bi-r-circle-fill-1::before { content: "\f80d"; }
.bi-r-circle-fill::before { content: "\f80e"; }
.bi-r-circle::before { content: "\f80f"; }
.bi-r-square-fill::before { content: "\f810"; }
.bi-r-square::before { content: "\f811"; }
.bi-repeat-1::before { content: "\f812"; }
.bi-repeat::before { content: "\f813"; }
.bi-rewind-btn-fill::before { content: "\f814"; }
.bi-rewind-btn::before { content: "\f815"; }
.bi-rewind-circle-fill::before { content: "\f816"; }
.bi-rewind-circle::before { content: "\f817"; }
.bi-rewind-fill::before { content: "\f818"; }
.bi-rewind::before { content: "\f819"; }
.bi-train-freight-front-fill::before { content: "\f81a"; }
.bi-train-freight-front::before { content: "\f81b"; }
.bi-train-front-fill::before { content: "\f81c"; }
.bi-train-front::before { content: "\f81d"; }
.bi-train-lightrail-front-fill::before { content: "\f81e"; }
.bi-train-lightrail-front::before { content: "\f81f"; }
.bi-truck-front-fill::before { content: "\f820"; }
.bi-truck-front::before { content: "\f821"; }
.bi-ubuntu::before { content: "\f822"; }
.bi-unindent::before { content: "\f823"; }
.bi-unity::before { content: "\f824"; }
.bi-universal-access-circle::before { content: "\f825"; }
.bi-universal-access::before { content: "\f826"; }
.bi-virus::before { content: "\f827"; }
.bi-virus2::before { content: "\f828"; }
.bi-wechat::before { content: "\f829"; }
.bi-yelp::before { content: "\f82a"; }
.bi-sign-stop-fill::before { content: "\f82b"; }
.bi-sign-stop-lights-fill::before { content: "\f82c"; }
.bi-sign-stop-lights::before { content: "\f82d"; }
.bi-sign-stop::before { content: "\f82e"; }
.bi-sign-turn-left-fill::before { content: "\f82f"; }
.bi-sign-turn-left::before { content: "\f830"; }
.bi-sign-turn-right-fill::before { content: "\f831"; }
.bi-sign-turn-right::before { content: "\f832"; }
.bi-sign-turn-slight-left-fill::before { content: "\f833"; }
.bi-sign-turn-slight-left::before { content: "\f834"; }
.bi-sign-turn-slight-right-fill::before { content: "\f835"; }
.bi-sign-turn-slight-right::before { content: "\f836"; }
.bi-sign-yield-fill::before { content: "\f837"; }
.bi-sign-yield::before { content: "\f838"; }
.bi-ev-station-fill::before { content: "\f839"; }
.bi-ev-station::before { content: "\f83a"; }
.bi-fuel-pump-diesel-fill::before { content: "\f83b"; }
.bi-fuel-pump-diesel::before { content: "\f83c"; }
.bi-fuel-pump-fill::before { content: "\f83d"; }
.bi-fuel-pump::before { content: "\f83e"; }
.bi-0-circle-fill::before { content: "\f83f"; }
.bi-0-circle::before { content: "\f840"; }
.bi-0-square-fill::before { content: "\f841"; }
.bi-0-square::before { content: "\f842"; }
.bi-rocket-fill::before { content: "\f843"; }
.bi-rocket-takeoff-fill::before { content: "\f844"; }
.bi-rocket-takeoff::before { content: "\f845"; }
.bi-rocket::before { content: "\f846"; }
.bi-stripe::before { content: "\f847"; }
.bi-subscript::before { content: "\f848"; }
.bi-superscript::before { content: "\f849"; }
.bi-trello::before { content: "\f84a"; }
.bi-envelope-at-fill::before { content: "\f84b"; }
.bi-envelope-at::before { content: "\f84c"; }
.bi-regex::before { content: "\f84d"; }
.bi-text-wrap::before { content: "\f84e"; }
.bi-sign-dead-end-fill::before { content: "\f84f"; }
.bi-sign-dead-end::before { content: "\f850"; }
.bi-sign-do-not-enter-fill::before { content: "\f851"; }
.bi-sign-do-not-enter::before { content: "\f852"; }
.bi-sign-intersection-fill::before { content: "\f853"; }
.bi-sign-intersection-side-fill::before { content: "\f854"; }
.bi-sign-intersection-side::before { content: "\f855"; }
.bi-sign-intersection-t-fill::before { content: "\f856"; }
.bi-sign-intersection-t::before { content: "\f857"; }
.bi-sign-intersection-y-fill::before { content: "\f858"; }
.bi-sign-intersection-y::before { content: "\f859"; }
.bi-sign-intersection::before { content: "\f85a"; }
.bi-sign-merge-left-fill::before { content: "\f85b"; }
.bi-sign-merge-left::before { content: "\f85c"; }
.bi-sign-merge-right-fill::before { content: "\f85d"; }
.bi-sign-merge-right::before { content: "\f85e"; }
.bi-sign-no-left-turn-fill::before { content: "\f85f"; }
.bi-sign-no-left-turn::before { content: "\f860"; }
.bi-sign-no-parking-fill::before { content: "\f861"; }
.bi-sign-no-parking::before { content: "\f862"; }
.bi-sign-no-right-turn-fill::before { content: "\f863"; }
.bi-sign-no-right-turn::before { content: "\f864"; }
.bi-sign-railroad-fill::before { content: "\f865"; }
.bi-sign-railroad::before { content: "\f866"; }
.bi-building-add::before { content: "\f867"; }
.bi-building-check::before { content: "\f868"; }
.bi-building-dash::before { content: "\f869"; }
.bi-building-down::before { content: "\f86a"; }
.bi-building-exclamation::before { content: "\f86b"; }
.bi-building-fill-add::before { content: "\f86c"; }
.bi-building-fill-check::before { content: "\f86d"; }
.bi-building-fill-dash::before { content: "\f86e"; }
.bi-building-fill-down::before { content: "\f86f"; }
.bi-building-fill-exclamation::before { content: "\f870"; }
.bi-building-fill-gear::before { content: "\f871"; }
.bi-building-fill-lock::before { content: "\f872"; }
.bi-building-fill-slash::before { content: "\f873"; }
.bi-building-fill-up::before { content: "\f874"; }
.bi-building-fill-x::before { content: "\f875"; }
.bi-building-fill::before { content: "\f876"; }
.bi-building-gear::before { content: "\f877"; }
.bi-building-lock::before { content: "\f878"; }
.bi-building-slash::before { content: "\f879"; }
.bi-building-up::before { content: "\f87a"; }
.bi-building-x::before { content: "\f87b"; }
.bi-buildings-fill::before { content: "\f87c"; }
.bi-buildings::before { content: "\f87d"; }
.bi-bus-front-fill::before { content: "\f87e"; }
.bi-bus-front::before { content: "\f87f"; }
.bi-ev-front-fill::before { content: "\f880"; }
.bi-ev-front::before { content: "\f881"; }
.bi-globe-americas::before { content: "\f882"; }
.bi-globe-asia-australia::before { content: "\f883"; }
.bi-globe-central-south-asia::before { content: "\f884"; }
.bi-globe-europe-africa::before { content: "\f885"; }
.bi-house-add-fill::before { content: "\f886"; }
.bi-house-add::before { content: "\f887"; }
.bi-house-check-fill::before { content: "\f888"; }
.bi-house-check::before { content: "\f889"; }
.bi-house-dash-fill::before { content: "\f88a"; }
.bi-house-dash::before { content: "\f88b"; }
.bi-house-down-fill::before { content: "\f88c"; }
.bi-house-down::before { content: "\f88d"; }
.bi-house-exclamation-fill::before { content: "\f88e"; }
.bi-house-exclamation::before { content: "\f88f"; }
.bi-house-gear-fill::before { content: "\f890"; }
.bi-house-gear::before { content: "\f891"; }
.bi-house-lock-fill::before { content: "\f892"; }
.bi-house-lock::before { content: "\f893"; }
.bi-house-slash-fill::before { content: "\f894"; }
.bi-house-slash::before { content: "\f895"; }
.bi-house-up-fill::before { content: "\f896"; }
.bi-house-up::before { content: "\f897"; }
.bi-house-x-fill::before { content: "\f898"; }
.bi-house-x::before { content: "\f899"; }
.bi-person-add::before { content: "\f89a"; }
.bi-person-down::before { content: "\f89b"; }
.bi-person-exclamation::before { content: "\f89c"; }
.bi-person-fill-add::before { content: "\f89d"; }
.bi-person-fill-check::before { content: "\f89e"; }
.bi-person-fill-dash::before { content: "\f89f"; }
.bi-person-fill-down::before { content: "\f8a0"; }
.bi-person-fill-exclamation::before { content: "\f8a1"; }
.bi-person-fill-gear::before { content: "\f8a2"; }
.bi-person-fill-lock::before { content: "\f8a3"; }
.bi-person-fill-slash::before { content: "\f8a4"; }
.bi-person-fill-up::before { content: "\f8a5"; }
.bi-person-fill-x::before { content: "\f8a6"; }
.bi-person-gear::before { content: "\f8a7"; }
.bi-person-lock::before { content: "\f8a8"; }
.bi-person-slash::before { content: "\f8a9"; }
.bi-person-up::before { content: "\f8aa"; }
.bi-scooter::before { content: "\f8ab"; }
.bi-taxi-front-fill::before { content: "\f8ac"; }
.bi-taxi-front::before { content: "\f8ad"; }
.bi-amd::before { content: "\f8ae"; }
.bi-database-add::before { content: "\f8af"; }
.bi-database-check::before { content: "\f8b0"; }
.bi-database-dash::before { content: "\f8b1"; }
.bi-database-down::before { content: "\f8b2"; }
.bi-database-exclamation::before { content: "\f8b3"; }
.bi-database-fill-add::before { content: "\f8b4"; }
.bi-database-fill-check::before { content: "\f8b5"; }
.bi-database-fill-dash::before { content: "\f8b6"; }
.bi-database-fill-down::before { content: "\f8b7"; }
.bi-database-fill-exclamation::before { content: "\f8b8"; }
.bi-database-fill-gear::before { content: "\f8b9"; }
.bi-database-fill-lock::before { content: "\f8ba"; }
.bi-database-fill-slash::before { content: "\f8bb"; }
.bi-database-fill-up::before { content: "\f8bc"; }
.bi-database-fill-x::before { content: "\f8bd"; }
.bi-database-fill::before { content: "\f8be"; }
.bi-database-gear::before { content: "\f8bf"; }
.bi-database-lock::before { content: "\f8c0"; }
.bi-database-slash::before { content: "\f8c1"; }
.bi-database-up::before { content: "\f8c2"; }
.bi-database-x::before { content: "\f8c3"; }
.bi-database::before { content: "\f8c4"; }
.bi-houses-fill::before { content: "\f8c5"; }
.bi-houses::before { content: "\f8c6"; }
.bi-nvidia::before { content: "\f8c7"; }
.bi-person-vcard-fill::before { content: "\f8c8"; }
.bi-person-vcard::before { content: "\f8c9"; }
.bi-sina-weibo::before { content: "\f8ca"; }
.bi-tencent-qq::before { content: "\f8cb"; }
.bi-wikipedia::before { content: "\f8cc"; }

/*!
* Bootstrap Colorpicker v2.5.2
* https://itsjavi.com/bootstrap-colorpicker/
*
* Originally written by (c) 2012 Stefan Petre
* Licensed under the Apache License v2.0
* http://www.apache.org/licenses/LICENSE-2.0.txt
*
*/

@mixin bgImg($imgBase64) {
background-image: url("#{$imgBase64}");
}

@mixin borderRadius($size) {
-webkit-border-radius: $size;
-moz-border-radius: $size;
border-radius: $size;
}

.colorpicker-saturation {
width: 100px;
height: 100px;
@include bgImg('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAQAAADa613fAAAP9klEQVR4XnRWC47rNgwcKjlA0bv2VL1Qi/YELRav7203iS1ppqZoiXCAhuBHVLI74xFtG3/Hz2joIOjRGuR5eMYuRn9YA1fds859KX8ZvczLr9/pImiR3Rqky9/wlajRIdVE/1Rufeu/0No3/ASgBZAJUkwgi0iCaEatekJJoEqiTQncd67/gyOfRCZshTed0Nl8LbLj8D6qxtoq9/7kJz/aH/3Xfu8VwI5+AUH8DxE7gUyiIpZ5LwiGzUqE3CScJsCDQHAsvBnxWpkbC0QMHmBp6latWS0bnvrCN/x1+xPfce+Ij0GAyeAGGz15sOiax2UylPhKrFaMPnVWClwepKh07hdhkVDsK2uoyEIySergjdbY2VBtV8VLr8Mf9mF/4wMb7kR8FOhzFWZZe7HIZD9JRIbee28eJKBweTB6TwjYkAgWaUmtDveGw1Wx3zZ76YlPPfQd/+gTTUFkiGiJ+NQAszU1EPT/QJEgufolAMPkNU4CVOyUIBLg4xglEZHGQnTFOFV0VaulYddBhA986ge/7N/yQi/3flFgwfQq2ibLnTDBRl9TmUHyJASPV/eoN0UISIr+ICQKIFV4EpljSjV1uFVUq9hRtet5e9gXvuyHPW0zMhQxWaoBBa9Tg8vsCEhww23Smd0CKjIkmPIoxWrUBDgJqFCyESF43ctQxLUoHN7Q1KyVhqrNNm3cy2vMyQNPVKjc29Rh5SSU+giWdRJHkLnQG71FQEuNyNGBTDdBQQAKCuGiEUS/jcyGbkMPq931OIzb/dUPGuVlG7f+slqkO5NAAlzTMdcq0NkzmsEBmAQkbI+pSHbiqnuWIA6lijhvqwIxMyWxMGZiPU669XJE1tADDTs2HWpwKxuqdnTpOiOR42xlzLtm3pXGel3xd8/oTs8Xy0MV8GM1RlsC2Y3Wy3wut3M+2mEVux0Gt9fhzTWyLvGiiJYaqY5DWRFIwAiQ5r6gB9GpQihJw4I9j5Mkscj3BnzGjBhv8xna5P1Jo428o6IOPY5KFZtVOkEKqUjqQY9Gi+jrIOFwJUDzRtA9xyoIrGGmkNRmxVAnZoK+TkUIeUYni5wEzgOG5iZX5HCr2JyQNqdk++G0rgb1ochSIGutTj4P7F0PuRUAolmh5sCzAHn1BYyaADh6bgFeoBx6vst091CEvcSLWBBpqGq384jZ5llVHSwEShLx+D4d0mU3D5eEAJQ9KEhOZUYnDENV2qKgmIlQhWfdvcoXYaegPp/n1oKIOgYFqxrzQSciqNhv/5FqPpy6b0UcX2vf13DfWySRSEgkEYlEJJGQSyKJSEQSCYlEEpHexIVO3XOevffze2a+PfPv9x1rne1c3b3Mmlmz9mE++zuzngfnw/E+Dlc4LL4NwHdFy7u3KGPVmZ6/4eeMoDyre3i/KHADIHYO04w9zO0mAotuKnrc7XaPjvu66bNe5cDT7RlPepEnfS2X8dF1/utDvD+OwGDBxEgQywLCvIMYWBY+DShwAAORAdv9PswhDAqOUCi5+71AbFcDMR4xBDNfhySKXPXZ1+Vub+Q1Ltf5z7eC0AjVldHI26rIFdKIAyYBJCFVUhVDwttAnM52B3Ect1TFQXzJ0z33lOuib/QO8g+CuO0gKBRU80A8hkeJ0b1KRQWmFQVSh8mf3lpUpNaRulzN5NArrmKKGMijXgzk7w5ijdFVgT8f1IdFNjVWjDWicUYWEEMmSFDtILdzHW5XueHp7p+yuS54ep5/c5BE2Gw/gWPNYU4/PZaak2VGEsFjSbOf8irea6KQgojGCk0KxZY31tWWgzwayF8N5KYyo3VADVicWWrhwzr3ZqIOa5xW5zbqMPPMiyDURHDIHQTeWq7KFXcQPOqzPOL5Ov/iIDEDy7DHEwx0PTgjO8SS0fOEHcZNMt+XKEFMj8Q4QUSvPu6HPuvd4N9/x12RPwcIVRCAakSOUzHgsUSMFWYzDQ+PiOJqAOuYc9jh5TecnA+xHfFyOYhebeTH89P80wrCJzUjlsx7euIV0g4zQFUSiBPioIWBACFC7GgDj8P91ZSJOQmQP74MAnQo8H5RIe8kZ0kBcQCMAlEpRDiKROBxbR0ksdhWFq0gR9q9uQzkDzuIFQSPqAgRCAsCaVNF2ZAAhxvtzcqcnDk6tpXxSsayqXLIgSOb6zqeH+fvO0i9XEu5EVV+OZehRZJ6BGTeaRhCkTzVIZeAzaWGAFfErIPogQI5CuR3HQQx7DzBB16R3s7e0MBUPedjWutgG/JUTPqMeAQNEiytJRnJearWUgdwFNxN7rtBoECuj/O3BMHaTIxQ0a4GctireElTJHJvLTaalih5kvBCGMvkdESUMAdCFaI4yG8SpDfRWAptqkAJUwCG6B7lOREFSZBqKs57MEHqVJEBwHa2lp0OiKtiQ18gx9P89QrSXyc0vObBM4vPmBADqJZLAo/yzK7qPSZstCy+fDSZlhrm+Zkyjsf5q2otdC14zkLjHLf0me9wjNqQo0B1a6wBJRaIEgC2Qw9oby/cRHA+xHCQy/xlB1HVSV3Y/5yVhsc7dBi2UoIWCMcbELZWgxNCGUZ5y4ceBaLlE8dAfrEosrYT+z8ya3sxXndFBxuQivNGEHFCbLGBlBLKGYHZoeoQpcjtMn/uICPefcxecpuDOEemg9S/44cflZPIlWolyHkLrEpgbS9IQRlAgZgi0WDjsEiPh+PN/Fkogq4GdzPtarlRGW2tJwEK1RMTEvdVdmhAKHO1pdUuGQsVcX+rSfGzDbwGyE8NRPQc83HCaOkTZwPqABZBdFq8zAN1gue0FPO8wYUFBE1WkMwVzM1iQ4BItFh+H36Qy/yJg0DRQICmBl+tbKUC5cCj3yXI+SUFBS78ZAcBtHt+e9lBuiqpTNh9zTvIjzuIWxVYGQJpAZY+VWS3QKh84iSZbwuIdiDpc4KztQa/sjhMaDJEJDSZ8mZ+kCBdC0JpKVNQzZdKu+EsOeFCosrngVAkDS/uy6iGnW7UxmMpkB8FyFKo6iQW8z1HuBdMu1pdkZdB8jWTjlFtNaiJRYniIDcD+eECMqFLS9ED6DgxzCMKnRD3HYYA2uMCJUh70OK8G0EUnJV8lqe8nj84QdqLhdoJskNlEw1ivajM8LtPBhIeN99LESXI9xcQIHFQudHngZjUhXOQeGlUYmAddh5pxMhzV0M1vMAtMFIVmfp6fq+DgEWefjQVenstaqUy3bJQAiVlEihDghCDINFQg8oUhoQPkO8SBEM7SFQ72VYBwPuE7k8uYF5LNwg/TEd2zkuKjIIhTiJRlYrDfNS1QL7DYUcbcCyKJNwOwucVCVSwBBj/DwghXA2hQtACgCBBPprfXkAIFIYRXhONQARFU00Tsh6LEmmQUbkTImMi9me5qaHDIeBgHeRbdxAIqAJBCDSoCNVQglrciqX/ZCD9RRP6rgpBvhmKAFhg2ForBLXBYPtUjj7vCHPe8SXbYAY47gHB9mKeqjjIg/53fmMD0fR9Bug7SFcHI6EA1OC/E8QTL4NgBSGiCiyTChnI1zcQxmyfRZGM6w701KRybDvsIK3LWDx6mxGkcglEZQLkawnCdppZ6sgCh8trWWBUQaUWCEOlOs7HAenFE45QSu9RQQDAqchXNxDq4orQR44qRIFUQvM+mRJuB6GDEixgCbSBQGXghEEbdn1P/zO/QhAWCsWsmRhLa2VFkSZIgSVKmgEQhvk6K8YKMRZl7Dwg4amOUYvFBfLlE4RasOCB5S9PXKq0AqGDMiYIReXF0mYctITWBmqR5F38X5Y7yJfeCtKBzNbWYm5XpsMpf3dRZD3jPDesvdVCOs6KYQXIFw1E4fcE8dHWOepZBXpLJcACWUZVMRZbfvgXR4Ak8A7VVSKSVuu9p6/mFxyE7cOWavtLp952O8huK83+gmHzHaAsVXLgAvl8gPCvHzAFsM8GNXGKPH5cmN02sXTLa8QdKRXMzHv67/k5A9k1UIx36UH/VlWWtuKssNiRapB6BaLXl6MA+ayDcNS3v/sYXgCL620F1kk8QhKAEOvKu4DvajDO5zkHc4fBg76anyEIIcamBPex5EK8AoVHhMW7QAqWrYD1204CJB1hCfOAV/PTBPH0zBmJmsZZKCEaAmdqm4zMcYxYLN0JuHThIAjirAnp3px7TRgD+ZSD/K92M1CNIgbC8Ex7FkSEIlQEEUQEQQQBRBABEUQQEQTx3X0Evap9AhP39jL5OvuzAWuvbDaTTDIzX2aypUCJ0i7nAigoQAk9gUIUSxXEoCFyyVIuL9ZQcMZoArnwr4D0OLS8jGNGTgGnsZQWMYrcOARoIReAALBeWhf+RUCAIEsECFQHLkwR5zj4JW3t5WOUU5djvgQIawD53EDsctmYz8xGaZGPBUR3qNkiGwqDICUYIFpqBgRaayCfFiAWR2wWvoobmzxdF8N5kyxXmvap/sgGcLF/aoBosbG+lE395R8zCA4BqUYgOgYq+HtvBrT0LK15X8lZwx5f9klCX0rdgXzIIGbdhXMqZtHzJhuptEjmsFc4KzmN5IFPtfM7gWw2kPczSIqQSPUDYKYBMamsBCpKphW0iA5H8AbMDPJOQYjLZg1Vk4G49GlCYNYAkdOd0kwRQ8FCyAHydgLZ6Z2AqrVtjDUQ7hCEmrkEooDAsB2YnBCvkBpZ6yBvJpCd7Mn5zJ6C4QF2BUQPgHEIGUrGnHzQ8rlMekBeTyAzwDJksxwM4+w3BY02B8mIl0CmFRm+ZscxAuSnvwqQsECTIGSV6FEoJFTygVuzB5xAsKqBvAQE3+nkVoJDI1BJIaPBWik7ZSu5NIp5A3mRQaTFvLgkO9fVgEgMqqeVfb+p55tijWH+Kea71ubq4v8Sl8089sZKbKEZNq+VUfISJJF7j79WrbYgS994ZEf+nIz0pNFRWqapSmK6P45i3OQuItIiPDyg6RnxZ4D0g+CFPxAzluoRsWsaA6I6JOqVWCisDvJ0BgHTzMSRgMi0vmi8R+sR6tg/XUh7kCc7kMRqSNkTBDx0OkAUegFcMazciBXNpm798R6klXap/WZz49TQwBHqEcj4oCToUPjUuP9lfxcbyKMAwT6bTf1qqIIQDl3i5oCERNmVm0wgW4A8BGRxMX3hWh8bEV5Rvfp4DS5F3djWH2ztDNWKW7OBjgjIwsDWaKRknJjqMsh9QCa1p608lLovFkBE969DYtYelSzwSRcg535vAsFeNU9SzRCYZb4LDmxmFQKkwYGM+5y/G7b1uxMIylLdyE5yxIyYsoXWhQIpzQhYPi3JkJoKkB9+BxD0OMuyOEBe36DgyPSrxscmATldgKj8PxrkA/kA5PYMgkrocwIQ6GSRGmF0VaNqBKQZ5FYDEZSDzFTzq9mBQjAayE1A+ryDTzcQZe0Ibbxj7EwpAmTrJwEimZR9CCPtODhzxuNtY19Zd2Lf/fjCTnEiDAOg62j1utb/dv9mZ/aHCj4AyOHbsW3/As0BTzIgeJU7AAAAAElFTkSuQmCC');
cursor: crosshair;
float: left;
i {
display: block;
height: 5px;
width: 5px;
border: 1px solid #000;
@include borderRadius(5px);
position: absolute;
top: 0;
left: 0;
margin: -4px 0 0 -4px;
b {
display: block;
height: 5px;
width: 5px;
border: 1px solid #fff;
@include borderRadius(5px);
}
}
}

.colorpicker-hue,
.colorpicker-alpha {
width: 15px;
height: 100px;
float: left;
cursor: row-resize;
margin-left: 4px;
margin-bottom: 4px;
}

.colorpicker-hue i,
.colorpicker-alpha i {
display: block;
height: 1px;
background: #000;
border-top: 1px solid #fff;
position: absolute;
top: 0;
left: 0;
width: 100%;
margin-top: -1px;
}

.colorpicker-hue {
@include bgImg('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAABkCAMAAABw8qpSAAABLFBMVEXqFBb/ABH/ACL/ADH/AEH/AFD/AGD/AG7/AH7/AI3/AJ3/AKz/ALz/AMr/ANv/AOr/APr2AP/mAP/XAP/HAP+4AP+oAP+aAP+JAP97AP9rAP9cAP9MAP8+AP8tAP8fAP8PAP8BAv8AEP8AH/8AL/8APv8ATv8AXP8Abf8Ae/8Ai/8Amv8Aqv8AuP8Ayf8A1/8A5/8A9/8A//gA/+kA/9kA/8oA/7oA/6wA/5sA/40A/30A/24A/14A/1AA/z8A/zEA/yEA/xEB/wMN/wAd/wAs/wA8/wBK/wBb/wBp/wB5/wCI/wCY/wCm/wC3/wDF/wDV/wDk/wD1/wD/+gD/7AD/3AD/zAD/vgD/rQD/nwD/jgD/gAD/cAD/YgD/UQD/QwD/MgD/JAD/FAD4Eg42qAedAAAAh0lEQVR4XgXAg3EDAAAAwI9to7Zt27a1/w49BASFhEVExcQlJKWkZWTl5BUUlZRVVNXUNTS1tHXo1KVbj159+g0YNGTYiFFjxk2YNGXajFlz5i1YtGTZilVr1m3YtGXbjl179h04dOTYiVNnzl24dOXajVt37j149OTZi1dv3n349OXbj19//wOxE1dQ8reGAAAAAElFTkSuQmCC');
}

.colorpicker-alpha {
@include bgImg('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAABkCAQAAAAVxWkcAAABr0lEQVR4Xo2VwU0DQQxF7dmRuNIFlzlSAR3QAaXQQdIBJVABFXDcOVAAd67cjJLR07dkhcSrkZKfb/t7bG88rFo3B5gZPMNycItu2xloGV7MWHzM9zuzFWCkmA0nK6AszCUJDW6+mG6R03ncw5v8EMTEvZ2O3AliYjpslblc0RF9LmZYWxURU6aKytWZYsoWCAe+xwOZp1GsEukGiIkYxcQCHck99+gRgB7JncyIB5SGEhP3Yh5P6JwX+u6AnYot104d8DJT7uH7M9JH6OZbimj0vfMVaYnJIZFJDBW9kHlerL2C6JV4mSt7uuo2N57RxnZ+usQjn0R1jwBJBrNO3evJpVYUWsJ/E3UiXRlv24/7YZ04xmEdWlzcKS+B/eapeyMvFd2k0+hRk/T0AmTW8h69s2sjYMsdPntECiILhAeIMZAeH4QvUwfn6ijC0tTV+fT9ky8jM9nK2g7Ly1VjSpKYq6IvsAm7MtNu1orEqa/K3KNvgMFdhfquPfJmp2dbh0/8Gzb6Y22ViaNr6n5410zXdngVhbu6XqdOtWOuin5hjABGp4a2uotZ71MVCfwDBt2/v37yo6AAAAAASUVORK5CYII=');
display: none;
}

.colorpicker-saturation,
.colorpicker-hue,
.colorpicker-alpha {
background-size: contain;
}

.colorpicker {
padding: 4px;
min-width: 130px;
margin-top: 1px;
@include borderRadius(4px);
z-index: 2500;
}

.colorpicker:before,
.colorpicker:after {
display: table;
content: "";
line-height: 0;
}

.colorpicker:after {
clear: both;
}

.colorpicker:before {
content: '';
display: inline-block;
border-left: 7px solid transparent;
border-right: 7px solid transparent;
border-bottom: 7px solid #ccc;
border-bottom-color: rgba(0, 0, 0, 0.2);
position: absolute;
top: -7px;
left: 6px;
}

.colorpicker:after {
content: '';
display: inline-block;
border-left: 6px solid transparent;
border-right: 6px solid transparent;
border-bottom: 6px solid $white;
position: absolute;
top: -6px;
left: 7px;
}

.colorpicker div {
position: relative;
}

.colorpicker.colorpicker-with-alpha {
min-width: 140px;
}

.colorpicker.colorpicker-with-alpha .colorpicker-alpha {
display: block;
}

.colorpicker-color {
height: 10px;
margin-top: 5px;
clear: both;
@include bgImg('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAABkCAQAAAAVxWkcAAABr0lEQVR4Xo2VwU0DQQxF7dmRuNIFlzlSAR3QAaXQQdIBJVABFXDcOVAAd67cjJLR07dkhcSrkZKfb/t7bG88rFo3B5gZPMNycItu2xloGV7MWHzM9zuzFWCkmA0nK6AszCUJDW6+mG6R03ncw5v8EMTEvZ2O3AliYjpslblc0RF9LmZYWxURU6aKytWZYsoWCAe+xwOZp1GsEukGiIkYxcQCHck99+gRgB7JncyIB5SGEhP3Yh5P6JwX+u6AnYot104d8DJT7uH7M9JH6OZbimj0vfMVaYnJIZFJDBW9kHlerL2C6JV4mSt7uuo2N57RxnZ+usQjn0R1jwBJBrNO3evJpVYUWsJ/E3UiXRlv24/7YZ04xmEdWlzcKS+B/eapeyMvFd2k0+hRk/T0AmTW8h69s2sjYMsdPntECiILhAeIMZAeH4QvUwfn6ijC0tTV+fT9ky8jM9nK2g7Ly1VjSpKYq6IvsAm7MtNu1orEqa/K3KNvgMFdhfquPfJmp2dbh0/8Gzb6Y22ViaNr6n5410zXdngVhbu6XqdOtWOuin5hjABGp4a2uotZ71MVCfwDBt2/v37yo6AAAAAASUVORK5CYII=');
background-position: 0 100%;
}

.colorpicker-color div {
height: 10px;
}

.colorpicker-selectors {
display: none;
height: 10px;
margin-top: 5px;
clear: both;
}

.colorpicker-selectors i {
cursor: pointer;
float: left;
height: 10px;
width: 10px;
}

.colorpicker-selectors i + i {
margin-left: 3px;
}

.colorpicker-element .input-group-addon i,
.colorpicker-element .add-on i {
display: inline-block;
cursor: pointer;
height: 16px;
vertical-align: text-top;
width: 16px;
}

.colorpicker.colorpicker-inline {
position: relative;
display: inline-block;
float: none;
z-index: auto;
}

.colorpicker.colorpicker-horizontal {
width: 110px;
min-width: 110px;
height: auto;
}

.colorpicker.colorpicker-horizontal .colorpicker-saturation {
margin-bottom: 4px;
}

.colorpicker.colorpicker-horizontal .colorpicker-color {
width: 100px;
}

.colorpicker.colorpicker-horizontal .colorpicker-hue,
.colorpicker.colorpicker-horizontal .colorpicker-alpha {
width: 100px;
height: 15px;
float: left;
cursor: col-resize;
margin-left: 0px;
margin-bottom: 4px;
}

.colorpicker.colorpicker-horizontal .colorpicker-hue i,
.colorpicker.colorpicker-horizontal .colorpicker-alpha i {
display: block;
height: 15px;
background: $white;
position: absolute;
top: 0;
left: 0;
width: 1px;
border: none;
margin-top: 0px;
}

.colorpicker.colorpicker-horizontal .colorpicker-hue {
@include bgImg('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAAABCAMAAAAfBfuPAAABLFBMVEXqFBb/ABH/ACL/ADH/AEH/AFD/AGD/AG7/AH7/AI3/AJ3/AKz/ALz/AMr/ANv/AOr/APr2AP/mAP/XAP/HAP+4AP+oAP+aAP+JAP97AP9rAP9cAP9MAP8+AP8tAP8fAP8PAP8BAv8AEP8AH/8AL/8APv8ATv8AXP8Abf8Ae/8Ai/8Amv8Aqv8AuP8Ayf8A1/8A5/8A9/8A//gA/+kA/9kA/8oA/7oA/6wA/5sA/40A/30A/24A/14A/1AA/z8A/zEA/yEA/xEB/wMN/wAd/wAs/wA8/wBK/wBb/wBp/wB5/wCI/wCY/wCm/wC3/wDF/wDV/wDk/wD1/wD/+gD/7AD/3AD/zAD/vgD/rQD/nwD/jgD/gAD/cAD/YgD/UQD/QwD/MgD/JAD/FAD4Eg42qAedAAAAbUlEQVR4XgXAghEDsbxtlrZt27ax/w49ACAYQTGcICmaYTleECVZUTXdMC1Wm93hdLk9Xp8/EAyFI9FYPJFMpTPZXL5QLJUr1Vq90Wy1O91efzAcjSfT2XyxXK03293+cDydL9fb/fF8vT/f3x+LfRNXARMbCAAAAABJRU5ErkJggg==');
}

.colorpicker.colorpicker-horizontal .colorpicker-alpha {
@include bgImg('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAAAKCAQAAADoFTP1AAAB9ElEQVR4XoWTQW4VMRBEu9qWEimL7DhEMp8NF+ASnJJLcAQgE1bcgBUSkYKUuHCrZ9pjeqSU5Yn9LPu7umJQBIIv+k7vIOrtK66L4lmr3pVOrOv3otp619KZ0/KjdNI79L52Uo09FBQWrU0vfe5trezU+hLsoUKd3Repovte+0vbq/7Lj5XbaHECKasR9G4MPlbp+gzZxd6koPEJCkAYC5SjcOTAIIOK90Dja1IfIZ8Z+zAY9jm3b5Ia+MT5sFcqRJrR2AYYA8Kua5BzYRrFPNmD4PQMegGJMOffJJUsWiI3nCHZZjInNdffLWOufzbc3JaboCAVxwmnRHbhLSPwRJ4wU0BRSc6HkECYYVw95nMKgJOcylxrJttE5Ibzf9Xq9GPvP+WX3MiV/MGHfRu/SentRQrfG1GzsIrytdNXucSRKxQNIGHM9YhGFQJcdjNcBZvfJayuYe4Sia1CzwW+19mWOhe37HsxJWKwbu/jluEU15QzAQjAqCEbhMJc78GYV2E0kooHDubUImWkTOhGpgv8PoT8DJG/bzxna4BZ0eOFSOaLADGeSpFsg5AzeaDZIDQQXjZ4y/8ryfzUXBwdELRjTjCNvOeT0rNlrJz90vwy6N9pXXQEluX0inElpPWokSdiLCfiNJJjMKQ8Qsh8GEKQKMo/eiHrNbI9UksAAAAASUVORK5CYII=');
}

.colorpicker-right:before {
left: auto;
right: 6px;
}

.colorpicker-right:after {
left: auto;
right: 7px;
}

.colorpicker-no-arrow:before {
border-right: 0;
border-left: 0;
}

.colorpicker-no-arrow:after {
border-right: 0;
border-left: 0;
}

.colorpicker,
.colorpicker-alpha,
.colorpicker-saturation,
.colorpicker-hue,
.colorpicker-selectors {
&.colorpicker-visible {
display: block;
}
}

.colorpicker,
.colorpicker-alpha,
.colorpicker-saturation,
.colorpicker-hue,
.colorpicker-selectors {
&.colorpicker-hidden {
display: none;
}
}

.colorpicker-inline.colorpicker-visible {
display: inline-block;
}

/*!
* Bootstrap Colorpicker v2.5.2
* https://itsjavi.com/bootstrap-colorpicker/
*
* Originally written by (c) 2012 Stefan Petre
* Licensed under the Apache License v2.0
* http://www.apache.org/licenses/LICENSE-2.0.txt
*
*/

@mixin bgImg($imgBase64) {
background-image: url("#{$imgBase64}");
}

@mixin borderRadius($size) {
-webkit-border-radius: $size;
-moz-border-radius: $size;
border-radius: $size;
}

.colorpicker-saturation {
width: 100px;
height: 100px;
@include bgImg('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAQAAADa613fAAAP9klEQVR4XnRWC47rNgwcKjlA0bv2VL1Qi/YELRav7203iS1ppqZoiXCAhuBHVLI74xFtG3/Hz2joIOjRGuR5eMYuRn9YA1fds859KX8ZvczLr9/pImiR3Rqky9/wlajRIdVE/1Rufeu/0No3/ASgBZAJUkwgi0iCaEatekJJoEqiTQncd67/gyOfRCZshTed0Nl8LbLj8D6qxtoq9/7kJz/aH/3Xfu8VwI5+AUH8DxE7gUyiIpZ5LwiGzUqE3CScJsCDQHAsvBnxWpkbC0QMHmBp6latWS0bnvrCN/x1+xPfce+Ij0GAyeAGGz15sOiax2UylPhKrFaMPnVWClwepKh07hdhkVDsK2uoyEIySergjdbY2VBtV8VLr8Mf9mF/4wMb7kR8FOhzFWZZe7HIZD9JRIbee28eJKBweTB6TwjYkAgWaUmtDveGw1Wx3zZ76YlPPfQd/+gTTUFkiGiJ+NQAszU1EPT/QJEgufolAMPkNU4CVOyUIBLg4xglEZHGQnTFOFV0VaulYddBhA986ge/7N/yQi/3flFgwfQq2ibLnTDBRl9TmUHyJASPV/eoN0UISIr+ICQKIFV4EpljSjV1uFVUq9hRtet5e9gXvuyHPW0zMhQxWaoBBa9Tg8vsCEhww23Smd0CKjIkmPIoxWrUBDgJqFCyESF43ctQxLUoHN7Q1KyVhqrNNm3cy2vMyQNPVKjc29Rh5SSU+giWdRJHkLnQG71FQEuNyNGBTDdBQQAKCuGiEUS/jcyGbkMPq931OIzb/dUPGuVlG7f+slqkO5NAAlzTMdcq0NkzmsEBmAQkbI+pSHbiqnuWIA6lijhvqwIxMyWxMGZiPU669XJE1tADDTs2HWpwKxuqdnTpOiOR42xlzLtm3pXGel3xd8/oTs8Xy0MV8GM1RlsC2Y3Wy3wut3M+2mEVux0Gt9fhzTWyLvGiiJYaqY5DWRFIwAiQ5r6gB9GpQihJw4I9j5Mkscj3BnzGjBhv8xna5P1Jo428o6IOPY5KFZtVOkEKqUjqQY9Gi+jrIOFwJUDzRtA9xyoIrGGmkNRmxVAnZoK+TkUIeUYni5wEzgOG5iZX5HCr2JyQNqdk++G0rgb1ochSIGutTj4P7F0PuRUAolmh5sCzAHn1BYyaADh6bgFeoBx6vst091CEvcSLWBBpqGq384jZ5llVHSwEShLx+D4d0mU3D5eEAJQ9KEhOZUYnDENV2qKgmIlQhWfdvcoXYaegPp/n1oKIOgYFqxrzQSciqNhv/5FqPpy6b0UcX2vf13DfWySRSEgkEYlEJJGQSyKJSEQSCYlEEpHexIVO3XOevffze2a+PfPv9x1rne1c3b3Mmlmz9mE++zuzngfnw/E+Dlc4LL4NwHdFy7u3KGPVmZ6/4eeMoDyre3i/KHADIHYO04w9zO0mAotuKnrc7XaPjvu66bNe5cDT7RlPepEnfS2X8dF1/utDvD+OwGDBxEgQywLCvIMYWBY+DShwAAORAdv9PswhDAqOUCi5+71AbFcDMR4xBDNfhySKXPXZ1+Vub+Q1Ltf5z7eC0AjVldHI26rIFdKIAyYBJCFVUhVDwttAnM52B3Ect1TFQXzJ0z33lOuib/QO8g+CuO0gKBRU80A8hkeJ0b1KRQWmFQVSh8mf3lpUpNaRulzN5NArrmKKGMijXgzk7w5ijdFVgT8f1IdFNjVWjDWicUYWEEMmSFDtILdzHW5XueHp7p+yuS54ep5/c5BE2Gw/gWPNYU4/PZaak2VGEsFjSbOf8irea6KQgojGCk0KxZY31tWWgzwayF8N5KYyo3VADVicWWrhwzr3ZqIOa5xW5zbqMPPMiyDURHDIHQTeWq7KFXcQPOqzPOL5Ov/iIDEDy7DHEwx0PTgjO8SS0fOEHcZNMt+XKEFMj8Q4QUSvPu6HPuvd4N9/x12RPwcIVRCAakSOUzHgsUSMFWYzDQ+PiOJqAOuYc9jh5TecnA+xHfFyOYhebeTH89P80wrCJzUjlsx7euIV0g4zQFUSiBPioIWBACFC7GgDj8P91ZSJOQmQP74MAnQo8H5RIe8kZ0kBcQCMAlEpRDiKROBxbR0ksdhWFq0gR9q9uQzkDzuIFQSPqAgRCAsCaVNF2ZAAhxvtzcqcnDk6tpXxSsayqXLIgSOb6zqeH+fvO0i9XEu5EVV+OZehRZJ6BGTeaRhCkTzVIZeAzaWGAFfErIPogQI5CuR3HQQx7DzBB16R3s7e0MBUPedjWutgG/JUTPqMeAQNEiytJRnJearWUgdwFNxN7rtBoECuj/O3BMHaTIxQ0a4GctireElTJHJvLTaalih5kvBCGMvkdESUMAdCFaI4yG8SpDfRWAptqkAJUwCG6B7lOREFSZBqKs57MEHqVJEBwHa2lp0OiKtiQ18gx9P89QrSXyc0vObBM4vPmBADqJZLAo/yzK7qPSZstCy+fDSZlhrm+Zkyjsf5q2otdC14zkLjHLf0me9wjNqQo0B1a6wBJRaIEgC2Qw9oby/cRHA+xHCQy/xlB1HVSV3Y/5yVhsc7dBi2UoIWCMcbELZWgxNCGUZ5y4ceBaLlE8dAfrEosrYT+z8ya3sxXndFBxuQivNGEHFCbLGBlBLKGYHZoeoQpcjtMn/uICPefcxecpuDOEemg9S/44cflZPIlWolyHkLrEpgbS9IQRlAgZgi0WDjsEiPh+PN/Fkogq4GdzPtarlRGW2tJwEK1RMTEvdVdmhAKHO1pdUuGQsVcX+rSfGzDbwGyE8NRPQc83HCaOkTZwPqABZBdFq8zAN1gue0FPO8wYUFBE1WkMwVzM1iQ4BItFh+H36Qy/yJg0DRQICmBl+tbKUC5cCj3yXI+SUFBS78ZAcBtHt+e9lBuiqpTNh9zTvIjzuIWxVYGQJpAZY+VWS3QKh84iSZbwuIdiDpc4KztQa/sjhMaDJEJDSZ8mZ+kCBdC0JpKVNQzZdKu+EsOeFCosrngVAkDS/uy6iGnW7UxmMpkB8FyFKo6iQW8z1HuBdMu1pdkZdB8jWTjlFtNaiJRYniIDcD+eECMqFLS9ED6DgxzCMKnRD3HYYA2uMCJUh70OK8G0EUnJV8lqe8nj84QdqLhdoJskNlEw1ivajM8LtPBhIeN99LESXI9xcQIHFQudHngZjUhXOQeGlUYmAddh5pxMhzV0M1vMAtMFIVmfp6fq+DgEWefjQVenstaqUy3bJQAiVlEihDghCDINFQg8oUhoQPkO8SBEM7SFQ72VYBwPuE7k8uYF5LNwg/TEd2zkuKjIIhTiJRlYrDfNS1QL7DYUcbcCyKJNwOwucVCVSwBBj/DwghXA2hQtACgCBBPprfXkAIFIYRXhONQARFU00Tsh6LEmmQUbkTImMi9me5qaHDIeBgHeRbdxAIqAJBCDSoCNVQglrciqX/ZCD9RRP6rgpBvhmKAFhg2ForBLXBYPtUjj7vCHPe8SXbYAY47gHB9mKeqjjIg/53fmMD0fR9Bug7SFcHI6EA1OC/E8QTL4NgBSGiCiyTChnI1zcQxmyfRZGM6w701KRybDvsIK3LWDx6mxGkcglEZQLkawnCdppZ6sgCh8trWWBUQaUWCEOlOs7HAenFE45QSu9RQQDAqchXNxDq4orQR44qRIFUQvM+mRJuB6GDEixgCbSBQGXghEEbdn1P/zO/QhAWCsWsmRhLa2VFkSZIgSVKmgEQhvk6K8YKMRZl7Dwg4amOUYvFBfLlE4RasOCB5S9PXKq0AqGDMiYIReXF0mYctITWBmqR5F38X5Y7yJfeCtKBzNbWYm5XpsMpf3dRZD3jPDesvdVCOs6KYQXIFw1E4fcE8dHWOepZBXpLJcACWUZVMRZbfvgXR4Ak8A7VVSKSVuu9p6/mFxyE7cOWavtLp952O8huK83+gmHzHaAsVXLgAvl8gPCvHzAFsM8GNXGKPH5cmN02sXTLa8QdKRXMzHv67/k5A9k1UIx36UH/VlWWtuKssNiRapB6BaLXl6MA+ayDcNS3v/sYXgCL620F1kk8QhKAEOvKu4DvajDO5zkHc4fBg76anyEIIcamBPex5EK8AoVHhMW7QAqWrYD1204CJB1hCfOAV/PTBPH0zBmJmsZZKCEaAmdqm4zMcYxYLN0JuHThIAjirAnp3px7TRgD+ZSD/K92M1CNIgbC8Ex7FkSEIlQEEUQEQQQBRBABEUQQEQTx3X0Evap9AhP39jL5OvuzAWuvbDaTTDIzX2aypUCJ0i7nAigoQAk9gUIUSxXEoCFyyVIuL9ZQcMZoArnwr4D0OLS8jGNGTgGnsZQWMYrcOARoIReAALBeWhf+RUCAIEsECFQHLkwR5zj4JW3t5WOUU5djvgQIawD53EDsctmYz8xGaZGPBUR3qNkiGwqDICUYIFpqBgRaayCfFiAWR2wWvoobmzxdF8N5kyxXmvap/sgGcLF/aoBosbG+lE395R8zCA4BqUYgOgYq+HtvBrT0LK15X8lZwx5f9klCX0rdgXzIIGbdhXMqZtHzJhuptEjmsFc4KzmN5IFPtfM7gWw2kPczSIqQSPUDYKYBMamsBCpKphW0iA5H8AbMDPJOQYjLZg1Vk4G49GlCYNYAkdOd0kwRQ8FCyAHydgLZ6Z2AqrVtjDUQ7hCEmrkEooDAsB2YnBCvkBpZ6yBvJpCd7Mn5zJ6C4QF2BUQPgHEIGUrGnHzQ8rlMekBeTyAzwDJksxwM4+w3BY02B8mIl0CmFRm+ZscxAuSnvwqQsECTIGSV6FEoJFTygVuzB5xAsKqBvAQE3+nkVoJDI1BJIaPBWik7ZSu5NIp5A3mRQaTFvLgkO9fVgEgMqqeVfb+p55tijWH+Kea71ubq4v8Sl8089sZKbKEZNq+VUfISJJF7j79WrbYgS994ZEf+nIz0pNFRWqapSmK6P45i3OQuItIiPDyg6RnxZ4D0g+CFPxAzluoRsWsaA6I6JOqVWCisDvJ0BgHTzMSRgMi0vmi8R+sR6tg/XUh7kCc7kMRqSNkTBDx0OkAUegFcMazciBXNpm798R6klXap/WZz49TQwBHqEcj4oCToUPjUuP9lfxcbyKMAwT6bTf1qqIIQDl3i5oCERNmVm0wgW4A8BGRxMX3hWh8bEV5Rvfp4DS5F3djWH2ztDNWKW7OBjgjIwsDWaKRknJjqMsh9QCa1p608lLovFkBE969DYtYelSzwSRcg535vAsFeNU9SzRCYZb4LDmxmFQKkwYGM+5y/G7b1uxMIylLdyE5yxIyYsoXWhQIpzQhYPi3JkJoKkB9+BxD0OMuyOEBe36DgyPSrxscmATldgKj8PxrkA/kA5PYMgkrocwIQ6GSRGmF0VaNqBKQZ5FYDEZSDzFTzq9mBQjAayE1A+ryDTzcQZe0Ibbxj7EwpAmTrJwEimZR9CCPtODhzxuNtY19Zd2Lf/fjCTnEiDAOg62j1utb/dv9mZ/aHCj4AyOHbsW3/As0BTzIgeJU7AAAAAElFTkSuQmCC');
cursor: crosshair;
float: left;
i {
display: block;
height: 5px;
width: 5px;
border: 1px solid #000;
@include borderRadius(5px);
position: absolute;
top: 0;
left: 0;
margin: -4px 0 0 -4px;
b {
display: block;
height: 5px;
width: 5px;
border: 1px solid #fff;
@include borderRadius(5px);
}
}
}

.colorpicker-hue,
.colorpicker-alpha {
width: 15px;
height: 100px;
float: left;
cursor: row-resize;
margin-left: 4px;
margin-bottom: 4px;
}

.colorpicker-hue i,
.colorpicker-alpha i {
display: block;
height: 1px;
background: #000;
border-top: 1px solid #fff;
position: absolute;
top: 0;
left: 0;
width: 100%;
margin-top: -1px;
}

.colorpicker-hue {
@include bgImg('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAABkCAMAAABw8qpSAAABLFBMVEXqFBb/ABH/ACL/ADH/AEH/AFD/AGD/AG7/AH7/AI3/AJ3/AKz/ALz/AMr/ANv/AOr/APr2AP/mAP/XAP/HAP+4AP+oAP+aAP+JAP97AP9rAP9cAP9MAP8+AP8tAP8fAP8PAP8BAv8AEP8AH/8AL/8APv8ATv8AXP8Abf8Ae/8Ai/8Amv8Aqv8AuP8Ayf8A1/8A5/8A9/8A//gA/+kA/9kA/8oA/7oA/6wA/5sA/40A/30A/24A/14A/1AA/z8A/zEA/yEA/xEB/wMN/wAd/wAs/wA8/wBK/wBb/wBp/wB5/wCI/wCY/wCm/wC3/wDF/wDV/wDk/wD1/wD/+gD/7AD/3AD/zAD/vgD/rQD/nwD/jgD/gAD/cAD/YgD/UQD/QwD/MgD/JAD/FAD4Eg42qAedAAAAh0lEQVR4XgXAg3EDAAAAwI9to7Zt27a1/w49BASFhEVExcQlJKWkZWTl5BUUlZRVVNXUNTS1tHXo1KVbj159+g0YNGTYiFFjxk2YNGXajFlz5i1YtGTZilVr1m3YtGXbjl179h04dOTYiVNnzl24dOXajVt37j149OTZi1dv3n349OXbj19//wOxE1dQ8reGAAAAAElFTkSuQmCC');
}

.colorpicker-alpha {
@include bgImg('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAABkCAQAAAAVxWkcAAABr0lEQVR4Xo2VwU0DQQxF7dmRuNIFlzlSAR3QAaXQQdIBJVABFXDcOVAAd67cjJLR07dkhcSrkZKfb/t7bG88rFo3B5gZPMNycItu2xloGV7MWHzM9zuzFWCkmA0nK6AszCUJDW6+mG6R03ncw5v8EMTEvZ2O3AliYjpslblc0RF9LmZYWxURU6aKytWZYsoWCAe+xwOZp1GsEukGiIkYxcQCHck99+gRgB7JncyIB5SGEhP3Yh5P6JwX+u6AnYot104d8DJT7uH7M9JH6OZbimj0vfMVaYnJIZFJDBW9kHlerL2C6JV4mSt7uuo2N57RxnZ+usQjn0R1jwBJBrNO3evJpVYUWsJ/E3UiXRlv24/7YZ04xmEdWlzcKS+B/eapeyMvFd2k0+hRk/T0AmTW8h69s2sjYMsdPntECiILhAeIMZAeH4QvUwfn6ijC0tTV+fT9ky8jM9nK2g7Ly1VjSpKYq6IvsAm7MtNu1orEqa/K3KNvgMFdhfquPfJmp2dbh0/8Gzb6Y22ViaNr6n5410zXdngVhbu6XqdOtWOuin5hjABGp4a2uotZ71MVCfwDBt2/v37yo6AAAAAASUVORK5CYII=');
display: none;
}

.colorpicker-saturation,
.colorpicker-hue,
.colorpicker-alpha {
background-size: contain;
}

.colorpicker {
padding: 4px;
min-width: 130px;
margin-top: 1px;
@include borderRadius(4px);
z-index: 2500;
}

.colorpicker:before,
.colorpicker:after {
display: table;
content: "";
line-height: 0;
}

.colorpicker:after {
clear: both;
}

.colorpicker:before {
content: '';
display: inline-block;
border-left: 7px solid transparent;
border-right: 7px solid transparent;
border-bottom: 7px solid #ccc;
border-bottom-color: rgba(0, 0, 0, 0.2);
position: absolute;
top: -7px;
left: 6px;
}

.colorpicker:after {
content: '';
display: inline-block;
border-left: 6px solid transparent;
border-right: 6px solid transparent;
border-bottom: 6px solid #ffffff;
position: absolute;
top: -6px;
left: 7px;
}

.colorpicker div {
position: relative;
}

.colorpicker.colorpicker-with-alpha {
min-width: 140px;
}

.colorpicker.colorpicker-with-alpha .colorpicker-alpha {
display: block;
}

.colorpicker-color {
height: 10px;
margin-top: 5px;
clear: both;
@include bgImg('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAABkCAQAAAAVxWkcAAABr0lEQVR4Xo2VwU0DQQxF7dmRuNIFlzlSAR3QAaXQQdIBJVABFXDcOVAAd67cjJLR07dkhcSrkZKfb/t7bG88rFo3B5gZPMNycItu2xloGV7MWHzM9zuzFWCkmA0nK6AszCUJDW6+mG6R03ncw5v8EMTEvZ2O3AliYjpslblc0RF9LmZYWxURU6aKytWZYsoWCAe+xwOZp1GsEukGiIkYxcQCHck99+gRgB7JncyIB5SGEhP3Yh5P6JwX+u6AnYot104d8DJT7uH7M9JH6OZbimj0vfMVaYnJIZFJDBW9kHlerL2C6JV4mSt7uuo2N57RxnZ+usQjn0R1jwBJBrNO3evJpVYUWsJ/E3UiXRlv24/7YZ04xmEdWlzcKS+B/eapeyMvFd2k0+hRk/T0AmTW8h69s2sjYMsdPntECiILhAeIMZAeH4QvUwfn6ijC0tTV+fT9ky8jM9nK2g7Ly1VjSpKYq6IvsAm7MtNu1orEqa/K3KNvgMFdhfquPfJmp2dbh0/8Gzb6Y22ViaNr6n5410zXdngVhbu6XqdOtWOuin5hjABGp4a2uotZ71MVCfwDBt2/v37yo6AAAAAASUVORK5CYII=');
background-position: 0 100%;
}

.colorpicker-color div {
height: 10px;
}

.colorpicker-selectors {
display: none;
height: 10px;
margin-top: 5px;
clear: both;
}

.colorpicker-selectors i {
cursor: pointer;
float: left;
height: 10px;
width: 10px;
}

.colorpicker-selectors i + i {
margin-left: 3px;
}

.colorpicker-element .input-group-addon i,
.colorpicker-element .add-on i {
display: inline-block;
cursor: pointer;
height: 16px;
vertical-align: text-top;
width: 16px;
}

.colorpicker.colorpicker-inline {
position: relative;
display: inline-block;
float: none;
z-index: auto;
}

.colorpicker.colorpicker-horizontal {
width: 110px;
min-width: 110px;
height: auto;
}

.colorpicker.colorpicker-horizontal .colorpicker-saturation {
margin-bottom: 4px;
}

.colorpicker.colorpicker-horizontal .colorpicker-color {
width: 100px;
}

.colorpicker.colorpicker-horizontal .colorpicker-hue,
.colorpicker.colorpicker-horizontal .colorpicker-alpha {
width: 100px;
height: 15px;
float: left;
cursor: col-resize;
margin-left: 0px;
margin-bottom: 4px;
}

.colorpicker.colorpicker-horizontal .colorpicker-hue i,
.colorpicker.colorpicker-horizontal .colorpicker-alpha i {
display: block;
height: 15px;
background: #ffffff;
position: absolute;
top: 0;
left: 0;
width: 1px;
border: none;
margin-top: 0px;
}

.colorpicker.colorpicker-horizontal .colorpicker-hue {
@include bgImg('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAAABCAMAAAAfBfuPAAABLFBMVEXqFBb/ABH/ACL/ADH/AEH/AFD/AGD/AG7/AH7/AI3/AJ3/AKz/ALz/AMr/ANv/AOr/APr2AP/mAP/XAP/HAP+4AP+oAP+aAP+JAP97AP9rAP9cAP9MAP8+AP8tAP8fAP8PAP8BAv8AEP8AH/8AL/8APv8ATv8AXP8Abf8Ae/8Ai/8Amv8Aqv8AuP8Ayf8A1/8A5/8A9/8A//gA/+kA/9kA/8oA/7oA/6wA/5sA/40A/30A/24A/14A/1AA/z8A/zEA/yEA/xEB/wMN/wAd/wAs/wA8/wBK/wBb/wBp/wB5/wCI/wCY/wCm/wC3/wDF/wDV/wDk/wD1/wD/+gD/7AD/3AD/zAD/vgD/rQD/nwD/jgD/gAD/cAD/YgD/UQD/QwD/MgD/JAD/FAD4Eg42qAedAAAAbUlEQVR4XgXAghEDsbxtlrZt27ax/w49ACAYQTGcICmaYTleECVZUTXdMC1Wm93hdLk9Xp8/EAyFI9FYPJFMpTPZXL5QLJUr1Vq90Wy1O91efzAcjSfT2XyxXK03293+cDydL9fb/fF8vT/f3x+LfRNXARMbCAAAAABJRU5ErkJggg==');
}

.colorpicker.colorpicker-horizontal .colorpicker-alpha {
@include bgImg('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAAAKCAQAAADoFTP1AAAB9ElEQVR4XoWTQW4VMRBEu9qWEimL7DhEMp8NF+ASnJJLcAQgE1bcgBUSkYKUuHCrZ9pjeqSU5Yn9LPu7umJQBIIv+k7vIOrtK66L4lmr3pVOrOv3otp619KZ0/KjdNI79L52Uo09FBQWrU0vfe5trezU+hLsoUKd3Repovte+0vbq/7Lj5XbaHECKasR9G4MPlbp+gzZxd6koPEJCkAYC5SjcOTAIIOK90Dja1IfIZ8Z+zAY9jm3b5Ia+MT5sFcqRJrR2AYYA8Kua5BzYRrFPNmD4PQMegGJMOffJJUsWiI3nCHZZjInNdffLWOufzbc3JaboCAVxwmnRHbhLSPwRJ4wU0BRSc6HkECYYVw95nMKgJOcylxrJttE5Ibzf9Xq9GPvP+WX3MiV/MGHfRu/SentRQrfG1GzsIrytdNXucSRKxQNIGHM9YhGFQJcdjNcBZvfJayuYe4Sia1CzwW+19mWOhe37HsxJWKwbu/jluEU15QzAQjAqCEbhMJc78GYV2E0kooHDubUImWkTOhGpgv8PoT8DJG/bzxna4BZ0eOFSOaLADGeSpFsg5AzeaDZIDQQXjZ4y/8ryfzUXBwdELRjTjCNvOeT0rNlrJz90vwy6N9pXXQEluX0inElpPWokSdiLCfiNJJjMKQ8Qsh8GEKQKMo/eiHrNbI9UksAAAAASUVORK5CYII=');
}

.colorpicker-right:before {
left: auto;
right: 6px;
}

.colorpicker-right:after {
left: auto;
right: 7px;
}

.colorpicker-no-arrow:before {
border-right: 0;
border-left: 0;
}

.colorpicker-no-arrow:after {
border-right: 0;
border-left: 0;
}

.colorpicker,
.colorpicker-alpha,
.colorpicker-saturation,
.colorpicker-hue,
.colorpicker-selectors {
&.colorpicker-visible {
display: block;
}
}

.colorpicker,
.colorpicker-alpha,
.colorpicker-saturation,
.colorpicker-hue,
.colorpicker-selectors {
&.colorpicker-hidden {
display: none;
}
}

.colorpicker-inline.colorpicker-visible {
display: inline-block;
}

.select2-container {
box-sizing: border-box;
display: inline-block;
margin: 0;
position: relative;
vertical-align: middle; }
.select2-container .select2-selection--single {
box-sizing: border-box;
cursor: pointer;
display: block;
height: 28px;
user-select: none;
-webkit-user-select: none; }
.select2-container .select2-selection--single .select2-selection__rendered {
display: block;
padding-left: 8px;
padding-right: 20px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap; }
.select2-container .select2-selection--single .select2-selection__clear {
background-color: transparent;
border: none;
font-size: 1em; }
.select2-container[dir="rtl"] .select2-selection--single .select2-selection__rendered {
padding-right: 8px;
padding-left: 20px; }
.select2-container .select2-selection--multiple {
box-sizing: border-box;
cursor: pointer;
display: block;
min-height: 32px;
user-select: none;
-webkit-user-select: none; }
.select2-container .select2-selection--multiple .select2-selection__rendered {
display: inline;
list-style: none;
padding: 0; }
.select2-container .select2-selection--multiple .select2-selection__clear {
background-color: transparent;
border: none;
font-size: 1em; }
.select2-container .select2-search--inline .select2-search__field {
box-sizing: border-box;
border: none;
font-size: 100%;
margin-top: 5px;
margin-left: 5px;
padding: 0;
max-width: 100%;
resize: none;
height: 18px;
vertical-align: bottom;
font-family: sans-serif;
overflow: hidden;
word-break: keep-all; }
.select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button {
-webkit-appearance: none; }

.select2-dropdown {
background-color: white;
border: 1px solid #aaa;
border-radius: 4px;
box-sizing: border-box;
display: block;
position: absolute;
left: -100000px;
width: 100%;
z-index: 1051; }

.select2-results {
display: block; }

.select2-results__options {
list-style: none;
margin: 0;
padding: 0; }

.select2-results__option {
padding: 6px;
user-select: none;
-webkit-user-select: none; }

.select2-results__option--selectable {
cursor: pointer; }

.select2-container--open .select2-dropdown {
left: 0; }

.select2-container--open .select2-dropdown--above {
border-bottom: none;
border-bottom-left-radius: 0;
border-bottom-right-radius: 0; }

.select2-container--open .select2-dropdown--below {
border-top: none;
border-top-left-radius: 0;
border-top-right-radius: 0; }

.select2-search--dropdown {
display: block;
padding: 4px; }
.select2-search--dropdown .select2-search__field {
padding: 4px;
width: 100%;
box-sizing: border-box; }
.select2-search--dropdown .select2-search__field::-webkit-search-cancel-button {
-webkit-appearance: none; }
.select2-search--dropdown.select2-search--hide {
display: none; }

.select2-close-mask {
border: 0;
margin: 0;
padding: 0;
display: block;
position: fixed;
left: 0;
top: 0;
min-height: 100%;
min-width: 100%;
height: auto;
width: auto;
opacity: 0;
z-index: 99;
background-color: #fff;
filter: alpha(opacity=0); }

.select2-hidden-accessible {
border: 0 !important;
clip: rect(0 0 0 0) !important;
-webkit-clip-path: inset(50%) !important;
clip-path: inset(50%) !important;
height: 1px !important;
overflow: hidden !important;
padding: 0 !important;
position: absolute !important;
width: 1px !important;
white-space: nowrap !important; }

.select2-container--default .select2-selection--single {
background-color: #fff;
border: 1px solid #aaa;
border-radius: 4px; }
.select2-container--default .select2-selection--single .select2-selection__rendered {
color: #444;
line-height: 28px; }
.select2-container--default .select2-selection--single .select2-selection__clear {
cursor: pointer;
float: right;
font-weight: bold;
height: 26px;
margin-right: 20px;
padding-right: 0px; }
.select2-container--default .select2-selection--single .select2-selection__placeholder {
color: #999; }
.select2-container--default .select2-selection--single .select2-selection__arrow {
height: 26px;
position: absolute;
top: 1px;
right: 1px;
width: 20px; }
.select2-container--default .select2-selection--single .select2-selection__arrow b {
border-color: #888 transparent transparent transparent;
border-style: solid;
border-width: 5px 4px 0 4px;
height: 0;
left: 50%;
margin-left: -4px;
margin-top: -2px;
position: absolute;
top: 50%;
width: 0; }

.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__clear {
float: left; }

.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__arrow {
left: 1px;
right: auto; }

.select2-container--default.select2-container--disabled .select2-selection--single {
background-color: #eee;
cursor: default; }
.select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear {
display: none; }

.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b {
border-color: transparent transparent #888 transparent;
border-width: 0 4px 5px 4px; }

.select2-container--default .select2-selection--multiple {
background-color: white;
border: 1px solid #aaa;
border-radius: 4px;
cursor: text;
padding-bottom: 5px;
padding-right: 5px;
position: relative; }
.select2-container--default .select2-selection--multiple.select2-selection--clearable {
padding-right: 25px; }
.select2-container--default .select2-selection--multiple .select2-selection__clear {
cursor: pointer;
font-weight: bold;
height: 20px;
margin-right: 10px;
margin-top: 5px;
position: absolute;
right: 0;
padding: 1px; }
.select2-container--default .select2-selection--multiple .select2-selection__choice {
background-color: #e4e4e4;
border: 1px solid #aaa;
border-radius: 4px;
box-sizing: border-box;
display: inline-block;
margin-left: 5px;
margin-top: 5px;
padding: 0;
padding-left: 20px;
position: relative;
max-width: 100%;
overflow: hidden;
text-overflow: ellipsis;
vertical-align: bottom;
white-space: nowrap; }
.select2-container--default .select2-selection--multiple .select2-selection__choice__display {
cursor: default;
padding-left: 2px;
padding-right: 5px; }
.select2-container--default .select2-selection--multiple .select2-selection__choice__remove {
background-color: transparent;
border: none;
border-right: 1px solid #aaa;
border-top-left-radius: 4px;
border-bottom-left-radius: 4px;
color: #999;
cursor: pointer;
font-size: 1em;
font-weight: bold;
padding: 0 4px;
position: absolute;
left: 0;
top: 0; }
.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover, .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:focus {
background-color: #f1f1f1;
color: #333;
outline: none; }

.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice {
margin-left: 5px;
margin-right: auto; }

.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice__display {
padding-left: 5px;
padding-right: 2px; }

.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove {
border-left: 1px solid #aaa;
border-right: none;
border-top-left-radius: 0;
border-bottom-left-radius: 0;
border-top-right-radius: 4px;
border-bottom-right-radius: 4px; }

.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__clear {
float: left;
margin-left: 10px;
margin-right: auto; }

.select2-container--default.select2-container--focus .select2-selection--multiple {
border: solid black 1px;
outline: 0; }

.select2-container--default.select2-container--disabled .select2-selection--multiple {
background-color: #eee;
cursor: default; }

.select2-container--default.select2-container--disabled .select2-selection__choice__remove {
display: none; }

.select2-container--default.select2-container--open.select2-container--above .select2-selection--single, .select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple {
border-top-left-radius: 0;
border-top-right-radius: 0; }

.select2-container--default.select2-container--open.select2-container--below .select2-selection--single, .select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple {
border-bottom-left-radius: 0;
border-bottom-right-radius: 0; }

.select2-container--default .select2-search--dropdown .select2-search__field {
border: 1px solid #aaa; }

.select2-container--default .select2-search--inline .select2-search__field {
background: transparent;
border: none;
outline: 0;
box-shadow: none;
-webkit-appearance: textfield; }

.select2-container--default .select2-results > .select2-results__options {
max-height: 200px;
overflow-y: auto; }

.select2-container--default .select2-results__option .select2-results__option {
padding-left: 1em; }
.select2-container--default .select2-results__option .select2-results__option .select2-results__group {
padding-left: 0; }
.select2-container--default .select2-results__option .select2-results__option .select2-results__option {
margin-left: -1em;
padding-left: 2em; }
.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
margin-left: -2em;
padding-left: 3em; }
.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
margin-left: -3em;
padding-left: 4em; }
.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
margin-left: -4em;
padding-left: 5em; }
.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
margin-left: -5em;
padding-left: 6em; }

.select2-container--default .select2-results__option--group {
padding: 0; }

.select2-container--default .select2-results__option--disabled {
color: #999; }

.select2-container--default .select2-results__option--selected {
background-color: #ddd; }

.select2-container--default .select2-results__option--highlighted.select2-results__option--selectable {
background-color: #5897fb;
color: white; }

.select2-container--default .select2-results__group {
cursor: default;
display: block;
padding: 6px; }

.select2-container--classic .select2-selection--single {
background-color: #f7f7f7;
border: 1px solid #aaa;
border-radius: 4px;
outline: 0;
background-image: -webkit-linear-gradient(top, white 50%, #eeeeee 100%);
background-image: -o-linear-gradient(top, white 50%, #eeeeee 100%);
background-image: linear-gradient(to bottom, white 50%, #eeeeee 100%);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0); }
.select2-container--classic .select2-selection--single:focus {
border: 1px solid #5897fb; }
.select2-container--classic .select2-selection--single .select2-selection__rendered {
color: #444;
line-height: 28px; }
.select2-container--classic .select2-selection--single .select2-selection__clear {
cursor: pointer;
float: right;
font-weight: bold;
height: 26px;
margin-right: 20px; }
.select2-container--classic .select2-selection--single .select2-selection__placeholder {
color: #999; }
.select2-container--classic .select2-selection--single .select2-selection__arrow {
background-color: #ddd;
border: none;
border-left: 1px solid #aaa;
border-top-right-radius: 4px;
border-bottom-right-radius: 4px;
height: 26px;
position: absolute;
top: 1px;
right: 1px;
width: 20px;
background-image: -webkit-linear-gradient(top, #eeeeee 50%, #cccccc 100%);
background-image: -o-linear-gradient(top, #eeeeee 50%, #cccccc 100%);
background-image: linear-gradient(to bottom, #eeeeee 50%, #cccccc 100%);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFCCCCCC', GradientType=0); }
.select2-container--classic .select2-selection--single .select2-selection__arrow b {
border-color: #888 transparent transparent transparent;
border-style: solid;
border-width: 5px 4px 0 4px;
height: 0;
left: 50%;
margin-left: -4px;
margin-top: -2px;
position: absolute;
top: 50%;
width: 0; }

.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__clear {
float: left; }

.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__arrow {
border: none;
border-right: 1px solid #aaa;
border-radius: 0;
border-top-left-radius: 4px;
border-bottom-left-radius: 4px;
left: 1px;
right: auto; }

.select2-container--classic.select2-container--open .select2-selection--single {
border: 1px solid #5897fb; }
.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow {
background: transparent;
border: none; }
.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow b {
border-color: transparent transparent #888 transparent;
border-width: 0 4px 5px 4px; }

.select2-container--classic.select2-container--open.select2-container--above .select2-selection--single {
border-top: none;
border-top-left-radius: 0;
border-top-right-radius: 0;
background-image: -webkit-linear-gradient(top, white 0%, #eeeeee 50%);
background-image: -o-linear-gradient(top, white 0%, #eeeeee 50%);
background-image: linear-gradient(to bottom, white 0%, #eeeeee 50%);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0); }

.select2-container--classic.select2-container--open.select2-container--below .select2-selection--single {
border-bottom: none;
border-bottom-left-radius: 0;
border-bottom-right-radius: 0;
background-image: -webkit-linear-gradient(top, #eeeeee 50%, white 100%);
background-image: -o-linear-gradient(top, #eeeeee 50%, white 100%);
background-image: linear-gradient(to bottom, #eeeeee 50%, white 100%);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFFFFFFF', GradientType=0); }

.select2-container--classic .select2-selection--multiple {
background-color: white;
border: 1px solid #aaa;
border-radius: 4px;
cursor: text;
outline: 0;
padding-bottom: 5px;
padding-right: 5px; }
.select2-container--classic .select2-selection--multiple:focus {
border: 1px solid #5897fb; }
.select2-container--classic .select2-selection--multiple .select2-selection__clear {
display: none; }
.select2-container--classic .select2-selection--multiple .select2-selection__choice {
background-color: #e4e4e4;
border: 1px solid #aaa;
border-radius: 4px;
display: inline-block;
margin-left: 5px;
margin-top: 5px;
padding: 0; }
.select2-container--classic .select2-selection--multiple .select2-selection__choice__display {
cursor: default;
padding-left: 2px;
padding-right: 5px; }
.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove {
background-color: transparent;
border: none;
border-top-left-radius: 4px;
border-bottom-left-radius: 4px;
color: #888;
cursor: pointer;
font-size: 1em;
font-weight: bold;
padding: 0 4px; }
.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove:hover {
color: #555;
outline: none; }

.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice {
margin-left: 5px;
margin-right: auto; }

.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice__display {
padding-left: 5px;
padding-right: 2px; }

.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove {
border-top-left-radius: 0;
border-bottom-left-radius: 0;
border-top-right-radius: 4px;
border-bottom-right-radius: 4px; }

.select2-container--classic.select2-container--open .select2-selection--multiple {
border: 1px solid #5897fb; }

.select2-container--classic.select2-container--open.select2-container--above .select2-selection--multiple {
border-top: none;
border-top-left-radius: 0;
border-top-right-radius: 0; }

.select2-container--classic.select2-container--open.select2-container--below .select2-selection--multiple {
border-bottom: none;
border-bottom-left-radius: 0;
border-bottom-right-radius: 0; }

.select2-container--classic .select2-search--dropdown .select2-search__field {
border: 1px solid #aaa;
outline: 0; }

.select2-container--classic .select2-search--inline .select2-search__field {
outline: 0;
box-shadow: none; }

.select2-container--classic .select2-dropdown {
background-color: white;
border: 1px solid transparent; }

.select2-container--classic .select2-dropdown--above {
border-bottom: none; }

.select2-container--classic .select2-dropdown--below {
border-top: none; }

.select2-container--classic .select2-results > .select2-results__options {
max-height: 200px;
overflow-y: auto; }

.select2-container--classic .select2-results__option--group {
padding: 0; }

.select2-container--classic .select2-results__option--disabled {
color: grey; }

.select2-container--classic .select2-results__option--highlighted.select2-results__option--selectable {
background-color: #3875d7;
color: white; }

.select2-container--classic .select2-results__group {
cursor: default;
display: block;
padding: 6px; }

.select2-container--classic.select2-container--open .select2-dropdown {
border-color: #5897fb; }

// Height
$s2bs5-height: $input-height !default;
$s2bs5-height-inner: $input-line-height * 1rem !default;

// Z-Index
$s2bs5-zindex: $zindex-modal + 1 !default;

// Padding
$s2bs5-padding-y: $form-select-padding-y !default;
$s2bs5-padding-x: $form-select-padding-x !default;

// Font
$s2bs5-font-family: inherit !default;
$s2bs5-font-size: $form-select-font-size !default;
$s2bs5-font-weight: $form-select-font-weight !default;
$s2bs5-line-height: $form-select-line-height !default;

// Color & background
$s2bs5-color: $form-select-color !default;
$s2bs5-placeholder-color: $input-placeholder-color !default;
$s2bs5-bg: $form-select-bg !default;
$s2bs5-bg-position: $form-select-bg-position !default;
$s2bs5-bg-size: $form-select-bg-size !default;

// Border & shadow
$s2bs5-border-width: $form-select-border-width !default;
$s2bs5-border-color: $form-select-border-color !default;
$s2bs5-border-radius: $form-select-border-radius !default;
$s2bs5-box-shadow: $form-select-box-shadow !default;
$s2bs5-transition: $input-transition !default;

// Indicator
$s2bs5-indicator-padding: $form-select-indicator-padding !default;
$s2bs5-indicator: $form-select-indicator !default;

// Focus
$s2bs5-focus-border-color: $form-select-focus-border-color !default;
$s2bs5-focus-width: $form-select-focus-width !default;
$s2bs5-focus-box-shadow: $form-select-focus-box-shadow !default;

// Valid
$s2bs5-valid-border-color: $form-feedback-valid-color !default;
$s2bs5-valid-focus-box-shadow: 0 0 0 $s2bs5-focus-width rgba($s2bs5-valid-border-color, $input-btn-focus-color-opacity) !default;

// Invalid
$s2bs5-invalid-border-color: $form-feedback-invalid-color !default;
$s2bs5-invalid-focus-box-shadow: 0 0 0 $s2bs5-focus-width rgba($s2bs5-invalid-border-color, $input-btn-focus-color-opacity) !default;

// Disabled
$s2bs5-disabled-color: $text-muted !default;
$s2bs5-disabled-bg: $form-select-disabled-bg !default;
$s2bs5-disabled-border-color: $s2bs5-border-color !default;

// Items
$s2bs5-item-padding-y: $s2bs5-padding-y !default;
$s2bs5-item-padding-x: $s2bs5-padding-x !default;
$s2bs5-item-active-bg: $primary !default;
$s2bs5-item-hover-bg: $gray-200 !default;
$s2bs5-item-focus-bg: $gray-200 !default;

// Groups
$s2bs5-group-padding-y: $s2bs5-padding-y !default;
$s2bs5-group-padding-x: $s2bs5-padding-x * .5 !default;
$s2bs5-group-color: $secondary !default;
$s2bs5-group-font-weight: $headings-font-weight !default;

// Multiple items
$s2bs5-multi-item-padding-y: $badge-padding-y !default;
$s2bs5-multi-item-padding-x: $badge-padding-x !default;

$s2bs5-options-max-height: 15rem !default;

// Clear/Remove
$s2bs5-clear-width: .75rem !default;
$s2bs5-clear-height: .75rem !default;
$s2bs5-clear-padding-y: $btn-close-padding-y !default;
$s2bs5-clear-padding-x: $btn-close-padding-x !default;
$s2bs5-clear-icon: str-replace($btn-close-bg, #{$btn-close-color}, #{shade-color($s2bs5-border-color, 50%)}) !default;
$s2bs5-clear-bg: transparent escape-svg($s2bs5-clear-icon) center / $s2bs5-clear-height auto no-repeat !default;
$s2bs5-clear-hover-bg: transparent escape-svg($btn-close-bg) center / $s2bs5-clear-height auto no-repeat !default;

// Small
$s2bs5-height-sm: $input-height-sm !default;
$s2bs5-height-inner-sm: $input-line-height * 1em !default;
$s2bs5-padding-y-sm: $form-select-padding-y-sm !default;
$s2bs5-padding-x-sm: $form-select-padding-x-sm !default;
$s2bs5-font-size-sm: $form-select-font-size-sm !default;
$s2bs5-border-radius-sm: $form-select-border-radius-sm !default;
$s2bs5-item-padding-y-sm: $s2bs5-padding-y-sm !default;
$s2bs5-item-padding-x-sm: $s2bs5-padding-x-sm !default;
$s2bs5-group-padding-y-sm: $s2bs5-padding-y-sm !default;
$s2bs5-group-padding-x-sm: $s2bs5-padding-x-sm * .5 !default;
$s2bs5-clear-width-sm: .5rem !default;
$s2bs5-clear-height-sm: .5rem !default;
$s2bs5-clear-padding-y-sm: .125rem !default;
$s2bs5-clear-padding-x-sm: .125rem !default;
$s2bs5-clear-bg-sm: transparent escape-svg($s2bs5-clear-icon) center / $s2bs5-clear-height-sm auto no-repeat !default;
$s2bs5-clear-hover-bg-sm: transparent escape-svg($btn-close-bg) center / $s2bs5-clear-height-sm auto no-repeat !default;

$s2bs5-small: (
"height": $s2bs5-height-sm,
"height-inner": $s2bs5-height-inner-sm,
"padding-y": $s2bs5-padding-y-sm,
"padding-x": $s2bs5-padding-x-sm,
"font-size": $s2bs5-font-size-sm,
"border-radius": $s2bs5-border-radius-sm,
"item-padding-y": $s2bs5-item-padding-y-sm,
"item-padding-x": $s2bs5-item-padding-x-sm,
"group-padding-y": $s2bs5-group-padding-y-sm,
"group-padding-x": $s2bs5-group-padding-x-sm,
"clear-width": $s2bs5-clear-width-sm,
"clear-height": $s2bs5-clear-height-sm,
"clear-padding-y": $s2bs5-clear-padding-y-sm,
"clear-padding-x": $s2bs5-clear-padding-x-sm,
"clear-bg": $s2bs5-clear-bg-sm,
"clear-hover-bg": $s2bs5-clear-hover-bg-sm,
) !default;

// Large
$s2bs5-height-lg: $input-height-lg !default;
$s2bs5-height-inner-lg: $input-line-height * 1em !default;
$s2bs5-padding-y-lg: $form-select-padding-y-lg !default;
$s2bs5-padding-x-lg: $form-select-padding-x-lg !default;
$s2bs5-font-size-lg: $form-select-font-size-lg !default;
$s2bs5-border-radius-lg: $form-select-border-radius-lg !default;
$s2bs5-item-padding-y-lg: $s2bs5-padding-y-lg !default;
$s2bs5-item-padding-x-lg: $s2bs5-padding-x-lg !default;
$s2bs5-group-padding-y-lg: $s2bs5-padding-y-lg !default;
$s2bs5-group-padding-x-lg: $s2bs5-padding-x-lg * .5 !default;
$s2bs5-clear-width-lg: 1rem !default;
$s2bs5-clear-height-lg: 1rem !default;
$s2bs5-clear-padding-y-lg: .5rem !default;
$s2bs5-clear-padding-x-lg: .5rem !default;
$s2bs5-clear-bg-lg: transparent escape-svg($s2bs5-clear-icon) center / $s2bs5-clear-height-lg auto no-repeat !default;
$s2bs5-clear-hover-bg-lg: transparent escape-svg($btn-close-bg) center / $s2bs5-clear-height-lg auto no-repeat !default;

$s2bs5-large: (
"height": $s2bs5-height-lg,
"height-inner": $s2bs5-height-inner-lg,
"padding-y": $s2bs5-padding-y-lg,
"padding-x": $s2bs5-padding-x-lg,
"font-size": $s2bs5-font-size-lg,
"border-radius": $s2bs5-border-radius-lg,
"item-padding-y": $s2bs5-item-padding-y-lg,
"item-padding-x": $s2bs5-item-padding-x-lg,
"group-padding-y": $s2bs5-group-padding-y-lg,
"group-padding-x": $s2bs5-group-padding-x-lg,
"clear-width": $s2bs5-clear-width-lg,
"clear-height": $s2bs5-clear-height-lg,
"clear-padding-y": $s2bs5-clear-padding-y-lg,
"clear-padding-x": $s2bs5-clear-padding-x-lg,
"clear-bg": $s2bs5-clear-bg-lg,
"clear-hover-bg": $s2bs5-clear-hover-bg-lg,
) !default;

// Base layout
.select2-container--bootstrap-5 {
display: block;

@at-root select + & {
z-index: 1;
}

*:focus {
outline: 0;
}

// Input
.select2-selection {
width: 100%;
min-height: $s2bs5-height;
padding: $s2bs5-padding-y $s2bs5-padding-x;
font-family: $s2bs5-font-family;
@include font-size($s2bs5-font-size);
font-weight: $s2bs5-font-weight;
line-height: $s2bs5-line-height;
color: $s2bs5-color;
background-color: $s2bs5-bg;
border: $s2bs5-border-width solid $s2bs5-border-color;
@include border-radius($s2bs5-border-radius, 0);
@include box-shadow($s2bs5-box-shadow);
@include transition($s2bs5-transition);
appearance: none;
}

// Focused/Open Input
&.select2-container--focus,
&.select2-container--open {
.select2-selection {
border-color: $s2bs5-focus-border-color;
box-shadow: $s2bs5-focus-box-shadow;
}
}

// Hide bottom border when open and below
&.select2-container--open.select2-container--below .select2-selection {
border-bottom: 0 solid transparent;
@include border-bottom-radius(0);
}

// Hide top border when open and above
&.select2-container--open.select2-container--above .select2-selection {
border-top: 0 solid transparent;
@include border-top-radius(0);
}

// Placeholder Width
.select2-search {
width: 100%;
}

.select2-search--inline {
.select2-search__field {
vertical-align: top;
}
}

// Clear Button
.select2-selection--single,
.select2-selection--multiple {
.select2-selection__clear {
position: absolute;
top: 50%;
right: $s2bs5-indicator-padding;
width: $s2bs5-clear-width;
height: $s2bs5-clear-height;
padding: $s2bs5-clear-padding-y $s2bs5-clear-padding-x;
overflow: hidden;
text-indent: 100%;
white-space: nowrap;
background: $s2bs5-clear-bg;
transform: translateY(-50%);

// Change icon on hover
&:hover {
background: $s2bs5-clear-hover-bg;
}

// Hide children
>span {
display: none;
}
}
}
}

.select2-container--bootstrap-5 {
+ .select2-container--bootstrap-5 {
z-index: $s2bs5-zindex;
}

// Dropdown
.select2-dropdown {
z-index: $s2bs5-zindex;
overflow: hidden;
border-color: $s2bs5-focus-border-color;
@include border-radius($s2bs5-border-radius);

// Open Below
&.select2-dropdown--below {
border-top: 0 solid transparent;
@include border-top-radius(0);
}

// Open Above
&.select2-dropdown--above {
border-bottom: 0 solid transparent;
@include border-bottom-radius(0);
}

// Search box
.select2-search {
padding: $s2bs5-padding-y $s2bs5-padding-x;

// Search field
.select2-search__field {
display: block;
width: 100%;
padding: $s2bs5-padding-y $s2bs5-padding-x;
font-family: $s2bs5-font-family;
@include font-size($s2bs5-font-size);
font-weight: $s2bs5-font-weight;
line-height: $s2bs5-line-height;
color: $s2bs5-color;
background-color: $s2bs5-bg;
background-clip: padding-box;
border: $s2bs5-border-width solid $s2bs5-border-color;
appearance: none;

@include border-radius($s2bs5-border-radius, 0);
@include box-shadow($s2bs5-box-shadow);
@include transition($s2bs5-transition);

&:focus {
border-color: $s2bs5-focus-border-color;
box-shadow: $s2bs5-focus-box-shadow;
}
}
}

// Items
.select2-results__options {
&:not(.select2-results__options--nested) {
max-height: $s2bs5-options-max-height;
overflow-y: auto;
}

// Item
.select2-results__option {
padding: $s2bs5-item-padding-y $s2bs5-item-padding-x;
@include font-size($s2bs5-font-size);
font-weight: $s2bs5-font-weight;
line-height: $s2bs5-line-height;

// No results message
&.select2-results__message {
color: $s2bs5-placeholder-color;
}

// Highlighted Item
&.select2-results__option--highlighted {
color: color-contrast($s2bs5-item-hover-bg);
background-color: $s2bs5-item-hover-bg;
}

// Selected Item
&.select2-results__option--selected,
&[aria-selected="true"]:not(.select2-results__option--highlighted) {
color: color-contrast($s2bs5-item-active-bg);
background-color: $s2bs5-item-active-bg;
}

// Disabled Item
&.select2-results__option--disabled,
&[aria-disabled="true"] {
color: $s2bs5-disabled-color;
}

// Optgroup
&[role="group"] {
padding: 0;

// Group Header
.select2-results__group {
padding: $s2bs5-group-padding-y $s2bs5-group-padding-x;
font-weight: $s2bs5-group-font-weight;
line-height: $s2bs5-line-height;
color: $s2bs5-group-color;
}

// Group Item
.select2-results__options--nested {
.select2-results__option {
padding: $s2bs5-item-padding-y $s2bs5-item-padding-x;
}
}
}
}
}
}
}

.select2-container--bootstrap-5 {
.select2-selection--single {
padding: $s2bs5-padding-y $s2bs5-indicator-padding $s2bs5-padding-y $s2bs5-padding-x;
background-image: escape-svg($s2bs5-indicator);
background-repeat: no-repeat;
background-position: $s2bs5-bg-position;
background-size: $s2bs5-bg-size;

// Rendered view
.select2-selection__rendered {
padding: 0;
font-weight: $s2bs5-font-weight;
line-height: $s2bs5-line-height;
color: $s2bs5-color;

// Placeholder
.select2-selection__placeholder {
font-weight: $s2bs5-font-weight;
line-height: $s2bs5-line-height;
color: $s2bs5-placeholder-color;
}

// Disable arrow
.select2-selection__arrow {
display: none;
}
}
}
}

.select2-container--bootstrap-5 {
.select2-selection--multiple {
// List items
.select2-selection__rendered {
display: flex;
flex-direction: row;
flex-wrap: wrap;
padding-left: 0;
margin: 0;
list-style: none;

// Items
.select2-selection__choice {
display: flex;
flex-direction: row;
align-items: center;
padding: $s2bs5-multi-item-padding-y $s2bs5-multi-item-padding-x;
margin-right: .375rem;
margin-bottom: .375rem;
@include font-size($s2bs5-font-size);
color: $s2bs5-color;
cursor: auto;
border: $s2bs5-border-width solid $s2bs5-border-color;
@include border-radius($s2bs5-border-radius);

// Removal button
.select2-selection__choice__remove {
width: $s2bs5-clear-width;
height: $s2bs5-clear-height;
padding: $s2bs5-clear-padding-y $s2bs5-clear-padding-x;
margin-right: .25rem;
overflow: hidden;
text-indent: 100%;
white-space: nowrap;
background: $s2bs5-clear-bg;
border: 0;

&:hover {
background: $s2bs5-clear-hover-bg;
}

// Remove children
>span {
display: none;
}
}
}
}

// Input area
.select2-search {
display: block;
width: 100%;
height: $s2bs5-height-inner;

// Input field
.select2-search__field {
width: 100%;
height: $s2bs5-height-inner;
margin-top: 0;
margin-left: 0;
font-family: $s2bs5-font-family;
line-height: $s2bs5-line-height;
background-color: transparent;
}
}

// Clear button override
.select2-selection__clear {
right: $s2bs5-padding-x;
}
}
}

.select2-container--bootstrap-5 {
&.select2-container--disabled,
&.select2-container--disabled.select2-container--focus {
// Base styling
.select2-selection {
color: $s2bs5-disabled-color;
cursor: not-allowed;
background-color: $s2bs5-disabled-bg;
border-color: $s2bs5-disabled-border-color;
box-shadow: none;
}

// Multiple
.select2-selection--multiple {
.select2-selection__clear {
display: none;
}

// Items
.select2-selection__choice {
cursor: not-allowed;
.select2-selection__choice__remove {
display: none;
}
}

// Remove search field if no items selected
.select2-selection__rendered:not(:empty) {
padding-bottom: 0;

+ .select2-search {
display: none;
}
}
}
}
}

// Duplicated & altered from Bootstrap 5
.input-group {
&:not(.has-validation) {
> :not(:last-child):not(.dropdown-toggle):not(.dropdown-menu) {
&.select2-container--bootstrap-5 {
.select2-selection {
@include border-end-radius(0);
}
}
}
}

&.has-validation {
> :nth-last-child(n + 3):not(.dropdown-toggle):not(.dropdown-menu) {
&.select2-container--bootstrap-5 {
.select2-selection {
@include border-end-radius(0);
}
}
}
}

> .input-group-text ~ .select2-container--bootstrap-5,
> .btn ~ .select2-container--bootstrap-5,
> .dropdown-menu ~ .select2-container--bootstrap-5 {
.select2-selection {
@include border-start-radius(0);
}
}

// Ensure container takes up remaining room
.select2-container--bootstrap-5 {
flex-grow: 1;
.select2-selection {
height: 100%;
}
}
}

.select2-container--bootstrap-5 {
// Valid
.is-valid + &,
.was-validated select:valid + & {
// Set border color
.select2-selection {
border-color: $s2bs5-valid-border-color;
}

&.select2-container--focus,
&.select2-container--open {
// Set border color & box shadow
.select2-selection {
border-color: $s2bs5-valid-border-color;
box-shadow: $s2bs5-valid-focus-box-shadow;
}
}

&.select2-container--open {
// Hide bottom border when open and below
&.select2-container--below .select2-selection {
border-bottom: 0 solid transparent;
}

// Hide top border when open and above
&.select2-container--above .select2-selection {
border-top: 0 solid transparent;
@include border-top-radius(0);
}
}
}

// Invalid
.is-invalid + &,
.was-validated select:invalid + & {
// Set border color
.select2-selection {
border-color: $s2bs5-invalid-border-color;
}

&.select2-container--focus,
&.select2-container--open {
// Set border color & box shadow
.select2-selection {
border-color: $s2bs5-invalid-border-color;
box-shadow: $s2bs5-invalid-focus-box-shadow;
}
}

&.select2-container--open {
// Hide bottom border when open and below
&.select2-container--below .select2-selection {
border-bottom: 0 solid transparent;
}

// Hide top border when open and above
&.select2-container--above .select2-selection {
border-top: 0 solid transparent;
@include border-top-radius(0);
}
}
}
}

@mixin s2bs5-sizing($size-list: $s2bs5-small, $selector: "") {
// Layout
#{$selector}.select2-selection {
min-height: map-get($size-list, height);
padding: map-get($size-list, padding-y) map-get($size-list, padding-x);
@include font-size(map-get($size-list, font-size));
@include border-radius(map-get($size-list, border-radius), 0);
}

#{$selector}.select2-selection--single,
#{$selector}.select2-selection--multiple {
.select2-selection__clear {
width: map-get($size-list, clear-width);
height: map-get($size-list, clear-height);
padding: map-get($size-list, clear-padding-y) map-get($size-list, clear-padding-x);
background: map-get($size-list, clear-bg);

&:hover {
background: map-get($size-list, clear-hover-bg);
}
}

.select2-search {
&,
.select2-search__field {
height: map-get($size-list, height-inner);
}
}
}

// Dropdown
#{$selector}.select2-dropdown {
@include border-radius(map-get($size-list, border-radius));

// Open Below
&.select2-dropdown--below {
@include border-top-radius(0);
}

// Open Above
&.select2-dropdown--above {
@include border-bottom-radius(0);
}

.select2-search {
.select2-search__field {
padding: map-get($size-list, padding-y) map-get($size-list, padding-x);
@include font-size(map-get($size-list, font-size));
}
}

.select2-results__options {
.select2-results__option {
padding: map-get($size-list, item-padding-y) map-get($size-list, item-padding-x);
@include font-size(map-get($size-list, font-size));

&[role="group"] {
.select2-results__group {
padding: map-get($size-list, group-padding-y) map-get($size-list, group-padding-x);
}

.select2-results__options--nested {
.select2-results__option {
padding: map-get($size-list, item-padding-y) map-get($size-list, item-padding-x);
}
}
}
}
}
}

// Single
#{$selector}.select2-selection--single {
padding: map-get($size-list, padding-y) $s2bs5-indicator-padding map-get($size-list, padding-y) map-get($size-list, padding-x);
}

// Multiple
#{$selector}.select2-selection--multiple {
.select2-selection__rendered {
.select2-selection__choice {
padding: $s2bs5-multi-item-padding-y $s2bs5-multi-item-padding-x;
@include font-size(map-get($size-list, font-size));

.select2-selection__choice__remove {
width: map-get($size-list, clear-width);
height: map-get($size-list, clear-height);
padding: map-get($size-list, clear-padding-y) map-get($size-list, clear-padding-x);
background: map-get($size-list, clear-bg);

&:hover {
background: map-get($size-list, clear-hover-bg);
}
}
}
}

.select2-selection__clear {
right: map-get($size-list, padding-x);
}
}
}

// Using options
.select2-container--bootstrap-5 {
// Small
@include s2bs5-sizing($s2bs5-small, ".select2--small");

// Large
@include s2bs5-sizing($s2bs5-large, ".select2--large");
}

// Using bootstrap classes
// Small
.form-select-sm {
~ .select2-container--bootstrap-5 {
@include s2bs5-sizing($s2bs5-small);
}
}

// Large
.form-select-lg {
~ .select2-container--bootstrap-5 {
@include s2bs5-sizing($s2bs5-large);
}
}

.comment-box {
padding: 0.5em 0;
input {
padding: 0px;
}
textarea {
margin-bottom:5px;
}
}
.w-comment-author {
font-style: italic;
margin-left: 10px;
}

.TYPE_PLUS_RIGHT-user-Xfollow .tab-pane {
margin-top: 15px;
}

.follow-updater {
display: none;
}
.d0-nav-container {
flex-wrap: inherit;
display: flex;
width: 100%;
justify-content: space-between;
}


/*----------- Sidebar -------------*/

.row.row-offcanvas {
> aside, article {
margin: 0;
}
}

/* collapsed sidebar styles */
@media screen and (max-width: 576px) {
.row-offcanvas {
position: relative;
-webkit-transition: all 0.25s ease-out;
-moz-transition: all 0.25s ease-out;
transition: all 0.25s ease-out;
}

.sidebar-offcanvas-right {
right: -41.6%;
}

.sidebar-offcanvas-left {
left: -41.6%;
}
.row-offcanvas.right-active {
right: 41.6%;
}
.row-offcanvas.left-active {
left: 41.6%;
}
.sidebar-offcanvas {
position: absolute !important;
top: 0 !important;
width: 41.6% !important;
}
}

.offcanvas-toggle {
font-size: 10px !important;
padding: 5px !important;
margin-bottom: 15px !important;
}

.act-summary {
min-width: 27px;
}


footer .separator {
padding-left: 2px;
padding-right: 2px;
}

body.right-sidebar, body.left-sidebar, body.two-sidebar {
article, #primary {
margin: 0 1% 3em 1%;
float: left;
width: 67%;
}

aside, #secondary {
margin: 0 1% 3em 1%;
float: right;
width: 28%;
}

footer {
clear:both;
text-align: center;
padding: 1em;
}
}

@media print {
article, #primary {
width: 100%;
float: none;
margin: 0;
}

aside, #secondary, footer {
display: none;
}
}

.RIGHT-Xenabled_role.edit_inline-view {
.pointer-checkbox-list {
#pointer-checkbox-anyone_signed_in {
display: none;
}
}
.card-editor {
padding-bottom: 0;
}
}
.background-modal {
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: 900;
outline: 0;
overflow-x: hidden;
overflow-y: auto;
}

.modal-menu .close{
font-size: 16px;
// margin-left: 10px;
}

.modal-dialog.modal-full {
max-width: 99%;
margin: 1%;
}


.modal-backdrop.in {
z-index: auto;
}

.modal-body > div {
display: inline-block;
width: 100%;

.menu-slot {
z-index: 1;
}
}


/*------ bootstrap 5 --------*/

.modal-header .btn-close {
background: none;
background-image: none;
}

/*-------------------------- */
/*- Overlay - */
/*-------------------------- */

.overlay-container {
position: relative;
height: 100%;
overflow: auto;
.card-slot.overlay_rule-view {
border-left: 5px solid $primary;
.d0-card-body {
padding: 0 1em;
}
}

.d0-card-overlay
> .d0-card-frame
> .d0-card-content {
overflow-y: scroll;
padding: 1rem 1.5rem; // px-4
}
}


.d0-card-overlay {
position: absolute;
width: 100%;
height: 100%;
z-index: 10;

> .d0-card-frame {
height: 100%;
width: 100%;

> .d0-card-header {
border-bottom: 1px solid $border-color;
padding: 0.25rem 0.25rem 0.25rem 1.25rem;
.title {
font-weight: bold;
text-transform: capitalize;
}
.card-title {
margin-bottom: 0;
}
}
}
}

.overlay-menu {
display: inline-flex;
vertical-align: middle;
}

// FIXME: this directly overrides above rule.

.d0-card-overlay > .d0-card-frame > .d0-card-header {
padding-left: -15px!important;
padding-right: -15px!important;
}

._nest-editor {
.card-body .form {
padding: 1.5rem 2rem 1rem 2rem;
.tab-content {
padding-top: 2rem;
}
}
.preview {
padding: 0.5rem 1rem;

}
.nest-options .nav {
justify-content: flex-end;
}

.options-container {
word-break: break-all;
._configure-items-button {
white-space: normal;
word-break: normal;
}
}
}

li.select2-results__option svg {
max-height: 15px;
min-height: 15px;
max-width: 15px;
min-width: 15px;
margin: 0;
}

.input-group.show-prefix {
border-left: 1px solid $input-border-color;
> input {
border-left: none;
}
._field-indicator {
border-left: none;
}
}

.input-group.hide-prefix {
> ._field-indicator {
display: none;
}
}

.input-group-text._field-indicator {
font-size: 1.3rem;
line-height: 1;
font-weight: bold;
border-right: none;
background: $input-bg;
}

// Minty 5.1.3
// Bootswatch


// Variables

$web-font-path: "https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;700&display=swap" !default;
@if $web-font-path {
@import url($web-font-path);
}

// Navbar

.navbar {
font-family: $headings-font-family;
}

.bg-dark {
background-color: $secondary !important;
}

.border-dark {
border-color: $secondary !important;
}

// Buttons

.btn {
font-family: $headings-font-family;

&,
&:hover {
color: $white;
}

&-light,
&-light:hover {
color: $gray-700;
}

&-link,
&-link:hover {
color: $primary;
}

&-link.disabled:hover {
color: $gray-600;
}

&-outline-primary {
color: $primary;
}

&-outline-secondary {
color: $secondary;
}

&-outline-success {
color: $success;
}

&-outline-info {
color: $info;
}

&-outline-warning {
color: $warning;
}

&-outline-danger {
color: $danger;
}

&-outline-dark {
color: $dark;
}

&-outline-light {
color: $light;
}
}

// Forms

legend {
font-family: $headings-font-family;
}

// Navs

.dropdown-menu {
font-family: $font-family-sans-serif;
}

.breadcrumb {
a {
color: $navbar-dark-color;
}

a:hover {
color: $white;
text-decoration: none;
}
}

// Indicators

.alert {
a,
.alert-link {
color: $white;
}

&-light {

&,
a:not(.btn),
.alert-link {
color: $body-color;
}
}
}

.badge {
color: $white;

&.bg-light {
color: $gray-700;
}
}

// Containers

.card,
.list-group-item {
h1,
h2,
h3,
h4,
h5,
h6 {
color: inherit;
}
}

Wheeled by Wagn v. 0.15.6