// 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

@white:    #fff;
@gray-100: #f8f9fa;
@gray-200: #e9ecef;
@gray-300: #dee2e6;
@gray-400: #ced4da;
@gray-500: #adb5bd;
@gray-600: #6c757d;
@gray-700: #495057;
@gray-800: #343a40;
@gray-900: #212529;
@black:    #000;

@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;
};

@blue:    #007bff;
@indigo:  #6610f2;
@purple:  #6f42c1;
@pink:    #e83e8c;
@red:     #dc3545;
@orange:  #fd7e14;
@yellow:  #ffc107;
@green:   #28a745;
@teal:    #20c997;
@cyan:    #17a2b8;

@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;
};

@primary:       @blue;
@secondary:     @gray-600;
@success:       @green;
@info:          @cyan;
@warning:       @yellow;
@danger:        @red;
@light:         @gray-100;
@dark:          @gray-800;

@theme-colors: {
	primary:     @primary;
	secondary:   @secondary;
	success:     @success;
	info:        @info;
	warning:     @warning;
	danger:      @danger;
	light:       @light;
	dark:        @dark;
};

// Set a specific jump point for requesting color jumps
@theme-color-interval:      8%;

// The yiq lightness value that determines when the lightness of color changes from "dark" to "light". Acceptable values are between 0 and 255.
@yiq-contrasted-threshold:  150;

// Customize the light and dark text colors for use in our YIQ color contrast function.
@yiq-text-dark:             @gray-900;
@yiq-text-light:            @white;

// Characters which are escaped by the escape-svg function
// LESS PORT: Because of the unconventional use of special characters here, the value of this
// variable is considered to be a whole string -- not a ruleset!
@escaped-characters: {
	<: %3c;
	>: %3e;
	#: %23;
	(: %28;
	): %29;
};


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

// LESS PORT: Note that `false` has no actual meaning in Less, but in this case it has the desired
// effect (of disabling a feature) only because it’s not `true`, which is what Less cares about.
@enable-caret:                                true;
@enable-rounded:                              true;
@enable-shadows:                              false;
@enable-gradients:                            false;
@enable-transitions:                          true;
@enable-prefers-reduced-motion-media-query:   true;
@enable-hover-media-query:                    false; // Deprecated, no longer affects any compiled CSS
@enable-grid-classes:                         true;
@enable-pointer-cursor-for-buttons:           true;
@enable-print-styles:                         true;
@enable-responsive-font-sizes:                false;
@enable-validation-icons:                     true;
@enable-deprecation-messages:                 true;


// 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.

@spacer: 1rem;
@spacers: {
	0: 0;
	1: (@spacer * 0.25);
	2: (@spacer * 0.5);
	3: @spacer;
	4: (@spacer * 1.5);
	5: (@spacer * 3);
};

// This variable affects the `.h-*` and `.w-*` classes.
@sizes: {
	25:   25%;
	50:   50%;
	75:   75%;
	100:  100%;
	auto: auto;
};


// Body
//
// Settings for the `<body>` element.

@body-bg:                   @white;
@body-color:                @gray-900;


// Links
//
// Style anchor elements.

@link-color:                              theme-color(primary);
@link-decoration:                         none;
@link-hover-color:                        darken(@link-color, 15%);
@link-hover-decoration:                   underline;
// Darken percentage for links with `.text-*` class (e.g. `.text-success`)
@emphasized-link-hover-darken-percentage: 15%;

// Paragraphs
//
// Style p element.

@paragraph-margin-bottom:   1rem;


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

@grid-breakpoints: {
	xs: 0;
	sm: 576px;
	md: 768px;
	lg: 992px;
	xl: 1200px;
};

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


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

@container-max-widths: {
	sm: 540px;
	md: 720px;
	lg: 960px;
	xl: 1140px;
};

//@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;
@grid-gutter-width:           30px;
@grid-row-columns:            6;


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

@line-height-lg:              1.5;
@line-height-sm:              1.5;

@border-width:                1px;
@border-color:                @gray-300;

@border-radius:               0.25rem;
@border-radius-lg:            0.3rem;
@border-radius-sm:            0.2rem;

@rounded-pill:                50rem;

@box-shadow-sm:               0 0.125rem 0.25rem fade(@black, 7.5%);
@box-shadow:                  0 0.5rem 1rem fade(@black, 15%);
@box-shadow-lg:               0 1rem 3rem fade(@black, 17.5%);

@component-active-color:      @white;
@component-active-bg:         theme-color(primary);

@caret-width:                 0.3em;
@caret-vertical-align:        (@caret-width * 0.85);
@caret-spacing:               (@caret-width * 0.85);

@transition-base:             all 0.2s ease-in-out;
@transition-fade:             opacity 0.15s linear;
@transition-collapse:         height 0.35s ease;

// LESS PORT: No `join()` to extend the list here. The variable can just be overridden if different/
// additional values are desired.
@embed-responsive-aspect-ratios:
	21 9,
	16 9,
	4 3,
	1 1;

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

@font-family-sans-serif:      -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
@font-family-monospace:       SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
@font-family-base:            @font-family-sans-serif;

@font-size-base:              1rem; // Assumes the browser default, typically `16px`
@font-size-lg:                (@font-size-base * 1.25);
@font-size-sm:                (@font-size-base * 0.875);

@font-weight-lighter:         lighter;
@font-weight-light:           300;
@font-weight-normal:          400;
@font-weight-bold:            700;
@font-weight-bolder:          bolder;

@font-weight-base:            @font-weight-normal;
@line-height-base:            1.5;

@h1-font-size:                (@font-size-base * 2.5);
@h2-font-size:                (@font-size-base * 2);
@h3-font-size:                (@font-size-base * 1.75);
@h4-font-size:                (@font-size-base * 1.5);
@h5-font-size:                (@font-size-base * 1.25);
@h6-font-size:                @font-size-base;

@headings-margin-bottom:      (@spacer / 2);
@headings-font-family:        ~""; // LESS PORT: Sass version uses `null`
@headings-font-weight:        500;
@headings-line-height:        1.2;
@headings-color:              ~""; // LESS PORT: Sass version uses `null`

@display1-size:               6rem;
@display2-size:               5.5rem;
@display3-size:               4.5rem;
@display4-size:               3.5rem;

@display1-weight:             300;
@display2-weight:             300;
@display3-weight:             300;
@display4-weight:             300;
@display-line-height:         @headings-line-height;

@lead-font-size:              (@font-size-base * 1.25);
@lead-font-weight:            300;

@small-font-size:             80%;

@text-muted:                  @gray-600;

@blockquote-small-color:      @gray-600;
@blockquote-small-font-size:  @small-font-size;
@blockquote-font-size:        (@font-size-base * 1.25);

@hr-border-color:             fade(@black, 10%);
@hr-border-width:             @border-width;

@mark-padding:                0.2em;

@dt-font-weight:              @font-weight-bold;

@kbd-box-shadow:              inset 0 -0.1rem 0 fade(@black, 25%);
@nested-kbd-font-weight:      @font-weight-bold;

@list-inline-padding:         0.5rem;

@mark-bg:                     #fcf8e3;

@hr-margin-y:                 @spacer;


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

@table-cell-padding:          0.75rem;
@table-cell-padding-sm:       0.3rem;

@table-color:                 @body-color;
@table-bg:                    ~""; // LESS PORT: Sass version uses `null`
@table-accent-bg:             fade(@black, 5%);
@table-hover-color:           @table-color;
@table-hover-bg:              fade(@black, 7.5%);
@table-active-bg:             @table-hover-bg;

@table-border-width:          @border-width;
@table-border-color:          @border-color;

@table-head-bg:               @gray-200;
@table-head-color:            @gray-700;
@table-th-font-weight:        ~""; // LESS PORT: Sass version uses `null`

@table-dark-color:            @white;
@table-dark-bg:               @gray-800;
@table-dark-accent-bg:        fade(@white, 5%);
@table-dark-hover-color:      @table-dark-color;
@table-dark-hover-bg:         fade(@white, 7.5%);
@table-dark-border-color:     lighten(@table-dark-bg, 7.5%);

@table-striped-order:         odd;

@table-caption-color:         @text-muted;

@table-bg-level:              -9;
@table-border-level:          -6;


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

@input-btn-padding-y:         0.375rem;
@input-btn-padding-x:         0.75rem;
@input-btn-font-family:       ~""; // LESS PORT: Sass version uses `null`
@input-btn-font-size:         @font-size-base;
@input-btn-line-height:       @line-height-base;

@input-btn-focus-width:       0.2rem;
@input-btn-focus-color:       fade(@component-active-bg, 25%);
@input-btn-focus-box-shadow:  0 0 0 @input-btn-focus-width @input-btn-focus-color;

@input-btn-padding-y-sm:      0.25rem;
@input-btn-padding-x-sm:      0.5rem;
@input-btn-font-size-sm:      @font-size-sm;
@input-btn-line-height-sm:    @line-height-sm;

@input-btn-padding-y-lg:      0.5rem;
@input-btn-padding-x-lg:      1rem;
@input-btn-font-size-lg:      @font-size-lg;
@input-btn-line-height-lg:    @line-height-lg;

@input-btn-border-width:      @border-width;


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

@btn-padding-y:               @input-btn-padding-y;
@btn-padding-x:               @input-btn-padding-x;
@btn-font-family:             @input-btn-font-family;
@btn-font-size:               @input-btn-font-size;
@btn-line-height:             @input-btn-line-height;
@btn-white-space:             ~""; // Set to `nowrap` to prevent text wrapping // LESS PORT: Sass version uses `null`

@btn-padding-y-sm:            @input-btn-padding-y-sm;
@btn-padding-x-sm:            @input-btn-padding-x-sm;
@btn-font-size-sm:            @input-btn-font-size-sm;
@btn-line-height-sm:          @input-btn-line-height-sm;

@btn-padding-y-lg:            @input-btn-padding-y-lg;
@btn-padding-x-lg:            @input-btn-padding-x-lg;
@btn-font-size-lg:            @input-btn-font-size-lg;
@btn-line-height-lg:          @input-btn-line-height-lg;

@btn-border-width:            @input-btn-border-width;

@btn-font-weight:             @font-weight-normal;
@btn-box-shadow:              inset 0 1px 0 fade(@white, 15%), 0 1px 1px fade(@black, 7.5%);
@btn-focus-width:             @input-btn-focus-width;
@btn-focus-box-shadow:        @input-btn-focus-box-shadow;
@btn-disabled-opacity:        0.65;
@btn-active-box-shadow:       inset 0 3px 5px fade(@black, 12.5%);

@btn-link-disabled-color:     @gray-600;

@btn-block-spacing-y:         0.5rem;

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

@btn-transition:              color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;


// Forms

@label-margin-bottom:                   0.5rem;

@input-padding-y:                       @input-btn-padding-y;
@input-padding-x:                       @input-btn-padding-x;
@input-font-family:                     @input-btn-font-family;
@input-font-size:                       @input-btn-font-size;
@input-font-weight:                     @font-weight-base;
@input-line-height:                     @input-btn-line-height;

@input-padding-y-sm:                    @input-btn-padding-y-sm;
@input-padding-x-sm:                    @input-btn-padding-x-sm;
@input-font-size-sm:                    @input-btn-font-size-sm;
@input-line-height-sm:                  @input-btn-line-height-sm;

@input-padding-y-lg:                    @input-btn-padding-y-lg;
@input-padding-x-lg:                    @input-btn-padding-x-lg;
@input-font-size-lg:                    @input-btn-font-size-lg;
@input-line-height-lg:                  @input-btn-line-height-lg;

@input-bg:                              @white;
@input-disabled-bg:                     @gray-200;

@input-color:                           @gray-700;
@input-border-color:                    @gray-400;
@input-border-width:                    @input-btn-border-width;
@input-box-shadow:                      inset 0 1px 1px fade(@black, 7.5%);

@input-border-radius:                   @border-radius;
@input-border-radius-lg:                @border-radius-lg;
@input-border-radius-sm:                @border-radius-sm;

@input-focus-bg:                        @input-bg;
@input-focus-border-color:              lighten(@component-active-bg, 25%);
@input-focus-color:                     @input-color;
@input-focus-width:                     @input-btn-focus-width;
@input-focus-box-shadow:                @input-btn-focus-box-shadow;

@input-placeholder-color:               @gray-600;
@input-plaintext-color:                 @body-color;

@input-height-border:                   (@input-border-width * 2);

@input-height-inner:                    add((@input-line-height * 1em), (@input-padding-y * 2));
@input-height-inner-half:               add((@input-line-height * 0.5em), (@input-padding-y));
@input-height-inner-quarter:            add((@input-line-height * 0.25em), (@input-padding-y / 2));

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

@input-transition:                      border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;

@form-text-margin-top:                  0.25rem;

@form-check-input-gutter:               1.25rem;
@form-check-input-margin-y:             0.3rem;
@form-check-input-margin-x:             0.25rem;

@form-check-inline-margin-x:            0.75rem;
@form-check-inline-input-margin-x:      0.3125rem;

@form-grid-gutter-width:                10px;
@form-group-margin-bottom:              1rem;

@input-group-addon-color:               @input-color;
@input-group-addon-bg:                  @gray-200;
@input-group-addon-border-color:        @input-border-color;

@custom-forms-transition:               background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;

@custom-control-gutter:                 0.5rem;
@custom-control-spacer-x:               1rem;
@custom-control-cursor:                 ~""; // LESS PORT: Sass version uses `null`

@custom-control-indicator-size:         1rem;
@custom-control-indicator-bg:           @input-bg;

@custom-control-indicator-bg-size:      50% 50%;
@custom-control-indicator-box-shadow:   @input-box-shadow;
@custom-control-indicator-border-color: @gray-500;
@custom-control-indicator-border-width: @input-border-width;

@custom-control-label-color:            ~""; // LESS PORT: Sass version uses `null`

@custom-control-indicator-disabled-bg:          @input-disabled-bg;
@custom-control-label-disabled-color:           @gray-600;

@custom-control-indicator-checked-color:        @component-active-color;
@custom-control-indicator-checked-bg:           @component-active-bg;
@custom-control-indicator-checked-disabled-bg:  fade(theme-color(primary), 50%);
@custom-control-indicator-checked-box-shadow:   ~""; // LESS PORT: Sass version uses `null`
@custom-control-indicator-checked-border-color: @custom-control-indicator-checked-bg;

@custom-control-indicator-focus-box-shadow:     @input-focus-box-shadow;
@custom-control-indicator-focus-border-color:   @input-focus-border-color;

@custom-control-indicator-active-color:         @component-active-color;
@custom-control-indicator-active-bg:            lighten(@component-active-bg, 35%);
@custom-control-indicator-active-box-shadow:    ~""; // LESS PORT: Sass version uses `null`
@custom-control-indicator-active-border-color:  @custom-control-indicator-active-bg;

@custom-checkbox-indicator-border-radius:       @border-radius;
@custom-checkbox-indicator-icon-checked:        url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='@{custom-control-indicator-checked-color}' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/></svg>");

@custom-checkbox-indicator-indeterminate-bg:           @component-active-bg;
@custom-checkbox-indicator-indeterminate-color:        @custom-control-indicator-checked-color;
@custom-checkbox-indicator-icon-indeterminate:         url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'><path stroke='@{custom-checkbox-indicator-indeterminate-color}' d='M0 2h4'/></svg>");
@custom-checkbox-indicator-indeterminate-box-shadow:   ~""; // LESS PORT: Sass version uses `null`
@custom-checkbox-indicator-indeterminate-border-color: @custom-checkbox-indicator-indeterminate-bg;

@custom-radio-indicator-border-radius:          50%;
@custom-radio-indicator-icon-checked:           url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'><circle r='3' fill='@{custom-control-indicator-checked-color}'/></svg>");

@custom-switch-width:                           (@custom-control-indicator-size * 1.75);
@custom-switch-indicator-border-radius:         (@custom-control-indicator-size / 2);
@custom-switch-indicator-size:                  subtract(@custom-control-indicator-size, (@custom-control-indicator-border-width * 4));

@custom-select-padding-y:           @input-padding-y;
@custom-select-padding-x:           @input-padding-x;
@custom-select-font-family:         @input-font-family;
@custom-select-font-size:           @input-font-size;
@custom-select-height:              @input-height;
@custom-select-indicator-padding:   1rem; // Extra padding to account for the presence of the background-image based indicator
@custom-select-font-weight:         @input-font-weight;
@custom-select-line-height:         @input-line-height;
@custom-select-color:               @input-color;
@custom-select-disabled-color:      @gray-600;
@custom-select-bg:                  @input-bg;
@custom-select-disabled-bg:         @gray-200;
@custom-select-bg-size:             8px 10px; // In pixels because image dimensions
@custom-select-indicator-color:     @gray-800;
@custom-select-indicator:           url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'><path fill='@{custom-select-indicator-color}' d='M2 0L0 2h4zm0 5L0 3h4z'/></svg>");
@custom-select-background:          escape-svg(@custom-select-indicator) no-repeat right @custom-select-padding-x ~"center/@{custom-select-bg-size}"; // Used so we can have multiple background elements (e.g., arrow and feedback icon)

@custom-select-feedback-icon-padding-right: add((1em * 0.75), ((2 * @custom-select-padding-y * 0.75) + @custom-select-padding-x + @custom-select-indicator-padding));
@custom-select-feedback-icon-position:      center right (@custom-select-padding-x + @custom-select-indicator-padding);
@custom-select-feedback-icon-size:          @input-height-inner-half @input-height-inner-half;

@custom-select-border-width:        @input-border-width;
@custom-select-border-color:        @input-border-color;
@custom-select-border-radius:       @border-radius;
@custom-select-box-shadow:          inset 0 1px 2px fade(@black, 7.5%);

@custom-select-focus-border-color:  @input-focus-border-color;
@custom-select-focus-width:         @input-focus-width;
@custom-select-focus-box-shadow:    0 0 0 @custom-select-focus-width @input-btn-focus-color;

@custom-select-padding-y-sm:        @input-padding-y-sm;
@custom-select-padding-x-sm:        @input-padding-x-sm;
@custom-select-font-size-sm:        @input-font-size-sm;
@custom-select-height-sm:           @input-height-sm;

@custom-select-padding-y-lg:        @input-padding-y-lg;
@custom-select-padding-x-lg:        @input-padding-x-lg;
@custom-select-font-size-lg:        @input-font-size-lg;
@custom-select-height-lg:           @input-height-lg;

@custom-range-track-width:          100%;
@custom-range-track-height:         0.5rem;
@custom-range-track-cursor:         pointer;
@custom-range-track-bg:             @gray-300;
@custom-range-track-border-radius:  1rem;
@custom-range-track-box-shadow:     inset 0 0.25rem 0.25rem fade(@black, 10%);

@custom-range-thumb-width:                   1rem;
@custom-range-thumb-height:                  @custom-range-thumb-width;
@custom-range-thumb-bg:                      @component-active-bg;
@custom-range-thumb-border:                  0;
@custom-range-thumb-border-radius:           1rem;
@custom-range-thumb-box-shadow:              0 0.1rem 0.25rem fade(@black, 10%);
@custom-range-thumb-focus-box-shadow:        0 0 0 1px @body-bg, @input-focus-box-shadow;
@custom-range-thumb-focus-box-shadow-width:  @input-focus-width; // For focus box shadow issue in IE/Edge
@custom-range-thumb-active-bg:               lighten(@component-active-bg, 35%);
@custom-range-thumb-disabled-bg:             @gray-500;

@custom-file-height:                @input-height;
@custom-file-height-inner:          @input-height-inner;
@custom-file-focus-border-color:    @input-focus-border-color;
@custom-file-focus-box-shadow:      @input-focus-box-shadow;
@custom-file-disabled-bg:           @input-disabled-bg;

@custom-file-padding-y:             @input-padding-y;
@custom-file-padding-x:             @input-padding-x;
@custom-file-line-height:           @input-line-height;
@custom-file-font-family:           @input-font-family;
@custom-file-font-weight:           @input-font-weight;
@custom-file-color:                 @input-color;
@custom-file-bg:                    @input-bg;
@custom-file-border-width:          @input-border-width;
@custom-file-border-color:          @input-border-color;
@custom-file-border-radius:         @input-border-radius;
@custom-file-box-shadow:            @input-box-shadow;
@custom-file-button-color:          @custom-file-color;
@custom-file-button-bg:             @input-group-addon-bg;
@custom-file-text: {
	en: "Browse";
};


// Form validation

@form-feedback-margin-top:          @form-text-margin-top;
@form-feedback-font-size:           @small-font-size;
@form-feedback-valid-color:         theme-color(success);
@form-feedback-invalid-color:       theme-color(danger);

@form-feedback-icon-valid-color:    @form-feedback-valid-color;
@form-feedback-icon-valid:          url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='@{form-feedback-icon-valid-color}' d='M2.3 6.73L.6 4.53c-0.4-1.04.46-1.4 1.1-0.8l1.1 1.4 3.4-3.8c.6-0.63 1.6-0.27 1.2.7l-4 4.6c-0.43.5-0.8.4-1.1.1z'/></svg>");
@form-feedback-icon-invalid-color:  @form-feedback-invalid-color;
@form-feedback-icon-invalid:        url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='@{form-feedback-icon-invalid-color}' viewBox='0 0 12 12'><circle cx='6' cy='6' r='4.5'/><path stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/><circle cx='6' cy='8.2' r='0.6' fill='@{form-feedback-icon-invalid-color}' stroke='none'/></svg>");

// LESS PORT: No `map-merge()` to extend the ruleset here. The variable can just be overridden if
// different/additional values are desired.
@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;
	};
};

// 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.

@zindex-dropdown:                   1000;
@zindex-sticky:                     1020;
@zindex-fixed:                      1030;
@zindex-modal-backdrop:             1040;
@zindex-modal:                      1050;
@zindex-popover:                    1060;
@zindex-tooltip:                    1070;


// Navs

@nav-link-padding-y:                0.5rem;
@nav-link-padding-x:                1rem;
@nav-link-disabled-color:           @gray-600;

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

@nav-pills-border-radius:           @border-radius;
@nav-pills-link-active-color:       @component-active-color;
@nav-pills-link-active-bg:          @component-active-bg;

@nav-divider-color:                 @gray-200;
@nav-divider-margin-y:              (@spacer / 2);


// Navbar

@navbar-padding-y:                  (@spacer / 2);
@navbar-padding-x:                  @spacer;

@navbar-nav-link-padding-x:         0.5rem;

@navbar-brand-font-size:            @font-size-lg;
// 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);
@navbar-brand-height:               (@navbar-brand-font-size * @line-height-base);
@navbar-brand-padding-y:            ((@nav-link-height - @navbar-brand-height) / 2);

@navbar-toggler-padding-y:          0.25rem;
@navbar-toggler-padding-x:          0.75rem;
@navbar-toggler-font-size:          @font-size-lg;
@navbar-toggler-border-radius:      @btn-border-radius;

@navbar-dark-color:                 fade(@white, 50%);
@navbar-dark-hover-color:           fade(@white, 75%);
@navbar-dark-active-color:          @white;
@navbar-dark-disabled-color:        fade(@white, 25%);
@navbar-dark-toggler-icon-bg:       url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'><path stroke='@{navbar-dark-color}' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/></svg>");
@navbar-dark-toggler-border-color:  fade(@white, 10%);

@navbar-light-color:                fade(@black, 50%);
@navbar-light-hover-color:          fade(@black, 70%);
@navbar-light-active-color:         fade(@black, 90%);
@navbar-light-disabled-color:       fade(@black, 30%);
@navbar-light-toggler-icon-bg:      url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'><path stroke='@{navbar-light-color}' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/></svg>");
@navbar-light-toggler-border-color: fade(@black, 10%);

@navbar-light-brand-color:                @navbar-light-active-color;
@navbar-light-brand-hover-color:          @navbar-light-active-color;
@navbar-dark-brand-color:                 @navbar-dark-active-color;
@navbar-dark-brand-hover-color:           @navbar-dark-active-color;


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

@dropdown-min-width:                10rem;
@dropdown-padding-x:                0;
@dropdown-padding-y:                0.5rem;
@dropdown-spacer:                   0.125rem;
@dropdown-font-size:                @font-size-base;
@dropdown-color:                    @body-color;
@dropdown-bg:                       @white;
@dropdown-border-color:             fade(@black, 15%);
@dropdown-border-radius:            @border-radius;
@dropdown-border-width:             @border-width;
@dropdown-inner-border-radius:      subtract(@dropdown-border-radius, @dropdown-border-width);
@dropdown-divider-bg:               @gray-200;
@dropdown-divider-margin-y:         @nav-divider-margin-y;
@dropdown-box-shadow:               0 0.5rem 1rem fade(@black, 17.5%);

@dropdown-link-color:               @gray-900;
@dropdown-link-hover-color:         darken(@gray-900, 5%);
@dropdown-link-hover-bg:            @gray-100;

@dropdown-link-active-color:        @component-active-color;
@dropdown-link-active-bg:           @component-active-bg;

@dropdown-link-disabled-color:      @gray-600;

@dropdown-item-padding-y:           0.25rem;
@dropdown-item-padding-x:           1.5rem;

@dropdown-header-color:             @gray-600;
@dropdown-header-padding:           @dropdown-padding-y @dropdown-item-padding-x;


// Pagination

@pagination-padding-y:              0.5rem;
@pagination-padding-x:              0.75rem;
@pagination-padding-y-sm:           0.25rem;
@pagination-padding-x-sm:           0.5rem;
@pagination-padding-y-lg:           0.75rem;
@pagination-padding-x-lg:           1.5rem;
@pagination-line-height:            1.25;

@pagination-color:                  @link-color;
@pagination-bg:                     @white;
@pagination-border-width:           @border-width;
@pagination-border-color:           @gray-300;

@pagination-focus-box-shadow:       @input-btn-focus-box-shadow;
@pagination-focus-outline:          0;

@pagination-hover-color:            @link-hover-color;
@pagination-hover-bg:               @gray-200;
@pagination-hover-border-color:     @gray-300;

@pagination-active-color:           @component-active-color;
@pagination-active-bg:              @component-active-bg;
@pagination-active-border-color:    @pagination-active-bg;

@pagination-disabled-color:         @gray-600;
@pagination-disabled-bg:            @white;
@pagination-disabled-border-color:  @gray-300;


// Jumbotron

@jumbotron-padding:                 2rem;
@jumbotron-color:                   ~""; // LESS PORT: Sass version uses `null`
@jumbotron-bg:                      @gray-200;


// Cards

@card-spacer-y:                     0.75rem;
@card-spacer-x:                     1.25rem;
@card-border-width:                 @border-width;
@card-border-radius:                @border-radius;
@card-border-color:                 fade(@black, 12.5%);
@card-inner-border-radius:          subtract(@card-border-radius, @card-border-width);
@card-cap-bg:                       fade(@black, 3%);
@card-cap-color:                    ~""; // LESS PORT: Sass version uses `null`
@card-height:                       ~""; // LESS PORT: Sass version uses `null`
@card-color:                        ~""; // LESS PORT: Sass version uses `null`
@card-bg:                           @white;

@card-img-overlay-padding:          1.25rem;

@card-group-margin:                 (@grid-gutter-width / 2);
@card-deck-margin:                  @card-group-margin;

@card-columns-count:                3;
@card-columns-gap:                  1.25rem;
@card-columns-margin:               @card-spacer-y;


// Tooltips

@tooltip-font-size:                 @font-size-sm;
@tooltip-max-width:                 200px;
@tooltip-color:                     @white;
@tooltip-bg:                        @black;
@tooltip-border-radius:             @border-radius;
@tooltip-opacity:                   0.9;
@tooltip-padding-y:                 0.25rem;
@tooltip-padding-x:                 0.5rem;
@tooltip-margin:                    0;

@tooltip-arrow-width:               0.8rem;
@tooltip-arrow-height:              0.4rem;
@tooltip-arrow-color:               @tooltip-bg;

// Form tooltips must come after regular tooltips
@form-feedback-tooltip-padding-y:     @tooltip-padding-y;
@form-feedback-tooltip-padding-x:     @tooltip-padding-x;
@form-feedback-tooltip-font-size:     @tooltip-font-size;
@form-feedback-tooltip-line-height:   @line-height-base;
@form-feedback-tooltip-opacity:       @tooltip-opacity;
@form-feedback-tooltip-border-radius: @tooltip-border-radius;


// Popovers

@popover-font-size:                 @font-size-sm;
@popover-bg:                        @white;
@popover-max-width:                 276px;
@popover-border-width:              @border-width;
@popover-border-color:              fade(@black, 20%);
@popover-border-radius:             @border-radius-lg;
@popover-inner-border-radius:       subtract(@popover-border-radius, @popover-border-width);
@popover-box-shadow:                0 0.25rem 0.5rem fade(@black, 20%);

@popover-header-bg:                 darken(@popover-bg, 3%);
@popover-header-color:              @headings-color;
@popover-header-padding-y:          0.5rem;
@popover-header-padding-x:          0.75rem;

@popover-body-color:                @body-color;
@popover-body-padding-y:            @popover-header-padding-y;
@popover-body-padding-x:            @popover-header-padding-x;

@popover-arrow-width:               1rem;
@popover-arrow-height:              0.5rem;
@popover-arrow-color:               @popover-bg;

@popover-arrow-outer-color:         fadein(@popover-border-color, 5%);


// Toasts

@toast-max-width:                   350px;
@toast-padding-x:                   0.75rem;
@toast-padding-y:                   0.25rem;
@toast-font-size:                   0.875rem;
@toast-color:                       ~""; // LESS PORT: Sass version uses `null`
@toast-background-color:            fade(@white, 85%);
@toast-border-width:                1px;
@toast-border-color:                rgba(0, 0, 0, 0.1);
@toast-border-radius:               0.25rem;
@toast-box-shadow:                  0 0.25rem 0.75rem fade(@black, 10%);

@toast-header-color:                @gray-600;
@toast-header-background-color:     fade(@white, 85%);
@toast-header-border-color:         rgba(0, 0, 0, 0.05);


// Badges

@badge-font-size:                   75%;
@badge-font-weight:                 @font-weight-bold;
@badge-padding-y:                   0.25em;
@badge-padding-x:                   0.4em;
@badge-border-radius:               @border-radius;

@badge-transition:                  @btn-transition;
@badge-focus-width:                 @input-btn-focus-width;

@badge-pill-padding-x:              0.6em;
// Use a higher than normal value to ensure completely rounded edges when
// customizing padding or font-size on labels.
@badge-pill-border-radius:          10rem;


// Modals

// Padding applied to the modal body
@modal-inner-padding:               1rem;

// Margin between elements in footer, must be lower than or equal to 2 * @modal-inner-padding
@modal-footer-margin-between:       0.5rem;

@modal-dialog-margin:               0.5rem;
@modal-dialog-margin-y-sm-up:       1.75rem;

@modal-title-line-height:           @line-height-base;

@modal-content-color:               ~""; // LESS PORT: Sass version uses `null`
@modal-content-bg:                  @white;
@modal-content-border-color:        fade(@black, 20%);
@modal-content-border-width:        @border-width;
@modal-content-border-radius:       @border-radius-lg;
@modal-content-inner-border-radius: subtract(@modal-content-border-radius, @modal-content-border-width);
@modal-content-box-shadow-xs:       0 0.25rem 0.5rem fade(@black, 50%);
@modal-content-box-shadow-sm-up:    0 0.5rem 1rem fade(@black, 50%);

@modal-backdrop-bg:                 @black;
@modal-backdrop-opacity:            0.5;
@modal-header-border-color:         @border-color;
@modal-footer-border-color:         @modal-header-border-color;
@modal-header-border-width:         @modal-content-border-width;
@modal-footer-border-width:         @modal-header-border-width;
@modal-header-padding-y:            1rem;
@modal-header-padding-x:            1rem;
@modal-header-padding:              @modal-header-padding-y @modal-header-padding-x; // Keep this for backwards compatibility

@modal-xl:                          1140px;
@modal-lg:                          800px;
@modal-md:                          500px;
@modal-sm:                          300px;

@modal-fade-transform:              translate(0, -50px);
@modal-show-transform:              none;
@modal-transition:                  transform 0.3s ease-out;
@modal-scale-transform:             scale(1.02);


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

@alert-padding-y:                   0.75rem;
@alert-padding-x:                   1.25rem;
@alert-margin-bottom:               1rem;
@alert-border-radius:               @border-radius;
@alert-link-font-weight:            @font-weight-bold;
@alert-border-width:                @border-width;

@alert-bg-level:                    -10;
@alert-border-level:                -9;
@alert-color-level:                 6;


// Progress bars

@progress-height:                   1rem;
@progress-font-size:                (@font-size-base * 0.75);
@progress-bg:                       @gray-200;
@progress-border-radius:            @border-radius;
@progress-box-shadow:               inset 0 0.1rem 0.1rem fade(@black, 10%);
@progress-bar-color:                @white;
@progress-bar-bg:                   theme-color(primary);
@progress-bar-animation-timing:     1s linear infinite;
@progress-bar-transition:           width 0.6s ease;


// List group

@list-group-color:                  ~""; // LESS PORT: Sass version uses `null`
@list-group-bg:                     @white;
@list-group-border-color:           fade(@black, 12.5%);
@list-group-border-width:           @border-width;
@list-group-border-radius:          @border-radius;

@list-group-item-padding-y:         0.75rem;
@list-group-item-padding-x:         1.25rem;

@list-group-hover-bg:               @gray-100;
@list-group-active-color:           @component-active-color;
@list-group-active-bg:              @component-active-bg;
@list-group-active-border-color:    @list-group-active-bg;

@list-group-disabled-color:         @gray-600;
@list-group-disabled-bg:            @list-group-bg;

@list-group-action-color:           @gray-700;
@list-group-action-hover-color:     @list-group-action-color;

@list-group-action-active-color:    @body-color;
@list-group-action-active-bg:       @gray-200;


// Image thumbnails

@thumbnail-padding:                 0.25rem;
@thumbnail-bg:                      @body-bg;
@thumbnail-border-width:            @border-width;
@thumbnail-border-color:            @gray-300;
@thumbnail-border-radius:           @border-radius;
@thumbnail-box-shadow:              0 1px 2px fade(@black, 7.5%);


// Figures

@figure-caption-font-size:          90%;
@figure-caption-color:              @gray-600;


// Breadcrumbs

@breadcrumb-font-size:              ~""; // LESS PORT: Sass version uses `null`

@breadcrumb-padding-y:              0.75rem;
@breadcrumb-padding-x:              1rem;
@breadcrumb-item-padding:           0.5rem;

@breadcrumb-margin-bottom:          1rem;

@breadcrumb-bg:                     @gray-200;
@breadcrumb-divider-color:          @gray-600;
@breadcrumb-active-color:           @gray-600;
@breadcrumb-divider:                "/";

@breadcrumb-border-radius:          @border-radius;


// Carousel

@carousel-control-color:             @white;
@carousel-control-width:             15%;
@carousel-control-opacity:           0.5;
@carousel-control-hover-opacity:     0.9;
@carousel-control-transition:        opacity 0.15s ease;

@carousel-indicator-width:           30px;
@carousel-indicator-height:          3px;
@carousel-indicator-hit-area-height: 10px;
@carousel-indicator-spacer:          3px;
@carousel-indicator-active-bg:       @white;
@carousel-indicator-transition:      opacity 0.6s ease;

@carousel-caption-width:             70%;
@carousel-caption-color:             @white;

@carousel-control-icon-width:        20px;

@carousel-control-prev-icon-bg:      url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' fill='@{carousel-control-color}' width='8' height='8' viewBox='0 0 8 8'><path d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/></svg>");
@carousel-control-next-icon-bg:      url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' fill='@{carousel-control-color}' width='8' height='8' viewBox='0 0 8 8'><path d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/></svg>");

@carousel-transition-duration:       0.6s;
@carousel-transition:                transform @carousel-transition-duration ease-in-out; // Define transform transition first if using multiple transitions (e.g., `transform 2s ease, opacity 0.5s ease-out`)


// Spinners

@spinner-width:         2rem;
@spinner-height:        @spinner-width;
@spinner-border-width:  0.25em;

@spinner-width-sm:        1rem;
@spinner-height-sm:       @spinner-width-sm;
@spinner-border-width-sm: 0.2em;


// Close

@close-font-size:                   (@font-size-base * 1.5);
@close-font-weight:                 @font-weight-bold;
@close-color:                       @black;
@close-text-shadow:                 0 1px 0 @white;


// Code

@code-font-size:                    87.5%;
@code-color:                        @pink;

@kbd-padding-y:                     0.2rem;
@kbd-padding-x:                     0.4rem;
@kbd-font-size:                     @code-font-size;
@kbd-color:                         @white;
@kbd-bg:                            @gray-900;

@pre-color:                         @gray-900;
@pre-scrollable-max-height:         340px;


// Utilities

@displays: none, inline, inline-block, block, table, table-row, table-cell, flex, inline-flex;
@overflows: auto, hidden;
@positions: static, relative, absolute, fixed, sticky;
@user-selects: all, auto, none;


// Printing

@print-page-size:                   a3;
@print-body-min-width:              @grid-breakpoints[lg];
