`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 hover-focus {
+ text-decoration: none;
+ }
+
+ // Disabled state lightens text
+ &.disabled {
+ color: $nav-link-disabled-color;
+ }
+}
+
+//
+// Tabs
+//
+
+.nav-tabs {
+ border-bottom: $nav-tabs-border-width solid $nav-tabs-border-color;
+
+ .nav-item {
+ margin-bottom: -$nav-tabs-border-width;
+ }
+
+ .nav-link {
+ border: $nav-tabs-border-width solid transparent;
+ @include border-top-radius($nav-tabs-border-radius);
+
+ @include hover-focus {
+ border-color: $nav-tabs-link-hover-border-color $nav-tabs-link-hover-border-color $nav-tabs-border-color;
+ }
+
+ &.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 $nav-tabs-link-active-border-color $nav-tabs-link-active-bg;
+ }
+
+ .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 {
+ @include border-radius($nav-pills-border-radius);
+ }
+
+ .nav-link.active,
+ .show > .nav-link {
+ color: $nav-pills-link-active-color;
+ background-color: $nav-pills-link-active-bg;
+ }
+}
+
+
+//
+// Justified variants
+//
+
+.nav-fill {
+ .nav-item {
+ flex: 1 1 auto;
+ text-align: center;
+ }
+}
+
+.nav-justified {
+ .nav-item {
+ flex-basis: 0;
+ flex-grow: 1;
+ text-align: center;
+ }
+}
+
+
+// Tabbable tabs
+//
+// Hide tabbable panes to start, show them when `.active`
+
+.tab-content {
+ > .tab-pane {
+ display: none;
+ }
+ > .active {
+ display: block;
+ }
+}
diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/_navbar.scss b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/_navbar.scss
new file mode 100644
index 0000000000..6b023e82e4
--- /dev/null
+++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/_navbar.scss
@@ -0,0 +1,306 @@
+// Contents
+//
+// Navbar
+// Navbar brand
+// Navbar nav
+// Navbar text
+// Navbar divider
+// 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: $navbar-padding-y $navbar-padding-x;
+
+ // Because flex properties aren't inherited, we need to redeclare these first
+ // few properities so that content nested within behave properly.
+ > .container,
+ > .container-fluid {
+ display: flex;
+ flex-wrap: wrap;
+ align-items: center;
+ justify-content: space-between;
+ }
+}
+
+
+// Navbar brand
+//
+// Used for brand, project, or site names.
+
+.navbar-brand {
+ display: inline-block;
+ padding-top: $navbar-brand-padding-y;
+ padding-bottom: $navbar-brand-padding-y;
+ margin-right: $navbar-padding-x;
+ font-size: $navbar-brand-font-size;
+ line-height: inherit;
+ white-space: nowrap;
+
+ @include hover-focus {
+ text-decoration: none;
+ }
+}
+
+
+// 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;
+ float: none;
+ }
+}
+
+
+// Navbar text
+//
+//
+
+.navbar-text {
+ display: inline-block;
+ 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 orienation. 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;
+ font-size: $navbar-toggler-font-size;
+ line-height: 1;
+ background: transparent; // remove default button style
+ border: $border-width solid transparent; // remove default button style
+ @include border-radius($navbar-toggler-border-radius);
+
+ @include hover-focus {
+ text-decoration: none;
+ }
+}
+
+// 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;
+ content: "";
+ background: no-repeat center center;
+ background-size: 100% 100%;
+}
+
+// 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);
+
+ {$infix} {
+ @include media-breakpoint-down($breakpoint) {
+ > .container,
+ > .container-fluid {
+ padding-right: 0;
+ padding-left: 0;
+ }
+ }
+
+ @include media-breakpoint-up($next) {
+ flex-flow: row nowrap;
+ justify-content: flex-start;
+
+ .navbar-nav {
+ flex-direction: row;
+
+ .dropdown-menu {
+ position: absolute;
+ }
+
+ .dropdown-menu-right {
+ right: 0;
+ left: auto; // Reset the default from `.dropdown-menu`
+ }
+
+ .nav-link {
+ padding-right: .5rem;
+ padding-left: .5rem;
+ }
+ }
+
+ // For nesting containers, have to redeclare for alignment purposes
+ > .container,
+ > .container-fluid {
+ flex-wrap: nowrap;
+ }
+
+ .navbar-collapse {
+ display: flex !important; // stylelint-disable-line declaration-no-important
+
+ // Changes flex-bases to auto because of an IE10 bug
+ flex-basis: auto;
+ }
+
+ .navbar-toggler {
+ display: none;
+ }
+
+ .dropup {
+ .dropdown-menu {
+ top: auto;
+ bottom: 100%;
+ }
+ }
+ }
+ }
+ }
+}
+
+
+// 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-active-color;
+
+ @include hover-focus {
+ color: $navbar-light-active-color;
+ }
+ }
+
+ .navbar-nav {
+ .nav-link {
+ color: $navbar-light-color;
+
+ @include hover-focus {
+ color: $navbar-light-hover-color;
+ }
+
+ &.disabled {
+ color: $navbar-light-disabled-color;
+ }
+ }
+
+ .show > .nav-link,
+ .active > .nav-link,
+ .nav-link.show,
+ .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: $navbar-light-toggler-icon-bg;
+ }
+
+ .navbar-text {
+ color: $navbar-light-color;
+ a {
+ color: $navbar-light-active-color;
+
+ @include hover-focus {
+ color: $navbar-light-active-color;
+ }
+ }
+ }
+}
+
+// White links against a dark background
+.navbar-dark {
+ .navbar-brand {
+ color: $navbar-dark-active-color;
+
+ @include hover-focus {
+ color: $navbar-dark-active-color;
+ }
+ }
+
+ .navbar-nav {
+ .nav-link {
+ color: $navbar-dark-color;
+
+ @include hover-focus {
+ color: $navbar-dark-hover-color;
+ }
+
+ &.disabled {
+ color: $navbar-dark-disabled-color;
+ }
+ }
+
+ .show > .nav-link,
+ .active > .nav-link,
+ .nav-link.show,
+ .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: $navbar-dark-toggler-icon-bg;
+ }
+
+ .navbar-text {
+ color: $navbar-dark-color;
+ a {
+ color: $navbar-dark-active-color;
+
+ @include hover-focus {
+ color: $navbar-dark-active-color;
+ }
+ }
+ }
+}
diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/_pagination.scss b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/_pagination.scss
new file mode 100644
index 0000000000..69a36ffe53
--- /dev/null
+++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/_pagination.scss
@@ -0,0 +1,64 @@
+.pagination {
+ display: flex;
+ @include list-unstyled();
+ @include border-radius();
+}
+
+.page-item {
+ &:first-child {
+ .page-link {
+ margin-left: 0;
+ @include border-left-radius($border-radius);
+ }
+ }
+ &:last-child {
+ .page-link {
+ @include border-right-radius($border-radius);
+ }
+ }
+
+ &.active .page-link {
+ z-index: 2;
+ color: $pagination-active-color;
+ background-color: $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;
+ }
+}
+
+.page-link {
+ position: relative;
+ display: block;
+ padding: $pagination-padding-y $pagination-padding-x;
+ margin-left: -$pagination-border-width;
+ line-height: $pagination-line-height;
+ color: $pagination-color;
+ background-color: $pagination-bg;
+ border: $pagination-border-width solid $pagination-border-color;
+
+ @include hover-focus {
+ color: $pagination-hover-color;
+ text-decoration: none;
+ background-color: $pagination-hover-bg;
+ border-color: $pagination-hover-border-color;
+ }
+}
+
+
+//
+// Sizing
+//
+
+.pagination-lg {
+ @include pagination-size($pagination-padding-y-lg, $pagination-padding-x-lg, $font-size-lg, $line-height-lg, $border-radius-lg);
+}
+
+.pagination-sm {
+ @include pagination-size($pagination-padding-y-sm, $pagination-padding-x-sm, $font-size-sm, $line-height-sm, $border-radius-sm);
+}
diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/_popover.scss b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/_popover.scss
new file mode 100644
index 0000000000..450376752b
--- /dev/null
+++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/_popover.scss
@@ -0,0 +1,194 @@
+.popover {
+ position: absolute;
+ top: 0;
+ left: 0;
+ 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();
+ font-size: $font-size-sm;
+ // 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($border-radius-lg);
+ @include box-shadow($popover-box-shadow);
+
+ // Arrows
+ //
+ // .arrow is outer, .arrow::after is inner
+
+ .arrow {
+ position: absolute;
+ display: block;
+ width: $popover-arrow-width;
+ height: $popover-arrow-height;
+ }
+
+ .arrow::before,
+ .arrow::after {
+ position: absolute;
+ display: block;
+ border-color: transparent;
+ border-style: solid;
+ }
+
+ .arrow::before {
+ content: "";
+ border-width: $popover-arrow-width;
+ }
+ .arrow::after {
+ content: "";
+ border-width: $popover-arrow-width;
+ }
+
+ // Popover directions
+
+ &.bs-popover-top {
+ margin-bottom: $popover-arrow-width;
+
+ .arrow {
+ bottom: 0;
+ }
+
+ .arrow::before,
+ .arrow::after {
+ border-bottom-width: 0;
+ }
+
+ .arrow::before {
+ bottom: -$popover-arrow-width;
+ margin-left: -$popover-arrow-width;
+ border-top-color: $popover-arrow-outer-color;
+ }
+
+ .arrow::after {
+ bottom: calc((#{$popover-arrow-width} - #{$popover-border-width}) * -1);
+ margin-left: -$popover-arrow-width;
+ border-top-color: $popover-arrow-color;
+ }
+ }
+
+ &.bs-popover-right {
+ margin-left: $popover-arrow-width;
+
+ .arrow {
+ left: 0;
+ }
+
+ .arrow::before,
+ .arrow::after {
+ margin-top: -$popover-arrow-width;
+ border-left-width: 0;
+ }
+
+ .arrow::before {
+ left: -$popover-arrow-width;
+ border-right-color: $popover-arrow-outer-color;
+ }
+
+ .arrow::after {
+ left: calc((#{$popover-arrow-width} - #{$popover-border-width}) * -1);
+ border-right-color: $popover-arrow-color;
+ }
+ }
+
+ &.bs-popover-bottom {
+ margin-top: $popover-arrow-width;
+
+ .arrow {
+ top: 0;
+ }
+
+ .arrow::before,
+ .arrow::after {
+ margin-left: -$popover-arrow-width;
+ border-top-width: 0;
+ }
+
+ .arrow::before {
+ top: -$popover-arrow-width;
+ border-bottom-color: $popover-arrow-outer-color;
+ }
+
+ .arrow::after {
+ top: calc((#{$popover-arrow-width} - #{$popover-border-width}) * -1);
+ 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: 20px;
+ margin-left: -10px;
+ content: "";
+ border-bottom: $popover-border-width solid $popover-header-bg;
+ }
+ }
+
+ &.bs-popover-left {
+ margin-right: $popover-arrow-width;
+
+ .arrow {
+ right: 0;
+ }
+
+ .arrow::before,
+ .arrow::after {
+ margin-top: -$popover-arrow-width;
+ border-right-width: 0;
+ }
+
+ .arrow::before {
+ right: -$popover-arrow-width;
+ border-left-color: $popover-arrow-outer-color;
+ }
+
+ .arrow::after {
+ right: calc((#{$popover-arrow-width} - #{$popover-border-width}) * -1);
+ border-left-color: $popover-arrow-color;
+ }
+ }
+ &.bs-popover-auto {
+ &[x-placement^="top"] {
+ @extend .bs-popover-top;
+ }
+ &[x-placement^="right"] {
+ @extend .bs-popover-right;
+ }
+ &[x-placement^="bottom"] {
+ @extend .bs-popover-bottom;
+ }
+ &[x-placement^="left"] {
+ @extend .bs-popover-left;
+ }
+ }
+}
+
+
+// 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
+ font-size: $font-size-base;
+ color: $popover-header-color;
+ background-color: $popover-header-bg;
+ border-bottom: $popover-border-width solid darken($popover-header-bg, 5%);
+ $offset-border-width: calc(#{$border-radius-lg} - #{$popover-border-width});
+ @include border-top-radius($offset-border-width);
+
+ &:empty {
+ display: none;
+ }
+}
+
+.popover-body {
+ padding: $popover-body-padding-y $popover-body-padding-x;
+ color: $popover-body-color;
+}
diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/_print.scss b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/_print.scss
new file mode 100644
index 0000000000..6505d3e947
--- /dev/null
+++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/_print.scss
@@ -0,0 +1,110 @@
+// stylelint-disable declaration-no-important, selector-no-qualifying-type
+
+// Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css
+
+// ==========================================================================
+// Print styles.
+// Inlined to avoid the additional HTTP request:
+// http://www.phpied.com/delay-loading-your-print-css/
+// ==========================================================================
+
+@if $enable-print-styles {
+ @media print {
+ *,
+ *::before,
+ *::after {
+ // Bootstrap specific; comment out `color` and `background`
+ //color: #000 !important; // Black prints faster: http://www.sanbeiji.com/archives/953
+ text-shadow: none !important;
+ //background: transparent !important;
+ box-shadow: none !important;
+ }
+
+ a,
+ a:visited {
+ text-decoration: underline;
+ }
+
+ // Bootstrap specific; comment the following selector out
+ //a[href]::after {
+ // content: " (" attr(href) ")";
+ //}
+
+ abbr[title]::after {
+ content: " (" attr(title) ")";
+ }
+
+ // Bootstrap specific; comment the following selector out
+ //
+ // Don't show links that are fragment identifiers,
+ // or use the `javascript:` pseudo protocol
+ //
+
+ //a[href^="#"]::after,
+ //a[href^="javascript:"]::after {
+ // content: "";
+ //}
+
+ pre {
+ white-space: pre-wrap !important;
+ }
+ pre,
+ blockquote {
+ border: $border-width solid #999; // Bootstrap custom code; using `$border-width` instead of 1px
+ page-break-inside: avoid;
+ }
+
+ //
+ // Printing Tables:
+ // http://css-discuss.incutio.com/wiki/Printing_Tables
+ //
+
+ thead {
+ display: table-header-group;
+ }
+
+ tr,
+ img {
+ page-break-inside: avoid;
+ }
+
+ p,
+ h2,
+ h3 {
+ orphans: 3;
+ widows: 3;
+ }
+
+ h2,
+ h3 {
+ page-break-after: avoid;
+ }
+
+ // Bootstrap specific changes start
+
+ // Bootstrap components
+ .navbar {
+ display: none;
+ }
+ .badge {
+ border: $border-width solid #000;
+ }
+
+ .table {
+ border-collapse: collapse !important;
+
+ td,
+ th {
+ background-color: #fff !important;
+ }
+ }
+ .table-bordered {
+ th,
+ td {
+ border: 1px solid #ddd !important;
+ }
+ }
+
+ // Bootstrap specific changes end
+ }
+}
diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/_progress.scss b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/_progress.scss
new file mode 100644
index 0000000000..efbb440340
--- /dev/null
+++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/_progress.scss
@@ -0,0 +1,30 @@
+@keyframes progress-bar-stripes {
+ from { background-position: $progress-height 0; }
+ to { background-position: 0 0; }
+}
+
+.progress {
+ display: flex;
+ height: $progress-height;
+ overflow: hidden; // force rounded corners by cropping it
+ font-size: $progress-font-size;
+ background-color: $progress-bg;
+ @include border-radius($progress-border-radius);
+}
+
+.progress-bar {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ color: $progress-bar-color;
+ background-color: $progress-bar-bg;
+}
+
+.progress-bar-striped {
+ @include gradient-striped();
+ background-size: $progress-height $progress-height;
+}
+
+.progress-bar-animated {
+ animation: progress-bar-stripes $progress-bar-animation-timing;
+}
diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/_reboot.scss b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/_reboot.scss
new file mode 100644
index 0000000000..3055cc33d9
--- /dev/null
+++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/_reboot.scss
@@ -0,0 +1,504 @@
+// stylelint-disable at-rule-no-vendor-prefix, 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
+//
+// 1. Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.
+// 2. Change the default font family in all browsers.
+// 3. Correct the line height in all browsers.
+// 4. Prevent adjustments of font size after orientation changes in IE on Windows Phone and in iOS.
+// 5. Setting @viewport causes scrollbars to overlap content in IE11 and Edge, so
+// we force a non-overlapping, non-auto-hiding scrollbar to counteract.
+// 6. Change the default tap highlight to be completely transparent in iOS.
+
+*,
+*::before,
+*::after {
+ box-sizing: border-box; // 1
+}
+
+html {
+ font-family: sans-serif; // 2
+ line-height: 1.15; // 3
+ -webkit-text-size-adjust: 100%; // 4
+ -ms-text-size-adjust: 100%; // 4
+ -ms-overflow-style: scrollbar; // 5
+ -webkit-tap-highlight-color: rgba(0,0,0,0); // 6
+}
+
+// IE10+ doesn't honor `` in some cases.
+@at-root {
+ @-ms-viewport {
+ width: device-width;
+ }
+}
+
+// stylelint-disable selector-list-comma-newline-after
+// Shim for "new" HTML5 structural elements to display correctly (IE10, older browsers)
+article, aside, dialog, figcaption, figure, footer, header, hgroup, main, nav, section {
+ display: block;
+}
+// stylelint-enable selector-list-comma-newline-after
+
+// Body
+//
+// 1. Remove the margin in all browsers.
+// 2. As a best practice, apply a default `background-color`.
+// 3. Set an explicit initial text-align value so that we can later use the
+// the `inherit` value on things like `` elements.
+
+body {
+ margin: 0; // 1
+ font-family: $font-family-base;
+ font-size: $font-size-base;
+ font-weight: $font-weight-base;
+ line-height: $line-height-base;
+ color: $body-color;
+ text-align: left; // 3
+ background-color: $body-bg; // 2
+}
+
+// Suppress the focus outline on elements that cannot be accessed via keyboard.
+// This prevents an unwanted focus outline from appearing around elements that
+// might still respond to pointer events.
+//
+// Credit: https://github.com/suitcss/base
+[tabindex="-1"]:focus {
+ outline: none !important;
+}
+
+
+// Content grouping
+//
+// 1. Add the correct box sizing in Firefox.
+// 2. Show the overflow in Edge and IE.
+
+hr {
+ box-sizing: content-box; // 1
+ height: 0; // 1
+ overflow: visible; // 2
+}
+
+
+//
+// Typography
+//
+
+// 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.
+// stylelint-disable selector-list-comma-newline-after
+h1, h2, h3, h4, h5, h6 {
+ margin-top: 0;
+ margin-bottom: $headings-margin-bottom;
+}
+// stylelint-enable selector-list-comma-newline-after
+
+// 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. Remove the bottom border in Firefox 39-.
+// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
+// 3. Add explicit cursor to indicate changed behavior.
+// 4. Duplicate behavior to the data-* attribute for our tooltip plugin
+
+abbr[title],
+abbr[data-original-title] { // 4
+ text-decoration: underline; // 2
+ text-decoration: underline dotted; // 2
+ cursor: help; // 3
+ border-bottom: 0; // 1
+}
+
+address {
+ margin-bottom: 1rem;
+ font-style: normal;
+ line-height: inherit;
+}
+
+ol,
+ul,
+dl {
+ margin-top: 0;
+ margin-bottom: 1rem;
+}
+
+ol ol,
+ul ul,
+ol ul,
+ul ol {
+ margin-bottom: 0;
+}
+
+dt {
+ font-weight: $dt-font-weight;
+}
+
+dd {
+ margin-bottom: .5rem;
+ margin-left: 0; // Undo browser default
+}
+
+blockquote {
+ margin: 0 0 1rem;
+}
+
+dfn {
+ font-style: italic; // Add the correct font style in Android 4.3-
+}
+
+// stylelint-disable font-weight-notation
+b,
+strong {
+ font-weight: bolder; // Add the correct font weight in Chrome, Edge, and Safari
+}
+// stylelint-enable font-weight-notation
+
+small {
+ font-size: 80%; // Add the correct font size in all browsers
+}
+
+//
+// Prevent `sub` and `sup` elements from affecting the line height in
+// all browsers.
+//
+
+sub,
+sup {
+ position: relative;
+ font-size: 75%;
+ line-height: 0;
+ vertical-align: baseline;
+}
+
+sub { bottom: -.25em; }
+sup { top: -.5em; }
+
+
+//
+// Links
+//
+
+a {
+ color: $link-color;
+ text-decoration: $link-decoration;
+ background-color: transparent; // Remove the gray background on active links in IE 10.
+ -webkit-text-decoration-skip: objects; // Remove gaps in links underline in iOS 8+ and Safari 8+.
+
+ @include hover {
+ color: $link-hover-color;
+ text-decoration: $link-hover-decoration;
+ }
+}
+
+// And undo these styles for placeholder links/named anchors (without href)
+// which have not been made explicitly keyboard-focusable (without tabindex).
+// 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([tabindex]) {
+ color: inherit;
+ text-decoration: none;
+
+ @include hover-focus {
+ color: inherit;
+ text-decoration: none;
+ }
+
+ &:focus {
+ outline: 0;
+ }
+}
+
+
+//
+// Code
+//
+
+// stylelint-disable font-family-no-duplicate-names
+pre,
+code,
+kbd,
+samp {
+ font-family: monospace, monospace; // Correct the inheritance and scaling of font size in all browsers.
+ font-size: 1em; // Correct the odd `em` font sizing in all browsers.
+}
+// stylelint-enable font-family-no-duplicate-names
+
+pre {
+ // Remove browser default top margin
+ margin-top: 0;
+ // Reset browser default of `1em` to use `rem`s
+ margin-bottom: 1rem;
+ // Don't allow content to break outside
+ overflow: auto;
+ // We have @viewport set which causes scrollbars to overlap content in IE11 and Edge, so
+ // we force a non-overlapping, non-auto-hiding scrollbar to counteract.
+ -ms-overflow-style: scrollbar;
+}
+
+
+//
+// Figures
+//
+
+figure {
+ // Apply a consistent margin strategy (matches our type styles).
+ margin: 0 0 1rem;
+}
+
+
+//
+// Images and content
+//
+
+img {
+ vertical-align: middle;
+ border-style: none; // Remove the border on images inside links in IE 10-.
+}
+
+svg:not(:root) {
+ overflow: hidden; // Hide the overflow in IE
+}
+
+
+// Avoid 300ms click delay on touch devices that support the `touch-action` CSS property.
+//
+// In particular, unlike most other browsers, IE11+Edge on Windows 10 on touch devices and IE Mobile 10-11
+// DON'T remove the click delay when `` is present.
+// However, they DO support removing the click delay via `touch-action: manipulation`.
+// See:
+// * https://getbootstrap.com/docs/4.0/content/reboot/#click-delay-optimization-for-touch
+// * https://caniuse.com/#feat=css-touch-action
+// * https://patrickhlauke.github.io/touch/tests/results/#suppressing-300ms-delay
+
+a,
+area,
+button,
+[role="button"],
+input:not([type="range"]),
+label,
+select,
+summary,
+textarea {
+ touch-action: manipulation;
+}
+
+
+//
+// Tables
+//
+
+table {
+ border-collapse: collapse; // Prevent double borders
+}
+
+caption {
+ padding-top: $table-cell-padding;
+ padding-bottom: $table-cell-padding;
+ color: $text-muted;
+ text-align: left;
+ caption-side: bottom;
+}
+
+th {
+ // Matches default ` | ` alignment by inheriting from the ``, or the
+ // closest parent with a set `text-align`.
+ text-align: inherit;
+}
+
+
+//
+// Forms
+//
+
+label {
+ // Allow labels to use `margin` for spacing.
+ display: inline-block;
+ margin-bottom: .5rem;
+}
+
+// Remove the default `border-radius` that macOS Chrome adds.
+//
+// Details at https://github.com/twbs/bootstrap/issues/24093
+button {
+ border-radius: 0;
+}
+
+// Work around a Firefox/IE bug where the transparent `button` background
+// results in a loss of the default `button` focus styles.
+//
+// Credit: https://github.com/suitcss/base/
+button:focus {
+ outline: 1px dotted;
+ outline: 5px auto -webkit-focus-ring-color;
+}
+
+input,
+button,
+select,
+optgroup,
+textarea {
+ margin: 0; // Remove the margin in Firefox and Safari
+ font-family: inherit;
+ font-size: inherit;
+ line-height: inherit;
+}
+
+button,
+input {
+ overflow: visible; // Show the overflow in Edge
+}
+
+button,
+select {
+ text-transform: none; // Remove the inheritance of text transform in Firefox
+}
+
+// 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.
+button,
+html [type="button"], // 1
+[type="reset"],
+[type="submit"] {
+ -webkit-appearance: button; // 2
+}
+
+// Remove inner border and padding from Firefox, but don't restore the outline like Normalize.
+button::-moz-focus-inner,
+[type="button"]::-moz-focus-inner,
+[type="reset"]::-moz-focus-inner,
+[type="submit"]::-moz-focus-inner {
+ padding: 0;
+ border-style: none;
+}
+
+input[type="radio"],
+input[type="checkbox"] {
+ box-sizing: border-box; // 1. Add the correct box sizing in IE 10-
+ padding: 0; // 2. Remove the padding in IE 10-
+}
+
+
+input[type="date"],
+input[type="time"],
+input[type="datetime-local"],
+input[type="month"] {
+ // Remove the default appearance of temporal inputs to avoid a Mobile Safari
+ // bug where setting a custom line-height prevents text from being vertically
+ // centered within the input.
+ // See https://bugs.webkit.org/show_bug.cgi?id=139848
+ // and https://github.com/twbs/bootstrap/issues/11266
+ -webkit-appearance: listbox;
+}
+
+textarea {
+ overflow: auto; // Remove the default vertical scrollbar in IE.
+ // Textareas should really only resize vertically so they don't break their (horizontal) containers.
+ resize: vertical;
+}
+
+fieldset {
+ // 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
+ min-width: 0;
+ // Reset the default outline behavior of fieldsets so they don't affect page layout.
+ padding: 0;
+ margin: 0;
+ border: 0;
+}
+
+// 1. Correct the text wrapping in Edge and IE.
+// 2. Correct the color inheritance from `fieldset` elements in IE.
+legend {
+ display: block;
+ width: 100%;
+ max-width: 100%; // 1
+ padding: 0;
+ margin-bottom: .5rem;
+ font-size: 1.5rem;
+ line-height: inherit;
+ color: inherit; // 2
+ white-space: normal; // 1
+}
+
+progress {
+ vertical-align: baseline; // Add the correct vertical alignment in Chrome, Firefox, and Opera.
+}
+
+// Correct the cursor style of increment and decrement buttons in Chrome.
+[type="number"]::-webkit-inner-spin-button,
+[type="number"]::-webkit-outer-spin-button {
+ height: auto;
+}
+
+[type="search"] {
+ // 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.
+ outline-offset: -2px; // 2. Correct the outline style in Safari.
+ -webkit-appearance: none;
+}
+
+//
+// Remove the inner padding and cancel buttons in Chrome and Safari on macOS.
+//
+
+[type="search"]::-webkit-search-cancel-button,
+[type="search"]::-webkit-search-decoration {
+ -webkit-appearance: none;
+}
+
+//
+// 1. Correct the inability to style clickable types in iOS and Safari.
+// 2. Change font properties to `inherit` in Safari.
+//
+
+::-webkit-file-upload-button {
+ font: inherit; // 2
+ -webkit-appearance: button; // 1
+}
+
+//
+// Correct element displays
+//
+
+output {
+ display: inline-block;
+}
+
+summary {
+ display: list-item; // Add the correct display in all browsers
+}
+
+template {
+ display: none; // Add the correct display in IE
+}
+
+// Always hide an element with the `hidden` HTML attribute (from PureCSS).
+// Needed for proper display in IE 10-.
+[hidden] {
+ display: none !important;
+}
diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/_root.scss b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/_root.scss
new file mode 100644
index 0000000000..ad550df3b4
--- /dev/null
+++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/_root.scss
@@ -0,0 +1,19 @@
+:root {
+ // Custom variable values only support SassScript inside `#{}`.
+ @each $color, $value in $colors {
+ --#{$color}: #{$value};
+ }
+
+ @each $color, $value in $theme-colors {
+ --#{$color}: #{$value};
+ }
+
+ @each $bp, $value in $grid-breakpoints {
+ --breakpoint-#{$bp}: #{$value};
+ }
+
+ // Use `inspect` for lists so that quoted items keep the quotes.
+ // See https://github.com/sass/sass/issues/2383#issuecomment-336349172
+ --font-family-sans-serif: #{inspect($font-family-sans-serif)};
+ --font-family-monospace: #{inspect($font-family-monospace)};
+}
diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/_tables.scss b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/_tables.scss
new file mode 100644
index 0000000000..6bd0b91a43
--- /dev/null
+++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/_tables.scss
@@ -0,0 +1,180 @@
+//
+// Basic Bootstrap table
+//
+
+.table {
+ width: 100%;
+ max-width: 100%;
+ margin-bottom: $spacer;
+ background-color: $table-bg; // Reset for nesting within parents with `background-color`.
+
+ th,
+ td {
+ padding: $table-cell-padding;
+ vertical-align: top;
+ border-top: $table-border-width solid $table-border-color;
+ }
+
+ thead th {
+ vertical-align: bottom;
+ border-bottom: (2 * $table-border-width) solid $table-border-color;
+ }
+
+ tbody + tbody {
+ border-top: (2 * $table-border-width) solid $table-border-color;
+ }
+
+ .table {
+ background-color: $body-bg;
+ }
+}
+
+
+//
+// Condensed table w/ half padding
+//
+
+.table-sm {
+ th,
+ td {
+ padding: $table-cell-padding-sm;
+ }
+}
+
+
+// Bordered version
+//
+// Add borders all around the table and between all the columns.
+
+.table-bordered {
+ border: $table-border-width solid $table-border-color;
+
+ th,
+ td {
+ border: $table-border-width solid $table-border-color;
+ }
+
+ thead {
+ th,
+ td {
+ border-bottom-width: (2 * $table-border-width);
+ }
+ }
+}
+
+
+// Zebra-striping
+//
+// Default zebra-stripe styles (alternating gray and transparent backgrounds)
+
+.table-striped {
+ tbody tr:nth-of-type(odd) {
+ background-color: $table-accent-bg;
+ }
+}
+
+
+// Hover effect
+//
+// Placed here since it has to come after the potential zebra striping
+
+.table-hover {
+ tbody tr {
+ @include hover {
+ background-color: $table-hover-bg;
+ }
+ }
+}
+
+
+// Table backgrounds
+//
+// Exact selectors below required to override `.table-striped` and prevent
+// inheritance to nested tables.
+
+@each $color, $value in $theme-colors {
+ @include table-row-variant($color, theme-color-level($color, -9));
+}
+
+@include table-row-variant(active, $table-active-bg);
+
+
+// Dark styles
+//
+// Same table markup, but inverted color scheme: dark background and light text.
+
+// stylelint-disable-next-line no-duplicate-selectors
+.table {
+ .thead-dark {
+ th {
+ color: $table-dark-color;
+ background-color: $table-dark-bg;
+ border-color: $table-dark-border-color;
+ }
+ }
+
+ .thead-light {
+ th {
+ color: $table-head-color;
+ background-color: $table-head-bg;
+ border-color: $table-border-color;
+ }
+ }
+}
+
+.table-dark {
+ color: $table-dark-color;
+ background-color: $table-dark-bg;
+
+ th,
+ td,
+ thead th {
+ border-color: $table-dark-border-color;
+ }
+
+ &.table-bordered {
+ border: 0;
+ }
+
+ &.table-striped {
+ tbody tr:nth-of-type(odd) {
+ background-color: $table-dark-accent-bg;
+ }
+ }
+
+ &.table-hover {
+ tbody tr {
+ @include hover {
+ background-color: $table-dark-hover-bg;
+ }
+ }
+ }
+}
+
+
+// Responsive tables
+//
+// Generate series of `.table-responsive-*` classes for configuring the screen
+// size of where your table will overflow.
+
+.table-responsive {
+ @each $breakpoint in map-keys($grid-breakpoints) {
+ $next: breakpoint-next($breakpoint, $grid-breakpoints);
+ $infix: breakpoint-infix($next, $grid-breakpoints);
+
+ {$infix} {
+ @include media-breakpoint-down($breakpoint) {
+ display: block;
+ width: 100%;
+ overflow-x: auto;
+ -webkit-overflow-scrolling: touch;
+ -ms-overflow-style: -ms-autohiding-scrollbar; // See https://github.com/twbs/bootstrap/pull/10057
+
+ // Prevent double border on horizontal scroll due to use of `display: block;`
+ &.table-bordered {
+ border: 0;
+ }
+ }
+ }
+ }
+}
diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/_tooltip.scss b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/_tooltip.scss
new file mode 100644
index 0000000000..7b5db1cf2a
--- /dev/null
+++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/_tooltip.scss
@@ -0,0 +1,107 @@
+// 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();
+ font-size: $font-size-sm;
+ // Allow breaking very long words so they don't overflow the tooltip's bounds
+ word-wrap: break-word;
+ opacity: 0;
+
+ &.show { opacity: $tooltip-opacity; }
+
+ .arrow {
+ position: absolute;
+ display: block;
+ width: $tooltip-arrow-width;
+ height: $tooltip-arrow-height;
+ }
+
+ .arrow::before {
+ position: absolute;
+ border-color: transparent;
+ border-style: solid;
+ }
+
+ &.bs-tooltip-top {
+ padding: $tooltip-arrow-width 0;
+ .arrow {
+ bottom: 0;
+ }
+
+ .arrow::before {
+ margin-left: -($tooltip-arrow-width - 2);
+ content: "";
+ border-width: $tooltip-arrow-width $tooltip-arrow-width 0;
+ border-top-color: $tooltip-arrow-color;
+ }
+ }
+ &.bs-tooltip-right {
+ padding: 0 $tooltip-arrow-width;
+ .arrow {
+ left: 0;
+ }
+
+ .arrow::before {
+ margin-top: -($tooltip-arrow-width - 2);
+ content: "";
+ border-width: $tooltip-arrow-width $tooltip-arrow-width $tooltip-arrow-width 0;
+ border-right-color: $tooltip-arrow-color;
+ }
+ }
+ &.bs-tooltip-bottom {
+ padding: $tooltip-arrow-width 0;
+ .arrow {
+ top: 0;
+ }
+
+ .arrow::before {
+ margin-left: -($tooltip-arrow-width - 2);
+ content: "";
+ border-width: 0 $tooltip-arrow-width $tooltip-arrow-width;
+ border-bottom-color: $tooltip-arrow-color;
+ }
+ }
+ &.bs-tooltip-left {
+ padding: 0 $tooltip-arrow-width;
+ .arrow {
+ right: 0;
+ }
+
+ .arrow::before {
+ right: 0;
+ margin-top: -($tooltip-arrow-width - 2);
+ content: "";
+ border-width: $tooltip-arrow-width 0 $tooltip-arrow-width $tooltip-arrow-width;
+ border-left-color: $tooltip-arrow-color;
+ }
+ }
+ &.bs-tooltip-auto {
+ &[x-placement^="top"] {
+ @extend .bs-tooltip-top;
+ }
+ &[x-placement^="right"] {
+ @extend .bs-tooltip-right;
+ }
+ &[x-placement^="bottom"] {
+ @extend .bs-tooltip-bottom;
+ }
+ &[x-placement^="left"] {
+ @extend .bs-tooltip-left;
+ }
+ }
+}
+
+// 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($border-radius);
+}
diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/_transitions.scss b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/_transitions.scss
new file mode 100644
index 0000000000..df5744b25f
--- /dev/null
+++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/_transitions.scss
@@ -0,0 +1,36 @@
+// stylelint-disable selector-no-qualifying-type
+
+.fade {
+ opacity: 0;
+ @include transition($transition-fade);
+
+ &.show {
+ opacity: 1;
+ }
+}
+
+.collapse {
+ display: none;
+ &.show {
+ display: block;
+ }
+}
+
+tr {
+ &.collapse.show {
+ display: table-row;
+ }
+}
+
+tbody {
+ &.collapse.show {
+ display: table-row-group;
+ }
+}
+
+.collapsing {
+ position: relative;
+ height: 0;
+ overflow: hidden;
+ @include transition($transition-collapse);
+}
diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/_type.scss b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/_type.scss
new file mode 100644
index 0000000000..b1b8f61cf5
--- /dev/null
+++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/_type.scss
@@ -0,0 +1,125 @@
+// stylelint-disable declaration-no-important, selector-list-comma-newline-after
+
+//
+// Headings
+//
+
+h1, h2, h3, h4, h5, h6,
+.h1, .h2, .h3, .h4, .h5, .h6 {
+ margin-bottom: $headings-margin-bottom;
+ font-family: $headings-font-family;
+ font-weight: $headings-font-weight;
+ line-height: $headings-line-height;
+ color: $headings-color;
+}
+
+h1, .h1 { font-size: $h1-font-size; }
+h2, .h2 { font-size: $h2-font-size; }
+h3, .h3 { font-size: $h3-font-size; }
+h4, .h4 { font-size: $h4-font-size; }
+h5, .h5 { font-size: $h5-font-size; }
+h6, .h6 { font-size: $h6-font-size; }
+
+.lead {
+ font-size: $lead-font-size;
+ font-weight: $lead-font-weight;
+}
+
+// Type display classes
+.display-1 {
+ font-size: $display1-size;
+ font-weight: $display1-weight;
+ line-height: $display-line-height;
+}
+.display-2 {
+ font-size: $display2-size;
+ font-weight: $display2-weight;
+ line-height: $display-line-height;
+}
+.display-3 {
+ font-size: $display3-size;
+ font-weight: $display3-weight;
+ line-height: $display-line-height;
+}
+.display-4 {
+ font-size: $display4-size;
+ font-weight: $display4-weight;
+ line-height: $display-line-height;
+}
+
+
+//
+// Horizontal rules
+//
+
+hr {
+ margin-top: 1rem;
+ margin-bottom: 1rem;
+ border: 0;
+ border-top: $hr-border-width solid $hr-border-color;
+}
+
+
+//
+// Emphasis
+//
+
+small,
+.small {
+ font-size: $small-font-size;
+ font-weight: $font-weight-normal;
+}
+
+mark,
+.mark {
+ padding: $mark-padding;
+ background-color: $mark-bg;
+}
+
+
+//
+// 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 {
+ font-size: 90%;
+ text-transform: uppercase;
+}
+
+// Blockquotes
+.blockquote {
+ margin-bottom: $spacer;
+ font-size: $blockquote-font-size;
+}
+
+.blockquote-footer {
+ display: block;
+ font-size: 80%; // back to default font-size
+ color: $blockquote-small-color;
+
+ &::before {
+ content: "\2014 \00A0"; // em dash, nbsp
+ }
+}
diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/_utilities.scss b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/_utilities.scss
new file mode 100644
index 0000000000..7b2a1ebe9d
--- /dev/null
+++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/_utilities.scss
@@ -0,0 +1,14 @@
+@import "utilities/align";
+@import "utilities/background";
+@import "utilities/borders";
+@import "utilities/clearfix";
+@import "utilities/display";
+@import "utilities/embed";
+@import "utilities/flex";
+@import "utilities/float";
+@import "utilities/position";
+@import "utilities/screenreaders";
+@import "utilities/sizing";
+@import "utilities/spacing";
+@import "utilities/text";
+@import "utilities/visibility";
diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/_variables.scss b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/_variables.scss
new file mode 100644
index 0000000000..0615f35d41
--- /dev/null
+++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/_variables.scss
@@ -0,0 +1,828 @@
+// 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
+//
+
+// stylelint-disable
+$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: #868e96 !default;
+$gray-700: #495057 !default;
+$gray-800: #343a40 !default;
+$gray-900: #212529 !default;
+$black: #000 !default;
+
+$grays: () !default;
+$grays: map-merge((
+ "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
+), $grays);
+
+$blue: #007bff !default;
+$indigo: #6610f2 !default;
+$purple: #6f42c1 !default;
+$pink: #e83e8c !default;
+$red: #dc3545 !default;
+$orange: #fd7e14 !default;
+$yellow: #ffc107 !default;
+$green: #28a745 !default;
+$teal: #20c997 !default;
+$cyan: #17a2b8 !default;
+
+$colors: () !default;
+$colors: map-merge((
+ "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
+), $colors);
+
+$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-800 !default;
+
+$theme-colors: () !default;
+$theme-colors: map-merge((
+ "primary": $primary,
+ "secondary": $secondary,
+ "success": $success,
+ "info": $info,
+ "warning": $warning,
+ "danger": $danger,
+ "light": $light,
+ "dark": $dark
+), $theme-colors);
+// stylelint-enable
+
+// Set a specific jump point for requesting color jumps
+$theme-color-interval: 8% !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-hover-media-query: false !default;
+$enable-grid-classes: true !default;
+$enable-print-styles: true !default;
+
+
+// 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 !default;
+$spacers: (
+ 0: 0,
+ 1: ($spacer * .25),
+ 2: ($spacer * .5),
+ 3: $spacer,
+ 4: ($spacer * 1.5),
+ 5: ($spacer * 3)
+) !default;
+
+// This variable affects the `.h-*` and `.w-*` classes.
+$sizes: (
+ 25: 25%,
+ 50: 50%,
+ 75: 75%,
+ 100: 100%
+) !default;
+
+// Body
+//
+// Settings for the `` element.
+
+$body-bg: $white !default;
+$body-color: $gray-900 !default;
+
+// Links
+//
+// Style anchor elements.
+
+$link-color: theme-color("primary") !default;
+$link-decoration: none !default;
+$link-hover-color: darken($link-color, 15%) !default;
+$link-hover-decoration: underline !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.
+
+$grid-breakpoints: (
+ xs: 0,
+ sm: 576px,
+ md: 768px,
+ lg: 992px,
+ xl: 1200px
+) !default;
+
+@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
+) !default;
+
+@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: 30px !default;
+
+// Components
+//
+// Define common padding and border radius sizes and more.
+
+$line-height-lg: 1.5 !default;
+$line-height-sm: 1.5 !default;
+
+$border-width: 1px !default;
+$border-color: $gray-200 !default;
+
+$border-radius: .25rem !default;
+$border-radius-lg: .3rem !default;
+$border-radius-sm: .2rem !default;
+
+$component-active-color: $white !default;
+$component-active-bg: theme-color("primary") !default;
+
+$caret-width: .3em !default;
+
+$transition-base: all .2s ease-in-out !default;
+$transition-fade: opacity .15s linear !default;
+$transition-collapse: height .35s ease !default;
+
+
+// Fonts
+//
+// Font, line-height, and color for body text, headings, and more.
+
+// stylelint-disable value-keyword-case
+$font-family-sans-serif: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol" !default;
+$font-family-monospace: "SFMono-Regular", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace !default;
+$font-family-base: $font-family-sans-serif !default;
+// stylelint-enable value-keyword-case
+
+$font-size-base: 1rem !default; // Assumes the browser default, typically `16px`
+$font-size-lg: ($font-size-base * 1.25) !default;
+$font-size-sm: ($font-size-base * .875) !default;
+
+$font-weight-light: 300 !default;
+$font-weight-normal: 400 !default;
+$font-weight-bold: 700 !default;
+
+$font-weight-base: $font-weight-normal !default;
+$line-height-base: 1.5 !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;
+
+$headings-margin-bottom: ($spacer / 2) !default;
+$headings-font-family: inherit !default;
+$headings-font-weight: 500 !default;
+$headings-line-height: 1.2 !default;
+$headings-color: inherit !default;
+
+$display1-size: 6rem !default;
+$display2-size: 5.5rem !default;
+$display3-size: 4.5rem !default;
+$display4-size: 3.5rem !default;
+
+$display1-weight: 300 !default;
+$display2-weight: 300 !default;
+$display3-weight: 300 !default;
+$display4-weight: 300 !default;
+$display-line-height: $headings-line-height !default;
+
+$lead-font-size: ($font-size-base * 1.25) !default;
+$lead-font-weight: 300 !default;
+
+$small-font-size: 80% !default;
+
+$text-muted: $gray-600 !default;
+
+$blockquote-small-color: $gray-600 !default;
+$blockquote-font-size: ($font-size-base * 1.25) !default;
+
+$hr-border-color: rgba($black,.1) !default;
+$hr-border-width: $border-width !default;
+
+$mark-padding: .2em !default;
+
+$dt-font-weight: $font-weight-bold !default;
+
+$kbd-box-shadow: inset 0 -.1rem 0 rgba($black,.25) !default;
+$nested-kbd-font-weight: $font-weight-bold !default;
+
+$list-inline-padding: 5px !default;
+
+$mark-bg: #fcf8e3 !default;
+
+
+// Tables
+//
+// Customizes the `.table` component with basic values, each used across all table variations.
+
+$table-cell-padding: .75rem !default;
+$table-cell-padding-sm: .3rem !default;
+
+$table-bg: transparent !default;
+$table-accent-bg: rgba($black,.05) !default;
+$table-hover-bg: rgba($black,.075) !default;
+$table-active-bg: $table-hover-bg !default;
+
+$table-border-width: $border-width !default;
+$table-border-color: $gray-200 !default;
+
+$table-head-bg: $gray-200 !default;
+$table-head-color: $gray-700 !default;
+
+$table-dark-bg: $gray-900 !default;
+$table-dark-accent-bg: rgba($white, .05) !default;
+$table-dark-hover-bg: rgba($white, .075) !default;
+$table-dark-border-color: lighten($gray-900, 7.5%) !default;
+$table-dark-color: $body-bg !default;
+
+
+// Buttons
+//
+// For each of Bootstrap's buttons, define text, background and border color.
+
+$input-btn-padding-y: .375rem !default;
+$input-btn-padding-x: .75rem !default;
+$input-btn-line-height: $line-height-base !default;
+
+$input-btn-focus-width: .2rem !default;
+$input-btn-focus-color: rgba(theme-color("primary"), .25) !default;
+$input-btn-focus-box-shadow: 0 0 0 $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-line-height-sm: $line-height-sm !default;
+
+$input-btn-padding-y-lg: .5rem !default;
+$input-btn-padding-x-lg: 1rem !default;
+$input-btn-line-height-lg: $line-height-lg !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-active-box-shadow: inset 0 3px 5px rgba($black,.125) !default;
+
+$btn-link-disabled-color: $gray-600 !default;
+
+$btn-block-spacing-y: .5rem !default;
+
+// Allows for customizing button radius independently from global border radius
+$btn-border-radius: $border-radius !default;
+$btn-border-radius-lg: $border-radius-lg !default;
+$btn-border-radius-sm: $border-radius-sm !default;
+
+$btn-transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;
+
+
+// Forms
+
+$input-bg: $white !default;
+$input-disabled-bg: $gray-200 !default;
+
+$input-color: $gray-700 !default;
+$input-border-color: $gray-400 !default;
+$input-btn-border-width: $border-width !default; // For form controls and buttons
+$input-box-shadow: inset 0 1px 1px rgba($black,.075) !default;
+
+$input-border-radius: $border-radius !default;
+$input-border-radius-lg: $border-radius-lg !default;
+$input-border-radius-sm: $border-radius-sm !default;
+
+$input-focus-bg: $input-bg !default;
+$input-focus-border-color: lighten(theme-color("primary"), 25%) !default;
+$input-focus-color: $input-color !default;
+
+$input-placeholder-color: $gray-600 !default;
+
+$input-height-border: $input-btn-border-width * 2 !default;
+
+$input-height-inner: ($font-size-base * $input-btn-line-height) + ($input-btn-padding-y * 2) !default;
+$input-height: calc(#{$input-height-inner} + #{$input-height-border}) !default;
+
+$input-height-inner-sm: ($font-size-sm * $input-btn-line-height-sm) + ($input-btn-padding-y-sm * 2) !default;
+$input-height-sm: calc(#{$input-height-inner-sm} + #{$input-height-border}) !default;
+
+$input-height-inner-lg: ($font-size-lg * $input-btn-line-height-lg) + ($input-btn-padding-y-lg * 2) !default;
+$input-height-lg: calc(#{$input-height-inner-lg} + #{$input-height-border}) !default;
+
+$input-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s !default;
+
+$form-text-margin-top: .25rem !default;
+
+$form-check-margin-bottom: .5rem !default;
+$form-check-input-gutter: 1.25rem !default;
+$form-check-input-margin-y: .25rem !default;
+$form-check-input-margin-x: .25rem !default;
+
+$form-check-inline-margin-x: .75rem !default;
+
+$form-group-margin-bottom: 1rem !default;
+
+$input-group-addon-color: $input-color !default;
+$input-group-addon-bg: $gray-200 !default;
+$input-group-addon-border-color: $input-border-color !default;
+
+$custom-control-gutter: 1.5rem !default;
+$custom-control-spacer-y: .25rem !default;
+$custom-control-spacer-x: 1rem !default;
+
+$custom-control-indicator-size: 1rem !default;
+$custom-control-indicator-bg: #ddd !default;
+$custom-control-indicator-bg-size: 50% 50% !default;
+$custom-control-indicator-box-shadow: inset 0 .25rem .25rem rgba($black,.1) !default;
+
+$custom-control-indicator-disabled-bg: $gray-200 !default;
+$custom-control-description-disabled-color: $gray-600 !default;
+
+$custom-control-indicator-checked-color: $white !default;
+$custom-control-indicator-checked-bg: theme-color("primary") !default;
+$custom-control-indicator-checked-box-shadow: none !default;
+
+$custom-control-indicator-focus-box-shadow: 0 0 0 1px $body-bg, $input-btn-focus-box-shadow !default;
+
+$custom-control-indicator-active-color: $white !default;
+$custom-control-indicator-active-bg: lighten(theme-color("primary"), 35%) !default;
+$custom-control-indicator-active-box-shadow: none !default;
+
+$custom-checkbox-indicator-border-radius: $border-radius !default;
+$custom-checkbox-indicator-icon-checked: str-replace(url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='#{$custom-control-indicator-checked-color}' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E"), "#", "%23") !default;
+
+$custom-checkbox-indicator-indeterminate-bg: theme-color("primary") !default;
+$custom-checkbox-indicator-indeterminate-color: $custom-control-indicator-checked-color !default;
+$custom-checkbox-indicator-icon-indeterminate: str-replace(url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='#{$custom-checkbox-indicator-indeterminate-color}' d='M0 2h4'/%3E%3C/svg%3E"), "#", "%23") !default;
+$custom-checkbox-indicator-indeterminate-box-shadow: none !default;
+
+$custom-radio-indicator-border-radius: 50% !default;
+$custom-radio-indicator-icon-checked: str-replace(url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='#{$custom-control-indicator-checked-color}'/%3E%3C/svg%3E"), "#", "%23") !default;
+
+$custom-select-padding-y: .375rem !default;
+$custom-select-padding-x: .75rem !default;
+$custom-select-height: $input-height !default;
+$custom-select-indicator-padding: 1rem !default; // Extra padding to account for the presence of the background-image based indicator
+$custom-select-line-height: $input-btn-line-height !default;
+$custom-select-color: $input-color !default;
+$custom-select-disabled-color: $gray-600 !default;
+$custom-select-bg: $white !default;
+$custom-select-disabled-bg: $gray-200 !default;
+$custom-select-bg-size: 8px 10px !default; // In pixels because image dimensions
+$custom-select-indicator-color: #333 !default;
+$custom-select-indicator: str-replace(url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='#{$custom-select-indicator-color}' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E"), "#", "%23") !default;
+$custom-select-border-width: $input-btn-border-width !default;
+$custom-select-border-color: $input-border-color !default;
+$custom-select-border-radius: $border-radius !default;
+
+$custom-select-focus-border-color: lighten(theme-color("primary"), 25%) !default;
+$custom-select-focus-box-shadow: inset 0 1px 2px rgba($black, .075), 0 0 5px rgba($custom-select-focus-border-color, .5) !default;
+
+$custom-select-font-size-sm: 75% !default;
+$custom-select-height-sm: $input-height-sm !default;
+
+$custom-file-height: $input-height !default;
+$custom-file-width: 14rem !default;
+$custom-file-focus-box-shadow: 0 0 0 .075rem $white, 0 0 0 .2rem theme-color("primary") !default;
+
+$custom-file-padding-y: $input-btn-padding-y !default;
+$custom-file-padding-x: $input-btn-padding-x !default;
+$custom-file-line-height: $input-btn-line-height !default;
+$custom-file-color: $input-color !default;
+$custom-file-bg: $input-bg !default;
+$custom-file-border-width: $input-btn-border-width !default;
+$custom-file-border-color: $input-border-color !default;
+$custom-file-border-radius: $input-border-radius !default;
+$custom-file-box-shadow: $input-box-shadow !default;
+$custom-file-button-color: $custom-file-color !default;
+$custom-file-button-bg: $input-group-addon-bg !default;
+$custom-file-text: (
+ placeholder: (
+ en: "Choose file..."
+ ),
+ button-label: (
+ en: "Browse"
+ )
+) !default;
+
+
+// Form validation
+$form-feedback-valid-color: theme-color("success") !default;
+$form-feedback-invalid-color: theme-color("danger") !default;
+
+
+// Dropdowns
+//
+// Dropdown menu container and contents.
+
+$dropdown-min-width: 10rem !default;
+$dropdown-padding-y: .5rem !default;
+$dropdown-spacer: .125rem !default;
+$dropdown-bg: $white !default;
+$dropdown-border-color: rgba($black,.15) !default;
+$dropdown-border-width: $border-width !default;
+$dropdown-divider-bg: $gray-200 !default;
+$dropdown-box-shadow: 0 .5rem 1rem rgba($black,.175) !default;
+
+$dropdown-link-color: $gray-900 !default;
+$dropdown-link-hover-color: darken($gray-900, 5%) !default;
+$dropdown-link-hover-bg: $gray-100 !default;
+
+$dropdown-link-active-color: $component-active-color !default;
+$dropdown-link-active-bg: $component-active-bg !default;
+
+$dropdown-link-disabled-color: $gray-600 !default;
+
+$dropdown-item-padding-y: .25rem !default;
+$dropdown-item-padding-x: 1.5rem !default;
+
+$dropdown-header-color: $gray-600 !default;
+
+
+// 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 !default;
+$zindex-sticky: 1020 !default;
+$zindex-fixed: 1030 !default;
+$zindex-modal-backdrop: 1040 !default;
+$zindex-modal: 1050 !default;
+$zindex-popover: 1060 !default;
+$zindex-tooltip: 1070 !default;
+
+// Navs
+
+$nav-link-padding-y: .5rem !default;
+$nav-link-padding-x: 1rem !default;
+$nav-link-disabled-color: $gray-600 !default;
+
+$nav-tabs-border-color: #ddd !default;
+$nav-tabs-border-width: $border-width !default;
+$nav-tabs-border-radius: $border-radius !default;
+$nav-tabs-link-hover-border-color: $gray-200 !default;
+$nav-tabs-link-active-color: $gray-700 !default;
+$nav-tabs-link-active-bg: $body-bg !default;
+$nav-tabs-link-active-border-color: #ddd !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;
+
+// Navbar
+
+$navbar-padding-y: ($spacer / 2) !default;
+$navbar-padding-x: $spacer !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) / 2 !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-dark-color: rgba($white,.5) !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: str-replace(url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='#{$navbar-dark-color}' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E"), "#", "%23") !default;
+$navbar-dark-toggler-border-color: rgba($white,.1) !default;
+
+$navbar-light-color: rgba($black,.5) !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: str-replace(url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='#{$navbar-light-color}' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E"), "#", "%23") !default;
+$navbar-light-toggler-border-color: rgba($black,.1) !default;
+
+// Pagination
+
+$pagination-padding-y: .5rem !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-line-height: 1.25 !default;
+
+$pagination-color: $link-color !default;
+$pagination-bg: $white !default;
+$pagination-border-width: $border-width !default;
+$pagination-border-color: #ddd !default;
+
+$pagination-hover-color: $link-hover-color !default;
+$pagination-hover-bg: $gray-200 !default;
+$pagination-hover-border-color: #ddd !default;
+
+$pagination-active-color: $white !default;
+$pagination-active-bg: theme-color("primary") !default;
+$pagination-active-border-color: theme-color("primary") !default;
+
+$pagination-disabled-color: $gray-600 !default;
+$pagination-disabled-bg: $white !default;
+$pagination-disabled-border-color: #ddd !default;
+
+
+// Jumbotron
+
+$jumbotron-padding: 2rem !default;
+$jumbotron-bg: $gray-200 !default;
+
+
+// Cards
+
+$card-spacer-y: .75rem !default;
+$card-spacer-x: 1.25rem !default;
+$card-border-width: $border-width !default;
+$card-border-radius: $border-radius !default;
+$card-border-color: rgba($black,.125) !default;
+$card-inner-border-radius: calc(#{$card-border-radius} - #{$card-border-width}) !default;
+$card-cap-bg: rgba($black, .03) !default;
+$card-bg: $white !default;
+
+$card-img-overlay-padding: 1.25rem !default;
+
+$card-group-margin: ($grid-gutter-width / 2) !default;
+$card-deck-margin: $card-group-margin !default;
+
+$card-columns-count: 3 !default;
+$card-columns-gap: 1.25rem !default;
+$card-columns-margin: $card-spacer-y !default;
+
+
+// Tooltips
+
+$tooltip-max-width: 200px !default;
+$tooltip-color: $white !default;
+$tooltip-bg: $black !default;
+$tooltip-opacity: .9 !default;
+$tooltip-padding-y: 3px !default;
+$tooltip-padding-x: 8px !default;
+$tooltip-margin: 0 !default;
+
+
+$tooltip-arrow-width: 5px !default;
+$tooltip-arrow-height: 5px !default;
+$tooltip-arrow-color: $tooltip-bg !default;
+
+
+// Popovers
+
+$popover-bg: $white !default;
+$popover-max-width: 276px !default;
+$popover-border-width: $border-width !default;
+$popover-border-color: rgba($black,.2) !default;
+$popover-box-shadow: 0 .25rem .5rem rgba($black,.2) !default;
+
+$popover-header-bg: darken($popover-bg, 3%) !default;
+$popover-header-color: $headings-color !default;
+$popover-header-padding-y: .5rem !default;
+$popover-header-padding-x: .75rem !default;
+
+$popover-body-color: $body-color !default;
+$popover-body-padding-y: $popover-header-padding-y !default;
+$popover-body-padding-x: $popover-header-padding-x !default;
+
+$popover-arrow-width: .8rem !default;
+$popover-arrow-height: .4rem !default;
+$popover-arrow-color: $popover-bg !default;
+
+$popover-arrow-outer-color: fade-in($popover-border-color, .05) !default;
+
+
+// Badges
+
+$badge-font-size: 75% !default;
+$badge-font-weight: $font-weight-bold !default;
+$badge-padding-y: .25em !default;
+$badge-padding-x: .4em !default;
+$badge-border-radius: $border-radius !default;
+
+$badge-pill-padding-x: .6em !default;
+// Use a higher than normal value to ensure completely rounded edges when
+// customizing padding or font-size on labels.
+$badge-pill-border-radius: 10rem !default;
+
+
+// Modals
+
+// Padding applied to the modal body
+$modal-inner-padding: 15px !default;
+
+$modal-dialog-margin: 10px !default;
+$modal-dialog-margin-y-sm-up: 30px !default;
+
+$modal-title-line-height: $line-height-base !default;
+
+$modal-content-bg: $white !default;
+$modal-content-border-color: rgba($black,.2) !default;
+$modal-content-border-width: $border-width !default;
+$modal-content-box-shadow-xs: 0 3px 9px rgba($black,.5) !default;
+$modal-content-box-shadow-sm-up: 0 5px 15px rgba($black,.5) !default;
+
+$modal-backdrop-bg: $black !default;
+$modal-backdrop-opacity: .5 !default;
+$modal-header-border-color: $gray-200 !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: 15px !default;
+
+$modal-lg: 800px !default;
+$modal-md: 500px !default;
+$modal-sm: 300px !default;
+
+$modal-transition: transform .3s ease-out !default;
+
+
+// Alerts
+//
+// Define alert colors, border radius, and padding.
+
+$alert-padding-y: .75rem !default;
+$alert-padding-x: 1.25rem !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;
+
+
+// Progress bars
+
+$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: inset 0 .1rem .1rem rgba($black,.1) !default;
+$progress-bar-color: $white !default;
+$progress-bar-bg: theme-color("primary") !default;
+$progress-bar-animation-timing: 1s linear infinite !default;
+$progress-bar-transition: width .6s ease !default;
+
+// List group
+
+$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: .75rem !default;
+$list-group-item-padding-x: 1.25rem !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;
+
+
+// Image thumbnails
+
+$thumbnail-padding: .25rem !default;
+$thumbnail-bg: $body-bg !default;
+$thumbnail-border-width: $border-width !default;
+$thumbnail-border-color: #ddd !default;
+$thumbnail-border-radius: $border-radius !default;
+$thumbnail-box-shadow: 0 1px 2px rgba($black,.075) !default;
+$thumbnail-transition: all .2s ease-in-out !default;
+
+
+// Figures
+
+$figure-caption-font-size: 90% !default;
+$figure-caption-color: $gray-600 !default;
+
+
+// Breadcrumbs
+
+$breadcrumb-padding-y: .75rem !default;
+$breadcrumb-padding-x: 1rem !default;
+$breadcrumb-item-padding: .5rem !default;
+
+$breadcrumb-margin-bottom: 1rem !default;
+
+$breadcrumb-bg: $gray-200 !default;
+$breadcrumb-divider-color: $gray-600 !default;
+$breadcrumb-active-color: $gray-600 !default;
+$breadcrumb-divider: "/" !default;
+
+
+// Carousel
+
+$carousel-control-color: $white !default;
+$carousel-control-width: 15% !default;
+$carousel-control-opacity: .5 !default;
+
+$carousel-indicator-width: 30px !default;
+$carousel-indicator-height: 3px !default;
+$carousel-indicator-spacer: 3px !default;
+$carousel-indicator-active-bg: $white !default;
+
+$carousel-caption-width: 70% !default;
+$carousel-caption-color: $white !default;
+
+$carousel-control-icon-width: 20px !default;
+
+$carousel-control-prev-icon-bg: str-replace(url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E"), "#", "%23") !default;
+$carousel-control-next-icon-bg: str-replace(url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E"), "#", "%23") !default;
+
+$carousel-transition: transform .6s ease !default;
+
+
+// Close
+
+$close-font-size: $font-size-base * 1.5 !default;
+$close-font-weight: $font-weight-bold !default;
+$close-color: $black !default;
+$close-text-shadow: 0 1px 0 $white !default;
+
+// Code
+
+$code-font-size: 90% !default;
+$code-padding-y: .2rem !default;
+$code-padding-x: .4rem !default;
+$code-color: #bd4147 !default;
+$code-bg: $gray-100 !default;
+
+$kbd-color: $white !default;
+$kbd-bg: $gray-900 !default;
+
+$pre-color: $gray-900 !default;
+$pre-scrollable-max-height: 340px !default;
diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/bootstrap-grid.scss b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/bootstrap-grid.scss
new file mode 100644
index 0000000000..d7d4e7863d
--- /dev/null
+++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/bootstrap-grid.scss
@@ -0,0 +1,35 @@
+/*!
+ * Bootstrap Grid v4.0.0-beta.2 (https://getbootstrap.com)
+ * Copyright 2011-2017 The Bootstrap Authors
+ * Copyright 2011-2017 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ */
+
+@at-root {
+ @-ms-viewport { width: device-width; } // stylelint-disable-line at-rule-no-vendor-prefix
+}
+
+html {
+ box-sizing: border-box;
+ -ms-overflow-style: scrollbar;
+}
+
+*,
+*::before,
+*::after {
+ box-sizing: inherit;
+}
+
+@import "functions";
+@import "variables";
+
+//
+// Grid mixins
+//
+
+@import "mixins/breakpoints";
+@import "mixins/grid-framework";
+@import "mixins/grid";
+
+@import "grid";
+@import "utilities/flex";
diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/bootstrap-reboot.scss b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/bootstrap-reboot.scss
new file mode 100644
index 0000000000..3bc8760a9f
--- /dev/null
+++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/bootstrap-reboot.scss
@@ -0,0 +1,12 @@
+/*!
+ * Bootstrap Reboot v4.0.0-beta.2 (https://getbootstrap.com)
+ * Copyright 2011-2017 The Bootstrap Authors
+ * Copyright 2011-2017 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
+ */
+
+@import "functions";
+@import "variables";
+@import "mixins";
+@import "reboot";
diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/bootstrap.scss b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/bootstrap.scss
new file mode 100644
index 0000000000..bfeffacacf
--- /dev/null
+++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/bootstrap.scss
@@ -0,0 +1,42 @@
+/*!
+ * Bootstrap v4.0.0-beta.2 (https://getbootstrap.com)
+ * Copyright 2011-2017 The Bootstrap Authors
+ * Copyright 2011-2017 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ */
+
+@import "functions";
+@import "variables";
+@import "mixins";
+@import "root";
+@import "print";
+@import "reboot";
+@import "type";
+@import "images";
+@import "code";
+@import "grid";
+@import "tables";
+@import "forms";
+@import "buttons";
+@import "transitions";
+@import "dropdown";
+@import "button-group";
+@import "input-group";
+@import "custom-forms";
+@import "nav";
+@import "navbar";
+@import "card";
+@import "breadcrumb";
+@import "pagination";
+@import "badge";
+@import "jumbotron";
+@import "alert";
+@import "progress";
+@import "media";
+@import "list-group";
+@import "close";
+@import "modal";
+@import "tooltip";
+@import "popover";
+@import "carousel";
+@import "utilities";
diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_alert.scss b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_alert.scss
new file mode 100644
index 0000000000..db5a7eb454
--- /dev/null
+++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_alert.scss
@@ -0,0 +1,13 @@
+@mixin alert-variant($background, $border, $color) {
+ color: $color;
+ @include gradient-bg($background);
+ border-color: $border;
+
+ hr {
+ border-top-color: darken($border, 5%);
+ }
+
+ .alert-link {
+ color: darken($color, 10%);
+ }
+}
diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_background-variant.scss b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_background-variant.scss
new file mode 100644
index 0000000000..7d1bc975c1
--- /dev/null
+++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_background-variant.scss
@@ -0,0 +1,20 @@
+// stylelint-disable declaration-no-important
+
+// Contextual backgrounds
+
+@mixin bg-variant($parent, $color) {
+ #{$parent} {
+ background-color: $color !important;
+ }
+ a#{$parent} {
+ @include hover-focus {
+ background-color: darken($color, 10%) !important;
+ }
+ }
+}
+
+@mixin bg-gradient-variant($parent, $color) {
+ #{$parent} {
+ background: $color linear-gradient(180deg, mix($body-bg, $color, 15%), $color) repeat-x !important;
+ }
+}
diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_badge.scss b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_badge.scss
new file mode 100644
index 0000000000..eeca0b40de
--- /dev/null
+++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_badge.scss
@@ -0,0 +1,12 @@
+@mixin badge-variant($bg) {
+ color: color-yiq($bg);
+ background-color: $bg;
+
+ &[href] {
+ @include hover-focus {
+ color: color-yiq($bg);
+ text-decoration: none;
+ background-color: darken($bg, 10%);
+ }
+ }
+}
diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_border-radius.scss b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_border-radius.scss
new file mode 100644
index 0000000000..2024febcfa
--- /dev/null
+++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_border-radius.scss
@@ -0,0 +1,35 @@
+// Single side border-radius
+
+@mixin border-radius($radius: $border-radius) {
+ @if $enable-rounded {
+ border-radius: $radius;
+ }
+}
+
+@mixin border-top-radius($radius) {
+ @if $enable-rounded {
+ border-top-left-radius: $radius;
+ border-top-right-radius: $radius;
+ }
+}
+
+@mixin border-right-radius($radius) {
+ @if $enable-rounded {
+ border-top-right-radius: $radius;
+ border-bottom-right-radius: $radius;
+ }
+}
+
+@mixin border-bottom-radius($radius) {
+ @if $enable-rounded {
+ border-bottom-right-radius: $radius;
+ border-bottom-left-radius: $radius;
+ }
+}
+
+@mixin border-left-radius($radius) {
+ @if $enable-rounded {
+ border-top-left-radius: $radius;
+ border-bottom-left-radius: $radius;
+ }
+}
diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_box-shadow.scss b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_box-shadow.scss
new file mode 100644
index 0000000000..b2410e53ac
--- /dev/null
+++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_box-shadow.scss
@@ -0,0 +1,5 @@
+@mixin box-shadow($shadow...) {
+ @if $enable-shadows {
+ box-shadow: $shadow;
+ }
+}
diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_breakpoints.scss b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_breakpoints.scss
new file mode 100644
index 0000000000..a9866bd907
--- /dev/null
+++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_breakpoints.scss
@@ -0,0 +1,119 @@
+// Breakpoint viewport sizes and media queries.
+//
+// Breakpoints are defined as a map of (name: minimum width), order from small to large:
+//
+// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)
+//
+// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.
+
+// Name of the next breakpoint, or null for the last breakpoint.
+//
+// >> 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);
+ @return if($n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);
+}
+
+// Minimum breakpoint width. Null for the smallest (first) breakpoint.
+//
+// >> 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. Null for the largest (last) breakpoint.
+// The maximum value is calculated as the minimum of the next one less 0.1.
+//
+// >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))
+// 767px
+@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {
+ $next: breakpoint-next($name, $breakpoints);
+ @return if($next, breakpoint-min($next, $breakpoints) - 1px, null);
+}
+
+// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash infront.
+// 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) {
+ @content;
+ }
+ } @else if $min == null {
+ @include media-breakpoint-down($upper) {
+ @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);
+ $max: breakpoint-max($name, $breakpoints);
+
+ @if $min != null and $max != null {
+ @media (min-width: $min) and (max-width: $max) {
+ @content;
+ }
+ } @else if $max == null {
+ @include media-breakpoint-up($name) {
+ @content;
+ }
+ } @else if $min == null {
+ @include media-breakpoint-down($name) {
+ @content;
+ }
+ }
+}
diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_buttons.scss b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_buttons.scss
new file mode 100644
index 0000000000..9e06261396
--- /dev/null
+++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_buttons.scss
@@ -0,0 +1,94 @@
+// Button variants
+//
+// Easily pump out default styles, as well as :hover, :focus, :active,
+// and disabled options for all buttons
+
+@mixin button-variant($background, $border, $hover-background: darken($background, 7.5%), $hover-border: darken($border, 10%), $active-background: darken($background, 10%), $active-border: darken($border, 12.5%)) {
+ color: color-yiq($background);
+ @include gradient-bg($background);
+ border-color: $border;
+ @include box-shadow($btn-box-shadow);
+
+ @include hover {
+ color: color-yiq($hover-background);
+ @include gradient-bg($hover-background);
+ border-color: $hover-border;
+ }
+
+ &:focus,
+ &.focus {
+ // Avoid using mixin so we can pass custom focus shadow properly
+ @if $enable-shadows {
+ box-shadow: $btn-box-shadow, 0 0 0 $input-btn-focus-width rgba($border, .5);
+ } @else {
+ box-shadow: 0 0 0 $input-btn-focus-width rgba($border, .5);
+ }
+ }
+
+ // Disabled comes first so active can properly restyle
+ &.disabled,
+ &:disabled {
+ background-color: $background;
+ border-color: $border;
+ }
+
+ &:not([disabled]):not(.disabled):active,
+ &:not([disabled]):not(.disabled).active,
+ .show > &.dropdown-toggle {
+ color: color-yiq($active-background);
+ background-color: $active-background;
+ @if $enable-gradients {
+ background-image: none; // Remove the gradient for the pressed/active state
+ }
+ border-color: $active-border;
+
+ // Avoid using mixin so we can pass custom focus shadow properly
+ @if $enable-shadows {
+ box-shadow: $btn-active-box-shadow, 0 0 0 $input-btn-focus-width rgba($border, .5);
+ } @else {
+ box-shadow: 0 0 0 $input-btn-focus-width rgba($border, .5);
+ }
+ }
+}
+
+@mixin button-outline-variant($color, $color-hover: #fff) {
+ color: $color;
+ background-color: transparent;
+ background-image: none;
+ border-color: $color;
+
+ @include hover {
+ color: $color-hover;
+ background-color: $color;
+ border-color: $color;
+ }
+
+ &:focus,
+ &.focus {
+ box-shadow: 0 0 0 $input-btn-focus-width rgba($color, .5);
+ }
+
+ &.disabled,
+ &:disabled {
+ color: $color;
+ background-color: transparent;
+ }
+
+ &:not([disabled]):not(.disabled):active,
+ &:not([disabled]):not(.disabled).active,
+ .show > &.dropdown-toggle {
+ color: $color-hover;
+ background-color: $color;
+ border-color: $color;
+ // Avoid using mixin so we can pass custom focus shadow properly
+ box-shadow: 0 0 0 $input-btn-focus-width rgba($color, .5);
+ }
+}
+
+// Button sizes
+@mixin button-size($padding-y, $padding-x, $font-size, $line-height, $border-radius) {
+ padding: $padding-y $padding-x;
+ font-size: $font-size;
+ line-height: $line-height;
+ @include border-radius($border-radius);
+}
diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_caret.scss b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_caret.scss
new file mode 100644
index 0000000000..daab9d03c0
--- /dev/null
+++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_caret.scss
@@ -0,0 +1,35 @@
+@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($direction: down) {
+ @if $enable-caret {
+ &::after {
+ display: inline-block;
+ width: 0;
+ height: 0;
+ margin-left: $caret-width * .85;
+ vertical-align: $caret-width * .85;
+ content: "";
+ @if $direction == down {
+ @include caret-down;
+ } @else if $direction == up {
+ @include caret-up;
+ }
+ }
+
+ &:empty::after {
+ margin-left: 0;
+ }
+ }
+}
diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_clearfix.scss b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_clearfix.scss
new file mode 100644
index 0000000000..11a977b737
--- /dev/null
+++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_clearfix.scss
@@ -0,0 +1,7 @@
+@mixin clearfix() {
+ &::after {
+ display: block;
+ clear: both;
+ content: "";
+ }
+}
diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_float.scss b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_float.scss
new file mode 100644
index 0000000000..48fa8b6d59
--- /dev/null
+++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_float.scss
@@ -0,0 +1,11 @@
+// stylelint-disable declaration-no-important
+
+@mixin float-left {
+ float: left !important;
+}
+@mixin float-right {
+ float: right !important;
+}
+@mixin float-none {
+ float: none !important;
+}
diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_forms.scss b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_forms.scss
new file mode 100644
index 0000000000..19d52807e8
--- /dev/null
+++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_forms.scss
@@ -0,0 +1,108 @@
+// Form control focus state
+//
+// Generate a customized focus state and for any input with the specified color,
+// which defaults to the `$input-focus-border-color` variable.
+//
+// We highly encourage you to not customize the default value, but instead use
+// this to tweak colors on an as-needed basis. This aesthetic change is based on
+// WebKit's default styles, but applicable to a wider range of browsers. Its
+// usability and accessibility should be taken into account with any change.
+//
+// Example usage: change the default blue border and shadow to white for better
+// contrast against a dark gray background.
+@mixin form-control-focus() {
+ &:focus {
+ color: $input-focus-color;
+ background-color: $input-focus-bg;
+ border-color: $input-focus-border-color;
+ outline: none;
+ // Avoid using mixin so we can pass custom focus shadow properly
+ @if $enable-shadows {
+ box-shadow: $input-box-shadow, $input-btn-focus-box-shadow;
+ } @else {
+ box-shadow: $input-btn-focus-box-shadow;
+ }
+ }
+}
+
+
+@mixin form-validation-state($state, $color) {
+
+ .#{$state}-feedback {
+ display: none;
+ margin-top: .25rem;
+ font-size: .875rem;
+ color: $color;
+ }
+
+ .#{$state}-tooltip {
+ position: absolute;
+ top: 100%;
+ z-index: 5;
+ display: none;
+ width: 250px;
+ padding: .5rem;
+ margin-top: .1rem;
+ font-size: .875rem;
+ line-height: 1;
+ color: #fff;
+ background-color: rgba($color,.8);
+ border-radius: .2rem;
+ }
+
+ .form-control,
+ .custom-select {
+ .was-validated &:#{$state},
+ &.is-#{$state} {
+ border-color: $color;
+
+ &:focus {
+ box-shadow: 0 0 0 .2rem rgba($color,.25);
+ }
+
+ ~ .#{$state}-feedback,
+ ~ .#{$state}-tooltip {
+ display: block;
+ }
+ }
+ }
+
+
+ // TODO: redo check markup lol crap
+ .form-check-input {
+ .was-validated &:#{$state},
+ &.is-#{$state} {
+ + .form-check-label {
+ color: $color;
+ }
+ }
+ }
+
+ // custom radios and checks
+ .custom-control-input {
+ .was-validated &:#{$state},
+ &.is-#{$state} {
+ ~ .custom-control-indicator {
+ background-color: rgba($color, .25);
+ }
+ ~ .custom-control-description {
+ color: $color;
+ }
+ }
+ }
+
+ // custom file
+ .custom-file-input {
+ .was-validated &:#{$state},
+ &.is-#{$state} {
+ ~ .custom-file-control {
+ border-color: $color;
+
+ &::before { border-color: inherit; }
+ }
+ &:focus {
+ box-shadow: 0 0 0 .2rem rgba($color,.25);
+ }
+ }
+ }
+}
diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_gradients.scss b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_gradients.scss
new file mode 100644
index 0000000000..ecd01f7291
--- /dev/null
+++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_gradients.scss
@@ -0,0 +1,45 @@
+// Gradients
+
+@mixin gradient-bg($color) {
+ @if $enable-gradients {
+ background: $color linear-gradient(180deg, mix($body-bg, $color, 15%), $color) repeat-x;
+ } @else {
+ background-color: $color;
+ }
+}
+
+// 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: #555, $end-color: #333, $start-percent: 0%, $end-percent: 100%) {
+ background-image: linear-gradient(to right, $start-color $start-percent, $end-color $end-percent);
+ background-repeat: repeat-x;
+}
+
+// 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: #555, $end-color: #333, $start-percent: 0%, $end-percent: 100%) {
+ background-image: linear-gradient(to bottom, $start-color $start-percent, $end-color $end-percent);
+ background-repeat: repeat-x;
+}
+
+@mixin gradient-directional($start-color: #555, $end-color: #333, $deg: 45deg) {
+ background-image: linear-gradient($deg, $start-color, $end-color);
+ background-repeat: repeat-x;
+}
+@mixin gradient-x-three-colors($start-color: #00b3ee, $mid-color: #7a43b6, $color-stop: 50%, $end-color: #c3325f) {
+ background-image: linear-gradient(to right, $start-color, $mid-color $color-stop, $end-color);
+ background-repeat: no-repeat;
+}
+@mixin gradient-y-three-colors($start-color: #00b3ee, $mid-color: #7a43b6, $color-stop: 50%, $end-color: #c3325f) {
+ background-image: linear-gradient($start-color, $mid-color $color-stop, $end-color);
+ background-repeat: no-repeat;
+}
+@mixin gradient-radial($inner-color: #555, $outer-color: #333) {
+ background-image: radial-gradient(circle, $inner-color, $outer-color);
+ background-repeat: no-repeat;
+}
+@mixin gradient-striped($color: rgba(255,255,255,.15), $angle: 45deg) {
+ background-image: linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);
+}
diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_grid-framework.scss b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_grid-framework.scss
new file mode 100644
index 0000000000..41bdf4646d
--- /dev/null
+++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_grid-framework.scss
@@ -0,0 +1,69 @@
+// 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) {
+ // Common properties for all breakpoints
+ %grid-column {
+ position: relative;
+ width: 100%;
+ min-height: 1px; // Prevent columns from collapsing when empty
+ padding-right: ($gutter / 2);
+ padding-left: ($gutter / 2);
+ }
+
+ @each $breakpoint in map-keys($breakpoints) {
+ $infix: breakpoint-infix($breakpoint, $breakpoints);
+
+ // Allow columns to stretch full width below their breakpoints
+ @for $i from 1 through $columns {
+ .col#{$infix}-#{$i} {
+ @extend %grid-column;
+ }
+ }
+ .col#{$infix},
+ .col#{$infix}-auto {
+ @extend %grid-column;
+ }
+
+ @include media-breakpoint-up($breakpoint, $breakpoints) {
+ // Provide basic `.col-{bp}` classes for equal-width flexbox columns
+ .col#{$infix} {
+ flex-basis: 0;
+ flex-grow: 1;
+ max-width: 100%;
+ }
+ .col#{$infix}-auto {
+ flex: 0 0 auto;
+ width: auto;
+ max-width: none; // Reset earlier grid tiers
+ }
+
+ @for $i from 1 through $columns {
+ .col#{$infix}-#{$i} {
+ @include make-col($i, $columns);
+ }
+ }
+
+ .order#{$infix}-first {
+ order: -1;
+ }
+
+ @for $i from 1 through $columns {
+ .order#{$infix}-#{$i} {
+ order: $i;
+ }
+ }
+
+ // `$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);
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_grid.scss b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_grid.scss
new file mode 100644
index 0000000000..b75ebcbca0
--- /dev/null
+++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_grid.scss
@@ -0,0 +1,52 @@
+/// Grid system
+//
+// Generate semantic grid columns with these mixins.
+
+@mixin make-container() {
+ width: 100%;
+ padding-right: ($grid-gutter-width / 2);
+ padding-left: ($grid-gutter-width / 2);
+ margin-right: auto;
+ margin-left: auto;
+}
+
+
+// For each breakpoint, define the maximum width of the container in a media query
+@mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) {
+ @each $breakpoint, $container-max-width in $max-widths {
+ @include media-breakpoint-up($breakpoint, $breakpoints) {
+ max-width: $container-max-width;
+ }
+ }
+}
+
+@mixin make-row() {
+ display: flex;
+ flex-wrap: wrap;
+ margin-right: ($grid-gutter-width / -2);
+ margin-left: ($grid-gutter-width / -2);
+}
+
+@mixin make-col-ready() {
+ position: relative;
+ // Prevent columns from becoming too narrow when at smaller grid tiers by
+ // always setting `width: 100%;`. This works because we use `flex` values
+ // later on to override this initial width.
+ width: 100%;
+ min-height: 1px; // Prevent collapsing
+ padding-right: ($grid-gutter-width / 2);
+ padding-left: ($grid-gutter-width / 2);
+}
+
+@mixin make-col($size, $columns: $grid-columns) {
+ flex: 0 0 percentage($size / $columns);
+ // Add a `max-width` to ensure content within each column does not blow out
+ // the width of the column. Applies to IE10+ and Firefox. Chrome and Safari
+ // do not appear to require this.
+ max-width: percentage($size / $columns);
+}
+
+@mixin make-col-offset($size, $columns: $grid-columns) {
+ $num: $size / $columns;
+ margin-left: if($num == 0, 0, percentage($num));
+}
diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_hover.scss b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_hover.scss
new file mode 100644
index 0000000000..fd2f1e2cda
--- /dev/null
+++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_hover.scss
@@ -0,0 +1,61 @@
+// stylelint-disable indentation
+@mixin hover {
+ // TODO: re-enable along with mq4-hover-shim
+// @if $enable-hover-media-query {
+// // See Media Queries Level 4: https://drafts.csswg.org/mediaqueries/#hover
+// // Currently shimmed by https://github.com/twbs/mq4-hover-shim
+// @media (hover: hover) {
+// &:hover { @content }
+// }
+// }
+// @else {
+ &:hover { @content; }
+// }
+}
+
+
+@mixin hover-focus {
+ @if $enable-hover-media-query {
+ &:focus {
+ @content;
+ }
+ @include hover { @content; }
+ } @else {
+ &:focus,
+ &:hover {
+ @content;
+ }
+ }
+}
+
+@mixin plain-hover-focus {
+ @if $enable-hover-media-query {
+ &,
+ &:focus {
+ @content;
+ }
+ @include hover { @content; }
+ } @else {
+ &,
+ &:focus,
+ &:hover {
+ @content;
+ }
+ }
+}
+
+@mixin hover-focus-active {
+ @if $enable-hover-media-query {
+ &:focus,
+ &:active {
+ @content;
+ }
+ @include hover { @content; }
+ } @else {
+ &:focus,
+ &:active,
+ &:hover {
+ @content;
+ }
+ }
+}
diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_image.scss b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_image.scss
new file mode 100644
index 0000000000..0544f0d2a3
--- /dev/null
+++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_image.scss
@@ -0,0 +1,36 @@
+// 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;
+}
+
+
+// Retina image
+//
+// Short retina mixin for setting background-image and -size.
+
+// stylelint-disable indentation, media-query-list-comma-newline-after
+@mixin img-retina($file-1x, $file-2x, $width-1x, $height-1x) {
+ background-image: url($file-1x);
+
+ // Autoprefixer takes care of adding -webkit-min-device-pixel-ratio and -o-min-device-pixel-ratio,
+ // but doesn't convert dppx=>dpi.
+ // There's no such thing as unprefixed min-device-pixel-ratio since it's nonstandard.
+ // Compatibility info: https://caniuse.com/#feat=css-media-resolution
+ @media only screen and (min-resolution: 192dpi), // IE9-11 don't support dppx
+ only screen and (min-resolution: 2dppx) { // Standardized
+ background-image: url($file-2x);
+ background-size: $width-1x $height-1x;
+ }
+}
diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_list-group.scss b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_list-group.scss
new file mode 100644
index 0000000000..278787bbed
--- /dev/null
+++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_list-group.scss
@@ -0,0 +1,24 @@
+// List Groups
+
+@mixin list-group-item-variant($state, $background, $color) {
+ .list-group-item-#{$state} {
+ color: $color;
+ background-color: $background;
+ }
+
+ a.list-group-item-#{$state},
+ button.list-group-item-#{$state} {
+ color: $color;
+
+ @include hover-focus {
+ color: $color;
+ background-color: darken($background, 5%);
+ }
+
+ &.active {
+ color: #fff;
+ background-color: $color;
+ border-color: $color;
+ }
+ }
+}
diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_lists.scss b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_lists.scss
new file mode 100644
index 0000000000..2518562669
--- /dev/null
+++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_lists.scss
@@ -0,0 +1,7 @@
+// Lists
+
+// Unstyled keeps list items block level, just removes default browser padding and list-style
+@mixin list-unstyled {
+ padding-left: 0;
+ list-style: none;
+}
diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_nav-divider.scss b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_nav-divider.scss
new file mode 100644
index 0000000000..493de03a34
--- /dev/null
+++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_nav-divider.scss
@@ -0,0 +1,10 @@
+// Horizontal dividers
+//
+// Dividers (basically an hr) within dropdowns and nav lists
+
+@mixin nav-divider($color: #e5e5e5) {
+ height: 0;
+ margin: ($spacer / 2) 0;
+ overflow: hidden;
+ border-top: 1px solid $color;
+}
diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_navbar-align.scss b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_navbar-align.scss
new file mode 100644
index 0000000000..b351660335
--- /dev/null
+++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_navbar-align.scss
@@ -0,0 +1,10 @@
+// Navbar vertical align
+//
+// Vertically center elements in the navbar.
+// Example: an element has a height of 30px, so write out `.navbar-vertical-align(30px);`
+// to calculate the appropriate top margin.
+
+// @mixin navbar-vertical-align($element-height) {
+// margin-top: (($navbar-height - $element-height) / 2);
+// margin-bottom: (($navbar-height - $element-height) / 2);
+// }
diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_pagination.scss b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_pagination.scss
new file mode 100644
index 0000000000..ff36eb6b40
--- /dev/null
+++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_pagination.scss
@@ -0,0 +1,22 @@
+// Pagination
+
+@mixin pagination-size($padding-y, $padding-x, $font-size, $line-height, $border-radius) {
+ .page-link {
+ padding: $padding-y $padding-x;
+ font-size: $font-size;
+ line-height: $line-height;
+ }
+
+ .page-item {
+ &:first-child {
+ .page-link {
+ @include border-left-radius($border-radius);
+ }
+ }
+ &:last-child {
+ .page-link {
+ @include border-right-radius($border-radius);
+ }
+ }
+ }
+}
diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_reset-text.scss b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_reset-text.scss
new file mode 100644
index 0000000000..71edb0061a
--- /dev/null
+++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_reset-text.scss
@@ -0,0 +1,17 @@
+@mixin reset-text {
+ font-family: $font-family-base;
+ // We deliberately do NOT reset font-size or 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; // stylelint-disable-line declaration-block-no-duplicate-properties
+ text-decoration: none;
+ text-shadow: none;
+ text-transform: none;
+ letter-spacing: normal;
+ word-break: normal;
+ word-spacing: normal;
+ white-space: normal;
+ line-break: auto;
+}
diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_resize.scss b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_resize.scss
new file mode 100644
index 0000000000..66f233a63c
--- /dev/null
+++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_resize.scss
@@ -0,0 +1,6 @@
+// Resize anything
+
+@mixin resizable($direction) {
+ overflow: auto; // Per CSS3 UI, `resize` only applies when `overflow` isn't `visible`
+ resize: $direction; // Options: horizontal, vertical, both
+}
diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_screen-reader.scss b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_screen-reader.scss
new file mode 100644
index 0000000000..31fb68ab95
--- /dev/null
+++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_screen-reader.scss
@@ -0,0 +1,35 @@
+// Only display content to screen readers
+//
+// See: http://a11yproject.com/posts/how-to-hide-content/
+// See: https://hugogiraudel.com/2016/10/13/css-hide-and-seek/
+
+@mixin sr-only {
+ position: absolute;
+ width: 1px;
+ height: 1px;
+ padding: 0;
+ overflow: hidden;
+ clip: rect(0,0,0,0);
+ white-space: nowrap;
+ clip-path: inset(50%);
+ border: 0;
+}
+
+// Use in conjunction with .sr-only to only display content when it's focused.
+//
+// Useful for "Skip to main content" links; see https://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1
+//
+// Credit: HTML5 Boilerplate
+
+@mixin sr-only-focusable {
+ &:active,
+ &:focus {
+ position: static;
+ width: auto;
+ height: auto;
+ overflow: visible;
+ clip: auto;
+ white-space: normal;
+ clip-path: none;
+ }
+}
diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_size.scss b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_size.scss
new file mode 100644
index 0000000000..b9dd48e8df
--- /dev/null
+++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_size.scss
@@ -0,0 +1,6 @@
+// Sizing shortcuts
+
+@mixin size($width, $height: $width) {
+ width: $width;
+ height: $height;
+}
diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_table-row.scss b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_table-row.scss
new file mode 100644
index 0000000000..84f1d305aa
--- /dev/null
+++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_table-row.scss
@@ -0,0 +1,30 @@
+// Tables
+
+@mixin table-row-variant($state, $background) {
+ // Exact selectors below required to override `.table-striped` and prevent
+ // inheritance to nested tables.
+ .table-#{$state} {
+ &,
+ > th,
+ > td {
+ background-color: $background;
+ }
+ }
+
+ // Hover states for `.table-hover`
+ // Note: this is not available for cells or rows within `thead` or `tfoot`.
+ .table-hover {
+ $hover-background: darken($background, 5%);
+
+ .table-#{$state} {
+ @include hover {
+ background-color: $hover-background;
+
+ > td,
+ > th {
+ background-color: $hover-background;
+ }
+ }
+ }
+ }
+}
diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_text-emphasis.scss b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_text-emphasis.scss
new file mode 100644
index 0000000000..58db3e0fc7
--- /dev/null
+++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_text-emphasis.scss
@@ -0,0 +1,14 @@
+// stylelint-disable declaration-no-important
+
+// Typography
+
+@mixin text-emphasis-variant($parent, $color) {
+ #{$parent} {
+ color: $color !important;
+ }
+ a#{$parent} {
+ @include hover-focus {
+ color: darken($color, 10%) !important;
+ }
+ }
+}
diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_text-hide.scss b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_text-hide.scss
new file mode 100644
index 0000000000..52a38a9069
--- /dev/null
+++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_text-hide.scss
@@ -0,0 +1,8 @@
+// CSS image replacement
+@mixin text-hide() {
+ font: 0/0 a;
+ color: transparent;
+ text-shadow: none;
+ background-color: transparent;
+ border: 0;
+}
diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_text-truncate.scss b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_text-truncate.scss
new file mode 100644
index 0000000000..3504bb1aa5
--- /dev/null
+++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_text-truncate.scss
@@ -0,0 +1,8 @@
+// Text truncate
+// Requires inline-block or block for proper styling
+
+@mixin text-truncate() {
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+}
diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_transition.scss b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_transition.scss
new file mode 100644
index 0000000000..7e33dee319
--- /dev/null
+++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_transition.scss
@@ -0,0 +1,9 @@
+@mixin transition($transition...) {
+ @if $enable-transitions {
+ @if length($transition) == 0 {
+ transition: $transition-base;
+ } @else {
+ transition: $transition;
+ }
+ }
+}
diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_visibility.scss b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_visibility.scss
new file mode 100644
index 0000000000..fe523d0ee3
--- /dev/null
+++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/mixins/_visibility.scss
@@ -0,0 +1,7 @@
+// stylelint-disable declaration-no-important
+
+// Visibility
+
+@mixin invisible($visibility) {
+ visibility: $visibility !important;
+}
diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/utilities/_align.scss b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/utilities/_align.scss
new file mode 100644
index 0000000000..8b7df9f76c
--- /dev/null
+++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/utilities/_align.scss
@@ -0,0 +1,8 @@
+// stylelint-disable declaration-no-important
+
+.align-baseline { vertical-align: baseline !important; } // Browser default
+.align-top { vertical-align: top !important; }
+.align-middle { vertical-align: middle !important; }
+.align-bottom { vertical-align: bottom !important; }
+.align-text-bottom { vertical-align: text-bottom !important; }
+.align-text-top { vertical-align: text-top !important; }
diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/utilities/_background.scss b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/utilities/_background.scss
new file mode 100644
index 0000000000..1f18b2f3f3
--- /dev/null
+++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/utilities/_background.scss
@@ -0,0 +1,19 @@
+// stylelint-disable declaration-no-important
+
+@each $color, $value in $theme-colors {
+ @include bg-variant(".bg-#{$color}", $value);
+}
+
+@if $enable-gradients {
+ @each $color, $value in $theme-colors {
+ @include bg-gradient-variant(".bg-gradient-#{$color}", $value);
+ }
+}
+
+.bg-white {
+ background-color: $white !important;
+}
+
+.bg-transparent {
+ background-color: transparent !important;
+}
diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/utilities/_borders.scss b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/utilities/_borders.scss
new file mode 100644
index 0000000000..ba02f04563
--- /dev/null
+++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/utilities/_borders.scss
@@ -0,0 +1,54 @@
+// stylelint-disable declaration-no-important
+
+//
+// Border
+//
+
+.border { border: $border-width solid $border-color !important; }
+.border-0 { border: 0 !important; }
+.border-top-0 { border-top: 0 !important; }
+.border-right-0 { border-right: 0 !important; }
+.border-bottom-0 { border-bottom: 0 !important; }
+.border-left-0 { border-left: 0 !important; }
+
+@each $color, $value in $theme-colors {
+ .border-#{$color} {
+ border-color: $value !important;
+ }
+}
+
+.border-white {
+ border-color: $white !important;
+}
+
+//
+// Border-radius
+//
+
+.rounded {
+ border-radius: $border-radius !important;
+}
+.rounded-top {
+ border-top-left-radius: $border-radius !important;
+ border-top-right-radius: $border-radius !important;
+}
+.rounded-right {
+ border-top-right-radius: $border-radius !important;
+ border-bottom-right-radius: $border-radius !important;
+}
+.rounded-bottom {
+ border-bottom-right-radius: $border-radius !important;
+ border-bottom-left-radius: $border-radius !important;
+}
+.rounded-left {
+ border-top-left-radius: $border-radius !important;
+ border-bottom-left-radius: $border-radius !important;
+}
+
+.rounded-circle {
+ border-radius: 50% !important;
+}
+
+.rounded-0 {
+ border-radius: 0 !important;
+}
diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/utilities/_clearfix.scss b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/utilities/_clearfix.scss
new file mode 100644
index 0000000000..e92522a94d
--- /dev/null
+++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/utilities/_clearfix.scss
@@ -0,0 +1,3 @@
+.clearfix {
+ @include clearfix();
+}
diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/utilities/_display.scss b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/utilities/_display.scss
new file mode 100644
index 0000000000..893b6387c1
--- /dev/null
+++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/utilities/_display.scss
@@ -0,0 +1,56 @@
+// stylelint-disable declaration-no-important
+
+//
+// Utilities for common `display` values
+//
+
+@each $breakpoint in map-keys($grid-breakpoints) {
+ @include media-breakpoint-up($breakpoint) {
+ $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
+
+ .d#{$infix}-none { display: none !important; }
+ .d#{$infix}-inline { display: inline !important; }
+ .d#{$infix}-inline-block { display: inline-block !important; }
+ .d#{$infix}-block { display: block !important; }
+ .d#{$infix}-table { display: table !important; }
+ .d#{$infix}-table-row { display: table-row !important; }
+ .d#{$infix}-table-cell { display: table-cell !important; }
+ .d#{$infix}-flex { display: flex !important; }
+ .d#{$infix}-inline-flex { display: inline-flex !important; }
+ }
+}
+
+
+//
+// Utilities for toggling `display` in print
+//
+
+.d-print-block {
+ display: none !important;
+
+ @media print {
+ display: block !important;
+ }
+}
+
+.d-print-inline {
+ display: none !important;
+
+ @media print {
+ display: inline !important;
+ }
+}
+
+.d-print-inline-block {
+ display: none !important;
+
+ @media print {
+ display: inline-block !important;
+ }
+}
+
+.d-print-none {
+ @media print {
+ display: none !important;
+ }
+}
diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/utilities/_embed.scss b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/utilities/_embed.scss
new file mode 100644
index 0000000000..d3362b6fdb
--- /dev/null
+++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/utilities/_embed.scss
@@ -0,0 +1,52 @@
+// Credit: Nicolas Gallagher and SUIT CSS.
+
+.embed-responsive {
+ position: relative;
+ display: block;
+ width: 100%;
+ padding: 0;
+ overflow: hidden;
+
+ &::before {
+ display: block;
+ content: "";
+ }
+
+ .embed-responsive-item,
+ iframe,
+ embed,
+ object,
+ video {
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ border: 0;
+ }
+}
+
+.embed-responsive-21by9 {
+ &::before {
+ padding-top: percentage(9 / 21);
+ }
+}
+
+.embed-responsive-16by9 {
+ &::before {
+ padding-top: percentage(9 / 16);
+ }
+}
+
+.embed-responsive-4by3 {
+ &::before {
+ padding-top: percentage(3 / 4);
+ }
+}
+
+.embed-responsive-1by1 {
+ &::before {
+ padding-top: percentage(1 / 1);
+ }
+}
diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/utilities/_flex.scss b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/utilities/_flex.scss
new file mode 100644
index 0000000000..8e47038436
--- /dev/null
+++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/utilities/_flex.scss
@@ -0,0 +1,46 @@
+// stylelint-disable declaration-no-important
+
+// Flex variation
+//
+// Custom styles for additional flex alignment options.
+
+@each $breakpoint in map-keys($grid-breakpoints) {
+ @include media-breakpoint-up($breakpoint) {
+ $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
+
+ .flex#{$infix}-row { flex-direction: row !important; }
+ .flex#{$infix}-column { flex-direction: column !important; }
+ .flex#{$infix}-row-reverse { flex-direction: row-reverse !important; }
+ .flex#{$infix}-column-reverse { flex-direction: column-reverse !important; }
+
+ .flex#{$infix}-wrap { flex-wrap: wrap !important; }
+ .flex#{$infix}-nowrap { flex-wrap: nowrap !important; }
+ .flex#{$infix}-wrap-reverse { flex-wrap: wrap-reverse !important; }
+
+ .justify-content#{$infix}-start { justify-content: flex-start !important; }
+ .justify-content#{$infix}-end { justify-content: flex-end !important; }
+ .justify-content#{$infix}-center { justify-content: center !important; }
+ .justify-content#{$infix}-between { justify-content: space-between !important; }
+ .justify-content#{$infix}-around { justify-content: space-around !important; }
+
+ .align-items#{$infix}-start { align-items: flex-start !important; }
+ .align-items#{$infix}-end { align-items: flex-end !important; }
+ .align-items#{$infix}-center { align-items: center !important; }
+ .align-items#{$infix}-baseline { align-items: baseline !important; }
+ .align-items#{$infix}-stretch { align-items: stretch !important; }
+
+ .align-content#{$infix}-start { align-content: flex-start !important; }
+ .align-content#{$infix}-end { align-content: flex-end !important; }
+ .align-content#{$infix}-center { align-content: center !important; }
+ .align-content#{$infix}-between { align-content: space-between !important; }
+ .align-content#{$infix}-around { align-content: space-around !important; }
+ .align-content#{$infix}-stretch { align-content: stretch !important; }
+
+ .align-self#{$infix}-auto { align-self: auto !important; }
+ .align-self#{$infix}-start { align-self: flex-start !important; }
+ .align-self#{$infix}-end { align-self: flex-end !important; }
+ .align-self#{$infix}-center { align-self: center !important; }
+ .align-self#{$infix}-baseline { align-self: baseline !important; }
+ .align-self#{$infix}-stretch { align-self: stretch !important; }
+ }
+}
diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/utilities/_float.scss b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/utilities/_float.scss
new file mode 100644
index 0000000000..01655e9a52
--- /dev/null
+++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/utilities/_float.scss
@@ -0,0 +1,9 @@
+@each $breakpoint in map-keys($grid-breakpoints) {
+ @include media-breakpoint-up($breakpoint) {
+ $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
+
+ .float#{$infix}-left { @include float-left; }
+ .float#{$infix}-right { @include float-right; }
+ .float#{$infix}-none { @include float-none; }
+ }
+}
diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/utilities/_position.scss b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/utilities/_position.scss
new file mode 100644
index 0000000000..ef962eddbd
--- /dev/null
+++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/utilities/_position.scss
@@ -0,0 +1,36 @@
+// stylelint-disable declaration-no-important
+
+// Common values
+
+// Sass list not in variables since it's not intended for customization.
+$positions: static, relative, absolute, fixed, sticky;
+
+@each $position in $positions {
+ .position-#{$position} { position: $position !important; }
+}
+
+// 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;
+}
+
+.sticky-top {
+ @supports (position: sticky) {
+ position: sticky;
+ top: 0;
+ z-index: $zindex-sticky;
+ }
+}
diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/utilities/_screenreaders.scss b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/utilities/_screenreaders.scss
new file mode 100644
index 0000000000..9f26fde035
--- /dev/null
+++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/utilities/_screenreaders.scss
@@ -0,0 +1,11 @@
+//
+// Screenreaders
+//
+
+.sr-only {
+ @include sr-only();
+}
+
+.sr-only-focusable {
+ @include sr-only-focusable();
+}
diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/utilities/_sizing.scss b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/utilities/_sizing.scss
new file mode 100644
index 0000000000..e95a4db36a
--- /dev/null
+++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/utilities/_sizing.scss
@@ -0,0 +1,12 @@
+// stylelint-disable declaration-no-important
+
+// Width and height
+
+@each $prop, $abbrev in (width: w, height: h) {
+ @each $size, $length in $sizes {
+ .#{$abbrev}-#{$size} { #{$prop}: $length !important; }
+ }
+}
+
+.mw-100 { max-width: 100% !important; }
+.mh-100 { max-height: 100% !important; }
diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/utilities/_spacing.scss b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/utilities/_spacing.scss
new file mode 100644
index 0000000000..b2e2354b12
--- /dev/null
+++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/utilities/_spacing.scss
@@ -0,0 +1,51 @@
+// stylelint-disable declaration-no-important
+
+// Margin and Padding
+
+@each $breakpoint in map-keys($grid-breakpoints) {
+ @include media-breakpoint-up($breakpoint) {
+ $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
+
+ @each $prop, $abbrev in (margin: m, padding: p) {
+ @each $size, $length in $spacers {
+
+ .#{$abbrev}#{$infix}-#{$size} { #{$prop}: $length !important; }
+ .#{$abbrev}t#{$infix}-#{$size},
+ .#{$abbrev}y#{$infix}-#{$size} {
+ #{$prop}-top: $length !important;
+ }
+ .#{$abbrev}r#{$infix}-#{$size},
+ .#{$abbrev}x#{$infix}-#{$size} {
+ #{$prop}-right: $length !important;
+ }
+ .#{$abbrev}b#{$infix}-#{$size},
+ .#{$abbrev}y#{$infix}-#{$size} {
+ #{$prop}-bottom: $length !important;
+ }
+ .#{$abbrev}l#{$infix}-#{$size},
+ .#{$abbrev}x#{$infix}-#{$size} {
+ #{$prop}-left: $length !important;
+ }
+ }
+ }
+
+ // Some special margin utils
+ .m#{$infix}-auto { margin: auto !important; }
+ .mt#{$infix}-auto,
+ .my#{$infix}-auto {
+ margin-top: auto !important;
+ }
+ .mr#{$infix}-auto,
+ .mx#{$infix}-auto {
+ margin-right: auto !important;
+ }
+ .mb#{$infix}-auto,
+ .my#{$infix}-auto {
+ margin-bottom: auto !important;
+ }
+ .ml#{$infix}-auto,
+ .mx#{$infix}-auto {
+ margin-left: auto !important;
+ }
+ }
+}
diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/utilities/_text.scss b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/utilities/_text.scss
new file mode 100644
index 0000000000..f4b6e65e55
--- /dev/null
+++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/utilities/_text.scss
@@ -0,0 +1,52 @@
+// stylelint-disable declaration-no-important
+
+//
+// Text
+//
+
+// Alignment
+
+.text-justify { text-align: justify !important; }
+.text-nowrap { white-space: nowrap !important; }
+.text-truncate { @include text-truncate; }
+
+// Responsive alignment
+
+@each $breakpoint in map-keys($grid-breakpoints) {
+ @include media-breakpoint-up($breakpoint) {
+ $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
+
+ .text#{$infix}-left { text-align: left !important; }
+ .text#{$infix}-right { text-align: right !important; }
+ .text#{$infix}-center { text-align: center !important; }
+ }
+}
+
+// Transformation
+
+.text-lowercase { text-transform: lowercase !important; }
+.text-uppercase { text-transform: uppercase !important; }
+.text-capitalize { text-transform: capitalize !important; }
+
+// Weight and italics
+
+.font-weight-light { font-weight: $font-weight-light !important; }
+.font-weight-normal { font-weight: $font-weight-normal !important; }
+.font-weight-bold { font-weight: $font-weight-bold !important; }
+.font-italic { font-style: italic !important; }
+
+// Contextual colors
+
+.text-white { color: #fff !important; }
+
+@each $color, $value in $theme-colors {
+ @include text-emphasis-variant(".text-#{$color}", $value);
+}
+
+.text-muted { color: $text-muted !important; }
+
+// Misc
+
+.text-hide {
+ @include text-hide();
+}
diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/utilities/_visibility.scss b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/utilities/_visibility.scss
new file mode 100644
index 0000000000..823406dc3c
--- /dev/null
+++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/libs/bootstrap/scss/utilities/_visibility.scss
@@ -0,0 +1,11 @@
+//
+// Visibility utilities
+//
+
+.visible {
+ @include invisible(visible);
+}
+
+.invisible {
+ @include invisible(hidden);
+}
diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/styles/mybstheme.css b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/styles/mybstheme.css
new file mode 100644
index 0000000000..c64b78b2f2
--- /dev/null
+++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/styles/mybstheme.css
@@ -0,0 +1,5867 @@
+/*!
+ * Bootstrap v4.0.0-beta.2 (https://getbootstrap.com)
+ * Copyright 2011-2017 The Bootstrap Authors
+ * Copyright 2011-2017 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ */
+:root {
+ --blue: #007bff;
+ --indigo: #6610f2;
+ --purple: #6f42c1;
+ --pink: #e83e8c;
+ --red: #dc3545;
+ --orange: #fd7e14;
+ --yellow: #ffc107;
+ --green: #28a745;
+ --teal: #20c997;
+ --cyan: #17a2b8;
+ --white: #fff;
+ --gray: #868e96;
+ --gray-dark: #343a40;
+ --primary: #007bff;
+ --secondary: #868e96;
+ --success: #28a745;
+ --info: #17a2b8;
+ --warning: #ffc107;
+ --danger: #dc3545;
+ --light: #f8f9fa;
+ --dark: #343a40;
+ --breakpoint-xs: 0;
+ --breakpoint-sm: 576px;
+ --breakpoint-md: 768px;
+ --breakpoint-lg: 992px;
+ --breakpoint-xl: 1200px;
+ --font-family-sans-serif: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
+ --font-family-monospace: "SFMono-Regular", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; }
+
+@media print {
+ *,
+ *::before,
+ *::after {
+ text-shadow: none !important;
+ box-shadow: none !important; }
+ a,
+ a:visited {
+ text-decoration: underline; }
+ abbr[title]::after {
+ content: " (" attr(title) ")"; }
+ pre {
+ white-space: pre-wrap !important; }
+ pre,
+ blockquote {
+ border: 1px solid #999;
+ page-break-inside: avoid; }
+ thead {
+ display: table-header-group; }
+ tr,
+ img {
+ page-break-inside: avoid; }
+ p,
+ h2,
+ h3 {
+ orphans: 3;
+ widows: 3; }
+ h2,
+ h3 {
+ page-break-after: avoid; }
+ .navbar {
+ display: none; }
+ .badge {
+ border: 1px solid #000; }
+ .table {
+ border-collapse: collapse !important; }
+ .table td,
+ .table th {
+ background-color: #fff !important; }
+ .table-bordered th,
+ .table-bordered td {
+ border: 1px solid #ddd !important; } }
+
+*,
+*::before,
+*::after {
+ box-sizing: border-box; }
+
+html {
+ font-family: sans-serif;
+ line-height: 1.15;
+ -webkit-text-size-adjust: 100%;
+ -ms-text-size-adjust: 100%;
+ -ms-overflow-style: scrollbar;
+ -webkit-tap-highlight-color: transparent; }
+
+@-ms-viewport {
+ width: device-width; }
+
+article, aside, dialog, figcaption, figure, footer, header, hgroup, main, nav, section {
+ display: block; }
+
+body {
+ margin: 0;
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
+ font-size: 1rem;
+ font-weight: 400;
+ line-height: 1.5;
+ color: #212529;
+ text-align: left;
+ background-color: #fff; }
+
+[tabindex="-1"]:focus {
+ outline: none !important; }
+
+hr {
+ box-sizing: content-box;
+ height: 0;
+ overflow: visible; }
+
+h1, h2, h3, h4, h5, h6 {
+ margin-top: 0;
+ margin-bottom: 0.5rem; }
+
+p {
+ margin-top: 0;
+ margin-bottom: 1rem; }
+
+abbr[title],
+abbr[data-original-title] {
+ text-decoration: underline;
+ text-decoration: underline dotted;
+ cursor: help;
+ border-bottom: 0; }
+
+address {
+ margin-bottom: 1rem;
+ font-style: normal;
+ line-height: inherit; }
+
+ol,
+ul,
+dl {
+ margin-top: 0;
+ margin-bottom: 1rem; }
+
+ol ol,
+ul ul,
+ol ul,
+ul ol {
+ margin-bottom: 0; }
+
+dt {
+ font-weight: 700; }
+
+dd {
+ margin-bottom: .5rem;
+ margin-left: 0; }
+
+blockquote {
+ margin: 0 0 1rem; }
+
+dfn {
+ font-style: italic; }
+
+b,
+strong {
+ font-weight: bolder; }
+
+small {
+ font-size: 80%; }
+
+sub,
+sup {
+ position: relative;
+ font-size: 75%;
+ line-height: 0;
+ vertical-align: baseline; }
+
+sub {
+ bottom: -.25em; }
+
+sup {
+ top: -.5em; }
+
+a {
+ color: #007bff;
+ text-decoration: none;
+ background-color: transparent;
+ -webkit-text-decoration-skip: objects; }
+ a:hover {
+ color: #0056b3;
+ text-decoration: underline; }
+
+a:not([href]):not([tabindex]) {
+ color: inherit;
+ text-decoration: none; }
+ a:not([href]):not([tabindex]):focus, a:not([href]):not([tabindex]):hover {
+ color: inherit;
+ text-decoration: none; }
+ a:not([href]):not([tabindex]):focus {
+ outline: 0; }
+
+pre,
+code,
+kbd,
+samp {
+ font-family: monospace, monospace;
+ font-size: 1em; }
+
+pre {
+ margin-top: 0;
+ margin-bottom: 1rem;
+ overflow: auto;
+ -ms-overflow-style: scrollbar; }
+
+figure {
+ margin: 0 0 1rem; }
+
+img {
+ vertical-align: middle;
+ border-style: none; }
+
+svg:not(:root) {
+ overflow: hidden; }
+
+a,
+area,
+button,
+[role="button"],
+input:not([type="range"]),
+label,
+select,
+summary,
+textarea {
+ touch-action: manipulation; }
+
+table {
+ border-collapse: collapse; }
+
+caption {
+ padding-top: 0.75rem;
+ padding-bottom: 0.75rem;
+ color: #868e96;
+ text-align: left;
+ caption-side: bottom; }
+
+th {
+ text-align: inherit; }
+
+label {
+ display: inline-block;
+ margin-bottom: .5rem; }
+
+button {
+ border-radius: 0; }
+
+button:focus {
+ outline: 1px dotted;
+ outline: 5px auto -webkit-focus-ring-color; }
+
+input,
+button,
+select,
+optgroup,
+textarea {
+ margin: 0;
+ font-family: inherit;
+ font-size: inherit;
+ line-height: inherit; }
+
+button,
+input {
+ overflow: visible; }
+
+button,
+select {
+ text-transform: none; }
+
+button,
+html [type="button"],
+[type="reset"],
+[type="submit"] {
+ -webkit-appearance: button; }
+
+button::-moz-focus-inner,
+[type="button"]::-moz-focus-inner,
+[type="reset"]::-moz-focus-inner,
+[type="submit"]::-moz-focus-inner {
+ padding: 0;
+ border-style: none; }
+
+input[type="radio"],
+input[type="checkbox"] {
+ box-sizing: border-box;
+ padding: 0; }
+
+input[type="date"],
+input[type="time"],
+input[type="datetime-local"],
+input[type="month"] {
+ -webkit-appearance: listbox; }
+
+textarea {
+ overflow: auto;
+ resize: vertical; }
+
+fieldset {
+ min-width: 0;
+ padding: 0;
+ margin: 0;
+ border: 0; }
+
+legend {
+ display: block;
+ width: 100%;
+ max-width: 100%;
+ padding: 0;
+ margin-bottom: .5rem;
+ font-size: 1.5rem;
+ line-height: inherit;
+ color: inherit;
+ white-space: normal; }
+
+progress {
+ vertical-align: baseline; }
+
+[type="number"]::-webkit-inner-spin-button,
+[type="number"]::-webkit-outer-spin-button {
+ height: auto; }
+
+[type="search"] {
+ outline-offset: -2px;
+ -webkit-appearance: none; }
+
+[type="search"]::-webkit-search-cancel-button,
+[type="search"]::-webkit-search-decoration {
+ -webkit-appearance: none; }
+
+::-webkit-file-upload-button {
+ font: inherit;
+ -webkit-appearance: button; }
+
+output {
+ display: inline-block; }
+
+summary {
+ display: list-item; }
+
+template {
+ display: none; }
+
+[hidden] {
+ display: none !important; }
+
+h1, h2, h3, h4, h5, h6,
+.h1, .h2, .h3, .h4, .h5, .h6 {
+ margin-bottom: 0.5rem;
+ font-family: inherit;
+ font-weight: 500;
+ line-height: 1.2;
+ color: inherit; }
+
+h1, .h1 {
+ font-size: 2.5rem; }
+
+h2, .h2 {
+ font-size: 2rem; }
+
+h3, .h3 {
+ font-size: 1.75rem; }
+
+h4, .h4 {
+ font-size: 1.5rem; }
+
+h5, .h5 {
+ font-size: 1.25rem; }
+
+h6, .h6 {
+ font-size: 1rem; }
+
+.lead {
+ font-size: 1.25rem;
+ font-weight: 300; }
+
+.display-1 {
+ font-size: 6rem;
+ font-weight: 300;
+ line-height: 1.2; }
+
+.display-2 {
+ font-size: 5.5rem;
+ font-weight: 300;
+ line-height: 1.2; }
+
+.display-3 {
+ font-size: 4.5rem;
+ font-weight: 300;
+ line-height: 1.2; }
+
+.display-4 {
+ font-size: 3.5rem;
+ font-weight: 300;
+ line-height: 1.2; }
+
+hr {
+ margin-top: 1rem;
+ margin-bottom: 1rem;
+ border: 0;
+ border-top: 1px solid rgba(0, 0, 0, 0.1); }
+
+small,
+.small {
+ font-size: 80%;
+ font-weight: 400; }
+
+mark,
+.mark {
+ padding: 0.2em;
+ background-color: #fcf8e3; }
+
+.list-unstyled {
+ padding-left: 0;
+ list-style: none; }
+
+.list-inline {
+ padding-left: 0;
+ list-style: none; }
+
+.list-inline-item {
+ display: inline-block; }
+ .list-inline-item:not(:last-child) {
+ margin-right: 5px; }
+
+.initialism {
+ font-size: 90%;
+ text-transform: uppercase; }
+
+.blockquote {
+ margin-bottom: 1rem;
+ font-size: 1.25rem; }
+
+.blockquote-footer {
+ display: block;
+ font-size: 80%;
+ color: #868e96; }
+ .blockquote-footer::before {
+ content: "\2014 \00A0"; }
+
+.img-fluid {
+ max-width: 100%;
+ height: auto; }
+
+.img-thumbnail {
+ padding: 0.25rem;
+ background-color: #fff;
+ border: 1px solid #ddd;
+ border-radius: 0.25rem;
+ transition: all 0.2s ease-in-out;
+ max-width: 100%;
+ height: auto; }
+
+.figure {
+ display: inline-block; }
+
+.figure-img {
+ margin-bottom: 0.5rem;
+ line-height: 1; }
+
+.figure-caption {
+ font-size: 90%;
+ color: #868e96; }
+
+code,
+kbd,
+pre,
+samp {
+ font-family: "SFMono-Regular", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; }
+
+code {
+ padding: 0.2rem 0.4rem;
+ font-size: 90%;
+ color: #bd4147;
+ background-color: #f8f9fa;
+ border-radius: 0.25rem; }
+ a > code {
+ padding: 0;
+ color: inherit;
+ background-color: inherit; }
+
+kbd {
+ padding: 0.2rem 0.4rem;
+ font-size: 90%;
+ color: #fff;
+ background-color: #212529;
+ border-radius: 0.2rem; }
+ kbd kbd {
+ padding: 0;
+ font-size: 100%;
+ font-weight: 700; }
+
+pre {
+ display: block;
+ margin-top: 0;
+ margin-bottom: 1rem;
+ font-size: 90%;
+ color: #212529; }
+ pre code {
+ padding: 0;
+ font-size: inherit;
+ color: inherit;
+ background-color: transparent;
+ border-radius: 0; }
+
+.pre-scrollable {
+ max-height: 340px;
+ overflow-y: scroll; }
+
+.container {
+ width: 100%;
+ padding-right: 15px;
+ padding-left: 15px;
+ margin-right: auto;
+ margin-left: auto; }
+ @media (min-width: 576px) {
+ .container {
+ max-width: 540px; } }
+ @media (min-width: 768px) {
+ .container {
+ max-width: 720px; } }
+ @media (min-width: 992px) {
+ .container {
+ max-width: 960px; } }
+ @media (min-width: 1200px) {
+ .container {
+ max-width: 1140px; } }
+
+.container-fluid {
+ width: 100%;
+ padding-right: 15px;
+ padding-left: 15px;
+ margin-right: auto;
+ margin-left: auto; }
+
+.row {
+ display: flex;
+ flex-wrap: wrap;
+ margin-right: -15px;
+ margin-left: -15px; }
+
+.no-gutters {
+ margin-right: 0;
+ margin-left: 0; }
+ .no-gutters > .col,
+ .no-gutters > [class*="col-"] {
+ padding-right: 0;
+ padding-left: 0; }
+
+.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,
+.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,
+.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,
+.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,
+.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,
+.col-xl-auto {
+ position: relative;
+ width: 100%;
+ min-height: 1px;
+ padding-right: 15px;
+ padding-left: 15px; }
+
+.col {
+ flex-basis: 0;
+ flex-grow: 1;
+ max-width: 100%; }
+
+.col-auto {
+ flex: 0 0 auto;
+ width: auto;
+ max-width: none; }
+
+.col-1 {
+ flex: 0 0 8.33333%;
+ max-width: 8.33333%; }
+
+.col-2 {
+ flex: 0 0 16.66667%;
+ max-width: 16.66667%; }
+
+.col-3 {
+ flex: 0 0 25%;
+ max-width: 25%; }
+
+.col-4 {
+ flex: 0 0 33.33333%;
+ max-width: 33.33333%; }
+
+.col-5 {
+ flex: 0 0 41.66667%;
+ max-width: 41.66667%; }
+
+.col-6 {
+ flex: 0 0 50%;
+ max-width: 50%; }
+
+.col-7 {
+ flex: 0 0 58.33333%;
+ max-width: 58.33333%; }
+
+.col-8 {
+ flex: 0 0 66.66667%;
+ max-width: 66.66667%; }
+
+.col-9 {
+ flex: 0 0 75%;
+ max-width: 75%; }
+
+.col-10 {
+ flex: 0 0 83.33333%;
+ max-width: 83.33333%; }
+
+.col-11 {
+ flex: 0 0 91.66667%;
+ max-width: 91.66667%; }
+
+.col-12 {
+ flex: 0 0 100%;
+ max-width: 100%; }
+
+.order-first {
+ order: -1; }
+
+.order-1 {
+ order: 1; }
+
+.order-2 {
+ order: 2; }
+
+.order-3 {
+ order: 3; }
+
+.order-4 {
+ order: 4; }
+
+.order-5 {
+ order: 5; }
+
+.order-6 {
+ order: 6; }
+
+.order-7 {
+ order: 7; }
+
+.order-8 {
+ order: 8; }
+
+.order-9 {
+ order: 9; }
+
+.order-10 {
+ order: 10; }
+
+.order-11 {
+ order: 11; }
+
+.order-12 {
+ order: 12; }
+
+.offset-1 {
+ margin-left: 8.33333%; }
+
+.offset-2 {
+ margin-left: 16.66667%; }
+
+.offset-3 {
+ margin-left: 25%; }
+
+.offset-4 {
+ margin-left: 33.33333%; }
+
+.offset-5 {
+ margin-left: 41.66667%; }
+
+.offset-6 {
+ margin-left: 50%; }
+
+.offset-7 {
+ margin-left: 58.33333%; }
+
+.offset-8 {
+ margin-left: 66.66667%; }
+
+.offset-9 {
+ margin-left: 75%; }
+
+.offset-10 {
+ margin-left: 83.33333%; }
+
+.offset-11 {
+ margin-left: 91.66667%; }
+
+@media (min-width: 576px) {
+ .col-sm {
+ flex-basis: 0;
+ flex-grow: 1;
+ max-width: 100%; }
+ .col-sm-auto {
+ flex: 0 0 auto;
+ width: auto;
+ max-width: none; }
+ .col-sm-1 {
+ flex: 0 0 8.33333%;
+ max-width: 8.33333%; }
+ .col-sm-2 {
+ flex: 0 0 16.66667%;
+ max-width: 16.66667%; }
+ .col-sm-3 {
+ flex: 0 0 25%;
+ max-width: 25%; }
+ .col-sm-4 {
+ flex: 0 0 33.33333%;
+ max-width: 33.33333%; }
+ .col-sm-5 {
+ flex: 0 0 41.66667%;
+ max-width: 41.66667%; }
+ .col-sm-6 {
+ flex: 0 0 50%;
+ max-width: 50%; }
+ .col-sm-7 {
+ flex: 0 0 58.33333%;
+ max-width: 58.33333%; }
+ .col-sm-8 {
+ flex: 0 0 66.66667%;
+ max-width: 66.66667%; }
+ .col-sm-9 {
+ flex: 0 0 75%;
+ max-width: 75%; }
+ .col-sm-10 {
+ flex: 0 0 83.33333%;
+ max-width: 83.33333%; }
+ .col-sm-11 {
+ flex: 0 0 91.66667%;
+ max-width: 91.66667%; }
+ .col-sm-12 {
+ flex: 0 0 100%;
+ max-width: 100%; }
+ .order-sm-first {
+ order: -1; }
+ .order-sm-1 {
+ order: 1; }
+ .order-sm-2 {
+ order: 2; }
+ .order-sm-3 {
+ order: 3; }
+ .order-sm-4 {
+ order: 4; }
+ .order-sm-5 {
+ order: 5; }
+ .order-sm-6 {
+ order: 6; }
+ .order-sm-7 {
+ order: 7; }
+ .order-sm-8 {
+ order: 8; }
+ .order-sm-9 {
+ order: 9; }
+ .order-sm-10 {
+ order: 10; }
+ .order-sm-11 {
+ order: 11; }
+ .order-sm-12 {
+ order: 12; }
+ .offset-sm-0 {
+ margin-left: 0; }
+ .offset-sm-1 {
+ margin-left: 8.33333%; }
+ .offset-sm-2 {
+ margin-left: 16.66667%; }
+ .offset-sm-3 {
+ margin-left: 25%; }
+ .offset-sm-4 {
+ margin-left: 33.33333%; }
+ .offset-sm-5 {
+ margin-left: 41.66667%; }
+ .offset-sm-6 {
+ margin-left: 50%; }
+ .offset-sm-7 {
+ margin-left: 58.33333%; }
+ .offset-sm-8 {
+ margin-left: 66.66667%; }
+ .offset-sm-9 {
+ margin-left: 75%; }
+ .offset-sm-10 {
+ margin-left: 83.33333%; }
+ .offset-sm-11 {
+ margin-left: 91.66667%; } }
+
+@media (min-width: 768px) {
+ .col-md {
+ flex-basis: 0;
+ flex-grow: 1;
+ max-width: 100%; }
+ .col-md-auto {
+ flex: 0 0 auto;
+ width: auto;
+ max-width: none; }
+ .col-md-1 {
+ flex: 0 0 8.33333%;
+ max-width: 8.33333%; }
+ .col-md-2 {
+ flex: 0 0 16.66667%;
+ max-width: 16.66667%; }
+ .col-md-3 {
+ flex: 0 0 25%;
+ max-width: 25%; }
+ .col-md-4 {
+ flex: 0 0 33.33333%;
+ max-width: 33.33333%; }
+ .col-md-5 {
+ flex: 0 0 41.66667%;
+ max-width: 41.66667%; }
+ .col-md-6 {
+ flex: 0 0 50%;
+ max-width: 50%; }
+ .col-md-7 {
+ flex: 0 0 58.33333%;
+ max-width: 58.33333%; }
+ .col-md-8 {
+ flex: 0 0 66.66667%;
+ max-width: 66.66667%; }
+ .col-md-9 {
+ flex: 0 0 75%;
+ max-width: 75%; }
+ .col-md-10 {
+ flex: 0 0 83.33333%;
+ max-width: 83.33333%; }
+ .col-md-11 {
+ flex: 0 0 91.66667%;
+ max-width: 91.66667%; }
+ .col-md-12 {
+ flex: 0 0 100%;
+ max-width: 100%; }
+ .order-md-first {
+ order: -1; }
+ .order-md-1 {
+ order: 1; }
+ .order-md-2 {
+ order: 2; }
+ .order-md-3 {
+ order: 3; }
+ .order-md-4 {
+ order: 4; }
+ .order-md-5 {
+ order: 5; }
+ .order-md-6 {
+ order: 6; }
+ .order-md-7 {
+ order: 7; }
+ .order-md-8 {
+ order: 8; }
+ .order-md-9 {
+ order: 9; }
+ .order-md-10 {
+ order: 10; }
+ .order-md-11 {
+ order: 11; }
+ .order-md-12 {
+ order: 12; }
+ .offset-md-0 {
+ margin-left: 0; }
+ .offset-md-1 {
+ margin-left: 8.33333%; }
+ .offset-md-2 {
+ margin-left: 16.66667%; }
+ .offset-md-3 {
+ margin-left: 25%; }
+ .offset-md-4 {
+ margin-left: 33.33333%; }
+ .offset-md-5 {
+ margin-left: 41.66667%; }
+ .offset-md-6 {
+ margin-left: 50%; }
+ .offset-md-7 {
+ margin-left: 58.33333%; }
+ .offset-md-8 {
+ margin-left: 66.66667%; }
+ .offset-md-9 {
+ margin-left: 75%; }
+ .offset-md-10 {
+ margin-left: 83.33333%; }
+ .offset-md-11 {
+ margin-left: 91.66667%; } }
+
+@media (min-width: 992px) {
+ .col-lg {
+ flex-basis: 0;
+ flex-grow: 1;
+ max-width: 100%; }
+ .col-lg-auto {
+ flex: 0 0 auto;
+ width: auto;
+ max-width: none; }
+ .col-lg-1 {
+ flex: 0 0 8.33333%;
+ max-width: 8.33333%; }
+ .col-lg-2 {
+ flex: 0 0 16.66667%;
+ max-width: 16.66667%; }
+ .col-lg-3 {
+ flex: 0 0 25%;
+ max-width: 25%; }
+ .col-lg-4 {
+ flex: 0 0 33.33333%;
+ max-width: 33.33333%; }
+ .col-lg-5 {
+ flex: 0 0 41.66667%;
+ max-width: 41.66667%; }
+ .col-lg-6 {
+ flex: 0 0 50%;
+ max-width: 50%; }
+ .col-lg-7 {
+ flex: 0 0 58.33333%;
+ max-width: 58.33333%; }
+ .col-lg-8 {
+ flex: 0 0 66.66667%;
+ max-width: 66.66667%; }
+ .col-lg-9 {
+ flex: 0 0 75%;
+ max-width: 75%; }
+ .col-lg-10 {
+ flex: 0 0 83.33333%;
+ max-width: 83.33333%; }
+ .col-lg-11 {
+ flex: 0 0 91.66667%;
+ max-width: 91.66667%; }
+ .col-lg-12 {
+ flex: 0 0 100%;
+ max-width: 100%; }
+ .order-lg-first {
+ order: -1; }
+ .order-lg-1 {
+ order: 1; }
+ .order-lg-2 {
+ order: 2; }
+ .order-lg-3 {
+ order: 3; }
+ .order-lg-4 {
+ order: 4; }
+ .order-lg-5 {
+ order: 5; }
+ .order-lg-6 {
+ order: 6; }
+ .order-lg-7 {
+ order: 7; }
+ .order-lg-8 {
+ order: 8; }
+ .order-lg-9 {
+ order: 9; }
+ .order-lg-10 {
+ order: 10; }
+ .order-lg-11 {
+ order: 11; }
+ .order-lg-12 {
+ order: 12; }
+ .offset-lg-0 {
+ margin-left: 0; }
+ .offset-lg-1 {
+ margin-left: 8.33333%; }
+ .offset-lg-2 {
+ margin-left: 16.66667%; }
+ .offset-lg-3 {
+ margin-left: 25%; }
+ .offset-lg-4 {
+ margin-left: 33.33333%; }
+ .offset-lg-5 {
+ margin-left: 41.66667%; }
+ .offset-lg-6 {
+ margin-left: 50%; }
+ .offset-lg-7 {
+ margin-left: 58.33333%; }
+ .offset-lg-8 {
+ margin-left: 66.66667%; }
+ .offset-lg-9 {
+ margin-left: 75%; }
+ .offset-lg-10 {
+ margin-left: 83.33333%; }
+ .offset-lg-11 {
+ margin-left: 91.66667%; } }
+
+@media (min-width: 1200px) {
+ .col-xl {
+ flex-basis: 0;
+ flex-grow: 1;
+ max-width: 100%; }
+ .col-xl-auto {
+ flex: 0 0 auto;
+ width: auto;
+ max-width: none; }
+ .col-xl-1 {
+ flex: 0 0 8.33333%;
+ max-width: 8.33333%; }
+ .col-xl-2 {
+ flex: 0 0 16.66667%;
+ max-width: 16.66667%; }
+ .col-xl-3 {
+ flex: 0 0 25%;
+ max-width: 25%; }
+ .col-xl-4 {
+ flex: 0 0 33.33333%;
+ max-width: 33.33333%; }
+ .col-xl-5 {
+ flex: 0 0 41.66667%;
+ max-width: 41.66667%; }
+ .col-xl-6 {
+ flex: 0 0 50%;
+ max-width: 50%; }
+ .col-xl-7 {
+ flex: 0 0 58.33333%;
+ max-width: 58.33333%; }
+ .col-xl-8 {
+ flex: 0 0 66.66667%;
+ max-width: 66.66667%; }
+ .col-xl-9 {
+ flex: 0 0 75%;
+ max-width: 75%; }
+ .col-xl-10 {
+ flex: 0 0 83.33333%;
+ max-width: 83.33333%; }
+ .col-xl-11 {
+ flex: 0 0 91.66667%;
+ max-width: 91.66667%; }
+ .col-xl-12 {
+ flex: 0 0 100%;
+ max-width: 100%; }
+ .order-xl-first {
+ order: -1; }
+ .order-xl-1 {
+ order: 1; }
+ .order-xl-2 {
+ order: 2; }
+ .order-xl-3 {
+ order: 3; }
+ .order-xl-4 {
+ order: 4; }
+ .order-xl-5 {
+ order: 5; }
+ .order-xl-6 {
+ order: 6; }
+ .order-xl-7 {
+ order: 7; }
+ .order-xl-8 {
+ order: 8; }
+ .order-xl-9 {
+ order: 9; }
+ .order-xl-10 {
+ order: 10; }
+ .order-xl-11 {
+ order: 11; }
+ .order-xl-12 {
+ order: 12; }
+ .offset-xl-0 {
+ margin-left: 0; }
+ .offset-xl-1 {
+ margin-left: 8.33333%; }
+ .offset-xl-2 {
+ margin-left: 16.66667%; }
+ .offset-xl-3 {
+ margin-left: 25%; }
+ .offset-xl-4 {
+ margin-left: 33.33333%; }
+ .offset-xl-5 {
+ margin-left: 41.66667%; }
+ .offset-xl-6 {
+ margin-left: 50%; }
+ .offset-xl-7 {
+ margin-left: 58.33333%; }
+ .offset-xl-8 {
+ margin-left: 66.66667%; }
+ .offset-xl-9 {
+ margin-left: 75%; }
+ .offset-xl-10 {
+ margin-left: 83.33333%; }
+ .offset-xl-11 {
+ margin-left: 91.66667%; } }
+
+.table {
+ width: 100%;
+ max-width: 100%;
+ margin-bottom: 1rem;
+ background-color: transparent; }
+ .table th,
+ .table td {
+ padding: 0.75rem;
+ vertical-align: top;
+ border-top: 1px solid #e9ecef; }
+ .table thead th {
+ vertical-align: bottom;
+ border-bottom: 2px solid #e9ecef; }
+ .table tbody + tbody {
+ border-top: 2px solid #e9ecef; }
+ .table .table {
+ background-color: #fff; }
+
+.table-sm th,
+.table-sm td {
+ padding: 0.3rem; }
+
+.table-bordered {
+ border: 1px solid #e9ecef; }
+ .table-bordered th,
+ .table-bordered td {
+ border: 1px solid #e9ecef; }
+ .table-bordered thead th,
+ .table-bordered thead td {
+ border-bottom-width: 2px; }
+
+.table-striped tbody tr:nth-of-type(odd) {
+ background-color: rgba(0, 0, 0, 0.05); }
+
+.table-hover tbody tr:hover {
+ background-color: rgba(0, 0, 0, 0.075); }
+
+.table-primary,
+.table-primary > th,
+.table-primary > td {
+ background-color: #b8daff; }
+
+.table-hover .table-primary:hover {
+ background-color: #9fcdff; }
+ .table-hover .table-primary:hover > td,
+ .table-hover .table-primary:hover > th {
+ background-color: #9fcdff; }
+
+.table-secondary,
+.table-secondary > th,
+.table-secondary > td {
+ background-color: #dddfe2; }
+
+.table-hover .table-secondary:hover {
+ background-color: #cfd2d6; }
+ .table-hover .table-secondary:hover > td,
+ .table-hover .table-secondary:hover > th {
+ background-color: #cfd2d6; }
+
+.table-success,
+.table-success > th,
+.table-success > td {
+ background-color: #c3e6cb; }
+
+.table-hover .table-success:hover {
+ background-color: #b1dfbb; }
+ .table-hover .table-success:hover > td,
+ .table-hover .table-success:hover > th {
+ background-color: #b1dfbb; }
+
+.table-info,
+.table-info > th,
+.table-info > td {
+ background-color: #bee5eb; }
+
+.table-hover .table-info:hover {
+ background-color: #abdde5; }
+ .table-hover .table-info:hover > td,
+ .table-hover .table-info:hover > th {
+ background-color: #abdde5; }
+
+.table-warning,
+.table-warning > th,
+.table-warning > td {
+ background-color: #ffeeba; }
+
+.table-hover .table-warning:hover {
+ background-color: #ffe8a1; }
+ .table-hover .table-warning:hover > td,
+ .table-hover .table-warning:hover > th {
+ background-color: #ffe8a1; }
+
+.table-danger,
+.table-danger > th,
+.table-danger > td {
+ background-color: #f5c6cb; }
+
+.table-hover .table-danger:hover {
+ background-color: #f1b0b7; }
+ .table-hover .table-danger:hover > td,
+ .table-hover .table-danger:hover > th {
+ background-color: #f1b0b7; }
+
+.table-light,
+.table-light > th,
+.table-light > td {
+ background-color: #fdfdfe; }
+
+.table-hover .table-light:hover {
+ background-color: #ececf6; }
+ .table-hover .table-light:hover > td,
+ .table-hover .table-light:hover > th {
+ background-color: #ececf6; }
+
+.table-dark,
+.table-dark > th,
+.table-dark > td {
+ background-color: #c6c8ca; }
+
+.table-hover .table-dark:hover {
+ background-color: #b9bbbe; }
+ .table-hover .table-dark:hover > td,
+ .table-hover .table-dark:hover > th {
+ background-color: #b9bbbe; }
+
+.table-active,
+.table-active > th,
+.table-active > td {
+ background-color: rgba(0, 0, 0, 0.075); }
+
+.table-hover .table-active:hover {
+ background-color: rgba(0, 0, 0, 0.075); }
+ .table-hover .table-active:hover > td,
+ .table-hover .table-active:hover > th {
+ background-color: rgba(0, 0, 0, 0.075); }
+
+.table .thead-dark th {
+ color: #fff;
+ background-color: #212529;
+ border-color: #32383e; }
+
+.table .thead-light th {
+ color: #495057;
+ background-color: #e9ecef;
+ border-color: #e9ecef; }
+
+.table-dark {
+ color: #fff;
+ background-color: #212529; }
+ .table-dark th,
+ .table-dark td,
+ .table-dark thead th {
+ border-color: #32383e; }
+ .table-dark.table-bordered {
+ border: 0; }
+ .table-dark.table-striped tbody tr:nth-of-type(odd) {
+ background-color: rgba(255, 255, 255, 0.05); }
+ .table-dark.table-hover tbody tr:hover {
+ background-color: rgba(255, 255, 255, 0.075); }
+
+@media (max-width: 575px) {
+ .table-responsive-sm {
+ display: block;
+ width: 100%;
+ overflow-x: auto;
+ -webkit-overflow-scrolling: touch;
+ -ms-overflow-style: -ms-autohiding-scrollbar; }
+ .table-responsive-sm.table-bordered {
+ border: 0; } }
+
+@media (max-width: 767px) {
+ .table-responsive-md {
+ display: block;
+ width: 100%;
+ overflow-x: auto;
+ -webkit-overflow-scrolling: touch;
+ -ms-overflow-style: -ms-autohiding-scrollbar; }
+ .table-responsive-md.table-bordered {
+ border: 0; } }
+
+@media (max-width: 991px) {
+ .table-responsive-lg {
+ display: block;
+ width: 100%;
+ overflow-x: auto;
+ -webkit-overflow-scrolling: touch;
+ -ms-overflow-style: -ms-autohiding-scrollbar; }
+ .table-responsive-lg.table-bordered {
+ border: 0; } }
+
+@media (max-width: 1199px) {
+ .table-responsive-xl {
+ display: block;
+ width: 100%;
+ overflow-x: auto;
+ -webkit-overflow-scrolling: touch;
+ -ms-overflow-style: -ms-autohiding-scrollbar; }
+ .table-responsive-xl.table-bordered {
+ border: 0; } }
+
+.table-responsive {
+ display: block;
+ width: 100%;
+ overflow-x: auto;
+ -webkit-overflow-scrolling: touch;
+ -ms-overflow-style: -ms-autohiding-scrollbar; }
+ .table-responsive.table-bordered {
+ border: 0; }
+
+.form-control {
+ display: block;
+ width: 100%;
+ padding: 0.375rem 0.75rem;
+ font-size: 1rem;
+ line-height: 1.5;
+ color: #495057;
+ background-color: #fff;
+ background-image: none;
+ background-clip: padding-box;
+ border: 1px solid #ced4da;
+ border-radius: 0.25rem;
+ transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; }
+ .form-control::-ms-expand {
+ background-color: transparent;
+ border: 0; }
+ .form-control:focus {
+ color: #495057;
+ background-color: #fff;
+ border-color: #80bdff;
+ outline: none;
+ box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); }
+ .form-control::placeholder {
+ color: #868e96;
+ opacity: 1; }
+ .form-control:disabled, .form-control[readonly] {
+ background-color: #e9ecef;
+ opacity: 1; }
+
+select.form-control:not([size]):not([multiple]) {
+ height: calc(2.25rem + 2px); }
+
+select.form-control:focus::-ms-value {
+ color: #495057;
+ background-color: #fff; }
+
+.form-control-file,
+.form-control-range {
+ display: block; }
+
+.col-form-label {
+ padding-top: calc(0.375rem + 1px);
+ padding-bottom: calc(0.375rem + 1px);
+ margin-bottom: 0;
+ line-height: 1.5; }
+
+.col-form-label-lg {
+ padding-top: calc(0.5rem + 1px);
+ padding-bottom: calc(0.5rem + 1px);
+ font-size: 1.25rem;
+ line-height: 1.5; }
+
+.col-form-label-sm {
+ padding-top: calc(0.25rem + 1px);
+ padding-bottom: calc(0.25rem + 1px);
+ font-size: 0.875rem;
+ line-height: 1.5; }
+
+.col-form-legend {
+ padding-top: 0.375rem;
+ padding-bottom: 0.375rem;
+ margin-bottom: 0;
+ font-size: 1rem; }
+
+.form-control-plaintext {
+ padding-top: 0.375rem;
+ padding-bottom: 0.375rem;
+ margin-bottom: 0;
+ line-height: 1.5;
+ background-color: transparent;
+ border: solid transparent;
+ border-width: 1px 0; }
+ .form-control-plaintext.form-control-sm, .input-group-sm > .form-control-plaintext.form-control,
+ .input-group-sm > .form-control-plaintext.input-group-addon,
+ .input-group-sm > .input-group-btn > .form-control-plaintext.btn, .form-control-plaintext.form-control-lg, .input-group-lg > .form-control-plaintext.form-control,
+ .input-group-lg > .form-control-plaintext.input-group-addon,
+ .input-group-lg > .input-group-btn > .form-control-plaintext.btn {
+ padding-right: 0;
+ padding-left: 0; }
+
+.form-control-sm, .input-group-sm > .form-control,
+.input-group-sm > .input-group-addon,
+.input-group-sm > .input-group-btn > .btn {
+ padding: 0.25rem 0.5rem;
+ font-size: 0.875rem;
+ line-height: 1.5;
+ border-radius: 0.2rem; }
+
+select.form-control-sm:not([size]):not([multiple]), .input-group-sm > select.form-control:not([size]):not([multiple]),
+.input-group-sm > select.input-group-addon:not([size]):not([multiple]),
+.input-group-sm > .input-group-btn > select.btn:not([size]):not([multiple]) {
+ height: calc(1.8125rem + 2px); }
+
+.form-control-lg, .input-group-lg > .form-control,
+.input-group-lg > .input-group-addon,
+.input-group-lg > .input-group-btn > .btn {
+ padding: 0.5rem 1rem;
+ font-size: 1.25rem;
+ line-height: 1.5;
+ border-radius: 0.3rem; }
+
+select.form-control-lg:not([size]):not([multiple]), .input-group-lg > select.form-control:not([size]):not([multiple]),
+.input-group-lg > select.input-group-addon:not([size]):not([multiple]),
+.input-group-lg > .input-group-btn > select.btn:not([size]):not([multiple]) {
+ height: calc(2.875rem + 2px); }
+
+.form-group {
+ margin-bottom: 1rem; }
+
+.form-text {
+ display: block;
+ margin-top: 0.25rem; }
+
+.form-row {
+ display: flex;
+ flex-wrap: wrap;
+ margin-right: -5px;
+ margin-left: -5px; }
+ .form-row > .col,
+ .form-row > [class*="col-"] {
+ padding-right: 5px;
+ padding-left: 5px; }
+
+.form-check {
+ position: relative;
+ display: block;
+ margin-bottom: 0.5rem; }
+ .form-check.disabled .form-check-label {
+ color: #868e96; }
+
+.form-check-label {
+ padding-left: 1.25rem;
+ margin-bottom: 0; }
+
+.form-check-input {
+ position: absolute;
+ margin-top: 0.25rem;
+ margin-left: -1.25rem; }
+
+.form-check-inline {
+ display: inline-block;
+ margin-right: 0.75rem; }
+ .form-check-inline .form-check-label {
+ vertical-align: middle; }
+
+.valid-feedback {
+ display: none;
+ margin-top: .25rem;
+ font-size: .875rem;
+ color: #28a745; }
+
+.valid-tooltip {
+ position: absolute;
+ top: 100%;
+ z-index: 5;
+ display: none;
+ width: 250px;
+ padding: .5rem;
+ margin-top: .1rem;
+ font-size: .875rem;
+ line-height: 1;
+ color: #fff;
+ background-color: rgba(40, 167, 69, 0.8);
+ border-radius: .2rem; }
+
+.was-validated .form-control:valid, .form-control.is-valid, .was-validated
+.custom-select:valid,
+.custom-select.is-valid {
+ border-color: #28a745; }
+ .was-validated .form-control:valid:focus, .form-control.is-valid:focus, .was-validated
+ .custom-select:valid:focus,
+ .custom-select.is-valid:focus {
+ box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); }
+ .was-validated .form-control:valid ~ .valid-feedback,
+ .was-validated .form-control:valid ~ .valid-tooltip, .form-control.is-valid ~ .valid-feedback,
+ .form-control.is-valid ~ .valid-tooltip, .was-validated
+ .custom-select:valid ~ .valid-feedback,
+ .was-validated
+ .custom-select:valid ~ .valid-tooltip,
+ .custom-select.is-valid ~ .valid-feedback,
+ .custom-select.is-valid ~ .valid-tooltip {
+ display: block; }
+
+.was-validated .form-check-input:valid + .form-check-label, .form-check-input.is-valid + .form-check-label {
+ color: #28a745; }
+
+.was-validated .custom-control-input:valid ~ .custom-control-indicator, .custom-control-input.is-valid ~ .custom-control-indicator {
+ background-color: rgba(40, 167, 69, 0.25); }
+
+.was-validated .custom-control-input:valid ~ .custom-control-description, .custom-control-input.is-valid ~ .custom-control-description {
+ color: #28a745; }
+
+.was-validated .custom-file-input:valid ~ .custom-file-control, .custom-file-input.is-valid ~ .custom-file-control {
+ border-color: #28a745; }
+ .was-validated .custom-file-input:valid ~ .custom-file-control::before, .custom-file-input.is-valid ~ .custom-file-control::before {
+ border-color: inherit; }
+
+.was-validated .custom-file-input:valid:focus, .custom-file-input.is-valid:focus {
+ box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); }
+
+.invalid-feedback {
+ display: none;
+ margin-top: .25rem;
+ font-size: .875rem;
+ color: #dc3545; }
+
+.invalid-tooltip {
+ position: absolute;
+ top: 100%;
+ z-index: 5;
+ display: none;
+ width: 250px;
+ padding: .5rem;
+ margin-top: .1rem;
+ font-size: .875rem;
+ line-height: 1;
+ color: #fff;
+ background-color: rgba(220, 53, 69, 0.8);
+ border-radius: .2rem; }
+
+.was-validated .form-control:invalid, .form-control.is-invalid, .was-validated
+.custom-select:invalid,
+.custom-select.is-invalid {
+ border-color: #dc3545; }
+ .was-validated .form-control:invalid:focus, .form-control.is-invalid:focus, .was-validated
+ .custom-select:invalid:focus,
+ .custom-select.is-invalid:focus {
+ box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); }
+ .was-validated .form-control:invalid ~ .invalid-feedback,
+ .was-validated .form-control:invalid ~ .invalid-tooltip, .form-control.is-invalid ~ .invalid-feedback,
+ .form-control.is-invalid ~ .invalid-tooltip, .was-validated
+ .custom-select:invalid ~ .invalid-feedback,
+ .was-validated
+ .custom-select:invalid ~ .invalid-tooltip,
+ .custom-select.is-invalid ~ .invalid-feedback,
+ .custom-select.is-invalid ~ .invalid-tooltip {
+ display: block; }
+
+.was-validated .form-check-input:invalid + .form-check-label, .form-check-input.is-invalid + .form-check-label {
+ color: #dc3545; }
+
+.was-validated .custom-control-input:invalid ~ .custom-control-indicator, .custom-control-input.is-invalid ~ .custom-control-indicator {
+ background-color: rgba(220, 53, 69, 0.25); }
+
+.was-validated .custom-control-input:invalid ~ .custom-control-description, .custom-control-input.is-invalid ~ .custom-control-description {
+ color: #dc3545; }
+
+.was-validated .custom-file-input:invalid ~ .custom-file-control, .custom-file-input.is-invalid ~ .custom-file-control {
+ border-color: #dc3545; }
+ .was-validated .custom-file-input:invalid ~ .custom-file-control::before, .custom-file-input.is-invalid ~ .custom-file-control::before {
+ border-color: inherit; }
+
+.was-validated .custom-file-input:invalid:focus, .custom-file-input.is-invalid:focus {
+ box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); }
+
+.form-inline {
+ display: flex;
+ flex-flow: row wrap;
+ align-items: center; }
+ .form-inline .form-check {
+ width: 100%; }
+ @media (min-width: 576px) {
+ .form-inline label {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ margin-bottom: 0; }
+ .form-inline .form-group {
+ display: flex;
+ flex: 0 0 auto;
+ flex-flow: row wrap;
+ align-items: center;
+ margin-bottom: 0; }
+ .form-inline .form-control {
+ display: inline-block;
+ width: auto;
+ vertical-align: middle; }
+ .form-inline .form-control-plaintext {
+ display: inline-block; }
+ .form-inline .input-group {
+ width: auto; }
+ .form-inline .form-check {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ width: auto;
+ margin-top: 0;
+ margin-bottom: 0; }
+ .form-inline .form-check-label {
+ padding-left: 0; }
+ .form-inline .form-check-input {
+ position: relative;
+ margin-top: 0;
+ margin-right: 0.25rem;
+ margin-left: 0; }
+ .form-inline .custom-control {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ padding-left: 0; }
+ .form-inline .custom-control-indicator {
+ position: static;
+ display: inline-block;
+ margin-right: 0.25rem;
+ vertical-align: text-bottom; }
+ .form-inline .has-feedback .form-control-feedback {
+ top: 0; } }
+
+.btn {
+ display: inline-block;
+ font-weight: 400;
+ text-align: center;
+ white-space: nowrap;
+ vertical-align: middle;
+ user-select: none;
+ border: 1px solid transparent;
+ padding: 0.375rem 0.75rem;
+ font-size: 1rem;
+ line-height: 1.5;
+ border-radius: 0.25rem;
+ transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; }
+ .btn:focus, .btn:hover {
+ text-decoration: none; }
+ .btn:focus, .btn.focus {
+ outline: 0;
+ box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); }
+ .btn.disabled, .btn:disabled {
+ opacity: .65; }
+ .btn:not([disabled]):not(.disabled):active, .btn:not([disabled]):not(.disabled).active {
+ background-image: none; }
+
+a.btn.disabled,
+fieldset[disabled] a.btn {
+ pointer-events: none; }
+
+.btn-primary {
+ color: #fff;
+ background-color: #007bff;
+ border-color: #007bff; }
+ .btn-primary:hover {
+ color: #fff;
+ background-color: #0069d9;
+ border-color: #0062cc; }
+ .btn-primary:focus, .btn-primary.focus {
+ box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5); }
+ .btn-primary.disabled, .btn-primary:disabled {
+ background-color: #007bff;
+ border-color: #007bff; }
+ .btn-primary:not([disabled]):not(.disabled):active, .btn-primary:not([disabled]):not(.disabled).active,
+ .show > .btn-primary.dropdown-toggle {
+ color: #fff;
+ background-color: #0062cc;
+ border-color: #005cbf;
+ box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5); }
+
+.btn-secondary {
+ color: #fff;
+ background-color: #868e96;
+ border-color: #868e96; }
+ .btn-secondary:hover {
+ color: #fff;
+ background-color: #727b84;
+ border-color: #6c757d; }
+ .btn-secondary:focus, .btn-secondary.focus {
+ box-shadow: 0 0 0 0.2rem rgba(134, 142, 150, 0.5); }
+ .btn-secondary.disabled, .btn-secondary:disabled {
+ background-color: #868e96;
+ border-color: #868e96; }
+ .btn-secondary:not([disabled]):not(.disabled):active, .btn-secondary:not([disabled]):not(.disabled).active,
+ .show > .btn-secondary.dropdown-toggle {
+ color: #fff;
+ background-color: #6c757d;
+ border-color: #666e76;
+ box-shadow: 0 0 0 0.2rem rgba(134, 142, 150, 0.5); }
+
+.btn-success {
+ color: #fff;
+ background-color: #28a745;
+ border-color: #28a745; }
+ .btn-success:hover {
+ color: #fff;
+ background-color: #218838;
+ border-color: #1e7e34; }
+ .btn-success:focus, .btn-success.focus {
+ box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); }
+ .btn-success.disabled, .btn-success:disabled {
+ background-color: #28a745;
+ border-color: #28a745; }
+ .btn-success:not([disabled]):not(.disabled):active, .btn-success:not([disabled]):not(.disabled).active,
+ .show > .btn-success.dropdown-toggle {
+ color: #fff;
+ background-color: #1e7e34;
+ border-color: #1c7430;
+ box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); }
+
+.btn-info {
+ color: #fff;
+ background-color: #17a2b8;
+ border-color: #17a2b8; }
+ .btn-info:hover {
+ color: #fff;
+ background-color: #138496;
+ border-color: #117a8b; }
+ .btn-info:focus, .btn-info.focus {
+ box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5); }
+ .btn-info.disabled, .btn-info:disabled {
+ background-color: #17a2b8;
+ border-color: #17a2b8; }
+ .btn-info:not([disabled]):not(.disabled):active, .btn-info:not([disabled]):not(.disabled).active,
+ .show > .btn-info.dropdown-toggle {
+ color: #fff;
+ background-color: #117a8b;
+ border-color: #10707f;
+ box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5); }
+
+.btn-warning {
+ color: #111;
+ background-color: #ffc107;
+ border-color: #ffc107; }
+ .btn-warning:hover {
+ color: #111;
+ background-color: #e0a800;
+ border-color: #d39e00; }
+ .btn-warning:focus, .btn-warning.focus {
+ box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); }
+ .btn-warning.disabled, .btn-warning:disabled {
+ background-color: #ffc107;
+ border-color: #ffc107; }
+ .btn-warning:not([disabled]):not(.disabled):active, .btn-warning:not([disabled]):not(.disabled).active,
+ .show > .btn-warning.dropdown-toggle {
+ color: #111;
+ background-color: #d39e00;
+ border-color: #c69500;
+ box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); }
+
+.btn-danger {
+ color: #fff;
+ background-color: #dc3545;
+ border-color: #dc3545; }
+ .btn-danger:hover {
+ color: #fff;
+ background-color: #c82333;
+ border-color: #bd2130; }
+ .btn-danger:focus, .btn-danger.focus {
+ box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); }
+ .btn-danger.disabled, .btn-danger:disabled {
+ background-color: #dc3545;
+ border-color: #dc3545; }
+ .btn-danger:not([disabled]):not(.disabled):active, .btn-danger:not([disabled]):not(.disabled).active,
+ .show > .btn-danger.dropdown-toggle {
+ color: #fff;
+ background-color: #bd2130;
+ border-color: #b21f2d;
+ box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); }
+
+.btn-light {
+ color: #111;
+ background-color: #f8f9fa;
+ border-color: #f8f9fa; }
+ .btn-light:hover {
+ color: #111;
+ background-color: #e2e6ea;
+ border-color: #dae0e5; }
+ .btn-light:focus, .btn-light.focus {
+ box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); }
+ .btn-light.disabled, .btn-light:disabled {
+ background-color: #f8f9fa;
+ border-color: #f8f9fa; }
+ .btn-light:not([disabled]):not(.disabled):active, .btn-light:not([disabled]):not(.disabled).active,
+ .show > .btn-light.dropdown-toggle {
+ color: #111;
+ background-color: #dae0e5;
+ border-color: #d3d9df;
+ box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); }
+
+.btn-dark {
+ color: #fff;
+ background-color: #343a40;
+ border-color: #343a40; }
+ .btn-dark:hover {
+ color: #fff;
+ background-color: #23272b;
+ border-color: #1d2124; }
+ .btn-dark:focus, .btn-dark.focus {
+ box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); }
+ .btn-dark.disabled, .btn-dark:disabled {
+ background-color: #343a40;
+ border-color: #343a40; }
+ .btn-dark:not([disabled]):not(.disabled):active, .btn-dark:not([disabled]):not(.disabled).active,
+ .show > .btn-dark.dropdown-toggle {
+ color: #fff;
+ background-color: #1d2124;
+ border-color: #171a1d;
+ box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); }
+
+.btn-outline-primary {
+ color: #007bff;
+ background-color: transparent;
+ background-image: none;
+ border-color: #007bff; }
+ .btn-outline-primary:hover {
+ color: #fff;
+ background-color: #007bff;
+ border-color: #007bff; }
+ .btn-outline-primary:focus, .btn-outline-primary.focus {
+ box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5); }
+ .btn-outline-primary.disabled, .btn-outline-primary:disabled {
+ color: #007bff;
+ background-color: transparent; }
+ .btn-outline-primary:not([disabled]):not(.disabled):active, .btn-outline-primary:not([disabled]):not(.disabled).active,
+ .show > .btn-outline-primary.dropdown-toggle {
+ color: #fff;
+ background-color: #007bff;
+ border-color: #007bff;
+ box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5); }
+
+.btn-outline-secondary {
+ color: #868e96;
+ background-color: transparent;
+ background-image: none;
+ border-color: #868e96; }
+ .btn-outline-secondary:hover {
+ color: #fff;
+ background-color: #868e96;
+ border-color: #868e96; }
+ .btn-outline-secondary:focus, .btn-outline-secondary.focus {
+ box-shadow: 0 0 0 0.2rem rgba(134, 142, 150, 0.5); }
+ .btn-outline-secondary.disabled, .btn-outline-secondary:disabled {
+ color: #868e96;
+ background-color: transparent; }
+ .btn-outline-secondary:not([disabled]):not(.disabled):active, .btn-outline-secondary:not([disabled]):not(.disabled).active,
+ .show > .btn-outline-secondary.dropdown-toggle {
+ color: #fff;
+ background-color: #868e96;
+ border-color: #868e96;
+ box-shadow: 0 0 0 0.2rem rgba(134, 142, 150, 0.5); }
+
+.btn-outline-success {
+ color: #28a745;
+ background-color: transparent;
+ background-image: none;
+ border-color: #28a745; }
+ .btn-outline-success:hover {
+ color: #fff;
+ background-color: #28a745;
+ border-color: #28a745; }
+ .btn-outline-success:focus, .btn-outline-success.focus {
+ box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); }
+ .btn-outline-success.disabled, .btn-outline-success:disabled {
+ color: #28a745;
+ background-color: transparent; }
+ .btn-outline-success:not([disabled]):not(.disabled):active, .btn-outline-success:not([disabled]):not(.disabled).active,
+ .show > .btn-outline-success.dropdown-toggle {
+ color: #fff;
+ background-color: #28a745;
+ border-color: #28a745;
+ box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); }
+
+.btn-outline-info {
+ color: #17a2b8;
+ background-color: transparent;
+ background-image: none;
+ border-color: #17a2b8; }
+ .btn-outline-info:hover {
+ color: #fff;
+ background-color: #17a2b8;
+ border-color: #17a2b8; }
+ .btn-outline-info:focus, .btn-outline-info.focus {
+ box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5); }
+ .btn-outline-info.disabled, .btn-outline-info:disabled {
+ color: #17a2b8;
+ background-color: transparent; }
+ .btn-outline-info:not([disabled]):not(.disabled):active, .btn-outline-info:not([disabled]):not(.disabled).active,
+ .show > .btn-outline-info.dropdown-toggle {
+ color: #fff;
+ background-color: #17a2b8;
+ border-color: #17a2b8;
+ box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5); }
+
+.btn-outline-warning {
+ color: #ffc107;
+ background-color: transparent;
+ background-image: none;
+ border-color: #ffc107; }
+ .btn-outline-warning:hover {
+ color: #fff;
+ background-color: #ffc107;
+ border-color: #ffc107; }
+ .btn-outline-warning:focus, .btn-outline-warning.focus {
+ box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); }
+ .btn-outline-warning.disabled, .btn-outline-warning:disabled {
+ color: #ffc107;
+ background-color: transparent; }
+ .btn-outline-warning:not([disabled]):not(.disabled):active, .btn-outline-warning:not([disabled]):not(.disabled).active,
+ .show > .btn-outline-warning.dropdown-toggle {
+ color: #fff;
+ background-color: #ffc107;
+ border-color: #ffc107;
+ box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); }
+
+.btn-outline-danger {
+ color: #dc3545;
+ background-color: transparent;
+ background-image: none;
+ border-color: #dc3545; }
+ .btn-outline-danger:hover {
+ color: #fff;
+ background-color: #dc3545;
+ border-color: #dc3545; }
+ .btn-outline-danger:focus, .btn-outline-danger.focus {
+ box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); }
+ .btn-outline-danger.disabled, .btn-outline-danger:disabled {
+ color: #dc3545;
+ background-color: transparent; }
+ .btn-outline-danger:not([disabled]):not(.disabled):active, .btn-outline-danger:not([disabled]):not(.disabled).active,
+ .show > .btn-outline-danger.dropdown-toggle {
+ color: #fff;
+ background-color: #dc3545;
+ border-color: #dc3545;
+ box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); }
+
+.btn-outline-light {
+ color: #f8f9fa;
+ background-color: transparent;
+ background-image: none;
+ border-color: #f8f9fa; }
+ .btn-outline-light:hover {
+ color: #212529;
+ background-color: #f8f9fa;
+ border-color: #f8f9fa; }
+ .btn-outline-light:focus, .btn-outline-light.focus {
+ box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); }
+ .btn-outline-light.disabled, .btn-outline-light:disabled {
+ color: #f8f9fa;
+ background-color: transparent; }
+ .btn-outline-light:not([disabled]):not(.disabled):active, .btn-outline-light:not([disabled]):not(.disabled).active,
+ .show > .btn-outline-light.dropdown-toggle {
+ color: #212529;
+ background-color: #f8f9fa;
+ border-color: #f8f9fa;
+ box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); }
+
+.btn-outline-dark {
+ color: #343a40;
+ background-color: transparent;
+ background-image: none;
+ border-color: #343a40; }
+ .btn-outline-dark:hover {
+ color: #fff;
+ background-color: #343a40;
+ border-color: #343a40; }
+ .btn-outline-dark:focus, .btn-outline-dark.focus {
+ box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); }
+ .btn-outline-dark.disabled, .btn-outline-dark:disabled {
+ color: #343a40;
+ background-color: transparent; }
+ .btn-outline-dark:not([disabled]):not(.disabled):active, .btn-outline-dark:not([disabled]):not(.disabled).active,
+ .show > .btn-outline-dark.dropdown-toggle {
+ color: #fff;
+ background-color: #343a40;
+ border-color: #343a40;
+ box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); }
+
+.btn-link {
+ font-weight: 400;
+ color: #007bff;
+ background-color: transparent; }
+ .btn-link:hover {
+ color: #0056b3;
+ text-decoration: underline;
+ background-color: transparent;
+ border-color: transparent; }
+ .btn-link:focus, .btn-link.focus {
+ border-color: transparent;
+ box-shadow: none; }
+ .btn-link:disabled, .btn-link.disabled {
+ color: #868e96; }
+
+.btn-lg, .btn-group-lg > .btn {
+ padding: 0.5rem 1rem;
+ font-size: 1.25rem;
+ line-height: 1.5;
+ border-radius: 0.3rem; }
+
+.btn-sm, .btn-group-sm > .btn {
+ padding: 0.25rem 0.5rem;
+ font-size: 0.875rem;
+ line-height: 1.5;
+ border-radius: 0.2rem; }
+
+.btn-block {
+ display: block;
+ width: 100%; }
+
+.btn-block + .btn-block {
+ margin-top: 0.5rem; }
+
+input[type="submit"].btn-block,
+input[type="reset"].btn-block,
+input[type="button"].btn-block {
+ width: 100%; }
+
+.fade {
+ opacity: 0;
+ transition: opacity 0.15s linear; }
+ .fade.show {
+ opacity: 1; }
+
+.collapse {
+ display: none; }
+ .collapse.show {
+ display: block; }
+
+tr.collapse.show {
+ display: table-row; }
+
+tbody.collapse.show {
+ display: table-row-group; }
+
+.collapsing {
+ position: relative;
+ height: 0;
+ overflow: hidden;
+ transition: height 0.35s ease; }
+
+.dropup,
+.dropdown {
+ position: relative; }
+
+.dropdown-toggle::after {
+ display: inline-block;
+ width: 0;
+ height: 0;
+ margin-left: 0.255em;
+ vertical-align: 0.255em;
+ content: "";
+ border-top: 0.3em solid;
+ border-right: 0.3em solid transparent;
+ border-bottom: 0;
+ border-left: 0.3em solid transparent; }
+
+.dropdown-toggle:empty::after {
+ margin-left: 0; }
+
+.dropdown-menu {
+ position: absolute;
+ top: 100%;
+ left: 0;
+ z-index: 1000;
+ display: none;
+ float: left;
+ min-width: 10rem;
+ padding: 0.5rem 0;
+ margin: 0.125rem 0 0;
+ font-size: 1rem;
+ color: #212529;
+ text-align: left;
+ list-style: none;
+ background-color: #fff;
+ background-clip: padding-box;
+ border: 1px solid rgba(0, 0, 0, 0.15);
+ border-radius: 0.25rem; }
+
+.dropup .dropdown-menu {
+ margin-top: 0;
+ margin-bottom: 0.125rem; }
+
+.dropup .dropdown-toggle::after {
+ display: inline-block;
+ width: 0;
+ height: 0;
+ margin-left: 0.255em;
+ vertical-align: 0.255em;
+ content: "";
+ border-top: 0;
+ border-right: 0.3em solid transparent;
+ border-bottom: 0.3em solid;
+ border-left: 0.3em solid transparent; }
+
+.dropup .dropdown-toggle:empty::after {
+ margin-left: 0; }
+
+.dropdown-divider {
+ height: 0;
+ margin: 0.5rem 0;
+ overflow: hidden;
+ border-top: 1px solid #e9ecef; }
+
+.dropdown-item {
+ display: block;
+ width: 100%;
+ padding: 0.25rem 1.5rem;
+ clear: both;
+ font-weight: 400;
+ color: #212529;
+ text-align: inherit;
+ white-space: nowrap;
+ background: none;
+ border: 0; }
+ .dropdown-item:focus, .dropdown-item:hover {
+ color: #16181b;
+ text-decoration: none;
+ background-color: #f8f9fa; }
+ .dropdown-item.active, .dropdown-item:active {
+ color: #fff;
+ text-decoration: none;
+ background-color: #007bff; }
+ .dropdown-item.disabled, .dropdown-item:disabled {
+ color: #868e96;
+ background-color: transparent; }
+
+.dropdown-menu.show {
+ display: block; }
+
+.dropdown-header {
+ display: block;
+ padding: 0.5rem 1.5rem;
+ margin-bottom: 0;
+ font-size: 0.875rem;
+ color: #868e96;
+ white-space: nowrap; }
+
+.btn-group,
+.btn-group-vertical {
+ position: relative;
+ display: inline-flex;
+ vertical-align: middle; }
+ .btn-group > .btn,
+ .btn-group-vertical > .btn {
+ position: relative;
+ flex: 0 1 auto; }
+ .btn-group > .btn:hover,
+ .btn-group-vertical > .btn:hover {
+ z-index: 2; }
+ .btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,
+ .btn-group-vertical > .btn:focus,
+ .btn-group-vertical > .btn:active,
+ .btn-group-vertical > .btn.active {
+ z-index: 2; }
+ .btn-group .btn + .btn,
+ .btn-group .btn + .btn-group,
+ .btn-group .btn-group + .btn,
+ .btn-group .btn-group + .btn-group,
+ .btn-group-vertical .btn + .btn,
+ .btn-group-vertical .btn + .btn-group,
+ .btn-group-vertical .btn-group + .btn,
+ .btn-group-vertical .btn-group + .btn-group {
+ margin-left: -1px; }
+
+.btn-toolbar {
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: flex-start; }
+ .btn-toolbar .input-group {
+ width: auto; }
+
+.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
+ border-radius: 0; }
+
+.btn-group > .btn:first-child {
+ margin-left: 0; }
+ .btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0; }
+
+.btn-group > .btn:last-child:not(:first-child),
+.btn-group > .dropdown-toggle:not(:first-child) {
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0; }
+
+.btn-group > .btn-group {
+ float: left; }
+
+.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
+ border-radius: 0; }
+
+.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,
+.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0; }
+
+.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0; }
+
+.btn + .dropdown-toggle-split {
+ padding-right: 0.5625rem;
+ padding-left: 0.5625rem; }
+ .btn + .dropdown-toggle-split::after {
+ margin-left: 0; }
+
+.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {
+ padding-right: 0.375rem;
+ padding-left: 0.375rem; }
+
+.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {
+ padding-right: 0.75rem;
+ padding-left: 0.75rem; }
+
+.btn-group-vertical {
+ flex-direction: column;
+ align-items: flex-start;
+ justify-content: center; }
+ .btn-group-vertical .btn,
+ .btn-group-vertical .btn-group {
+ width: 100%; }
+ .btn-group-vertical > .btn + .btn,
+ .btn-group-vertical > .btn + .btn-group,
+ .btn-group-vertical > .btn-group + .btn,
+ .btn-group-vertical > .btn-group + .btn-group {
+ margin-top: -1px;
+ margin-left: 0; }
+ .btn-group-vertical > .btn:not(:first-child):not(:last-child) {
+ border-radius: 0; }
+ .btn-group-vertical > .btn:first-child:not(:last-child) {
+ border-bottom-right-radius: 0;
+ border-bottom-left-radius: 0; }
+ .btn-group-vertical > .btn:last-child:not(:first-child) {
+ border-top-left-radius: 0;
+ border-top-right-radius: 0; }
+ .btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
+ border-radius: 0; }
+ .btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,
+ .btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
+ border-bottom-right-radius: 0;
+ border-bottom-left-radius: 0; }
+ .btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {
+ border-top-left-radius: 0;
+ border-top-right-radius: 0; }
+
+[data-toggle="buttons"] > .btn input[type="radio"],
+[data-toggle="buttons"] > .btn input[type="checkbox"],
+[data-toggle="buttons"] > .btn-group > .btn input[type="radio"],
+[data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] {
+ position: absolute;
+ clip: rect(0, 0, 0, 0);
+ pointer-events: none; }
+
+.input-group {
+ position: relative;
+ display: flex;
+ align-items: stretch;
+ width: 100%; }
+ .input-group .form-control {
+ position: relative;
+ z-index: 2;
+ flex: 1 1 auto;
+ width: 1%;
+ margin-bottom: 0; }
+ .input-group .form-control:focus, .input-group .form-control:active, .input-group .form-control:hover {
+ z-index: 3; }
+
+.input-group-addon,
+.input-group-btn,
+.input-group .form-control {
+ display: flex;
+ align-items: center; }
+ .input-group-addon:not(:first-child):not(:last-child),
+ .input-group-btn:not(:first-child):not(:last-child),
+ .input-group .form-control:not(:first-child):not(:last-child) {
+ border-radius: 0; }
+
+.input-group-addon,
+.input-group-btn {
+ white-space: nowrap; }
+
+.input-group-addon {
+ padding: 0.375rem 0.75rem;
+ margin-bottom: 0;
+ font-size: 1rem;
+ font-weight: 400;
+ line-height: 1.5;
+ color: #495057;
+ text-align: center;
+ background-color: #e9ecef;
+ border: 1px solid #ced4da;
+ border-radius: 0.25rem; }
+ .input-group-addon.form-control-sm,
+ .input-group-sm > .input-group-addon,
+ .input-group-sm > .input-group-btn > .input-group-addon.btn {
+ padding: 0.25rem 0.5rem;
+ font-size: 0.875rem;
+ border-radius: 0.2rem; }
+ .input-group-addon.form-control-lg,
+ .input-group-lg > .input-group-addon,
+ .input-group-lg > .input-group-btn > .input-group-addon.btn {
+ padding: 0.5rem 1rem;
+ font-size: 1.25rem;
+ border-radius: 0.3rem; }
+ .input-group-addon input[type="radio"],
+ .input-group-addon input[type="checkbox"] {
+ margin-top: 0; }
+
+.input-group .form-control:not(:last-child),
+.input-group-addon:not(:last-child),
+.input-group-btn:not(:last-child) > .btn,
+.input-group-btn:not(:last-child) > .btn-group > .btn,
+.input-group-btn:not(:last-child) > .dropdown-toggle,
+.input-group-btn:not(:first-child) > .btn:not(:last-child):not(.dropdown-toggle),
+.input-group-btn:not(:first-child) > .btn-group:not(:last-child) > .btn {
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0; }
+
+.input-group-addon:not(:last-child) {
+ border-right: 0; }
+
+.input-group .form-control:not(:first-child),
+.input-group-addon:not(:first-child),
+.input-group-btn:not(:first-child) > .btn,
+.input-group-btn:not(:first-child) > .btn-group > .btn,
+.input-group-btn:not(:first-child) > .dropdown-toggle,
+.input-group-btn:not(:last-child) > .btn:not(:first-child),
+.input-group-btn:not(:last-child) > .btn-group:not(:first-child) > .btn {
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0; }
+
+.form-control + .input-group-addon:not(:first-child) {
+ border-left: 0; }
+
+.input-group-btn {
+ position: relative;
+ align-items: stretch;
+ font-size: 0;
+ white-space: nowrap; }
+ .input-group-btn > .btn {
+ position: relative; }
+ .input-group-btn > .btn + .btn {
+ margin-left: -1px; }
+ .input-group-btn > .btn:focus, .input-group-btn > .btn:active, .input-group-btn > .btn:hover {
+ z-index: 3; }
+ .input-group-btn:first-child > .btn + .btn {
+ margin-left: 0; }
+ .input-group-btn:not(:last-child) > .btn,
+ .input-group-btn:not(:last-child) > .btn-group {
+ margin-right: -1px; }
+ .input-group-btn:not(:first-child) > .btn,
+ .input-group-btn:not(:first-child) > .btn-group {
+ z-index: 2;
+ margin-left: 0; }
+ .input-group-btn:not(:first-child) > .btn:first-child,
+ .input-group-btn:not(:first-child) > .btn-group:first-child {
+ margin-left: -1px; }
+ .input-group-btn:not(:first-child) > .btn:focus, .input-group-btn:not(:first-child) > .btn:active, .input-group-btn:not(:first-child) > .btn:hover,
+ .input-group-btn:not(:first-child) > .btn-group:focus,
+ .input-group-btn:not(:first-child) > .btn-group:active,
+ .input-group-btn:not(:first-child) > .btn-group:hover {
+ z-index: 3; }
+
+.custom-control {
+ position: relative;
+ display: inline-flex;
+ min-height: 1.5rem;
+ padding-left: 1.5rem;
+ margin-right: 1rem; }
+
+.custom-control-input {
+ position: absolute;
+ z-index: -1;
+ opacity: 0; }
+ .custom-control-input:checked ~ .custom-control-indicator {
+ color: #fff;
+ background-color: #007bff; }
+ .custom-control-input:focus ~ .custom-control-indicator {
+ box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25); }
+ .custom-control-input:active ~ .custom-control-indicator {
+ color: #fff;
+ background-color: #b3d7ff; }
+ .custom-control-input:disabled ~ .custom-control-indicator {
+ background-color: #e9ecef; }
+ .custom-control-input:disabled ~ .custom-control-description {
+ color: #868e96; }
+
+.custom-control-indicator {
+ position: absolute;
+ top: 0.25rem;
+ left: 0;
+ display: block;
+ width: 1rem;
+ height: 1rem;
+ pointer-events: none;
+ user-select: none;
+ background-color: #ddd;
+ background-repeat: no-repeat;
+ background-position: center center;
+ background-size: 50% 50%; }
+
+.custom-checkbox .custom-control-indicator {
+ border-radius: 0.25rem; }
+
+.custom-checkbox .custom-control-input:checked ~ .custom-control-indicator {
+ background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E"); }
+
+.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-indicator {
+ background-color: #007bff;
+ background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E"); }
+
+.custom-radio .custom-control-indicator {
+ border-radius: 50%; }
+
+.custom-radio .custom-control-input:checked ~ .custom-control-indicator {
+ background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E"); }
+
+.custom-controls-stacked {
+ display: flex;
+ flex-direction: column; }
+ .custom-controls-stacked .custom-control {
+ margin-bottom: 0.25rem; }
+ .custom-controls-stacked .custom-control + .custom-control {
+ margin-left: 0; }
+
+.custom-select {
+ display: inline-block;
+ max-width: 100%;
+ height: calc(2.25rem + 2px);
+ padding: 0.375rem 1.75rem 0.375rem 0.75rem;
+ line-height: 1.5;
+ color: #495057;
+ vertical-align: middle;
+ background: #fff url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23333' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right 0.75rem center;
+ background-size: 8px 10px;
+ border: 1px solid #ced4da;
+ border-radius: 0.25rem;
+ appearance: none; }
+ .custom-select:focus {
+ border-color: #80bdff;
+ outline: none; }
+ .custom-select:focus::-ms-value {
+ color: #495057;
+ background-color: #fff; }
+ .custom-select[multiple] {
+ height: auto;
+ background-image: none; }
+ .custom-select:disabled {
+ color: #868e96;
+ background-color: #e9ecef; }
+ .custom-select::-ms-expand {
+ opacity: 0; }
+
+.custom-select-sm {
+ height: calc(1.8125rem + 2px);
+ padding-top: 0.375rem;
+ padding-bottom: 0.375rem;
+ font-size: 75%; }
+
+.custom-file {
+ position: relative;
+ display: inline-block;
+ max-width: 100%;
+ height: calc(2.25rem + 2px);
+ margin-bottom: 0; }
+
+.custom-file-input {
+ min-width: 14rem;
+ max-width: 100%;
+ height: calc(2.25rem + 2px);
+ margin: 0;
+ opacity: 0; }
+ .custom-file-input:focus ~ .custom-file-control {
+ box-shadow: 0 0 0 0.075rem #fff, 0 0 0 0.2rem #007bff; }
+
+.custom-file-control {
+ position: absolute;
+ top: 0;
+ right: 0;
+ left: 0;
+ z-index: 5;
+ height: calc(2.25rem + 2px);
+ padding: 0.375rem 0.75rem;
+ line-height: 1.5;
+ color: #495057;
+ pointer-events: none;
+ user-select: none;
+ background-color: #fff;
+ border: 1px solid #ced4da;
+ border-radius: 0.25rem; }
+ .custom-file-control:lang(en):empty::after {
+ content: "Choose file..."; }
+ .custom-file-control::before {
+ position: absolute;
+ top: -1px;
+ right: -1px;
+ bottom: -1px;
+ z-index: 6;
+ display: block;
+ height: calc(2.25rem + 2px);
+ padding: 0.375rem 0.75rem;
+ line-height: 1.5;
+ color: #495057;
+ background-color: #e9ecef;
+ border: 1px solid #ced4da;
+ border-radius: 0 0.25rem 0.25rem 0; }
+ .custom-file-control:lang(en)::before {
+ content: "Browse"; }
+
+.nav {
+ display: flex;
+ flex-wrap: wrap;
+ padding-left: 0;
+ margin-bottom: 0;
+ list-style: none; }
+
+.nav-link {
+ display: block;
+ padding: 0.5rem 1rem; }
+ .nav-link:focus, .nav-link:hover {
+ text-decoration: none; }
+ .nav-link.disabled {
+ color: #868e96; }
+
+.nav-tabs {
+ border-bottom: 1px solid #ddd; }
+ .nav-tabs .nav-item {
+ margin-bottom: -1px; }
+ .nav-tabs .nav-link {
+ border: 1px solid transparent;
+ border-top-left-radius: 0.25rem;
+ border-top-right-radius: 0.25rem; }
+ .nav-tabs .nav-link:focus, .nav-tabs .nav-link:hover {
+ border-color: #e9ecef #e9ecef #ddd; }
+ .nav-tabs .nav-link.disabled {
+ color: #868e96;
+ background-color: transparent;
+ border-color: transparent; }
+ .nav-tabs .nav-link.active,
+ .nav-tabs .nav-item.show .nav-link {
+ color: #495057;
+ background-color: #fff;
+ border-color: #ddd #ddd #fff; }
+ .nav-tabs .dropdown-menu {
+ margin-top: -1px;
+ border-top-left-radius: 0;
+ border-top-right-radius: 0; }
+
+.nav-pills .nav-link {
+ border-radius: 0.25rem; }
+
+.nav-pills .nav-link.active,
+.nav-pills .show > .nav-link {
+ color: #fff;
+ background-color: #007bff; }
+
+.nav-fill .nav-item {
+ flex: 1 1 auto;
+ text-align: center; }
+
+.nav-justified .nav-item {
+ flex-basis: 0;
+ flex-grow: 1;
+ text-align: center; }
+
+.tab-content > .tab-pane {
+ display: none; }
+
+.tab-content > .active {
+ display: block; }
+
+.navbar {
+ position: relative;
+ display: flex;
+ flex-wrap: wrap;
+ align-items: center;
+ justify-content: space-between;
+ padding: 0.5rem 1rem; }
+ .navbar > .container,
+ .navbar > .container-fluid {
+ display: flex;
+ flex-wrap: wrap;
+ align-items: center;
+ justify-content: space-between; }
+
+.navbar-brand {
+ display: inline-block;
+ padding-top: 0.3125rem;
+ padding-bottom: 0.3125rem;
+ margin-right: 1rem;
+ font-size: 1.25rem;
+ line-height: inherit;
+ white-space: nowrap; }
+ .navbar-brand:focus, .navbar-brand:hover {
+ text-decoration: none; }
+
+.navbar-nav {
+ display: flex;
+ flex-direction: column;
+ padding-left: 0;
+ margin-bottom: 0;
+ list-style: none; }
+ .navbar-nav .nav-link {
+ padding-right: 0;
+ padding-left: 0; }
+ .navbar-nav .dropdown-menu {
+ position: static;
+ float: none; }
+
+.navbar-text {
+ display: inline-block;
+ padding-top: 0.5rem;
+ padding-bottom: 0.5rem; }
+
+.navbar-collapse {
+ flex-basis: 100%;
+ flex-grow: 1;
+ align-items: center; }
+
+.navbar-toggler {
+ padding: 0.25rem 0.75rem;
+ font-size: 1.25rem;
+ line-height: 1;
+ background: transparent;
+ border: 1px solid transparent;
+ border-radius: 0.25rem; }
+ .navbar-toggler:focus, .navbar-toggler:hover {
+ text-decoration: none; }
+
+.navbar-toggler-icon {
+ display: inline-block;
+ width: 1.5em;
+ height: 1.5em;
+ vertical-align: middle;
+ content: "";
+ background: no-repeat center center;
+ background-size: 100% 100%; }
+
+@media (max-width: 575px) {
+ .navbar-expand-sm > .container,
+ .navbar-expand-sm > .container-fluid {
+ padding-right: 0;
+ padding-left: 0; } }
+
+@media (min-width: 576px) {
+ .navbar-expand-sm {
+ flex-flow: row nowrap;
+ justify-content: flex-start; }
+ .navbar-expand-sm .navbar-nav {
+ flex-direction: row; }
+ .navbar-expand-sm .navbar-nav .dropdown-menu {
+ position: absolute; }
+ .navbar-expand-sm .navbar-nav .dropdown-menu-right {
+ right: 0;
+ left: auto; }
+ .navbar-expand-sm .navbar-nav .nav-link {
+ padding-right: .5rem;
+ padding-left: .5rem; }
+ .navbar-expand-sm > .container,
+ .navbar-expand-sm > .container-fluid {
+ flex-wrap: nowrap; }
+ .navbar-expand-sm .navbar-collapse {
+ display: flex !important;
+ flex-basis: auto; }
+ .navbar-expand-sm .navbar-toggler {
+ display: none; }
+ .navbar-expand-sm .dropup .dropdown-menu {
+ top: auto;
+ bottom: 100%; } }
+
+@media (max-width: 767px) {
+ .navbar-expand-md > .container,
+ .navbar-expand-md > .container-fluid {
+ padding-right: 0;
+ padding-left: 0; } }
+
+@media (min-width: 768px) {
+ .navbar-expand-md {
+ flex-flow: row nowrap;
+ justify-content: flex-start; }
+ .navbar-expand-md .navbar-nav {
+ flex-direction: row; }
+ .navbar-expand-md .navbar-nav .dropdown-menu {
+ position: absolute; }
+ .navbar-expand-md .navbar-nav .dropdown-menu-right {
+ right: 0;
+ left: auto; }
+ .navbar-expand-md .navbar-nav .nav-link {
+ padding-right: .5rem;
+ padding-left: .5rem; }
+ .navbar-expand-md > .container,
+ .navbar-expand-md > .container-fluid {
+ flex-wrap: nowrap; }
+ .navbar-expand-md .navbar-collapse {
+ display: flex !important;
+ flex-basis: auto; }
+ .navbar-expand-md .navbar-toggler {
+ display: none; }
+ .navbar-expand-md .dropup .dropdown-menu {
+ top: auto;
+ bottom: 100%; } }
+
+@media (max-width: 991px) {
+ .navbar-expand-lg > .container,
+ .navbar-expand-lg > .container-fluid {
+ padding-right: 0;
+ padding-left: 0; } }
+
+@media (min-width: 992px) {
+ .navbar-expand-lg {
+ flex-flow: row nowrap;
+ justify-content: flex-start; }
+ .navbar-expand-lg .navbar-nav {
+ flex-direction: row; }
+ .navbar-expand-lg .navbar-nav .dropdown-menu {
+ position: absolute; }
+ .navbar-expand-lg .navbar-nav .dropdown-menu-right {
+ right: 0;
+ left: auto; }
+ .navbar-expand-lg .navbar-nav .nav-link {
+ padding-right: .5rem;
+ padding-left: .5rem; }
+ .navbar-expand-lg > .container,
+ .navbar-expand-lg > .container-fluid {
+ flex-wrap: nowrap; }
+ .navbar-expand-lg .navbar-collapse {
+ display: flex !important;
+ flex-basis: auto; }
+ .navbar-expand-lg .navbar-toggler {
+ display: none; }
+ .navbar-expand-lg .dropup .dropdown-menu {
+ top: auto;
+ bottom: 100%; } }
+
+@media (max-width: 1199px) {
+ .navbar-expand-xl > .container,
+ .navbar-expand-xl > .container-fluid {
+ padding-right: 0;
+ padding-left: 0; } }
+
+@media (min-width: 1200px) {
+ .navbar-expand-xl {
+ flex-flow: row nowrap;
+ justify-content: flex-start; }
+ .navbar-expand-xl .navbar-nav {
+ flex-direction: row; }
+ .navbar-expand-xl .navbar-nav .dropdown-menu {
+ position: absolute; }
+ .navbar-expand-xl .navbar-nav .dropdown-menu-right {
+ right: 0;
+ left: auto; }
+ .navbar-expand-xl .navbar-nav .nav-link {
+ padding-right: .5rem;
+ padding-left: .5rem; }
+ .navbar-expand-xl > .container,
+ .navbar-expand-xl > .container-fluid {
+ flex-wrap: nowrap; }
+ .navbar-expand-xl .navbar-collapse {
+ display: flex !important;
+ flex-basis: auto; }
+ .navbar-expand-xl .navbar-toggler {
+ display: none; }
+ .navbar-expand-xl .dropup .dropdown-menu {
+ top: auto;
+ bottom: 100%; } }
+
+.navbar-expand {
+ flex-flow: row nowrap;
+ justify-content: flex-start; }
+ .navbar-expand > .container,
+ .navbar-expand > .container-fluid {
+ padding-right: 0;
+ padding-left: 0; }
+ .navbar-expand .navbar-nav {
+ flex-direction: row; }
+ .navbar-expand .navbar-nav .dropdown-menu {
+ position: absolute; }
+ .navbar-expand .navbar-nav .dropdown-menu-right {
+ right: 0;
+ left: auto; }
+ .navbar-expand .navbar-nav .nav-link {
+ padding-right: .5rem;
+ padding-left: .5rem; }
+ .navbar-expand > .container,
+ .navbar-expand > .container-fluid {
+ flex-wrap: nowrap; }
+ .navbar-expand .navbar-collapse {
+ display: flex !important;
+ flex-basis: auto; }
+ .navbar-expand .navbar-toggler {
+ display: none; }
+ .navbar-expand .dropup .dropdown-menu {
+ top: auto;
+ bottom: 100%; }
+
+.navbar-light .navbar-brand {
+ color: rgba(0, 0, 0, 0.9); }
+ .navbar-light .navbar-brand:focus, .navbar-light .navbar-brand:hover {
+ color: rgba(0, 0, 0, 0.9); }
+
+.navbar-light .navbar-nav .nav-link {
+ color: rgba(0, 0, 0, 0.5); }
+ .navbar-light .navbar-nav .nav-link:focus, .navbar-light .navbar-nav .nav-link:hover {
+ color: rgba(0, 0, 0, 0.7); }
+ .navbar-light .navbar-nav .nav-link.disabled {
+ color: rgba(0, 0, 0, 0.3); }
+
+.navbar-light .navbar-nav .show > .nav-link,
+.navbar-light .navbar-nav .active > .nav-link,
+.navbar-light .navbar-nav .nav-link.show,
+.navbar-light .navbar-nav .nav-link.active {
+ color: rgba(0, 0, 0, 0.9); }
+
+.navbar-light .navbar-toggler {
+ color: rgba(0, 0, 0, 0.5);
+ border-color: rgba(0, 0, 0, 0.1); }
+
+.navbar-light .navbar-toggler-icon {
+ background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E"); }
+
+.navbar-light .navbar-text {
+ color: rgba(0, 0, 0, 0.5); }
+ .navbar-light .navbar-text a {
+ color: rgba(0, 0, 0, 0.9); }
+ .navbar-light .navbar-text a:focus, .navbar-light .navbar-text a:hover {
+ color: rgba(0, 0, 0, 0.9); }
+
+.navbar-dark .navbar-brand {
+ color: #fff; }
+ .navbar-dark .navbar-brand:focus, .navbar-dark .navbar-brand:hover {
+ color: #fff; }
+
+.navbar-dark .navbar-nav .nav-link {
+ color: rgba(255, 255, 255, 0.8); }
+ .navbar-dark .navbar-nav .nav-link:focus, .navbar-dark .navbar-nav .nav-link:hover {
+ color: white; }
+ .navbar-dark .navbar-nav .nav-link.disabled {
+ color: rgba(255, 255, 255, 0.25); }
+
+.navbar-dark .navbar-nav .show > .nav-link,
+.navbar-dark .navbar-nav .active > .nav-link,
+.navbar-dark .navbar-nav .nav-link.show,
+.navbar-dark .navbar-nav .nav-link.active {
+ color: #fff; }
+
+.navbar-dark .navbar-toggler {
+ color: rgba(255, 255, 255, 0.8);
+ border-color: rgba(255, 255, 255, 0.1); }
+
+.navbar-dark .navbar-toggler-icon {
+ background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255, 255, 255, 0.8)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E"); }
+
+.navbar-dark .navbar-text {
+ color: rgba(255, 255, 255, 0.8); }
+ .navbar-dark .navbar-text a {
+ color: #fff; }
+ .navbar-dark .navbar-text a:focus, .navbar-dark .navbar-text a:hover {
+ color: #fff; }
+
+.card {
+ position: relative;
+ display: flex;
+ flex-direction: column;
+ min-width: 0;
+ word-wrap: break-word;
+ background-color: #fff;
+ background-clip: border-box;
+ border: 1px solid rgba(0, 0, 0, 0.125);
+ border-radius: 0.25rem; }
+ .card > hr {
+ margin-right: 0;
+ margin-left: 0; }
+ .card > .list-group:first-child .list-group-item:first-child {
+ border-top-left-radius: 0.25rem;
+ border-top-right-radius: 0.25rem; }
+ .card > .list-group:last-child .list-group-item:last-child {
+ border-bottom-right-radius: 0.25rem;
+ border-bottom-left-radius: 0.25rem; }
+
+.card-body {
+ flex: 1 1 auto;
+ padding: 1.25rem; }
+
+.card-title {
+ margin-bottom: 0.75rem; }
+
+.card-subtitle {
+ margin-top: -0.375rem;
+ margin-bottom: 0; }
+
+.card-text:last-child {
+ margin-bottom: 0; }
+
+.card-link:hover {
+ text-decoration: none; }
+
+.card-link + .card-link {
+ margin-left: 1.25rem; }
+
+.card-header {
+ padding: 0.75rem 1.25rem;
+ margin-bottom: 0;
+ background-color: rgba(0, 0, 0, 0.03);
+ border-bottom: 1px solid rgba(0, 0, 0, 0.125); }
+ .card-header:first-child {
+ border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0; }
+ .card-header + .list-group .list-group-item:first-child {
+ border-top: 0; }
+
+.card-footer {
+ padding: 0.75rem 1.25rem;
+ background-color: rgba(0, 0, 0, 0.03);
+ border-top: 1px solid rgba(0, 0, 0, 0.125); }
+ .card-footer:last-child {
+ border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px); }
+
+.card-header-tabs {
+ margin-right: -0.625rem;
+ margin-bottom: -0.75rem;
+ margin-left: -0.625rem;
+ border-bottom: 0; }
+
+.card-header-pills {
+ margin-right: -0.625rem;
+ margin-left: -0.625rem; }
+
+.card-img-overlay {
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ padding: 1.25rem; }
+
+.card-img {
+ width: 100%;
+ border-radius: calc(0.25rem - 1px); }
+
+.card-img-top {
+ width: 100%;
+ border-top-left-radius: calc(0.25rem - 1px);
+ border-top-right-radius: calc(0.25rem - 1px); }
+
+.card-img-bottom {
+ width: 100%;
+ border-bottom-right-radius: calc(0.25rem - 1px);
+ border-bottom-left-radius: calc(0.25rem - 1px); }
+
+.card-deck {
+ display: flex;
+ flex-direction: column; }
+ .card-deck .card {
+ margin-bottom: 15px; }
+ @media (min-width: 576px) {
+ .card-deck {
+ flex-flow: row wrap;
+ margin-right: -15px;
+ margin-left: -15px; }
+ .card-deck .card {
+ display: flex;
+ flex: 1 0 0%;
+ flex-direction: column;
+ margin-right: 15px;
+ margin-bottom: 0;
+ margin-left: 15px; } }
+
+.card-group {
+ display: flex;
+ flex-direction: column; }
+ .card-group .card {
+ margin-bottom: 15px; }
+ @media (min-width: 576px) {
+ .card-group {
+ flex-flow: row wrap; }
+ .card-group .card {
+ flex: 1 0 0%;
+ margin-bottom: 0; }
+ .card-group .card + .card {
+ margin-left: 0;
+ border-left: 0; }
+ .card-group .card:first-child {
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0; }
+ .card-group .card:first-child .card-img-top {
+ border-top-right-radius: 0; }
+ .card-group .card:first-child .card-img-bottom {
+ border-bottom-right-radius: 0; }
+ .card-group .card:last-child {
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0; }
+ .card-group .card:last-child .card-img-top {
+ border-top-left-radius: 0; }
+ .card-group .card:last-child .card-img-bottom {
+ border-bottom-left-radius: 0; }
+ .card-group .card:only-child {
+ border-radius: 0.25rem; }
+ .card-group .card:only-child .card-img-top {
+ border-top-left-radius: 0.25rem;
+ border-top-right-radius: 0.25rem; }
+ .card-group .card:only-child .card-img-bottom {
+ border-bottom-right-radius: 0.25rem;
+ border-bottom-left-radius: 0.25rem; }
+ .card-group .card:not(:first-child):not(:last-child):not(:only-child) {
+ border-radius: 0; }
+ .card-group .card:not(:first-child):not(:last-child):not(:only-child) .card-img-top,
+ .card-group .card:not(:first-child):not(:last-child):not(:only-child) .card-img-bottom {
+ border-radius: 0; } }
+
+.card-columns .card {
+ margin-bottom: 0.75rem; }
+
+@media (min-width: 576px) {
+ .card-columns {
+ column-count: 3;
+ column-gap: 1.25rem; }
+ .card-columns .card {
+ display: inline-block;
+ width: 100%; } }
+
+.breadcrumb {
+ display: flex;
+ flex-wrap: wrap;
+ padding: 0.75rem 1rem;
+ margin-bottom: 1rem;
+ list-style: none;
+ background-color: #e9ecef;
+ border-radius: 0.25rem; }
+
+.breadcrumb-item + .breadcrumb-item::before {
+ display: inline-block;
+ padding-right: 0.5rem;
+ padding-left: 0.5rem;
+ color: #868e96;
+ content: "/"; }
+
+.breadcrumb-item + .breadcrumb-item:hover::before {
+ text-decoration: underline; }
+
+.breadcrumb-item + .breadcrumb-item:hover::before {
+ text-decoration: none; }
+
+.breadcrumb-item.active {
+ color: #868e96; }
+
+.pagination {
+ display: flex;
+ padding-left: 0;
+ list-style: none;
+ border-radius: 0.25rem; }
+
+.page-item:first-child .page-link {
+ margin-left: 0;
+ border-top-left-radius: 0.25rem;
+ border-bottom-left-radius: 0.25rem; }
+
+.page-item:last-child .page-link {
+ border-top-right-radius: 0.25rem;
+ border-bottom-right-radius: 0.25rem; }
+
+.page-item.active .page-link {
+ z-index: 2;
+ color: #fff;
+ background-color: #007bff;
+ border-color: #007bff; }
+
+.page-item.disabled .page-link {
+ color: #868e96;
+ pointer-events: none;
+ background-color: #fff;
+ border-color: #ddd; }
+
+.page-link {
+ position: relative;
+ display: block;
+ padding: 0.5rem 0.75rem;
+ margin-left: -1px;
+ line-height: 1.25;
+ color: #007bff;
+ background-color: #fff;
+ border: 1px solid #ddd; }
+ .page-link:focus, .page-link:hover {
+ color: #0056b3;
+ text-decoration: none;
+ background-color: #e9ecef;
+ border-color: #ddd; }
+
+.pagination-lg .page-link {
+ padding: 0.75rem 1.5rem;
+ font-size: 1.25rem;
+ line-height: 1.5; }
+
+.pagination-lg .page-item:first-child .page-link {
+ border-top-left-radius: 0.3rem;
+ border-bottom-left-radius: 0.3rem; }
+
+.pagination-lg .page-item:last-child .page-link {
+ border-top-right-radius: 0.3rem;
+ border-bottom-right-radius: 0.3rem; }
+
+.pagination-sm .page-link {
+ padding: 0.25rem 0.5rem;
+ font-size: 0.875rem;
+ line-height: 1.5; }
+
+.pagination-sm .page-item:first-child .page-link {
+ border-top-left-radius: 0.2rem;
+ border-bottom-left-radius: 0.2rem; }
+
+.pagination-sm .page-item:last-child .page-link {
+ border-top-right-radius: 0.2rem;
+ border-bottom-right-radius: 0.2rem; }
+
+.badge {
+ display: inline-block;
+ padding: 0.25em 0.4em;
+ font-size: 75%;
+ font-weight: 700;
+ line-height: 1;
+ text-align: center;
+ white-space: nowrap;
+ vertical-align: baseline;
+ border-radius: 0.25rem; }
+ .badge:empty {
+ display: none; }
+
+.btn .badge {
+ position: relative;
+ top: -1px; }
+
+.badge-pill {
+ padding-right: 0.6em;
+ padding-left: 0.6em;
+ border-radius: 10rem; }
+
+.badge-primary {
+ color: #fff;
+ background-color: #007bff; }
+ .badge-primary[href]:focus, .badge-primary[href]:hover {
+ color: #fff;
+ text-decoration: none;
+ background-color: #0062cc; }
+
+.badge-secondary {
+ color: #fff;
+ background-color: #868e96; }
+ .badge-secondary[href]:focus, .badge-secondary[href]:hover {
+ color: #fff;
+ text-decoration: none;
+ background-color: #6c757d; }
+
+.badge-success {
+ color: #fff;
+ background-color: #28a745; }
+ .badge-success[href]:focus, .badge-success[href]:hover {
+ color: #fff;
+ text-decoration: none;
+ background-color: #1e7e34; }
+
+.badge-info {
+ color: #fff;
+ background-color: #17a2b8; }
+ .badge-info[href]:focus, .badge-info[href]:hover {
+ color: #fff;
+ text-decoration: none;
+ background-color: #117a8b; }
+
+.badge-warning {
+ color: #111;
+ background-color: #ffc107; }
+ .badge-warning[href]:focus, .badge-warning[href]:hover {
+ color: #111;
+ text-decoration: none;
+ background-color: #d39e00; }
+
+.badge-danger {
+ color: #fff;
+ background-color: #dc3545; }
+ .badge-danger[href]:focus, .badge-danger[href]:hover {
+ color: #fff;
+ text-decoration: none;
+ background-color: #bd2130; }
+
+.badge-light {
+ color: #111;
+ background-color: #f8f9fa; }
+ .badge-light[href]:focus, .badge-light[href]:hover {
+ color: #111;
+ text-decoration: none;
+ background-color: #dae0e5; }
+
+.badge-dark {
+ color: #fff;
+ background-color: #343a40; }
+ .badge-dark[href]:focus, .badge-dark[href]:hover {
+ color: #fff;
+ text-decoration: none;
+ background-color: #1d2124; }
+
+.jumbotron {
+ padding: 2rem 1rem;
+ margin-bottom: 2rem;
+ background-color: #e9ecef;
+ border-radius: 0.3rem; }
+ @media (min-width: 576px) {
+ .jumbotron {
+ padding: 4rem 2rem; } }
+
+.jumbotron-fluid {
+ padding-right: 0;
+ padding-left: 0;
+ border-radius: 0; }
+
+.alert {
+ position: relative;
+ padding: 0.75rem 1.25rem;
+ margin-bottom: 1rem;
+ border: 1px solid transparent;
+ border-radius: 0.25rem; }
+
+.alert-heading {
+ color: inherit; }
+
+.alert-link {
+ font-weight: 700; }
+
+.alert-dismissible .close {
+ position: absolute;
+ top: 0;
+ right: 0;
+ padding: 0.75rem 1.25rem;
+ color: inherit; }
+
+.alert-primary {
+ color: #004085;
+ background-color: #cce5ff;
+ border-color: #b8daff; }
+ .alert-primary hr {
+ border-top-color: #9fcdff; }
+ .alert-primary .alert-link {
+ color: #002752; }
+
+.alert-secondary {
+ color: #464a4e;
+ background-color: #e7e8ea;
+ border-color: #dddfe2; }
+ .alert-secondary hr {
+ border-top-color: #cfd2d6; }
+ .alert-secondary .alert-link {
+ color: #2e3133; }
+
+.alert-success {
+ color: #155724;
+ background-color: #d4edda;
+ border-color: #c3e6cb; }
+ .alert-success hr {
+ border-top-color: #b1dfbb; }
+ .alert-success .alert-link {
+ color: #0b2e13; }
+
+.alert-info {
+ color: #0c5460;
+ background-color: #d1ecf1;
+ border-color: #bee5eb; }
+ .alert-info hr {
+ border-top-color: #abdde5; }
+ .alert-info .alert-link {
+ color: #062c33; }
+
+.alert-warning {
+ color: #856404;
+ background-color: #fff3cd;
+ border-color: #ffeeba; }
+ .alert-warning hr {
+ border-top-color: #ffe8a1; }
+ .alert-warning .alert-link {
+ color: #533f03; }
+
+.alert-danger {
+ color: #721c24;
+ background-color: #f8d7da;
+ border-color: #f5c6cb; }
+ .alert-danger hr {
+ border-top-color: #f1b0b7; }
+ .alert-danger .alert-link {
+ color: #491217; }
+
+.alert-light {
+ color: #818182;
+ background-color: #fefefe;
+ border-color: #fdfdfe; }
+ .alert-light hr {
+ border-top-color: #ececf6; }
+ .alert-light .alert-link {
+ color: #686868; }
+
+.alert-dark {
+ color: #1b1e21;
+ background-color: #d6d8d9;
+ border-color: #c6c8ca; }
+ .alert-dark hr {
+ border-top-color: #b9bbbe; }
+ .alert-dark .alert-link {
+ color: #040505; }
+
+@keyframes progress-bar-stripes {
+ from {
+ background-position: 1rem 0; }
+ to {
+ background-position: 0 0; } }
+
+.progress {
+ display: flex;
+ height: 1rem;
+ overflow: hidden;
+ font-size: 0.75rem;
+ background-color: #e9ecef;
+ border-radius: 0.25rem; }
+
+.progress-bar {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ color: #fff;
+ background-color: #007bff; }
+
+.progress-bar-striped {
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-size: 1rem 1rem; }
+
+.progress-bar-animated {
+ animation: progress-bar-stripes 1s linear infinite; }
+
+.media {
+ display: flex;
+ align-items: flex-start; }
+
+.media-body {
+ flex: 1; }
+
+.list-group {
+ display: flex;
+ flex-direction: column;
+ padding-left: 0;
+ margin-bottom: 0; }
+
+.list-group-item-action {
+ width: 100%;
+ color: #495057;
+ text-align: inherit; }
+ .list-group-item-action:focus, .list-group-item-action:hover {
+ color: #495057;
+ text-decoration: none;
+ background-color: #f8f9fa; }
+ .list-group-item-action:active {
+ color: #212529;
+ background-color: #e9ecef; }
+
+.list-group-item {
+ position: relative;
+ display: block;
+ padding: 0.75rem 1.25rem;
+ margin-bottom: -1px;
+ background-color: #fff;
+ border: 1px solid rgba(0, 0, 0, 0.125); }
+ .list-group-item:first-child {
+ border-top-left-radius: 0.25rem;
+ border-top-right-radius: 0.25rem; }
+ .list-group-item:last-child {
+ margin-bottom: 0;
+ border-bottom-right-radius: 0.25rem;
+ border-bottom-left-radius: 0.25rem; }
+ .list-group-item:focus, .list-group-item:hover {
+ text-decoration: none; }
+ .list-group-item.disabled, .list-group-item:disabled {
+ color: #868e96;
+ background-color: #fff; }
+ .list-group-item.active {
+ z-index: 2;
+ color: #fff;
+ background-color: #007bff;
+ border-color: #007bff; }
+
+.list-group-flush .list-group-item {
+ border-right: 0;
+ border-left: 0;
+ border-radius: 0; }
+
+.list-group-flush:first-child .list-group-item:first-child {
+ border-top: 0; }
+
+.list-group-flush:last-child .list-group-item:last-child {
+ border-bottom: 0; }
+
+.list-group-item-primary {
+ color: #004085;
+ background-color: #b8daff; }
+
+a.list-group-item-primary,
+button.list-group-item-primary {
+ color: #004085; }
+ a.list-group-item-primary:focus, a.list-group-item-primary:hover,
+ button.list-group-item-primary:focus,
+ button.list-group-item-primary:hover {
+ color: #004085;
+ background-color: #9fcdff; }
+ a.list-group-item-primary.active,
+ button.list-group-item-primary.active {
+ color: #fff;
+ background-color: #004085;
+ border-color: #004085; }
+
+.list-group-item-secondary {
+ color: #464a4e;
+ background-color: #dddfe2; }
+
+a.list-group-item-secondary,
+button.list-group-item-secondary {
+ color: #464a4e; }
+ a.list-group-item-secondary:focus, a.list-group-item-secondary:hover,
+ button.list-group-item-secondary:focus,
+ button.list-group-item-secondary:hover {
+ color: #464a4e;
+ background-color: #cfd2d6; }
+ a.list-group-item-secondary.active,
+ button.list-group-item-secondary.active {
+ color: #fff;
+ background-color: #464a4e;
+ border-color: #464a4e; }
+
+.list-group-item-success {
+ color: #155724;
+ background-color: #c3e6cb; }
+
+a.list-group-item-success,
+button.list-group-item-success {
+ color: #155724; }
+ a.list-group-item-success:focus, a.list-group-item-success:hover,
+ button.list-group-item-success:focus,
+ button.list-group-item-success:hover {
+ color: #155724;
+ background-color: #b1dfbb; }
+ a.list-group-item-success.active,
+ button.list-group-item-success.active {
+ color: #fff;
+ background-color: #155724;
+ border-color: #155724; }
+
+.list-group-item-info {
+ color: #0c5460;
+ background-color: #bee5eb; }
+
+a.list-group-item-info,
+button.list-group-item-info {
+ color: #0c5460; }
+ a.list-group-item-info:focus, a.list-group-item-info:hover,
+ button.list-group-item-info:focus,
+ button.list-group-item-info:hover {
+ color: #0c5460;
+ background-color: #abdde5; }
+ a.list-group-item-info.active,
+ button.list-group-item-info.active {
+ color: #fff;
+ background-color: #0c5460;
+ border-color: #0c5460; }
+
+.list-group-item-warning {
+ color: #856404;
+ background-color: #ffeeba; }
+
+a.list-group-item-warning,
+button.list-group-item-warning {
+ color: #856404; }
+ a.list-group-item-warning:focus, a.list-group-item-warning:hover,
+ button.list-group-item-warning:focus,
+ button.list-group-item-warning:hover {
+ color: #856404;
+ background-color: #ffe8a1; }
+ a.list-group-item-warning.active,
+ button.list-group-item-warning.active {
+ color: #fff;
+ background-color: #856404;
+ border-color: #856404; }
+
+.list-group-item-danger {
+ color: #721c24;
+ background-color: #f5c6cb; }
+
+a.list-group-item-danger,
+button.list-group-item-danger {
+ color: #721c24; }
+ a.list-group-item-danger:focus, a.list-group-item-danger:hover,
+ button.list-group-item-danger:focus,
+ button.list-group-item-danger:hover {
+ color: #721c24;
+ background-color: #f1b0b7; }
+ a.list-group-item-danger.active,
+ button.list-group-item-danger.active {
+ color: #fff;
+ background-color: #721c24;
+ border-color: #721c24; }
+
+.list-group-item-light {
+ color: #818182;
+ background-color: #fdfdfe; }
+
+a.list-group-item-light,
+button.list-group-item-light {
+ color: #818182; }
+ a.list-group-item-light:focus, a.list-group-item-light:hover,
+ button.list-group-item-light:focus,
+ button.list-group-item-light:hover {
+ color: #818182;
+ background-color: #ececf6; }
+ a.list-group-item-light.active,
+ button.list-group-item-light.active {
+ color: #fff;
+ background-color: #818182;
+ border-color: #818182; }
+
+.list-group-item-dark {
+ color: #1b1e21;
+ background-color: #c6c8ca; }
+
+a.list-group-item-dark,
+button.list-group-item-dark {
+ color: #1b1e21; }
+ a.list-group-item-dark:focus, a.list-group-item-dark:hover,
+ button.list-group-item-dark:focus,
+ button.list-group-item-dark:hover {
+ color: #1b1e21;
+ background-color: #b9bbbe; }
+ a.list-group-item-dark.active,
+ button.list-group-item-dark.active {
+ color: #fff;
+ background-color: #1b1e21;
+ border-color: #1b1e21; }
+
+.close {
+ float: right;
+ font-size: 1.5rem;
+ font-weight: 700;
+ line-height: 1;
+ color: #000;
+ text-shadow: 0 1px 0 #fff;
+ opacity: .5; }
+ .close:focus, .close:hover {
+ color: #000;
+ text-decoration: none;
+ opacity: .75; }
+
+button.close {
+ padding: 0;
+ background: transparent;
+ border: 0;
+ -webkit-appearance: none; }
+
+.modal-open {
+ overflow: hidden; }
+
+.modal {
+ position: fixed;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: 1050;
+ display: none;
+ overflow: hidden;
+ outline: 0; }
+ .modal.fade .modal-dialog {
+ transition: transform 0.3s ease-out;
+ transform: translate(0, -25%); }
+ .modal.show .modal-dialog {
+ transform: translate(0, 0); }
+
+.modal-open .modal {
+ overflow-x: hidden;
+ overflow-y: auto; }
+
+.modal-dialog {
+ position: relative;
+ width: auto;
+ margin: 10px;
+ pointer-events: none; }
+
+.modal-content {
+ position: relative;
+ display: flex;
+ flex-direction: column;
+ pointer-events: auto;
+ background-color: #fff;
+ background-clip: padding-box;
+ border: 1px solid rgba(0, 0, 0, 0.2);
+ border-radius: 0.3rem;
+ outline: 0; }
+
+.modal-backdrop {
+ position: fixed;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: 1040;
+ background-color: #000; }
+ .modal-backdrop.fade {
+ opacity: 0; }
+ .modal-backdrop.show {
+ opacity: 0.5; }
+
+.modal-header {
+ display: flex;
+ align-items: flex-start;
+ justify-content: space-between;
+ padding: 15px;
+ border-bottom: 1px solid #e9ecef;
+ border-top-left-radius: 0.3rem;
+ border-top-right-radius: 0.3rem; }
+ .modal-header .close {
+ padding: 15px;
+ margin: -15px -15px -15px auto; }
+
+.modal-title {
+ margin-bottom: 0;
+ line-height: 1.5; }
+
+.modal-body {
+ position: relative;
+ flex: 1 1 auto;
+ padding: 15px; }
+
+.modal-footer {
+ display: flex;
+ align-items: center;
+ justify-content: flex-end;
+ padding: 15px;
+ border-top: 1px solid #e9ecef; }
+ .modal-footer > :not(:first-child) {
+ margin-left: .25rem; }
+ .modal-footer > :not(:last-child) {
+ margin-right: .25rem; }
+
+.modal-scrollbar-measure {
+ position: absolute;
+ top: -9999px;
+ width: 50px;
+ height: 50px;
+ overflow: scroll; }
+
+@media (min-width: 576px) {
+ .modal-dialog {
+ max-width: 500px;
+ margin: 30px auto; }
+ .modal-sm {
+ max-width: 300px; } }
+
+@media (min-width: 992px) {
+ .modal-lg {
+ max-width: 800px; } }
+
+.tooltip {
+ position: absolute;
+ z-index: 1070;
+ display: block;
+ margin: 0;
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
+ font-style: normal;
+ font-weight: 400;
+ line-height: 1.5;
+ text-align: left;
+ text-align: start;
+ text-decoration: none;
+ text-shadow: none;
+ text-transform: none;
+ letter-spacing: normal;
+ word-break: normal;
+ word-spacing: normal;
+ white-space: normal;
+ line-break: auto;
+ font-size: 0.875rem;
+ word-wrap: break-word;
+ opacity: 0; }
+ .tooltip.show {
+ opacity: 0.9; }
+ .tooltip .arrow {
+ position: absolute;
+ display: block;
+ width: 5px;
+ height: 5px; }
+ .tooltip .arrow::before {
+ position: absolute;
+ border-color: transparent;
+ border-style: solid; }
+ .tooltip.bs-tooltip-top, .tooltip.bs-tooltip-auto[x-placement^="top"] {
+ padding: 5px 0; }
+ .tooltip.bs-tooltip-top .arrow, .tooltip.bs-tooltip-auto[x-placement^="top"] .arrow {
+ bottom: 0; }
+ .tooltip.bs-tooltip-top .arrow::before, .tooltip.bs-tooltip-auto[x-placement^="top"] .arrow::before {
+ margin-left: -3px;
+ content: "";
+ border-width: 5px 5px 0;
+ border-top-color: #000; }
+ .tooltip.bs-tooltip-right, .tooltip.bs-tooltip-auto[x-placement^="right"] {
+ padding: 0 5px; }
+ .tooltip.bs-tooltip-right .arrow, .tooltip.bs-tooltip-auto[x-placement^="right"] .arrow {
+ left: 0; }
+ .tooltip.bs-tooltip-right .arrow::before, .tooltip.bs-tooltip-auto[x-placement^="right"] .arrow::before {
+ margin-top: -3px;
+ content: "";
+ border-width: 5px 5px 5px 0;
+ border-right-color: #000; }
+ .tooltip.bs-tooltip-bottom, .tooltip.bs-tooltip-auto[x-placement^="bottom"] {
+ padding: 5px 0; }
+ .tooltip.bs-tooltip-bottom .arrow, .tooltip.bs-tooltip-auto[x-placement^="bottom"] .arrow {
+ top: 0; }
+ .tooltip.bs-tooltip-bottom .arrow::before, .tooltip.bs-tooltip-auto[x-placement^="bottom"] .arrow::before {
+ margin-left: -3px;
+ content: "";
+ border-width: 0 5px 5px;
+ border-bottom-color: #000; }
+ .tooltip.bs-tooltip-left, .tooltip.bs-tooltip-auto[x-placement^="left"] {
+ padding: 0 5px; }
+ .tooltip.bs-tooltip-left .arrow, .tooltip.bs-tooltip-auto[x-placement^="left"] .arrow {
+ right: 0; }
+ .tooltip.bs-tooltip-left .arrow::before, .tooltip.bs-tooltip-auto[x-placement^="left"] .arrow::before {
+ right: 0;
+ margin-top: -3px;
+ content: "";
+ border-width: 5px 0 5px 5px;
+ border-left-color: #000; }
+
+.tooltip-inner {
+ max-width: 200px;
+ padding: 3px 8px;
+ color: #fff;
+ text-align: center;
+ background-color: #000;
+ border-radius: 0.25rem; }
+
+.popover {
+ position: absolute;
+ top: 0;
+ left: 0;
+ z-index: 1060;
+ display: block;
+ max-width: 276px;
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
+ font-style: normal;
+ font-weight: 400;
+ line-height: 1.5;
+ text-align: left;
+ text-align: start;
+ text-decoration: none;
+ text-shadow: none;
+ text-transform: none;
+ letter-spacing: normal;
+ word-break: normal;
+ word-spacing: normal;
+ white-space: normal;
+ line-break: auto;
+ font-size: 0.875rem;
+ word-wrap: break-word;
+ background-color: #fff;
+ background-clip: padding-box;
+ border: 1px solid rgba(0, 0, 0, 0.2);
+ border-radius: 0.3rem; }
+ .popover .arrow {
+ position: absolute;
+ display: block;
+ width: 0.8rem;
+ height: 0.4rem; }
+ .popover .arrow::before,
+ .popover .arrow::after {
+ position: absolute;
+ display: block;
+ border-color: transparent;
+ border-style: solid; }
+ .popover .arrow::before {
+ content: "";
+ border-width: 0.8rem; }
+ .popover .arrow::after {
+ content: "";
+ border-width: 0.8rem; }
+ .popover.bs-popover-top, .popover.bs-popover-auto[x-placement^="top"] {
+ margin-bottom: 0.8rem; }
+ .popover.bs-popover-top .arrow, .popover.bs-popover-auto[x-placement^="top"] .arrow {
+ bottom: 0; }
+ .popover.bs-popover-top .arrow::before, .popover.bs-popover-auto[x-placement^="top"] .arrow::before,
+ .popover.bs-popover-top .arrow::after, .popover.bs-popover-auto[x-placement^="top"] .arrow::after {
+ border-bottom-width: 0; }
+ .popover.bs-popover-top .arrow::before, .popover.bs-popover-auto[x-placement^="top"] .arrow::before {
+ bottom: -0.8rem;
+ margin-left: -0.8rem;
+ border-top-color: rgba(0, 0, 0, 0.25); }
+ .popover.bs-popover-top .arrow::after, .popover.bs-popover-auto[x-placement^="top"] .arrow::after {
+ bottom: calc((0.8rem - 1px) * -1);
+ margin-left: -0.8rem;
+ border-top-color: #fff; }
+ .popover.bs-popover-right, .popover.bs-popover-auto[x-placement^="right"] {
+ margin-left: 0.8rem; }
+ .popover.bs-popover-right .arrow, .popover.bs-popover-auto[x-placement^="right"] .arrow {
+ left: 0; }
+ .popover.bs-popover-right .arrow::before, .popover.bs-popover-auto[x-placement^="right"] .arrow::before,
+ .popover.bs-popover-right .arrow::after, .popover.bs-popover-auto[x-placement^="right"] .arrow::after {
+ margin-top: -0.8rem;
+ border-left-width: 0; }
+ .popover.bs-popover-right .arrow::before, .popover.bs-popover-auto[x-placement^="right"] .arrow::before {
+ left: -0.8rem;
+ border-right-color: rgba(0, 0, 0, 0.25); }
+ .popover.bs-popover-right .arrow::after, .popover.bs-popover-auto[x-placement^="right"] .arrow::after {
+ left: calc((0.8rem - 1px) * -1);
+ border-right-color: #fff; }
+ .popover.bs-popover-bottom, .popover.bs-popover-auto[x-placement^="bottom"] {
+ margin-top: 0.8rem; }
+ .popover.bs-popover-bottom .arrow, .popover.bs-popover-auto[x-placement^="bottom"] .arrow {
+ top: 0; }
+ .popover.bs-popover-bottom .arrow::before, .popover.bs-popover-auto[x-placement^="bottom"] .arrow::before,
+ .popover.bs-popover-bottom .arrow::after, .popover.bs-popover-auto[x-placement^="bottom"] .arrow::after {
+ margin-left: -0.8rem;
+ border-top-width: 0; }
+ .popover.bs-popover-bottom .arrow::before, .popover.bs-popover-auto[x-placement^="bottom"] .arrow::before {
+ top: -0.8rem;
+ border-bottom-color: rgba(0, 0, 0, 0.25); }
+ .popover.bs-popover-bottom .arrow::after, .popover.bs-popover-auto[x-placement^="bottom"] .arrow::after {
+ top: calc((0.8rem - 1px) * -1);
+ border-bottom-color: #fff; }
+ .popover.bs-popover-bottom .popover-header::before, .popover.bs-popover-auto[x-placement^="bottom"] .popover-header::before {
+ position: absolute;
+ top: 0;
+ left: 50%;
+ display: block;
+ width: 20px;
+ margin-left: -10px;
+ content: "";
+ border-bottom: 1px solid #f7f7f7; }
+ .popover.bs-popover-left, .popover.bs-popover-auto[x-placement^="left"] {
+ margin-right: 0.8rem; }
+ .popover.bs-popover-left .arrow, .popover.bs-popover-auto[x-placement^="left"] .arrow {
+ right: 0; }
+ .popover.bs-popover-left .arrow::before, .popover.bs-popover-auto[x-placement^="left"] .arrow::before,
+ .popover.bs-popover-left .arrow::after, .popover.bs-popover-auto[x-placement^="left"] .arrow::after {
+ margin-top: -0.8rem;
+ border-right-width: 0; }
+ .popover.bs-popover-left .arrow::before, .popover.bs-popover-auto[x-placement^="left"] .arrow::before {
+ right: -0.8rem;
+ border-left-color: rgba(0, 0, 0, 0.25); }
+ .popover.bs-popover-left .arrow::after, .popover.bs-popover-auto[x-placement^="left"] .arrow::after {
+ right: calc((0.8rem - 1px) * -1);
+ border-left-color: #fff; }
+
+.popover-header {
+ padding: 0.5rem 0.75rem;
+ margin-bottom: 0;
+ font-size: 1rem;
+ color: inherit;
+ background-color: #f7f7f7;
+ border-bottom: 1px solid #ebebeb;
+ border-top-left-radius: calc(0.3rem - 1px);
+ border-top-right-radius: calc(0.3rem - 1px); }
+ .popover-header:empty {
+ display: none; }
+
+.popover-body {
+ padding: 0.5rem 0.75rem;
+ color: #212529; }
+
+.carousel {
+ position: relative; }
+
+.carousel-inner {
+ position: relative;
+ width: 100%;
+ overflow: hidden; }
+
+.carousel-item {
+ position: relative;
+ display: none;
+ align-items: center;
+ width: 100%;
+ transition: transform 0.6s ease;
+ backface-visibility: hidden;
+ perspective: 1000px; }
+
+.carousel-item.active,
+.carousel-item-next,
+.carousel-item-prev {
+ display: block; }
+
+.carousel-item-next,
+.carousel-item-prev {
+ position: absolute;
+ top: 0; }
+
+.carousel-item-next.carousel-item-left,
+.carousel-item-prev.carousel-item-right {
+ transform: translateX(0); }
+ @supports (transform-style: preserve-3d) {
+ .carousel-item-next.carousel-item-left,
+ .carousel-item-prev.carousel-item-right {
+ transform: translate3d(0, 0, 0); } }
+
+.carousel-item-next,
+.active.carousel-item-right {
+ transform: translateX(100%); }
+ @supports (transform-style: preserve-3d) {
+ .carousel-item-next,
+ .active.carousel-item-right {
+ transform: translate3d(100%, 0, 0); } }
+
+.carousel-item-prev,
+.active.carousel-item-left {
+ transform: translateX(-100%); }
+ @supports (transform-style: preserve-3d) {
+ .carousel-item-prev,
+ .active.carousel-item-left {
+ transform: translate3d(-100%, 0, 0); } }
+
+.carousel-control-prev,
+.carousel-control-next {
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ width: 15%;
+ color: #fff;
+ text-align: center;
+ opacity: 0.5; }
+ .carousel-control-prev:focus, .carousel-control-prev:hover,
+ .carousel-control-next:focus,
+ .carousel-control-next:hover {
+ color: #fff;
+ text-decoration: none;
+ outline: 0;
+ opacity: .9; }
+
+.carousel-control-prev {
+ left: 0; }
+
+.carousel-control-next {
+ right: 0; }
+
+.carousel-control-prev-icon,
+.carousel-control-next-icon {
+ display: inline-block;
+ width: 20px;
+ height: 20px;
+ background: transparent no-repeat center center;
+ background-size: 100% 100%; }
+
+.carousel-control-prev-icon {
+ background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E"); }
+
+.carousel-control-next-icon {
+ background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E"); }
+
+.carousel-indicators {
+ position: absolute;
+ right: 0;
+ bottom: 10px;
+ left: 0;
+ z-index: 15;
+ display: flex;
+ justify-content: center;
+ padding-left: 0;
+ margin-right: 15%;
+ margin-left: 15%;
+ list-style: none; }
+ .carousel-indicators li {
+ position: relative;
+ flex: 0 1 auto;
+ width: 30px;
+ height: 3px;
+ margin-right: 3px;
+ margin-left: 3px;
+ text-indent: -999px;
+ background-color: rgba(255, 255, 255, 0.5); }
+ .carousel-indicators li::before {
+ position: absolute;
+ top: -10px;
+ left: 0;
+ display: inline-block;
+ width: 100%;
+ height: 10px;
+ content: ""; }
+ .carousel-indicators li::after {
+ position: absolute;
+ bottom: -10px;
+ left: 0;
+ display: inline-block;
+ width: 100%;
+ height: 10px;
+ content: ""; }
+ .carousel-indicators .active {
+ background-color: #fff; }
+
+.carousel-caption {
+ position: absolute;
+ right: 15%;
+ bottom: 20px;
+ left: 15%;
+ z-index: 10;
+ padding-top: 20px;
+ padding-bottom: 20px;
+ color: #fff;
+ text-align: center; }
+
+.align-baseline {
+ vertical-align: baseline !important; }
+
+.align-top {
+ vertical-align: top !important; }
+
+.align-middle {
+ vertical-align: middle !important; }
+
+.align-bottom {
+ vertical-align: bottom !important; }
+
+.align-text-bottom {
+ vertical-align: text-bottom !important; }
+
+.align-text-top {
+ vertical-align: text-top !important; }
+
+.bg-primary {
+ background-color: #007bff !important; }
+
+a.bg-primary:focus, a.bg-primary:hover {
+ background-color: #0062cc !important; }
+
+.bg-secondary {
+ background-color: #868e96 !important; }
+
+a.bg-secondary:focus, a.bg-secondary:hover {
+ background-color: #6c757d !important; }
+
+.bg-success {
+ background-color: #28a745 !important; }
+
+a.bg-success:focus, a.bg-success:hover {
+ background-color: #1e7e34 !important; }
+
+.bg-info {
+ background-color: #17a2b8 !important; }
+
+a.bg-info:focus, a.bg-info:hover {
+ background-color: #117a8b !important; }
+
+.bg-warning {
+ background-color: #ffc107 !important; }
+
+a.bg-warning:focus, a.bg-warning:hover {
+ background-color: #d39e00 !important; }
+
+.bg-danger {
+ background-color: #dc3545 !important; }
+
+a.bg-danger:focus, a.bg-danger:hover {
+ background-color: #bd2130 !important; }
+
+.bg-light {
+ background-color: #f8f9fa !important; }
+
+a.bg-light:focus, a.bg-light:hover {
+ background-color: #dae0e5 !important; }
+
+.bg-dark {
+ background-color: #343a40 !important; }
+
+a.bg-dark:focus, a.bg-dark:hover {
+ background-color: #1d2124 !important; }
+
+.bg-white {
+ background-color: #fff !important; }
+
+.bg-transparent {
+ background-color: transparent !important; }
+
+.border {
+ border: 1px solid #e9ecef !important; }
+
+.border-0 {
+ border: 0 !important; }
+
+.border-top-0 {
+ border-top: 0 !important; }
+
+.border-right-0 {
+ border-right: 0 !important; }
+
+.border-bottom-0 {
+ border-bottom: 0 !important; }
+
+.border-left-0 {
+ border-left: 0 !important; }
+
+.border-primary {
+ border-color: #007bff !important; }
+
+.border-secondary {
+ border-color: #868e96 !important; }
+
+.border-success {
+ border-color: #28a745 !important; }
+
+.border-info {
+ border-color: #17a2b8 !important; }
+
+.border-warning {
+ border-color: #ffc107 !important; }
+
+.border-danger {
+ border-color: #dc3545 !important; }
+
+.border-light {
+ border-color: #f8f9fa !important; }
+
+.border-dark {
+ border-color: #343a40 !important; }
+
+.border-white {
+ border-color: #fff !important; }
+
+.rounded {
+ border-radius: 0.25rem !important; }
+
+.rounded-top {
+ border-top-left-radius: 0.25rem !important;
+ border-top-right-radius: 0.25rem !important; }
+
+.rounded-right {
+ border-top-right-radius: 0.25rem !important;
+ border-bottom-right-radius: 0.25rem !important; }
+
+.rounded-bottom {
+ border-bottom-right-radius: 0.25rem !important;
+ border-bottom-left-radius: 0.25rem !important; }
+
+.rounded-left {
+ border-top-left-radius: 0.25rem !important;
+ border-bottom-left-radius: 0.25rem !important; }
+
+.rounded-circle {
+ border-radius: 50% !important; }
+
+.rounded-0 {
+ border-radius: 0 !important; }
+
+.clearfix::after {
+ display: block;
+ clear: both;
+ content: ""; }
+
+.d-none {
+ display: none !important; }
+
+.d-inline {
+ display: inline !important; }
+
+.d-inline-block {
+ display: inline-block !important; }
+
+.d-block {
+ display: block !important; }
+
+.d-table {
+ display: table !important; }
+
+.d-table-row {
+ display: table-row !important; }
+
+.d-table-cell {
+ display: table-cell !important; }
+
+.d-flex {
+ display: flex !important; }
+
+.d-inline-flex {
+ display: inline-flex !important; }
+
+@media (min-width: 576px) {
+ .d-sm-none {
+ display: none !important; }
+ .d-sm-inline {
+ display: inline !important; }
+ .d-sm-inline-block {
+ display: inline-block !important; }
+ .d-sm-block {
+ display: block !important; }
+ .d-sm-table {
+ display: table !important; }
+ .d-sm-table-row {
+ display: table-row !important; }
+ .d-sm-table-cell {
+ display: table-cell !important; }
+ .d-sm-flex {
+ display: flex !important; }
+ .d-sm-inline-flex {
+ display: inline-flex !important; } }
+
+@media (min-width: 768px) {
+ .d-md-none {
+ display: none !important; }
+ .d-md-inline {
+ display: inline !important; }
+ .d-md-inline-block {
+ display: inline-block !important; }
+ .d-md-block {
+ display: block !important; }
+ .d-md-table {
+ display: table !important; }
+ .d-md-table-row {
+ display: table-row !important; }
+ .d-md-table-cell {
+ display: table-cell !important; }
+ .d-md-flex {
+ display: flex !important; }
+ .d-md-inline-flex {
+ display: inline-flex !important; } }
+
+@media (min-width: 992px) {
+ .d-lg-none {
+ display: none !important; }
+ .d-lg-inline {
+ display: inline !important; }
+ .d-lg-inline-block {
+ display: inline-block !important; }
+ .d-lg-block {
+ display: block !important; }
+ .d-lg-table {
+ display: table !important; }
+ .d-lg-table-row {
+ display: table-row !important; }
+ .d-lg-table-cell {
+ display: table-cell !important; }
+ .d-lg-flex {
+ display: flex !important; }
+ .d-lg-inline-flex {
+ display: inline-flex !important; } }
+
+@media (min-width: 1200px) {
+ .d-xl-none {
+ display: none !important; }
+ .d-xl-inline {
+ display: inline !important; }
+ .d-xl-inline-block {
+ display: inline-block !important; }
+ .d-xl-block {
+ display: block !important; }
+ .d-xl-table {
+ display: table !important; }
+ .d-xl-table-row {
+ display: table-row !important; }
+ .d-xl-table-cell {
+ display: table-cell !important; }
+ .d-xl-flex {
+ display: flex !important; }
+ .d-xl-inline-flex {
+ display: inline-flex !important; } }
+
+.d-print-block {
+ display: none !important; }
+ @media print {
+ .d-print-block {
+ display: block !important; } }
+
+.d-print-inline {
+ display: none !important; }
+ @media print {
+ .d-print-inline {
+ display: inline !important; } }
+
+.d-print-inline-block {
+ display: none !important; }
+ @media print {
+ .d-print-inline-block {
+ display: inline-block !important; } }
+
+@media print {
+ .d-print-none {
+ display: none !important; } }
+
+.embed-responsive {
+ position: relative;
+ display: block;
+ width: 100%;
+ padding: 0;
+ overflow: hidden; }
+ .embed-responsive::before {
+ display: block;
+ content: ""; }
+ .embed-responsive .embed-responsive-item,
+ .embed-responsive iframe,
+ .embed-responsive embed,
+ .embed-responsive object,
+ .embed-responsive video {
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ border: 0; }
+
+.embed-responsive-21by9::before {
+ padding-top: 42.85714%; }
+
+.embed-responsive-16by9::before {
+ padding-top: 56.25%; }
+
+.embed-responsive-4by3::before {
+ padding-top: 75%; }
+
+.embed-responsive-1by1::before {
+ padding-top: 100%; }
+
+.flex-row {
+ flex-direction: row !important; }
+
+.flex-column {
+ flex-direction: column !important; }
+
+.flex-row-reverse {
+ flex-direction: row-reverse !important; }
+
+.flex-column-reverse {
+ flex-direction: column-reverse !important; }
+
+.flex-wrap {
+ flex-wrap: wrap !important; }
+
+.flex-nowrap {
+ flex-wrap: nowrap !important; }
+
+.flex-wrap-reverse {
+ flex-wrap: wrap-reverse !important; }
+
+.justify-content-start {
+ justify-content: flex-start !important; }
+
+.justify-content-end {
+ justify-content: flex-end !important; }
+
+.justify-content-center {
+ justify-content: center !important; }
+
+.justify-content-between {
+ justify-content: space-between !important; }
+
+.justify-content-around {
+ justify-content: space-around !important; }
+
+.align-items-start {
+ align-items: flex-start !important; }
+
+.align-items-end {
+ align-items: flex-end !important; }
+
+.align-items-center {
+ align-items: center !important; }
+
+.align-items-baseline {
+ align-items: baseline !important; }
+
+.align-items-stretch {
+ align-items: stretch !important; }
+
+.align-content-start {
+ align-content: flex-start !important; }
+
+.align-content-end {
+ align-content: flex-end !important; }
+
+.align-content-center {
+ align-content: center !important; }
+
+.align-content-between {
+ align-content: space-between !important; }
+
+.align-content-around {
+ align-content: space-around !important; }
+
+.align-content-stretch {
+ align-content: stretch !important; }
+
+.align-self-auto {
+ align-self: auto !important; }
+
+.align-self-start {
+ align-self: flex-start !important; }
+
+.align-self-end {
+ align-self: flex-end !important; }
+
+.align-self-center {
+ align-self: center !important; }
+
+.align-self-baseline {
+ align-self: baseline !important; }
+
+.align-self-stretch {
+ align-self: stretch !important; }
+
+@media (min-width: 576px) {
+ .flex-sm-row {
+ flex-direction: row !important; }
+ .flex-sm-column {
+ flex-direction: column !important; }
+ .flex-sm-row-reverse {
+ flex-direction: row-reverse !important; }
+ .flex-sm-column-reverse {
+ flex-direction: column-reverse !important; }
+ .flex-sm-wrap {
+ flex-wrap: wrap !important; }
+ .flex-sm-nowrap {
+ flex-wrap: nowrap !important; }
+ .flex-sm-wrap-reverse {
+ flex-wrap: wrap-reverse !important; }
+ .justify-content-sm-start {
+ justify-content: flex-start !important; }
+ .justify-content-sm-end {
+ justify-content: flex-end !important; }
+ .justify-content-sm-center {
+ justify-content: center !important; }
+ .justify-content-sm-between {
+ justify-content: space-between !important; }
+ .justify-content-sm-around {
+ justify-content: space-around !important; }
+ .align-items-sm-start {
+ align-items: flex-start !important; }
+ .align-items-sm-end {
+ align-items: flex-end !important; }
+ .align-items-sm-center {
+ align-items: center !important; }
+ .align-items-sm-baseline {
+ align-items: baseline !important; }
+ .align-items-sm-stretch {
+ align-items: stretch !important; }
+ .align-content-sm-start {
+ align-content: flex-start !important; }
+ .align-content-sm-end {
+ align-content: flex-end !important; }
+ .align-content-sm-center {
+ align-content: center !important; }
+ .align-content-sm-between {
+ align-content: space-between !important; }
+ .align-content-sm-around {
+ align-content: space-around !important; }
+ .align-content-sm-stretch {
+ align-content: stretch !important; }
+ .align-self-sm-auto {
+ align-self: auto !important; }
+ .align-self-sm-start {
+ align-self: flex-start !important; }
+ .align-self-sm-end {
+ align-self: flex-end !important; }
+ .align-self-sm-center {
+ align-self: center !important; }
+ .align-self-sm-baseline {
+ align-self: baseline !important; }
+ .align-self-sm-stretch {
+ align-self: stretch !important; } }
+
+@media (min-width: 768px) {
+ .flex-md-row {
+ flex-direction: row !important; }
+ .flex-md-column {
+ flex-direction: column !important; }
+ .flex-md-row-reverse {
+ flex-direction: row-reverse !important; }
+ .flex-md-column-reverse {
+ flex-direction: column-reverse !important; }
+ .flex-md-wrap {
+ flex-wrap: wrap !important; }
+ .flex-md-nowrap {
+ flex-wrap: nowrap !important; }
+ .flex-md-wrap-reverse {
+ flex-wrap: wrap-reverse !important; }
+ .justify-content-md-start {
+ justify-content: flex-start !important; }
+ .justify-content-md-end {
+ justify-content: flex-end !important; }
+ .justify-content-md-center {
+ justify-content: center !important; }
+ .justify-content-md-between {
+ justify-content: space-between !important; }
+ .justify-content-md-around {
+ justify-content: space-around !important; }
+ .align-items-md-start {
+ align-items: flex-start !important; }
+ .align-items-md-end {
+ align-items: flex-end !important; }
+ .align-items-md-center {
+ align-items: center !important; }
+ .align-items-md-baseline {
+ align-items: baseline !important; }
+ .align-items-md-stretch {
+ align-items: stretch !important; }
+ .align-content-md-start {
+ align-content: flex-start !important; }
+ .align-content-md-end {
+ align-content: flex-end !important; }
+ .align-content-md-center {
+ align-content: center !important; }
+ .align-content-md-between {
+ align-content: space-between !important; }
+ .align-content-md-around {
+ align-content: space-around !important; }
+ .align-content-md-stretch {
+ align-content: stretch !important; }
+ .align-self-md-auto {
+ align-self: auto !important; }
+ .align-self-md-start {
+ align-self: flex-start !important; }
+ .align-self-md-end {
+ align-self: flex-end !important; }
+ .align-self-md-center {
+ align-self: center !important; }
+ .align-self-md-baseline {
+ align-self: baseline !important; }
+ .align-self-md-stretch {
+ align-self: stretch !important; } }
+
+@media (min-width: 992px) {
+ .flex-lg-row {
+ flex-direction: row !important; }
+ .flex-lg-column {
+ flex-direction: column !important; }
+ .flex-lg-row-reverse {
+ flex-direction: row-reverse !important; }
+ .flex-lg-column-reverse {
+ flex-direction: column-reverse !important; }
+ .flex-lg-wrap {
+ flex-wrap: wrap !important; }
+ .flex-lg-nowrap {
+ flex-wrap: nowrap !important; }
+ .flex-lg-wrap-reverse {
+ flex-wrap: wrap-reverse !important; }
+ .justify-content-lg-start {
+ justify-content: flex-start !important; }
+ .justify-content-lg-end {
+ justify-content: flex-end !important; }
+ .justify-content-lg-center {
+ justify-content: center !important; }
+ .justify-content-lg-between {
+ justify-content: space-between !important; }
+ .justify-content-lg-around {
+ justify-content: space-around !important; }
+ .align-items-lg-start {
+ align-items: flex-start !important; }
+ .align-items-lg-end {
+ align-items: flex-end !important; }
+ .align-items-lg-center {
+ align-items: center !important; }
+ .align-items-lg-baseline {
+ align-items: baseline !important; }
+ .align-items-lg-stretch {
+ align-items: stretch !important; }
+ .align-content-lg-start {
+ align-content: flex-start !important; }
+ .align-content-lg-end {
+ align-content: flex-end !important; }
+ .align-content-lg-center {
+ align-content: center !important; }
+ .align-content-lg-between {
+ align-content: space-between !important; }
+ .align-content-lg-around {
+ align-content: space-around !important; }
+ .align-content-lg-stretch {
+ align-content: stretch !important; }
+ .align-self-lg-auto {
+ align-self: auto !important; }
+ .align-self-lg-start {
+ align-self: flex-start !important; }
+ .align-self-lg-end {
+ align-self: flex-end !important; }
+ .align-self-lg-center {
+ align-self: center !important; }
+ .align-self-lg-baseline {
+ align-self: baseline !important; }
+ .align-self-lg-stretch {
+ align-self: stretch !important; } }
+
+@media (min-width: 1200px) {
+ .flex-xl-row {
+ flex-direction: row !important; }
+ .flex-xl-column {
+ flex-direction: column !important; }
+ .flex-xl-row-reverse {
+ flex-direction: row-reverse !important; }
+ .flex-xl-column-reverse {
+ flex-direction: column-reverse !important; }
+ .flex-xl-wrap {
+ flex-wrap: wrap !important; }
+ .flex-xl-nowrap {
+ flex-wrap: nowrap !important; }
+ .flex-xl-wrap-reverse {
+ flex-wrap: wrap-reverse !important; }
+ .justify-content-xl-start {
+ justify-content: flex-start !important; }
+ .justify-content-xl-end {
+ justify-content: flex-end !important; }
+ .justify-content-xl-center {
+ justify-content: center !important; }
+ .justify-content-xl-between {
+ justify-content: space-between !important; }
+ .justify-content-xl-around {
+ justify-content: space-around !important; }
+ .align-items-xl-start {
+ align-items: flex-start !important; }
+ .align-items-xl-end {
+ align-items: flex-end !important; }
+ .align-items-xl-center {
+ align-items: center !important; }
+ .align-items-xl-baseline {
+ align-items: baseline !important; }
+ .align-items-xl-stretch {
+ align-items: stretch !important; }
+ .align-content-xl-start {
+ align-content: flex-start !important; }
+ .align-content-xl-end {
+ align-content: flex-end !important; }
+ .align-content-xl-center {
+ align-content: center !important; }
+ .align-content-xl-between {
+ align-content: space-between !important; }
+ .align-content-xl-around {
+ align-content: space-around !important; }
+ .align-content-xl-stretch {
+ align-content: stretch !important; }
+ .align-self-xl-auto {
+ align-self: auto !important; }
+ .align-self-xl-start {
+ align-self: flex-start !important; }
+ .align-self-xl-end {
+ align-self: flex-end !important; }
+ .align-self-xl-center {
+ align-self: center !important; }
+ .align-self-xl-baseline {
+ align-self: baseline !important; }
+ .align-self-xl-stretch {
+ align-self: stretch !important; } }
+
+.float-left {
+ float: left !important; }
+
+.float-right {
+ float: right !important; }
+
+.float-none {
+ float: none !important; }
+
+@media (min-width: 576px) {
+ .float-sm-left {
+ float: left !important; }
+ .float-sm-right {
+ float: right !important; }
+ .float-sm-none {
+ float: none !important; } }
+
+@media (min-width: 768px) {
+ .float-md-left {
+ float: left !important; }
+ .float-md-right {
+ float: right !important; }
+ .float-md-none {
+ float: none !important; } }
+
+@media (min-width: 992px) {
+ .float-lg-left {
+ float: left !important; }
+ .float-lg-right {
+ float: right !important; }
+ .float-lg-none {
+ float: none !important; } }
+
+@media (min-width: 1200px) {
+ .float-xl-left {
+ float: left !important; }
+ .float-xl-right {
+ float: right !important; }
+ .float-xl-none {
+ float: none !important; } }
+
+.position-static {
+ position: static !important; }
+
+.position-relative {
+ position: relative !important; }
+
+.position-absolute {
+ position: absolute !important; }
+
+.position-fixed {
+ position: fixed !important; }
+
+.position-sticky {
+ position: sticky !important; }
+
+.fixed-top {
+ position: fixed;
+ top: 0;
+ right: 0;
+ left: 0;
+ z-index: 1030; }
+
+.fixed-bottom {
+ position: fixed;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: 1030; }
+
+@supports (position: sticky) {
+ .sticky-top {
+ position: sticky;
+ top: 0;
+ z-index: 1020; } }
+
+.sr-only {
+ position: absolute;
+ width: 1px;
+ height: 1px;
+ padding: 0;
+ overflow: hidden;
+ clip: rect(0, 0, 0, 0);
+ white-space: nowrap;
+ clip-path: inset(50%);
+ border: 0; }
+
+.sr-only-focusable:active, .sr-only-focusable:focus {
+ position: static;
+ width: auto;
+ height: auto;
+ overflow: visible;
+ clip: auto;
+ white-space: normal;
+ clip-path: none; }
+
+.w-25 {
+ width: 25% !important; }
+
+.w-50 {
+ width: 50% !important; }
+
+.w-75 {
+ width: 75% !important; }
+
+.w-100 {
+ width: 100% !important; }
+
+.h-25 {
+ height: 25% !important; }
+
+.h-50 {
+ height: 50% !important; }
+
+.h-75 {
+ height: 75% !important; }
+
+.h-100 {
+ height: 100% !important; }
+
+.mw-100 {
+ max-width: 100% !important; }
+
+.mh-100 {
+ max-height: 100% !important; }
+
+.m-0 {
+ margin: 0 !important; }
+
+.mt-0,
+.my-0 {
+ margin-top: 0 !important; }
+
+.mr-0,
+.mx-0 {
+ margin-right: 0 !important; }
+
+.mb-0,
+.my-0 {
+ margin-bottom: 0 !important; }
+
+.ml-0,
+.mx-0 {
+ margin-left: 0 !important; }
+
+.m-1 {
+ margin: 0.25rem !important; }
+
+.mt-1,
+.my-1 {
+ margin-top: 0.25rem !important; }
+
+.mr-1,
+.mx-1 {
+ margin-right: 0.25rem !important; }
+
+.mb-1,
+.my-1 {
+ margin-bottom: 0.25rem !important; }
+
+.ml-1,
+.mx-1 {
+ margin-left: 0.25rem !important; }
+
+.m-2 {
+ margin: 0.5rem !important; }
+
+.mt-2,
+.my-2 {
+ margin-top: 0.5rem !important; }
+
+.mr-2,
+.mx-2 {
+ margin-right: 0.5rem !important; }
+
+.mb-2,
+.my-2 {
+ margin-bottom: 0.5rem !important; }
+
+.ml-2,
+.mx-2 {
+ margin-left: 0.5rem !important; }
+
+.m-3 {
+ margin: 1rem !important; }
+
+.mt-3,
+.my-3 {
+ margin-top: 1rem !important; }
+
+.mr-3,
+.mx-3 {
+ margin-right: 1rem !important; }
+
+.mb-3,
+.my-3 {
+ margin-bottom: 1rem !important; }
+
+.ml-3,
+.mx-3 {
+ margin-left: 1rem !important; }
+
+.m-4 {
+ margin: 1.5rem !important; }
+
+.mt-4,
+.my-4 {
+ margin-top: 1.5rem !important; }
+
+.mr-4,
+.mx-4 {
+ margin-right: 1.5rem !important; }
+
+.mb-4,
+.my-4 {
+ margin-bottom: 1.5rem !important; }
+
+.ml-4,
+.mx-4 {
+ margin-left: 1.5rem !important; }
+
+.m-5 {
+ margin: 3rem !important; }
+
+.mt-5,
+.my-5 {
+ margin-top: 3rem !important; }
+
+.mr-5,
+.mx-5 {
+ margin-right: 3rem !important; }
+
+.mb-5,
+.my-5 {
+ margin-bottom: 3rem !important; }
+
+.ml-5,
+.mx-5 {
+ margin-left: 3rem !important; }
+
+.p-0 {
+ padding: 0 !important; }
+
+.pt-0,
+.py-0 {
+ padding-top: 0 !important; }
+
+.pr-0,
+.px-0 {
+ padding-right: 0 !important; }
+
+.pb-0,
+.py-0 {
+ padding-bottom: 0 !important; }
+
+.pl-0,
+.px-0 {
+ padding-left: 0 !important; }
+
+.p-1 {
+ padding: 0.25rem !important; }
+
+.pt-1,
+.py-1 {
+ padding-top: 0.25rem !important; }
+
+.pr-1,
+.px-1 {
+ padding-right: 0.25rem !important; }
+
+.pb-1,
+.py-1 {
+ padding-bottom: 0.25rem !important; }
+
+.pl-1,
+.px-1 {
+ padding-left: 0.25rem !important; }
+
+.p-2 {
+ padding: 0.5rem !important; }
+
+.pt-2,
+.py-2 {
+ padding-top: 0.5rem !important; }
+
+.pr-2,
+.px-2 {
+ padding-right: 0.5rem !important; }
+
+.pb-2,
+.py-2 {
+ padding-bottom: 0.5rem !important; }
+
+.pl-2,
+.px-2 {
+ padding-left: 0.5rem !important; }
+
+.p-3 {
+ padding: 1rem !important; }
+
+.pt-3,
+.py-3 {
+ padding-top: 1rem !important; }
+
+.pr-3,
+.px-3 {
+ padding-right: 1rem !important; }
+
+.pb-3,
+.py-3 {
+ padding-bottom: 1rem !important; }
+
+.pl-3,
+.px-3 {
+ padding-left: 1rem !important; }
+
+.p-4 {
+ padding: 1.5rem !important; }
+
+.pt-4,
+.py-4 {
+ padding-top: 1.5rem !important; }
+
+.pr-4,
+.px-4 {
+ padding-right: 1.5rem !important; }
+
+.pb-4,
+.py-4 {
+ padding-bottom: 1.5rem !important; }
+
+.pl-4,
+.px-4 {
+ padding-left: 1.5rem !important; }
+
+.p-5 {
+ padding: 3rem !important; }
+
+.pt-5,
+.py-5 {
+ padding-top: 3rem !important; }
+
+.pr-5,
+.px-5 {
+ padding-right: 3rem !important; }
+
+.pb-5,
+.py-5 {
+ padding-bottom: 3rem !important; }
+
+.pl-5,
+.px-5 {
+ padding-left: 3rem !important; }
+
+.m-auto {
+ margin: auto !important; }
+
+.mt-auto,
+.my-auto {
+ margin-top: auto !important; }
+
+.mr-auto,
+.mx-auto {
+ margin-right: auto !important; }
+
+.mb-auto,
+.my-auto {
+ margin-bottom: auto !important; }
+
+.ml-auto,
+.mx-auto {
+ margin-left: auto !important; }
+
+@media (min-width: 576px) {
+ .m-sm-0 {
+ margin: 0 !important; }
+ .mt-sm-0,
+ .my-sm-0 {
+ margin-top: 0 !important; }
+ .mr-sm-0,
+ .mx-sm-0 {
+ margin-right: 0 !important; }
+ .mb-sm-0,
+ .my-sm-0 {
+ margin-bottom: 0 !important; }
+ .ml-sm-0,
+ .mx-sm-0 {
+ margin-left: 0 !important; }
+ .m-sm-1 {
+ margin: 0.25rem !important; }
+ .mt-sm-1,
+ .my-sm-1 {
+ margin-top: 0.25rem !important; }
+ .mr-sm-1,
+ .mx-sm-1 {
+ margin-right: 0.25rem !important; }
+ .mb-sm-1,
+ .my-sm-1 {
+ margin-bottom: 0.25rem !important; }
+ .ml-sm-1,
+ .mx-sm-1 {
+ margin-left: 0.25rem !important; }
+ .m-sm-2 {
+ margin: 0.5rem !important; }
+ .mt-sm-2,
+ .my-sm-2 {
+ margin-top: 0.5rem !important; }
+ .mr-sm-2,
+ .mx-sm-2 {
+ margin-right: 0.5rem !important; }
+ .mb-sm-2,
+ .my-sm-2 {
+ margin-bottom: 0.5rem !important; }
+ .ml-sm-2,
+ .mx-sm-2 {
+ margin-left: 0.5rem !important; }
+ .m-sm-3 {
+ margin: 1rem !important; }
+ .mt-sm-3,
+ .my-sm-3 {
+ margin-top: 1rem !important; }
+ .mr-sm-3,
+ .mx-sm-3 {
+ margin-right: 1rem !important; }
+ .mb-sm-3,
+ .my-sm-3 {
+ margin-bottom: 1rem !important; }
+ .ml-sm-3,
+ .mx-sm-3 {
+ margin-left: 1rem !important; }
+ .m-sm-4 {
+ margin: 1.5rem !important; }
+ .mt-sm-4,
+ .my-sm-4 {
+ margin-top: 1.5rem !important; }
+ .mr-sm-4,
+ .mx-sm-4 {
+ margin-right: 1.5rem !important; }
+ .mb-sm-4,
+ .my-sm-4 {
+ margin-bottom: 1.5rem !important; }
+ .ml-sm-4,
+ .mx-sm-4 {
+ margin-left: 1.5rem !important; }
+ .m-sm-5 {
+ margin: 3rem !important; }
+ .mt-sm-5,
+ .my-sm-5 {
+ margin-top: 3rem !important; }
+ .mr-sm-5,
+ .mx-sm-5 {
+ margin-right: 3rem !important; }
+ .mb-sm-5,
+ .my-sm-5 {
+ margin-bottom: 3rem !important; }
+ .ml-sm-5,
+ .mx-sm-5 {
+ margin-left: 3rem !important; }
+ .p-sm-0 {
+ padding: 0 !important; }
+ .pt-sm-0,
+ .py-sm-0 {
+ padding-top: 0 !important; }
+ .pr-sm-0,
+ .px-sm-0 {
+ padding-right: 0 !important; }
+ .pb-sm-0,
+ .py-sm-0 {
+ padding-bottom: 0 !important; }
+ .pl-sm-0,
+ .px-sm-0 {
+ padding-left: 0 !important; }
+ .p-sm-1 {
+ padding: 0.25rem !important; }
+ .pt-sm-1,
+ .py-sm-1 {
+ padding-top: 0.25rem !important; }
+ .pr-sm-1,
+ .px-sm-1 {
+ padding-right: 0.25rem !important; }
+ .pb-sm-1,
+ .py-sm-1 {
+ padding-bottom: 0.25rem !important; }
+ .pl-sm-1,
+ .px-sm-1 {
+ padding-left: 0.25rem !important; }
+ .p-sm-2 {
+ padding: 0.5rem !important; }
+ .pt-sm-2,
+ .py-sm-2 {
+ padding-top: 0.5rem !important; }
+ .pr-sm-2,
+ .px-sm-2 {
+ padding-right: 0.5rem !important; }
+ .pb-sm-2,
+ .py-sm-2 {
+ padding-bottom: 0.5rem !important; }
+ .pl-sm-2,
+ .px-sm-2 {
+ padding-left: 0.5rem !important; }
+ .p-sm-3 {
+ padding: 1rem !important; }
+ .pt-sm-3,
+ .py-sm-3 {
+ padding-top: 1rem !important; }
+ .pr-sm-3,
+ .px-sm-3 {
+ padding-right: 1rem !important; }
+ .pb-sm-3,
+ .py-sm-3 {
+ padding-bottom: 1rem !important; }
+ .pl-sm-3,
+ .px-sm-3 {
+ padding-left: 1rem !important; }
+ .p-sm-4 {
+ padding: 1.5rem !important; }
+ .pt-sm-4,
+ .py-sm-4 {
+ padding-top: 1.5rem !important; }
+ .pr-sm-4,
+ .px-sm-4 {
+ padding-right: 1.5rem !important; }
+ .pb-sm-4,
+ .py-sm-4 {
+ padding-bottom: 1.5rem !important; }
+ .pl-sm-4,
+ .px-sm-4 {
+ padding-left: 1.5rem !important; }
+ .p-sm-5 {
+ padding: 3rem !important; }
+ .pt-sm-5,
+ .py-sm-5 {
+ padding-top: 3rem !important; }
+ .pr-sm-5,
+ .px-sm-5 {
+ padding-right: 3rem !important; }
+ .pb-sm-5,
+ .py-sm-5 {
+ padding-bottom: 3rem !important; }
+ .pl-sm-5,
+ .px-sm-5 {
+ padding-left: 3rem !important; }
+ .m-sm-auto {
+ margin: auto !important; }
+ .mt-sm-auto,
+ .my-sm-auto {
+ margin-top: auto !important; }
+ .mr-sm-auto,
+ .mx-sm-auto {
+ margin-right: auto !important; }
+ .mb-sm-auto,
+ .my-sm-auto {
+ margin-bottom: auto !important; }
+ .ml-sm-auto,
+ .mx-sm-auto {
+ margin-left: auto !important; } }
+
+@media (min-width: 768px) {
+ .m-md-0 {
+ margin: 0 !important; }
+ .mt-md-0,
+ .my-md-0 {
+ margin-top: 0 !important; }
+ .mr-md-0,
+ .mx-md-0 {
+ margin-right: 0 !important; }
+ .mb-md-0,
+ .my-md-0 {
+ margin-bottom: 0 !important; }
+ .ml-md-0,
+ .mx-md-0 {
+ margin-left: 0 !important; }
+ .m-md-1 {
+ margin: 0.25rem !important; }
+ .mt-md-1,
+ .my-md-1 {
+ margin-top: 0.25rem !important; }
+ .mr-md-1,
+ .mx-md-1 {
+ margin-right: 0.25rem !important; }
+ .mb-md-1,
+ .my-md-1 {
+ margin-bottom: 0.25rem !important; }
+ .ml-md-1,
+ .mx-md-1 {
+ margin-left: 0.25rem !important; }
+ .m-md-2 {
+ margin: 0.5rem !important; }
+ .mt-md-2,
+ .my-md-2 {
+ margin-top: 0.5rem !important; }
+ .mr-md-2,
+ .mx-md-2 {
+ margin-right: 0.5rem !important; }
+ .mb-md-2,
+ .my-md-2 {
+ margin-bottom: 0.5rem !important; }
+ .ml-md-2,
+ .mx-md-2 {
+ margin-left: 0.5rem !important; }
+ .m-md-3 {
+ margin: 1rem !important; }
+ .mt-md-3,
+ .my-md-3 {
+ margin-top: 1rem !important; }
+ .mr-md-3,
+ .mx-md-3 {
+ margin-right: 1rem !important; }
+ .mb-md-3,
+ .my-md-3 {
+ margin-bottom: 1rem !important; }
+ .ml-md-3,
+ .mx-md-3 {
+ margin-left: 1rem !important; }
+ .m-md-4 {
+ margin: 1.5rem !important; }
+ .mt-md-4,
+ .my-md-4 {
+ margin-top: 1.5rem !important; }
+ .mr-md-4,
+ .mx-md-4 {
+ margin-right: 1.5rem !important; }
+ .mb-md-4,
+ .my-md-4 {
+ margin-bottom: 1.5rem !important; }
+ .ml-md-4,
+ .mx-md-4 {
+ margin-left: 1.5rem !important; }
+ .m-md-5 {
+ margin: 3rem !important; }
+ .mt-md-5,
+ .my-md-5 {
+ margin-top: 3rem !important; }
+ .mr-md-5,
+ .mx-md-5 {
+ margin-right: 3rem !important; }
+ .mb-md-5,
+ .my-md-5 {
+ margin-bottom: 3rem !important; }
+ .ml-md-5,
+ .mx-md-5 {
+ margin-left: 3rem !important; }
+ .p-md-0 {
+ padding: 0 !important; }
+ .pt-md-0,
+ .py-md-0 {
+ padding-top: 0 !important; }
+ .pr-md-0,
+ .px-md-0 {
+ padding-right: 0 !important; }
+ .pb-md-0,
+ .py-md-0 {
+ padding-bottom: 0 !important; }
+ .pl-md-0,
+ .px-md-0 {
+ padding-left: 0 !important; }
+ .p-md-1 {
+ padding: 0.25rem !important; }
+ .pt-md-1,
+ .py-md-1 {
+ padding-top: 0.25rem !important; }
+ .pr-md-1,
+ .px-md-1 {
+ padding-right: 0.25rem !important; }
+ .pb-md-1,
+ .py-md-1 {
+ padding-bottom: 0.25rem !important; }
+ .pl-md-1,
+ .px-md-1 {
+ padding-left: 0.25rem !important; }
+ .p-md-2 {
+ padding: 0.5rem !important; }
+ .pt-md-2,
+ .py-md-2 {
+ padding-top: 0.5rem !important; }
+ .pr-md-2,
+ .px-md-2 {
+ padding-right: 0.5rem !important; }
+ .pb-md-2,
+ .py-md-2 {
+ padding-bottom: 0.5rem !important; }
+ .pl-md-2,
+ .px-md-2 {
+ padding-left: 0.5rem !important; }
+ .p-md-3 {
+ padding: 1rem !important; }
+ .pt-md-3,
+ .py-md-3 {
+ padding-top: 1rem !important; }
+ .pr-md-3,
+ .px-md-3 {
+ padding-right: 1rem !important; }
+ .pb-md-3,
+ .py-md-3 {
+ padding-bottom: 1rem !important; }
+ .pl-md-3,
+ .px-md-3 {
+ padding-left: 1rem !important; }
+ .p-md-4 {
+ padding: 1.5rem !important; }
+ .pt-md-4,
+ .py-md-4 {
+ padding-top: 1.5rem !important; }
+ .pr-md-4,
+ .px-md-4 {
+ padding-right: 1.5rem !important; }
+ .pb-md-4,
+ .py-md-4 {
+ padding-bottom: 1.5rem !important; }
+ .pl-md-4,
+ .px-md-4 {
+ padding-left: 1.5rem !important; }
+ .p-md-5 {
+ padding: 3rem !important; }
+ .pt-md-5,
+ .py-md-5 {
+ padding-top: 3rem !important; }
+ .pr-md-5,
+ .px-md-5 {
+ padding-right: 3rem !important; }
+ .pb-md-5,
+ .py-md-5 {
+ padding-bottom: 3rem !important; }
+ .pl-md-5,
+ .px-md-5 {
+ padding-left: 3rem !important; }
+ .m-md-auto {
+ margin: auto !important; }
+ .mt-md-auto,
+ .my-md-auto {
+ margin-top: auto !important; }
+ .mr-md-auto,
+ .mx-md-auto {
+ margin-right: auto !important; }
+ .mb-md-auto,
+ .my-md-auto {
+ margin-bottom: auto !important; }
+ .ml-md-auto,
+ .mx-md-auto {
+ margin-left: auto !important; } }
+
+@media (min-width: 992px) {
+ .m-lg-0 {
+ margin: 0 !important; }
+ .mt-lg-0,
+ .my-lg-0 {
+ margin-top: 0 !important; }
+ .mr-lg-0,
+ .mx-lg-0 {
+ margin-right: 0 !important; }
+ .mb-lg-0,
+ .my-lg-0 {
+ margin-bottom: 0 !important; }
+ .ml-lg-0,
+ .mx-lg-0 {
+ margin-left: 0 !important; }
+ .m-lg-1 {
+ margin: 0.25rem !important; }
+ .mt-lg-1,
+ .my-lg-1 {
+ margin-top: 0.25rem !important; }
+ .mr-lg-1,
+ .mx-lg-1 {
+ margin-right: 0.25rem !important; }
+ .mb-lg-1,
+ .my-lg-1 {
+ margin-bottom: 0.25rem !important; }
+ .ml-lg-1,
+ .mx-lg-1 {
+ margin-left: 0.25rem !important; }
+ .m-lg-2 {
+ margin: 0.5rem !important; }
+ .mt-lg-2,
+ .my-lg-2 {
+ margin-top: 0.5rem !important; }
+ .mr-lg-2,
+ .mx-lg-2 {
+ margin-right: 0.5rem !important; }
+ .mb-lg-2,
+ .my-lg-2 {
+ margin-bottom: 0.5rem !important; }
+ .ml-lg-2,
+ .mx-lg-2 {
+ margin-left: 0.5rem !important; }
+ .m-lg-3 {
+ margin: 1rem !important; }
+ .mt-lg-3,
+ .my-lg-3 {
+ margin-top: 1rem !important; }
+ .mr-lg-3,
+ .mx-lg-3 {
+ margin-right: 1rem !important; }
+ .mb-lg-3,
+ .my-lg-3 {
+ margin-bottom: 1rem !important; }
+ .ml-lg-3,
+ .mx-lg-3 {
+ margin-left: 1rem !important; }
+ .m-lg-4 {
+ margin: 1.5rem !important; }
+ .mt-lg-4,
+ .my-lg-4 {
+ margin-top: 1.5rem !important; }
+ .mr-lg-4,
+ .mx-lg-4 {
+ margin-right: 1.5rem !important; }
+ .mb-lg-4,
+ .my-lg-4 {
+ margin-bottom: 1.5rem !important; }
+ .ml-lg-4,
+ .mx-lg-4 {
+ margin-left: 1.5rem !important; }
+ .m-lg-5 {
+ margin: 3rem !important; }
+ .mt-lg-5,
+ .my-lg-5 {
+ margin-top: 3rem !important; }
+ .mr-lg-5,
+ .mx-lg-5 {
+ margin-right: 3rem !important; }
+ .mb-lg-5,
+ .my-lg-5 {
+ margin-bottom: 3rem !important; }
+ .ml-lg-5,
+ .mx-lg-5 {
+ margin-left: 3rem !important; }
+ .p-lg-0 {
+ padding: 0 !important; }
+ .pt-lg-0,
+ .py-lg-0 {
+ padding-top: 0 !important; }
+ .pr-lg-0,
+ .px-lg-0 {
+ padding-right: 0 !important; }
+ .pb-lg-0,
+ .py-lg-0 {
+ padding-bottom: 0 !important; }
+ .pl-lg-0,
+ .px-lg-0 {
+ padding-left: 0 !important; }
+ .p-lg-1 {
+ padding: 0.25rem !important; }
+ .pt-lg-1,
+ .py-lg-1 {
+ padding-top: 0.25rem !important; }
+ .pr-lg-1,
+ .px-lg-1 {
+ padding-right: 0.25rem !important; }
+ .pb-lg-1,
+ .py-lg-1 {
+ padding-bottom: 0.25rem !important; }
+ .pl-lg-1,
+ .px-lg-1 {
+ padding-left: 0.25rem !important; }
+ .p-lg-2 {
+ padding: 0.5rem !important; }
+ .pt-lg-2,
+ .py-lg-2 {
+ padding-top: 0.5rem !important; }
+ .pr-lg-2,
+ .px-lg-2 {
+ padding-right: 0.5rem !important; }
+ .pb-lg-2,
+ .py-lg-2 {
+ padding-bottom: 0.5rem !important; }
+ .pl-lg-2,
+ .px-lg-2 {
+ padding-left: 0.5rem !important; }
+ .p-lg-3 {
+ padding: 1rem !important; }
+ .pt-lg-3,
+ .py-lg-3 {
+ padding-top: 1rem !important; }
+ .pr-lg-3,
+ .px-lg-3 {
+ padding-right: 1rem !important; }
+ .pb-lg-3,
+ .py-lg-3 {
+ padding-bottom: 1rem !important; }
+ .pl-lg-3,
+ .px-lg-3 {
+ padding-left: 1rem !important; }
+ .p-lg-4 {
+ padding: 1.5rem !important; }
+ .pt-lg-4,
+ .py-lg-4 {
+ padding-top: 1.5rem !important; }
+ .pr-lg-4,
+ .px-lg-4 {
+ padding-right: 1.5rem !important; }
+ .pb-lg-4,
+ .py-lg-4 {
+ padding-bottom: 1.5rem !important; }
+ .pl-lg-4,
+ .px-lg-4 {
+ padding-left: 1.5rem !important; }
+ .p-lg-5 {
+ padding: 3rem !important; }
+ .pt-lg-5,
+ .py-lg-5 {
+ padding-top: 3rem !important; }
+ .pr-lg-5,
+ .px-lg-5 {
+ padding-right: 3rem !important; }
+ .pb-lg-5,
+ .py-lg-5 {
+ padding-bottom: 3rem !important; }
+ .pl-lg-5,
+ .px-lg-5 {
+ padding-left: 3rem !important; }
+ .m-lg-auto {
+ margin: auto !important; }
+ .mt-lg-auto,
+ .my-lg-auto {
+ margin-top: auto !important; }
+ .mr-lg-auto,
+ .mx-lg-auto {
+ margin-right: auto !important; }
+ .mb-lg-auto,
+ .my-lg-auto {
+ margin-bottom: auto !important; }
+ .ml-lg-auto,
+ .mx-lg-auto {
+ margin-left: auto !important; } }
+
+@media (min-width: 1200px) {
+ .m-xl-0 {
+ margin: 0 !important; }
+ .mt-xl-0,
+ .my-xl-0 {
+ margin-top: 0 !important; }
+ .mr-xl-0,
+ .mx-xl-0 {
+ margin-right: 0 !important; }
+ .mb-xl-0,
+ .my-xl-0 {
+ margin-bottom: 0 !important; }
+ .ml-xl-0,
+ .mx-xl-0 {
+ margin-left: 0 !important; }
+ .m-xl-1 {
+ margin: 0.25rem !important; }
+ .mt-xl-1,
+ .my-xl-1 {
+ margin-top: 0.25rem !important; }
+ .mr-xl-1,
+ .mx-xl-1 {
+ margin-right: 0.25rem !important; }
+ .mb-xl-1,
+ .my-xl-1 {
+ margin-bottom: 0.25rem !important; }
+ .ml-xl-1,
+ .mx-xl-1 {
+ margin-left: 0.25rem !important; }
+ .m-xl-2 {
+ margin: 0.5rem !important; }
+ .mt-xl-2,
+ .my-xl-2 {
+ margin-top: 0.5rem !important; }
+ .mr-xl-2,
+ .mx-xl-2 {
+ margin-right: 0.5rem !important; }
+ .mb-xl-2,
+ .my-xl-2 {
+ margin-bottom: 0.5rem !important; }
+ .ml-xl-2,
+ .mx-xl-2 {
+ margin-left: 0.5rem !important; }
+ .m-xl-3 {
+ margin: 1rem !important; }
+ .mt-xl-3,
+ .my-xl-3 {
+ margin-top: 1rem !important; }
+ .mr-xl-3,
+ .mx-xl-3 {
+ margin-right: 1rem !important; }
+ .mb-xl-3,
+ .my-xl-3 {
+ margin-bottom: 1rem !important; }
+ .ml-xl-3,
+ .mx-xl-3 {
+ margin-left: 1rem !important; }
+ .m-xl-4 {
+ margin: 1.5rem !important; }
+ .mt-xl-4,
+ .my-xl-4 {
+ margin-top: 1.5rem !important; }
+ .mr-xl-4,
+ .mx-xl-4 {
+ margin-right: 1.5rem !important; }
+ .mb-xl-4,
+ .my-xl-4 {
+ margin-bottom: 1.5rem !important; }
+ .ml-xl-4,
+ .mx-xl-4 {
+ margin-left: 1.5rem !important; }
+ .m-xl-5 {
+ margin: 3rem !important; }
+ .mt-xl-5,
+ .my-xl-5 {
+ margin-top: 3rem !important; }
+ .mr-xl-5,
+ .mx-xl-5 {
+ margin-right: 3rem !important; }
+ .mb-xl-5,
+ .my-xl-5 {
+ margin-bottom: 3rem !important; }
+ .ml-xl-5,
+ .mx-xl-5 {
+ margin-left: 3rem !important; }
+ .p-xl-0 {
+ padding: 0 !important; }
+ .pt-xl-0,
+ .py-xl-0 {
+ padding-top: 0 !important; }
+ .pr-xl-0,
+ .px-xl-0 {
+ padding-right: 0 !important; }
+ .pb-xl-0,
+ .py-xl-0 {
+ padding-bottom: 0 !important; }
+ .pl-xl-0,
+ .px-xl-0 {
+ padding-left: 0 !important; }
+ .p-xl-1 {
+ padding: 0.25rem !important; }
+ .pt-xl-1,
+ .py-xl-1 {
+ padding-top: 0.25rem !important; }
+ .pr-xl-1,
+ .px-xl-1 {
+ padding-right: 0.25rem !important; }
+ .pb-xl-1,
+ .py-xl-1 {
+ padding-bottom: 0.25rem !important; }
+ .pl-xl-1,
+ .px-xl-1 {
+ padding-left: 0.25rem !important; }
+ .p-xl-2 {
+ padding: 0.5rem !important; }
+ .pt-xl-2,
+ .py-xl-2 {
+ padding-top: 0.5rem !important; }
+ .pr-xl-2,
+ .px-xl-2 {
+ padding-right: 0.5rem !important; }
+ .pb-xl-2,
+ .py-xl-2 {
+ padding-bottom: 0.5rem !important; }
+ .pl-xl-2,
+ .px-xl-2 {
+ padding-left: 0.5rem !important; }
+ .p-xl-3 {
+ padding: 1rem !important; }
+ .pt-xl-3,
+ .py-xl-3 {
+ padding-top: 1rem !important; }
+ .pr-xl-3,
+ .px-xl-3 {
+ padding-right: 1rem !important; }
+ .pb-xl-3,
+ .py-xl-3 {
+ padding-bottom: 1rem !important; }
+ .pl-xl-3,
+ .px-xl-3 {
+ padding-left: 1rem !important; }
+ .p-xl-4 {
+ padding: 1.5rem !important; }
+ .pt-xl-4,
+ .py-xl-4 {
+ padding-top: 1.5rem !important; }
+ .pr-xl-4,
+ .px-xl-4 {
+ padding-right: 1.5rem !important; }
+ .pb-xl-4,
+ .py-xl-4 {
+ padding-bottom: 1.5rem !important; }
+ .pl-xl-4,
+ .px-xl-4 {
+ padding-left: 1.5rem !important; }
+ .p-xl-5 {
+ padding: 3rem !important; }
+ .pt-xl-5,
+ .py-xl-5 {
+ padding-top: 3rem !important; }
+ .pr-xl-5,
+ .px-xl-5 {
+ padding-right: 3rem !important; }
+ .pb-xl-5,
+ .py-xl-5 {
+ padding-bottom: 3rem !important; }
+ .pl-xl-5,
+ .px-xl-5 {
+ padding-left: 3rem !important; }
+ .m-xl-auto {
+ margin: auto !important; }
+ .mt-xl-auto,
+ .my-xl-auto {
+ margin-top: auto !important; }
+ .mr-xl-auto,
+ .mx-xl-auto {
+ margin-right: auto !important; }
+ .mb-xl-auto,
+ .my-xl-auto {
+ margin-bottom: auto !important; }
+ .ml-xl-auto,
+ .mx-xl-auto {
+ margin-left: auto !important; } }
+
+.text-justify {
+ text-align: justify !important; }
+
+.text-nowrap {
+ white-space: nowrap !important; }
+
+.text-truncate {
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap; }
+
+.text-left {
+ text-align: left !important; }
+
+.text-right {
+ text-align: right !important; }
+
+.text-center {
+ text-align: center !important; }
+
+@media (min-width: 576px) {
+ .text-sm-left {
+ text-align: left !important; }
+ .text-sm-right {
+ text-align: right !important; }
+ .text-sm-center {
+ text-align: center !important; } }
+
+@media (min-width: 768px) {
+ .text-md-left {
+ text-align: left !important; }
+ .text-md-right {
+ text-align: right !important; }
+ .text-md-center {
+ text-align: center !important; } }
+
+@media (min-width: 992px) {
+ .text-lg-left {
+ text-align: left !important; }
+ .text-lg-right {
+ text-align: right !important; }
+ .text-lg-center {
+ text-align: center !important; } }
+
+@media (min-width: 1200px) {
+ .text-xl-left {
+ text-align: left !important; }
+ .text-xl-right {
+ text-align: right !important; }
+ .text-xl-center {
+ text-align: center !important; } }
+
+.text-lowercase {
+ text-transform: lowercase !important; }
+
+.text-uppercase {
+ text-transform: uppercase !important; }
+
+.text-capitalize {
+ text-transform: capitalize !important; }
+
+.font-weight-light {
+ font-weight: 300 !important; }
+
+.font-weight-normal {
+ font-weight: 400 !important; }
+
+.font-weight-bold {
+ font-weight: 700 !important; }
+
+.font-italic {
+ font-style: italic !important; }
+
+.text-white {
+ color: #fff !important; }
+
+.text-primary {
+ color: #007bff !important; }
+
+a.text-primary:focus, a.text-primary:hover {
+ color: #0062cc !important; }
+
+.text-secondary {
+ color: #868e96 !important; }
+
+a.text-secondary:focus, a.text-secondary:hover {
+ color: #6c757d !important; }
+
+.text-success {
+ color: #28a745 !important; }
+
+a.text-success:focus, a.text-success:hover {
+ color: #1e7e34 !important; }
+
+.text-info {
+ color: #17a2b8 !important; }
+
+a.text-info:focus, a.text-info:hover {
+ color: #117a8b !important; }
+
+.text-warning {
+ color: #ffc107 !important; }
+
+a.text-warning:focus, a.text-warning:hover {
+ color: #d39e00 !important; }
+
+.text-danger {
+ color: #dc3545 !important; }
+
+a.text-danger:focus, a.text-danger:hover {
+ color: #bd2130 !important; }
+
+.text-light {
+ color: #f8f9fa !important; }
+
+a.text-light:focus, a.text-light:hover {
+ color: #dae0e5 !important; }
+
+.text-dark {
+ color: #343a40 !important; }
+
+a.text-dark:focus, a.text-dark:hover {
+ color: #1d2124 !important; }
+
+.text-muted {
+ color: #868e96 !important; }
+
+.text-hide {
+ font: 0/0 a;
+ color: transparent;
+ text-shadow: none;
+ background-color: transparent;
+ border: 0; }
+
+.visible {
+ visibility: visible !important; }
+
+.invisible {
+ visibility: hidden !important; }
+
diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/styles/mybstheme.min.css b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/styles/mybstheme.min.css
new file mode 100644
index 0000000000..e2e2aa0746
--- /dev/null
+++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/styles/mybstheme.min.css
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap v4.0.0-beta.2 (https://getbootstrap.com)
+ * Copyright 2011-2017 The Bootstrap Authors
+ * Copyright 2011-2017 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ */
+:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#868e96;--gray-dark:#343a40;--primary:#007bff;--secondary:#868e96;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--font-family-monospace:"SFMono-Regular",Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;}@media print{*,*::before,*::after{text-shadow:none !important;box-shadow:none !important;}a,a:visited{text-decoration:underline;}abbr[title]::after{content:" (" attr(title) ")";}pre{white-space:pre-wrap !important;}pre,blockquote{border:1px solid #999;page-break-inside:avoid;}thead{display:table-header-group;}tr,img{page-break-inside:avoid;}p,h2,h3{orphans:3;widows:3;}h2,h3{page-break-after:avoid;}.navbar{display:none;}.badge{border:1px solid #000;}.table{border-collapse:collapse !important;}.table td,.table th{background-color:#fff !important;}.table-bordered th,.table-bordered td{border:1px solid #ddd !important;}}*,*::before,*::after{box-sizing:border-box;}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:transparent;}@-ms-viewport{width:device-width;}article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block;}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff;}[tabindex="-1"]:focus{outline:none !important;}hr{box-sizing:content-box;height:0;overflow:visible;}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;}p{margin-top:0;margin-bottom:1rem;}abbr[title],abbr[data-original-title]{text-decoration:underline;text-decoration:underline dotted;cursor:help;border-bottom:0;}address{margin-bottom:1rem;font-style:normal;line-height:inherit;}ol,ul,dl{margin-top:0;margin-bottom:1rem;}ol ol,ul ul,ol ul,ul ol{margin-bottom:0;}dt{font-weight:700;}dd{margin-bottom:.5rem;margin-left:0;}blockquote{margin:0 0 1rem;}dfn{font-style:italic;}b,strong{font-weight:bolder;}small{font-size:80%;}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline;}sub{bottom:-.25em;}sup{top:-.5em;}a{color:#007bff;text-decoration:none;background-color:transparent;-webkit-text-decoration-skip:objects;}a:hover{color:#0056b3;text-decoration:underline;}a:not([href]):not([tabindex]){color:inherit;text-decoration:none;}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none;}a:not([href]):not([tabindex]):focus{outline:0;}pre,code,kbd,samp{font-family:monospace,monospace;font-size:1em;}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar;}figure{margin:0 0 1rem;}img{vertical-align:middle;border-style:none;}svg:not(:root){overflow:hidden;}a,area,button,[role="button"],input:not([type="range"]),label,select,summary,textarea{touch-action:manipulation;}table{border-collapse:collapse;}caption{padding-top:.75rem;padding-bottom:.75rem;color:#868e96;text-align:left;caption-side:bottom;}th{text-align:inherit;}label{display:inline-block;margin-bottom:.5rem;}button{border-radius:0;}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color;}input,button,select,optgroup,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit;}button,input{overflow:visible;}button,select{text-transform:none;}button,html [type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button;}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{padding:0;border-style:none;}input[type="radio"],input[type="checkbox"]{box-sizing:border-box;padding:0;}input[type="date"],input[type="time"],input[type="datetime-local"],input[type="month"]{-webkit-appearance:listbox;}textarea{overflow:auto;resize:vertical;}fieldset{min-width:0;padding:0;margin:0;border:0;}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal;}progress{vertical-align:baseline;}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto;}[type="search"]{outline-offset:-2px;-webkit-appearance:none;}[type="search"]::-webkit-search-cancel-button,[type="search"]::-webkit-search-decoration{-webkit-appearance:none;}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button;}output{display:inline-block;}summary{display:list-item;}template{display:none;}[hidden]{display:none !important;}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{margin-bottom:.5rem;font-family:inherit;font-weight:500;line-height:1.2;color:inherit;}h1,.h1{font-size:2.5rem;}h2,.h2{font-size:2rem;}h3,.h3{font-size:1.75rem;}h4,.h4{font-size:1.5rem;}h5,.h5{font-size:1.25rem;}h6,.h6{font-size:1rem;}.lead{font-size:1.25rem;font-weight:300;}.display-1{font-size:6rem;font-weight:300;line-height:1.2;}.display-2{font-size:5.5rem;font-weight:300;line-height:1.2;}.display-3{font-size:4.5rem;font-weight:300;line-height:1.2;}.display-4{font-size:3.5rem;font-weight:300;line-height:1.2;}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1);}small,.small{font-size:80%;font-weight:400;}mark,.mark{padding:.2em;background-color:#fcf8e3;}.list-unstyled{padding-left:0;list-style:none;}.list-inline{padding-left:0;list-style:none;}.list-inline-item{display:inline-block;}.list-inline-item:not(:last-child){margin-right:5px;}.initialism{font-size:90%;text-transform:uppercase;}.blockquote{margin-bottom:1rem;font-size:1.25rem;}.blockquote-footer{display:block;font-size:80%;color:#868e96;}.blockquote-footer::before{content:"— ";}.img-fluid{max-width:100%;height:auto;}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #ddd;border-radius:.25rem;transition:all .2s ease-in-out;max-width:100%;height:auto;}.figure{display:inline-block;}.figure-img{margin-bottom:.5rem;line-height:1;}.figure-caption{font-size:90%;color:#868e96;}code,kbd,pre,samp{font-family:"SFMono-Regular",Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;}code{padding:.2rem .4rem;font-size:90%;color:#bd4147;background-color:#f8f9fa;border-radius:.25rem;}a>code{padding:0;color:inherit;background-color:inherit;}kbd{padding:.2rem .4rem;font-size:90%;color:#fff;background-color:#212529;border-radius:.2rem;}kbd kbd{padding:0;font-size:100%;font-weight:700;}pre{display:block;margin-top:0;margin-bottom:1rem;font-size:90%;color:#212529;}pre code{padding:0;font-size:inherit;color:inherit;background-color:transparent;border-radius:0;}.pre-scrollable{max-height:340px;overflow-y:scroll;}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto;}@media(min-width:576px){.container{max-width:540px;}}@media(min-width:768px){.container{max-width:720px;}}@media(min-width:992px){.container{max-width:960px;}}@media(min-width:1200px){.container{max-width:1140px;}}.container-fluid{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto;}.row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px;}.no-gutters{margin-right:0;margin-left:0;}.no-gutters>.col,.no-gutters>[class*="col-"]{padding-right:0;padding-left:0;}.col-1,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12,.col,.col-auto,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm,.col-sm-auto,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-md,.col-md-auto,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg,.col-lg-auto,.col-xl-1,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl,.col-xl-auto{position:relative;width:100%;min-height:1px;padding-right:15px;padding-left:15px;}.col{flex-basis:0;flex-grow:1;max-width:100%;}.col-auto{flex:0 0 auto;width:auto;max-width:none;}.col-1{flex:0 0 8.33333%;max-width:8.33333%;}.col-2{flex:0 0 16.66667%;max-width:16.66667%;}.col-3{flex:0 0 25%;max-width:25%;}.col-4{flex:0 0 33.33333%;max-width:33.33333%;}.col-5{flex:0 0 41.66667%;max-width:41.66667%;}.col-6{flex:0 0 50%;max-width:50%;}.col-7{flex:0 0 58.33333%;max-width:58.33333%;}.col-8{flex:0 0 66.66667%;max-width:66.66667%;}.col-9{flex:0 0 75%;max-width:75%;}.col-10{flex:0 0 83.33333%;max-width:83.33333%;}.col-11{flex:0 0 91.66667%;max-width:91.66667%;}.col-12{flex:0 0 100%;max-width:100%;}.order-first{order:-1;}.order-1{order:1;}.order-2{order:2;}.order-3{order:3;}.order-4{order:4;}.order-5{order:5;}.order-6{order:6;}.order-7{order:7;}.order-8{order:8;}.order-9{order:9;}.order-10{order:10;}.order-11{order:11;}.order-12{order:12;}.offset-1{margin-left:8.33333%;}.offset-2{margin-left:16.66667%;}.offset-3{margin-left:25%;}.offset-4{margin-left:33.33333%;}.offset-5{margin-left:41.66667%;}.offset-6{margin-left:50%;}.offset-7{margin-left:58.33333%;}.offset-8{margin-left:66.66667%;}.offset-9{margin-left:75%;}.offset-10{margin-left:83.33333%;}.offset-11{margin-left:91.66667%;}@media(min-width:576px){.col-sm{flex-basis:0;flex-grow:1;max-width:100%;}.col-sm-auto{flex:0 0 auto;width:auto;max-width:none;}.col-sm-1{flex:0 0 8.33333%;max-width:8.33333%;}.col-sm-2{flex:0 0 16.66667%;max-width:16.66667%;}.col-sm-3{flex:0 0 25%;max-width:25%;}.col-sm-4{flex:0 0 33.33333%;max-width:33.33333%;}.col-sm-5{flex:0 0 41.66667%;max-width:41.66667%;}.col-sm-6{flex:0 0 50%;max-width:50%;}.col-sm-7{flex:0 0 58.33333%;max-width:58.33333%;}.col-sm-8{flex:0 0 66.66667%;max-width:66.66667%;}.col-sm-9{flex:0 0 75%;max-width:75%;}.col-sm-10{flex:0 0 83.33333%;max-width:83.33333%;}.col-sm-11{flex:0 0 91.66667%;max-width:91.66667%;}.col-sm-12{flex:0 0 100%;max-width:100%;}.order-sm-first{order:-1;}.order-sm-1{order:1;}.order-sm-2{order:2;}.order-sm-3{order:3;}.order-sm-4{order:4;}.order-sm-5{order:5;}.order-sm-6{order:6;}.order-sm-7{order:7;}.order-sm-8{order:8;}.order-sm-9{order:9;}.order-sm-10{order:10;}.order-sm-11{order:11;}.order-sm-12{order:12;}.offset-sm-0{margin-left:0;}.offset-sm-1{margin-left:8.33333%;}.offset-sm-2{margin-left:16.66667%;}.offset-sm-3{margin-left:25%;}.offset-sm-4{margin-left:33.33333%;}.offset-sm-5{margin-left:41.66667%;}.offset-sm-6{margin-left:50%;}.offset-sm-7{margin-left:58.33333%;}.offset-sm-8{margin-left:66.66667%;}.offset-sm-9{margin-left:75%;}.offset-sm-10{margin-left:83.33333%;}.offset-sm-11{margin-left:91.66667%;}}@media(min-width:768px){.col-md{flex-basis:0;flex-grow:1;max-width:100%;}.col-md-auto{flex:0 0 auto;width:auto;max-width:none;}.col-md-1{flex:0 0 8.33333%;max-width:8.33333%;}.col-md-2{flex:0 0 16.66667%;max-width:16.66667%;}.col-md-3{flex:0 0 25%;max-width:25%;}.col-md-4{flex:0 0 33.33333%;max-width:33.33333%;}.col-md-5{flex:0 0 41.66667%;max-width:41.66667%;}.col-md-6{flex:0 0 50%;max-width:50%;}.col-md-7{flex:0 0 58.33333%;max-width:58.33333%;}.col-md-8{flex:0 0 66.66667%;max-width:66.66667%;}.col-md-9{flex:0 0 75%;max-width:75%;}.col-md-10{flex:0 0 83.33333%;max-width:83.33333%;}.col-md-11{flex:0 0 91.66667%;max-width:91.66667%;}.col-md-12{flex:0 0 100%;max-width:100%;}.order-md-first{order:-1;}.order-md-1{order:1;}.order-md-2{order:2;}.order-md-3{order:3;}.order-md-4{order:4;}.order-md-5{order:5;}.order-md-6{order:6;}.order-md-7{order:7;}.order-md-8{order:8;}.order-md-9{order:9;}.order-md-10{order:10;}.order-md-11{order:11;}.order-md-12{order:12;}.offset-md-0{margin-left:0;}.offset-md-1{margin-left:8.33333%;}.offset-md-2{margin-left:16.66667%;}.offset-md-3{margin-left:25%;}.offset-md-4{margin-left:33.33333%;}.offset-md-5{margin-left:41.66667%;}.offset-md-6{margin-left:50%;}.offset-md-7{margin-left:58.33333%;}.offset-md-8{margin-left:66.66667%;}.offset-md-9{margin-left:75%;}.offset-md-10{margin-left:83.33333%;}.offset-md-11{margin-left:91.66667%;}}@media(min-width:992px){.col-lg{flex-basis:0;flex-grow:1;max-width:100%;}.col-lg-auto{flex:0 0 auto;width:auto;max-width:none;}.col-lg-1{flex:0 0 8.33333%;max-width:8.33333%;}.col-lg-2{flex:0 0 16.66667%;max-width:16.66667%;}.col-lg-3{flex:0 0 25%;max-width:25%;}.col-lg-4{flex:0 0 33.33333%;max-width:33.33333%;}.col-lg-5{flex:0 0 41.66667%;max-width:41.66667%;}.col-lg-6{flex:0 0 50%;max-width:50%;}.col-lg-7{flex:0 0 58.33333%;max-width:58.33333%;}.col-lg-8{flex:0 0 66.66667%;max-width:66.66667%;}.col-lg-9{flex:0 0 75%;max-width:75%;}.col-lg-10{flex:0 0 83.33333%;max-width:83.33333%;}.col-lg-11{flex:0 0 91.66667%;max-width:91.66667%;}.col-lg-12{flex:0 0 100%;max-width:100%;}.order-lg-first{order:-1;}.order-lg-1{order:1;}.order-lg-2{order:2;}.order-lg-3{order:3;}.order-lg-4{order:4;}.order-lg-5{order:5;}.order-lg-6{order:6;}.order-lg-7{order:7;}.order-lg-8{order:8;}.order-lg-9{order:9;}.order-lg-10{order:10;}.order-lg-11{order:11;}.order-lg-12{order:12;}.offset-lg-0{margin-left:0;}.offset-lg-1{margin-left:8.33333%;}.offset-lg-2{margin-left:16.66667%;}.offset-lg-3{margin-left:25%;}.offset-lg-4{margin-left:33.33333%;}.offset-lg-5{margin-left:41.66667%;}.offset-lg-6{margin-left:50%;}.offset-lg-7{margin-left:58.33333%;}.offset-lg-8{margin-left:66.66667%;}.offset-lg-9{margin-left:75%;}.offset-lg-10{margin-left:83.33333%;}.offset-lg-11{margin-left:91.66667%;}}@media(min-width:1200px){.col-xl{flex-basis:0;flex-grow:1;max-width:100%;}.col-xl-auto{flex:0 0 auto;width:auto;max-width:none;}.col-xl-1{flex:0 0 8.33333%;max-width:8.33333%;}.col-xl-2{flex:0 0 16.66667%;max-width:16.66667%;}.col-xl-3{flex:0 0 25%;max-width:25%;}.col-xl-4{flex:0 0 33.33333%;max-width:33.33333%;}.col-xl-5{flex:0 0 41.66667%;max-width:41.66667%;}.col-xl-6{flex:0 0 50%;max-width:50%;}.col-xl-7{flex:0 0 58.33333%;max-width:58.33333%;}.col-xl-8{flex:0 0 66.66667%;max-width:66.66667%;}.col-xl-9{flex:0 0 75%;max-width:75%;}.col-xl-10{flex:0 0 83.33333%;max-width:83.33333%;}.col-xl-11{flex:0 0 91.66667%;max-width:91.66667%;}.col-xl-12{flex:0 0 100%;max-width:100%;}.order-xl-first{order:-1;}.order-xl-1{order:1;}.order-xl-2{order:2;}.order-xl-3{order:3;}.order-xl-4{order:4;}.order-xl-5{order:5;}.order-xl-6{order:6;}.order-xl-7{order:7;}.order-xl-8{order:8;}.order-xl-9{order:9;}.order-xl-10{order:10;}.order-xl-11{order:11;}.order-xl-12{order:12;}.offset-xl-0{margin-left:0;}.offset-xl-1{margin-left:8.33333%;}.offset-xl-2{margin-left:16.66667%;}.offset-xl-3{margin-left:25%;}.offset-xl-4{margin-left:33.33333%;}.offset-xl-5{margin-left:41.66667%;}.offset-xl-6{margin-left:50%;}.offset-xl-7{margin-left:58.33333%;}.offset-xl-8{margin-left:66.66667%;}.offset-xl-9{margin-left:75%;}.offset-xl-10{margin-left:83.33333%;}.offset-xl-11{margin-left:91.66667%;}}.table{width:100%;max-width:100%;margin-bottom:1rem;background-color:transparent;}.table th,.table td{padding:.75rem;vertical-align:top;border-top:1px solid #e9ecef;}.table thead th{vertical-align:bottom;border-bottom:2px solid #e9ecef;}.table tbody+tbody{border-top:2px solid #e9ecef;}.table .table{background-color:#fff;}.table-sm th,.table-sm td{padding:.3rem;}.table-bordered{border:1px solid #e9ecef;}.table-bordered th,.table-bordered td{border:1px solid #e9ecef;}.table-bordered thead th,.table-bordered thead td{border-bottom-width:2px;}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05);}.table-hover tbody tr:hover{background-color:rgba(0,0,0,.075);}.table-primary,.table-primary>th,.table-primary>td{background-color:#b8daff;}.table-hover .table-primary:hover{background-color:#9fcdff;}.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff;}.table-secondary,.table-secondary>th,.table-secondary>td{background-color:#dddfe2;}.table-hover .table-secondary:hover{background-color:#cfd2d6;}.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#cfd2d6;}.table-success,.table-success>th,.table-success>td{background-color:#c3e6cb;}.table-hover .table-success:hover{background-color:#b1dfbb;}.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb;}.table-info,.table-info>th,.table-info>td{background-color:#bee5eb;}.table-hover .table-info:hover{background-color:#abdde5;}.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5;}.table-warning,.table-warning>th,.table-warning>td{background-color:#ffeeba;}.table-hover .table-warning:hover{background-color:#ffe8a1;}.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1;}.table-danger,.table-danger>th,.table-danger>td{background-color:#f5c6cb;}.table-hover .table-danger:hover{background-color:#f1b0b7;}.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7;}.table-light,.table-light>th,.table-light>td{background-color:#fdfdfe;}.table-hover .table-light:hover{background-color:#ececf6;}.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6;}.table-dark,.table-dark>th,.table-dark>td{background-color:#c6c8ca;}.table-hover .table-dark:hover{background-color:#b9bbbe;}.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe;}.table-active,.table-active>th,.table-active>td{background-color:rgba(0,0,0,.075);}.table-hover .table-active:hover{background-color:rgba(0,0,0,.075);}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075);}.table .thead-dark th{color:#fff;background-color:#212529;border-color:#32383e;}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#e9ecef;}.table-dark{color:#fff;background-color:#212529;}.table-dark th,.table-dark td,.table-dark thead th{border-color:#32383e;}.table-dark.table-bordered{border:0;}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:rgba(255,255,255,.05);}.table-dark.table-hover tbody tr:hover{background-color:rgba(255,255,255,.075);}@media(max-width:575px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar;}.table-responsive-sm.table-bordered{border:0;}}@media(max-width:767px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar;}.table-responsive-md.table-bordered{border:0;}}@media(max-width:991px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar;}.table-responsive-lg.table-bordered{border:0;}}@media(max-width:1199px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar;}.table-responsive-xl.table-bordered{border:0;}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar;}.table-responsive.table-bordered{border:0;}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;line-height:1.5;color:#495057;background-color:#fff;background-image:none;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;}.form-control::-ms-expand{background-color:transparent;border:0;}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:none;box-shadow:0 0 0 .2rem rgba(0,123,255,.25);}.form-control::placeholder{color:#868e96;opacity:1;}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1;}select.form-control:not([size]):not([multiple]){height:calc(2.25rem + 2px);}select.form-control:focus::-ms-value{color:#495057;background-color:#fff;}.form-control-file,.form-control-range{display:block;}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;line-height:1.5;}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5;}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5;}.col-form-legend{padding-top:.375rem;padding-bottom:.375rem;margin-bottom:0;font-size:1rem;}.form-control-plaintext{padding-top:.375rem;padding-bottom:.375rem;margin-bottom:0;line-height:1.5;background-color:transparent;border:solid transparent;border-width:1px 0;}.form-control-plaintext.form-control-sm,.input-group-sm>.form-control-plaintext.form-control,.input-group-sm>.form-control-plaintext.input-group-addon,.input-group-sm>.input-group-btn>.form-control-plaintext.btn,.form-control-plaintext.form-control-lg,.input-group-lg>.form-control-plaintext.form-control,.input-group-lg>.form-control-plaintext.input-group-addon,.input-group-lg>.input-group-btn>.form-control-plaintext.btn{padding-right:0;padding-left:0;}.form-control-sm,.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem;}select.form-control-sm:not([size]):not([multiple]),.input-group-sm>select.form-control:not([size]):not([multiple]),.input-group-sm>select.input-group-addon:not([size]):not([multiple]),.input-group-sm>.input-group-btn>select.btn:not([size]):not([multiple]){height:calc(1.8125rem + 2px);}.form-control-lg,.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem;}select.form-control-lg:not([size]):not([multiple]),.input-group-lg>select.form-control:not([size]):not([multiple]),.input-group-lg>select.input-group-addon:not([size]):not([multiple]),.input-group-lg>.input-group-btn>select.btn:not([size]):not([multiple]){height:calc(2.875rem + 2px);}.form-group{margin-bottom:1rem;}.form-text{display:block;margin-top:.25rem;}.form-row{display:flex;flex-wrap:wrap;margin-right:-5px;margin-left:-5px;}.form-row>.col,.form-row>[class*="col-"]{padding-right:5px;padding-left:5px;}.form-check{position:relative;display:block;margin-bottom:.5rem;}.form-check.disabled .form-check-label{color:#868e96;}.form-check-label{padding-left:1.25rem;margin-bottom:0;}.form-check-input{position:absolute;margin-top:.25rem;margin-left:-1.25rem;}.form-check-inline{display:inline-block;margin-right:.75rem;}.form-check-inline .form-check-label{vertical-align:middle;}.valid-feedback{display:none;margin-top:.25rem;font-size:.875rem;color:#28a745;}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;width:250px;padding:.5rem;margin-top:.1rem;font-size:.875rem;line-height:1;color:#fff;background-color:rgba(40,167,69,.8);border-radius:.2rem;}.was-validated .form-control:valid,.form-control.is-valid,.was-validated .custom-select:valid,.custom-select.is-valid{border-color:#28a745;}.was-validated .form-control:valid:focus,.form-control.is-valid:focus,.was-validated .custom-select:valid:focus,.custom-select.is-valid:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.25);}.was-validated .form-control:valid~.valid-feedback,.was-validated .form-control:valid~.valid-tooltip,.form-control.is-valid~.valid-feedback,.form-control.is-valid~.valid-tooltip,.was-validated .custom-select:valid~.valid-feedback,.was-validated .custom-select:valid~.valid-tooltip,.custom-select.is-valid~.valid-feedback,.custom-select.is-valid~.valid-tooltip{display:block;}.was-validated .form-check-input:valid+.form-check-label,.form-check-input.is-valid+.form-check-label{color:#28a745;}.was-validated .custom-control-input:valid~.custom-control-indicator,.custom-control-input.is-valid~.custom-control-indicator{background-color:rgba(40,167,69,.25);}.was-validated .custom-control-input:valid~.custom-control-description,.custom-control-input.is-valid~.custom-control-description{color:#28a745;}.was-validated .custom-file-input:valid~.custom-file-control,.custom-file-input.is-valid~.custom-file-control{border-color:#28a745;}.was-validated .custom-file-input:valid~.custom-file-control::before,.custom-file-input.is-valid~.custom-file-control::before{border-color:inherit;}.was-validated .custom-file-input:valid:focus,.custom-file-input.is-valid:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.25);}.invalid-feedback{display:none;margin-top:.25rem;font-size:.875rem;color:#dc3545;}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;width:250px;padding:.5rem;margin-top:.1rem;font-size:.875rem;line-height:1;color:#fff;background-color:rgba(220,53,69,.8);border-radius:.2rem;}.was-validated .form-control:invalid,.form-control.is-invalid,.was-validated .custom-select:invalid,.custom-select.is-invalid{border-color:#dc3545;}.was-validated .form-control:invalid:focus,.form-control.is-invalid:focus,.was-validated .custom-select:invalid:focus,.custom-select.is-invalid:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.25);}.was-validated .form-control:invalid~.invalid-feedback,.was-validated .form-control:invalid~.invalid-tooltip,.form-control.is-invalid~.invalid-feedback,.form-control.is-invalid~.invalid-tooltip,.was-validated .custom-select:invalid~.invalid-feedback,.was-validated .custom-select:invalid~.invalid-tooltip,.custom-select.is-invalid~.invalid-feedback,.custom-select.is-invalid~.invalid-tooltip{display:block;}.was-validated .form-check-input:invalid+.form-check-label,.form-check-input.is-invalid+.form-check-label{color:#dc3545;}.was-validated .custom-control-input:invalid~.custom-control-indicator,.custom-control-input.is-invalid~.custom-control-indicator{background-color:rgba(220,53,69,.25);}.was-validated .custom-control-input:invalid~.custom-control-description,.custom-control-input.is-invalid~.custom-control-description{color:#dc3545;}.was-validated .custom-file-input:invalid~.custom-file-control,.custom-file-input.is-invalid~.custom-file-control{border-color:#dc3545;}.was-validated .custom-file-input:invalid~.custom-file-control::before,.custom-file-input.is-invalid~.custom-file-control::before{border-color:inherit;}.was-validated .custom-file-input:invalid:focus,.custom-file-input.is-invalid:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.25);}.form-inline{display:flex;flex-flow:row wrap;align-items:center;}.form-inline .form-check{width:100%;}@media(min-width:576px){.form-inline label{display:flex;align-items:center;justify-content:center;margin-bottom:0;}.form-inline .form-group{display:flex;flex:0 0 auto;flex-flow:row wrap;align-items:center;margin-bottom:0;}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle;}.form-inline .form-control-plaintext{display:inline-block;}.form-inline .input-group{width:auto;}.form-inline .form-check{display:flex;align-items:center;justify-content:center;width:auto;margin-top:0;margin-bottom:0;}.form-inline .form-check-label{padding-left:0;}.form-inline .form-check-input{position:relative;margin-top:0;margin-right:.25rem;margin-left:0;}.form-inline .custom-control{display:flex;align-items:center;justify-content:center;padding-left:0;}.form-inline .custom-control-indicator{position:static;display:inline-block;margin-right:.25rem;vertical-align:text-bottom;}.form-inline .has-feedback .form-control-feedback{top:0;}}.btn{display:inline-block;font-weight:400;text-align:center;white-space:nowrap;vertical-align:middle;user-select:none;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;}.btn:focus,.btn:hover{text-decoration:none;}.btn:focus,.btn.focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25);}.btn.disabled,.btn:disabled{opacity:.65;}.btn:not([disabled]):not(.disabled):active,.btn:not([disabled]):not(.disabled).active{background-image:none;}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none;}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff;}.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc;}.btn-primary:focus,.btn-primary.focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5);}.btn-primary.disabled,.btn-primary:disabled{background-color:#007bff;border-color:#007bff;}.btn-primary:not([disabled]):not(.disabled):active,.btn-primary:not([disabled]):not(.disabled).active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf;box-shadow:0 0 0 .2rem rgba(0,123,255,.5);}.btn-secondary{color:#fff;background-color:#868e96;border-color:#868e96;}.btn-secondary:hover{color:#fff;background-color:#727b84;border-color:#6c757d;}.btn-secondary:focus,.btn-secondary.focus{box-shadow:0 0 0 .2rem rgba(134,142,150,.5);}.btn-secondary.disabled,.btn-secondary:disabled{background-color:#868e96;border-color:#868e96;}.btn-secondary:not([disabled]):not(.disabled):active,.btn-secondary:not([disabled]):not(.disabled).active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#666e76;box-shadow:0 0 0 .2rem rgba(134,142,150,.5);}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745;}.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34;}.btn-success:focus,.btn-success.focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5);}.btn-success.disabled,.btn-success:disabled{background-color:#28a745;border-color:#28a745;}.btn-success:not([disabled]):not(.disabled):active,.btn-success:not([disabled]):not(.disabled).active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430;box-shadow:0 0 0 .2rem rgba(40,167,69,.5);}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8;}.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b;}.btn-info:focus,.btn-info.focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5);}.btn-info.disabled,.btn-info:disabled{background-color:#17a2b8;border-color:#17a2b8;}.btn-info:not([disabled]):not(.disabled):active,.btn-info:not([disabled]):not(.disabled).active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f;box-shadow:0 0 0 .2rem rgba(23,162,184,.5);}.btn-warning{color:#111;background-color:#ffc107;border-color:#ffc107;}.btn-warning:hover{color:#111;background-color:#e0a800;border-color:#d39e00;}.btn-warning:focus,.btn-warning.focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5);}.btn-warning.disabled,.btn-warning:disabled{background-color:#ffc107;border-color:#ffc107;}.btn-warning:not([disabled]):not(.disabled):active,.btn-warning:not([disabled]):not(.disabled).active,.show>.btn-warning.dropdown-toggle{color:#111;background-color:#d39e00;border-color:#c69500;box-shadow:0 0 0 .2rem rgba(255,193,7,.5);}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545;}.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130;}.btn-danger:focus,.btn-danger.focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5);}.btn-danger.disabled,.btn-danger:disabled{background-color:#dc3545;border-color:#dc3545;}.btn-danger:not([disabled]):not(.disabled):active,.btn-danger:not([disabled]):not(.disabled).active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d;box-shadow:0 0 0 .2rem rgba(220,53,69,.5);}.btn-light{color:#111;background-color:#f8f9fa;border-color:#f8f9fa;}.btn-light:hover{color:#111;background-color:#e2e6ea;border-color:#dae0e5;}.btn-light:focus,.btn-light.focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5);}.btn-light.disabled,.btn-light:disabled{background-color:#f8f9fa;border-color:#f8f9fa;}.btn-light:not([disabled]):not(.disabled):active,.btn-light:not([disabled]):not(.disabled).active,.show>.btn-light.dropdown-toggle{color:#111;background-color:#dae0e5;border-color:#d3d9df;box-shadow:0 0 0 .2rem rgba(248,249,250,.5);}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40;}.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124;}.btn-dark:focus,.btn-dark.focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5);}.btn-dark.disabled,.btn-dark:disabled{background-color:#343a40;border-color:#343a40;}.btn-dark:not([disabled]):not(.disabled):active,.btn-dark:not([disabled]):not(.disabled).active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d;box-shadow:0 0 0 .2rem rgba(52,58,64,.5);}.btn-outline-primary{color:#007bff;background-color:transparent;background-image:none;border-color:#007bff;}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff;}.btn-outline-primary:focus,.btn-outline-primary.focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5);}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent;}.btn-outline-primary:not([disabled]):not(.disabled):active,.btn-outline-primary:not([disabled]):not(.disabled).active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff;box-shadow:0 0 0 .2rem rgba(0,123,255,.5);}.btn-outline-secondary{color:#868e96;background-color:transparent;background-image:none;border-color:#868e96;}.btn-outline-secondary:hover{color:#fff;background-color:#868e96;border-color:#868e96;}.btn-outline-secondary:focus,.btn-outline-secondary.focus{box-shadow:0 0 0 .2rem rgba(134,142,150,.5);}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#868e96;background-color:transparent;}.btn-outline-secondary:not([disabled]):not(.disabled):active,.btn-outline-secondary:not([disabled]):not(.disabled).active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#868e96;border-color:#868e96;box-shadow:0 0 0 .2rem rgba(134,142,150,.5);}.btn-outline-success{color:#28a745;background-color:transparent;background-image:none;border-color:#28a745;}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745;}.btn-outline-success:focus,.btn-outline-success.focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5);}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent;}.btn-outline-success:not([disabled]):not(.disabled):active,.btn-outline-success:not([disabled]):not(.disabled).active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.5);}.btn-outline-info{color:#17a2b8;background-color:transparent;background-image:none;border-color:#17a2b8;}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8;}.btn-outline-info:focus,.btn-outline-info.focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5);}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent;}.btn-outline-info:not([disabled]):not(.disabled):active,.btn-outline-info:not([disabled]):not(.disabled).active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8;box-shadow:0 0 0 .2rem rgba(23,162,184,.5);}.btn-outline-warning{color:#ffc107;background-color:transparent;background-image:none;border-color:#ffc107;}.btn-outline-warning:hover{color:#fff;background-color:#ffc107;border-color:#ffc107;}.btn-outline-warning:focus,.btn-outline-warning.focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5);}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent;}.btn-outline-warning:not([disabled]):not(.disabled):active,.btn-outline-warning:not([disabled]):not(.disabled).active,.show>.btn-outline-warning.dropdown-toggle{color:#fff;background-color:#ffc107;border-color:#ffc107;box-shadow:0 0 0 .2rem rgba(255,193,7,.5);}.btn-outline-danger{color:#dc3545;background-color:transparent;background-image:none;border-color:#dc3545;}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545;}.btn-outline-danger:focus,.btn-outline-danger.focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5);}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent;}.btn-outline-danger:not([disabled]):not(.disabled):active,.btn-outline-danger:not([disabled]):not(.disabled).active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.5);}.btn-outline-light{color:#f8f9fa;background-color:transparent;background-image:none;border-color:#f8f9fa;}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa;}.btn-outline-light:focus,.btn-outline-light.focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5);}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent;}.btn-outline-light:not([disabled]):not(.disabled):active,.btn-outline-light:not([disabled]):not(.disabled).active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa;box-shadow:0 0 0 .2rem rgba(248,249,250,.5);}.btn-outline-dark{color:#343a40;background-color:transparent;background-image:none;border-color:#343a40;}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40;}.btn-outline-dark:focus,.btn-outline-dark.focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5);}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent;}.btn-outline-dark:not([disabled]):not(.disabled):active,.btn-outline-dark:not([disabled]):not(.disabled).active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40;box-shadow:0 0 0 .2rem rgba(52,58,64,.5);}.btn-link{font-weight:400;color:#007bff;background-color:transparent;}.btn-link:hover{color:#0056b3;text-decoration:underline;background-color:transparent;border-color:transparent;}.btn-link:focus,.btn-link.focus{border-color:transparent;box-shadow:none;}.btn-link:disabled,.btn-link.disabled{color:#868e96;}.btn-lg,.btn-group-lg>.btn{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem;}.btn-sm,.btn-group-sm>.btn{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem;}.btn-block{display:block;width:100%;}.btn-block+.btn-block{margin-top:.5rem;}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%;}.fade{opacity:0;transition:opacity .15s linear;}.fade.show{opacity:1;}.collapse{display:none;}.collapse.show{display:block;}tr.collapse.show{display:table-row;}tbody.collapse.show{display:table-row-group;}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease;}.dropup,.dropdown{position:relative;}.dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent;}.dropdown-toggle:empty::after{margin-left:0;}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem;}.dropup .dropdown-menu{margin-top:0;margin-bottom:.125rem;}.dropup .dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent;}.dropup .dropdown-toggle:empty::after{margin-left:0;}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef;}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background:none;border:0;}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa;}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff;}.dropdown-item.disabled,.dropdown-item:disabled{color:#868e96;background-color:transparent;}.dropdown-menu.show{display:block;}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#868e96;white-space:nowrap;}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle;}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;flex:0 1 auto;}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover{z-index:2;}.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn.active{z-index:2;}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group,.btn-group-vertical .btn+.btn,.btn-group-vertical .btn+.btn-group,.btn-group-vertical .btn-group+.btn,.btn-group-vertical .btn-group+.btn-group{margin-left:-1px;}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start;}.btn-toolbar .input-group{width:auto;}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0;}.btn-group>.btn:first-child{margin-left:0;}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0;}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0;}.btn-group>.btn-group{float:left;}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0;}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0;}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0;}.btn+.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem;}.btn+.dropdown-toggle-split::after{margin-left:0;}.btn-sm+.dropdown-toggle-split,.btn-group-sm>.btn+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem;}.btn-lg+.dropdown-toggle-split,.btn-group-lg>.btn+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem;}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center;}.btn-group-vertical .btn,.btn-group-vertical .btn-group{width:100%;}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0;}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0;}.btn-group-vertical>.btn:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0;}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0;}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-top-right-radius:0;}[data-toggle="buttons"]>.btn input[type="radio"],[data-toggle="buttons"]>.btn input[type="checkbox"],[data-toggle="buttons"]>.btn-group>.btn input[type="radio"],[data-toggle="buttons"]>.btn-group>.btn input[type="checkbox"]{position:absolute;clip:rect(0,0,0,0);pointer-events:none;}.input-group{position:relative;display:flex;align-items:stretch;width:100%;}.input-group .form-control{position:relative;z-index:2;flex:1 1 auto;width:1%;margin-bottom:0;}.input-group .form-control:focus,.input-group .form-control:active,.input-group .form-control:hover{z-index:3;}.input-group-addon,.input-group-btn,.input-group .form-control{display:flex;align-items:center;}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0;}.input-group-addon,.input-group-btn{white-space:nowrap;}.input-group-addon{padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem;}.input-group-addon.form-control-sm,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.input-group-addon.btn{padding:.25rem .5rem;font-size:.875rem;border-radius:.2rem;}.input-group-addon.form-control-lg,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.input-group-addon.btn{padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem;}.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0;}.input-group .form-control:not(:last-child),.input-group-addon:not(:last-child),.input-group-btn:not(:last-child)>.btn,.input-group-btn:not(:last-child)>.btn-group>.btn,.input-group-btn:not(:last-child)>.dropdown-toggle,.input-group-btn:not(:first-child)>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:not(:first-child)>.btn-group:not(:last-child)>.btn{border-top-right-radius:0;border-bottom-right-radius:0;}.input-group-addon:not(:last-child){border-right:0;}.input-group .form-control:not(:first-child),.input-group-addon:not(:first-child),.input-group-btn:not(:first-child)>.btn,.input-group-btn:not(:first-child)>.btn-group>.btn,.input-group-btn:not(:first-child)>.dropdown-toggle,.input-group-btn:not(:last-child)>.btn:not(:first-child),.input-group-btn:not(:last-child)>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-bottom-left-radius:0;}.form-control+.input-group-addon:not(:first-child){border-left:0;}.input-group-btn{position:relative;align-items:stretch;font-size:0;white-space:nowrap;}.input-group-btn>.btn{position:relative;}.input-group-btn>.btn+.btn{margin-left:-1px;}.input-group-btn>.btn:focus,.input-group-btn>.btn:active,.input-group-btn>.btn:hover{z-index:3;}.input-group-btn:first-child>.btn+.btn{margin-left:0;}.input-group-btn:not(:last-child)>.btn,.input-group-btn:not(:last-child)>.btn-group{margin-right:-1px;}.input-group-btn:not(:first-child)>.btn,.input-group-btn:not(:first-child)>.btn-group{z-index:2;margin-left:0;}.input-group-btn:not(:first-child)>.btn:first-child,.input-group-btn:not(:first-child)>.btn-group:first-child{margin-left:-1px;}.input-group-btn:not(:first-child)>.btn:focus,.input-group-btn:not(:first-child)>.btn:active,.input-group-btn:not(:first-child)>.btn:hover,.input-group-btn:not(:first-child)>.btn-group:focus,.input-group-btn:not(:first-child)>.btn-group:active,.input-group-btn:not(:first-child)>.btn-group:hover{z-index:3;}.custom-control{position:relative;display:inline-flex;min-height:1.5rem;padding-left:1.5rem;margin-right:1rem;}.custom-control-input{position:absolute;z-index:-1;opacity:0;}.custom-control-input:checked~.custom-control-indicator{color:#fff;background-color:#007bff;}.custom-control-input:focus~.custom-control-indicator{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25);}.custom-control-input:active~.custom-control-indicator{color:#fff;background-color:#b3d7ff;}.custom-control-input:disabled~.custom-control-indicator{background-color:#e9ecef;}.custom-control-input:disabled~.custom-control-description{color:#868e96;}.custom-control-indicator{position:absolute;top:.25rem;left:0;display:block;width:1rem;height:1rem;pointer-events:none;user-select:none;background-color:#ddd;background-repeat:no-repeat;background-position:center center;background-size:50% 50%;}.custom-checkbox .custom-control-indicator{border-radius:.25rem;}.custom-checkbox .custom-control-input:checked~.custom-control-indicator{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E");}.custom-checkbox .custom-control-input:indeterminate~.custom-control-indicator{background-color:#007bff;background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E");}.custom-radio .custom-control-indicator{border-radius:50%;}.custom-radio .custom-control-input:checked~.custom-control-indicator{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E");}.custom-controls-stacked{display:flex;flex-direction:column;}.custom-controls-stacked .custom-control{margin-bottom:.25rem;}.custom-controls-stacked .custom-control+.custom-control{margin-left:0;}.custom-select{display:inline-block;max-width:100%;height:calc(2.25rem + 2px);padding:.375rem 1.75rem .375rem .75rem;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23333' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right .75rem center;background-size:8px 10px;border:1px solid #ced4da;border-radius:.25rem;appearance:none;}.custom-select:focus{border-color:#80bdff;outline:none;}.custom-select:focus::-ms-value{color:#495057;background-color:#fff;}.custom-select[multiple]{height:auto;background-image:none;}.custom-select:disabled{color:#868e96;background-color:#e9ecef;}.custom-select::-ms-expand{opacity:0;}.custom-select-sm{height:calc(1.8125rem + 2px);padding-top:.375rem;padding-bottom:.375rem;font-size:75%;}.custom-file{position:relative;display:inline-block;max-width:100%;height:calc(2.25rem + 2px);margin-bottom:0;}.custom-file-input{min-width:14rem;max-width:100%;height:calc(2.25rem + 2px);margin:0;opacity:0;}.custom-file-input:focus~.custom-file-control{box-shadow:0 0 0 .075rem #fff,0 0 0 .2rem #007bff;}.custom-file-control{position:absolute;top:0;right:0;left:0;z-index:5;height:calc(2.25rem + 2px);padding:.375rem .75rem;line-height:1.5;color:#495057;pointer-events:none;user-select:none;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem;}.custom-file-control:lang(en):empty::after{content:"Choose file...";}.custom-file-control::before{position:absolute;top:-1px;right:-1px;bottom:-1px;z-index:6;display:block;height:calc(2.25rem + 2px);padding:.375rem .75rem;line-height:1.5;color:#495057;background-color:#e9ecef;border:1px solid #ced4da;border-radius:0 .25rem .25rem 0;}.custom-file-control:lang(en)::before{content:"Browse";}.nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none;}.nav-link{display:block;padding:.5rem 1rem;}.nav-link:focus,.nav-link:hover{text-decoration:none;}.nav-link.disabled{color:#868e96;}.nav-tabs{border-bottom:1px solid #ddd;}.nav-tabs .nav-item{margin-bottom:-1px;}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem;}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #ddd;}.nav-tabs .nav-link.disabled{color:#868e96;background-color:transparent;border-color:transparent;}.nav-tabs .nav-link.active,.nav-tabs .nav-item.show .nav-link{color:#495057;background-color:#fff;border-color:#ddd #ddd #fff;}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0;}.nav-pills .nav-link{border-radius:.25rem;}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff;}.nav-fill .nav-item{flex:1 1 auto;text-align:center;}.nav-justified .nav-item{flex-basis:0;flex-grow:1;text-align:center;}.tab-content>.tab-pane{display:none;}.tab-content>.active{display:block;}.navbar{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:.5rem 1rem;}.navbar>.container,.navbar>.container-fluid{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap;}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none;}.navbar-nav{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none;}.navbar-nav .nav-link{padding-right:0;padding-left:0;}.navbar-nav .dropdown-menu{position:static;float:none;}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem;}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center;}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background:transparent;border:1px solid transparent;border-radius:.25rem;}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none;}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:no-repeat center center;background-size:100% 100%;}@media(max-width:575px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{padding-right:0;padding-left:0;}}@media(min-width:576px){.navbar-expand-sm{flex-flow:row nowrap;justify-content:flex-start;}.navbar-expand-sm .navbar-nav{flex-direction:row;}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute;}.navbar-expand-sm .navbar-nav .dropdown-menu-right{right:0;left:auto;}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem;}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{flex-wrap:nowrap;}.navbar-expand-sm .navbar-collapse{display:flex !important;flex-basis:auto;}.navbar-expand-sm .navbar-toggler{display:none;}.navbar-expand-sm .dropup .dropdown-menu{top:auto;bottom:100%;}}@media(max-width:767px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{padding-right:0;padding-left:0;}}@media(min-width:768px){.navbar-expand-md{flex-flow:row nowrap;justify-content:flex-start;}.navbar-expand-md .navbar-nav{flex-direction:row;}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute;}.navbar-expand-md .navbar-nav .dropdown-menu-right{right:0;left:auto;}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem;}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{flex-wrap:nowrap;}.navbar-expand-md .navbar-collapse{display:flex !important;flex-basis:auto;}.navbar-expand-md .navbar-toggler{display:none;}.navbar-expand-md .dropup .dropdown-menu{top:auto;bottom:100%;}}@media(max-width:991px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{padding-right:0;padding-left:0;}}@media(min-width:992px){.navbar-expand-lg{flex-flow:row nowrap;justify-content:flex-start;}.navbar-expand-lg .navbar-nav{flex-direction:row;}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute;}.navbar-expand-lg .navbar-nav .dropdown-menu-right{right:0;left:auto;}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem;}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{flex-wrap:nowrap;}.navbar-expand-lg .navbar-collapse{display:flex !important;flex-basis:auto;}.navbar-expand-lg .navbar-toggler{display:none;}.navbar-expand-lg .dropup .dropdown-menu{top:auto;bottom:100%;}}@media(max-width:1199px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{padding-right:0;padding-left:0;}}@media(min-width:1200px){.navbar-expand-xl{flex-flow:row nowrap;justify-content:flex-start;}.navbar-expand-xl .navbar-nav{flex-direction:row;}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute;}.navbar-expand-xl .navbar-nav .dropdown-menu-right{right:0;left:auto;}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem;}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{flex-wrap:nowrap;}.navbar-expand-xl .navbar-collapse{display:flex !important;flex-basis:auto;}.navbar-expand-xl .navbar-toggler{display:none;}.navbar-expand-xl .dropup .dropdown-menu{top:auto;bottom:100%;}}.navbar-expand{flex-flow:row nowrap;justify-content:flex-start;}.navbar-expand>.container,.navbar-expand>.container-fluid{padding-right:0;padding-left:0;}.navbar-expand .navbar-nav{flex-direction:row;}.navbar-expand .navbar-nav .dropdown-menu{position:absolute;}.navbar-expand .navbar-nav .dropdown-menu-right{right:0;left:auto;}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem;}.navbar-expand>.container,.navbar-expand>.container-fluid{flex-wrap:nowrap;}.navbar-expand .navbar-collapse{display:flex !important;flex-basis:auto;}.navbar-expand .navbar-toggler{display:none;}.navbar-expand .dropup .dropdown-menu{top:auto;bottom:100%;}.navbar-light .navbar-brand{color:rgba(0,0,0,.9);}.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9);}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5);}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7);}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3);}.navbar-light .navbar-nav .show>.nav-link,.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .nav-link.active{color:rgba(0,0,0,.9);}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1);}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E");}.navbar-light .navbar-text{color:rgba(0,0,0,.5);}.navbar-light .navbar-text a{color:rgba(0,0,0,.9);}.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9);}.navbar-dark .navbar-brand{color:#fff;}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff;}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.8);}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:#fff;}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25);}.navbar-dark .navbar-nav .show>.nav-link,.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .nav-link.active{color:#fff;}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.8);border-color:rgba(255,255,255,.1);}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255, 255, 255, 0.8)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E");}.navbar-dark .navbar-text{color:rgba(255,255,255,.8);}.navbar-dark .navbar-text a{color:#fff;}.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff;}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem;}.card>hr{margin-right:0;margin-left:0;}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem;}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem;}.card-body{flex:1 1 auto;padding:1.25rem;}.card-title{margin-bottom:.75rem;}.card-subtitle{margin-top:-.375rem;margin-bottom:0;}.card-text:last-child{margin-bottom:0;}.card-link:hover{text-decoration:none;}.card-link+.card-link{margin-left:1.25rem;}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125);}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0;}.card-header+.list-group .list-group-item:first-child{border-top:0;}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125);}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px);}.card-header-tabs{margin-right:-.625rem;margin-bottom:-.75rem;margin-left:-.625rem;border-bottom:0;}.card-header-pills{margin-right:-.625rem;margin-left:-.625rem;}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem;}.card-img{width:100%;border-radius:calc(.25rem - 1px);}.card-img-top{width:100%;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px);}.card-img-bottom{width:100%;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px);}.card-deck{display:flex;flex-direction:column;}.card-deck .card{margin-bottom:15px;}@media(min-width:576px){.card-deck{flex-flow:row wrap;margin-right:-15px;margin-left:-15px;}.card-deck .card{display:flex;flex:1 0 0%;flex-direction:column;margin-right:15px;margin-bottom:0;margin-left:15px;}}.card-group{display:flex;flex-direction:column;}.card-group .card{margin-bottom:15px;}@media(min-width:576px){.card-group{flex-flow:row wrap;}.card-group .card{flex:1 0 0%;margin-bottom:0;}.card-group .card+.card{margin-left:0;border-left:0;}.card-group .card:first-child{border-top-right-radius:0;border-bottom-right-radius:0;}.card-group .card:first-child .card-img-top{border-top-right-radius:0;}.card-group .card:first-child .card-img-bottom{border-bottom-right-radius:0;}.card-group .card:last-child{border-top-left-radius:0;border-bottom-left-radius:0;}.card-group .card:last-child .card-img-top{border-top-left-radius:0;}.card-group .card:last-child .card-img-bottom{border-bottom-left-radius:0;}.card-group .card:only-child{border-radius:.25rem;}.card-group .card:only-child .card-img-top{border-top-left-radius:.25rem;border-top-right-radius:.25rem;}.card-group .card:only-child .card-img-bottom{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem;}.card-group .card:not(:first-child):not(:last-child):not(:only-child){border-radius:0;}.card-group .card:not(:first-child):not(:last-child):not(:only-child) .card-img-top,.card-group .card:not(:first-child):not(:last-child):not(:only-child) .card-img-bottom{border-radius:0;}}.card-columns .card{margin-bottom:.75rem;}@media(min-width:576px){.card-columns{column-count:3;column-gap:1.25rem;}.card-columns .card{display:inline-block;width:100%;}}.breadcrumb{display:flex;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem;}.breadcrumb-item+.breadcrumb-item::before{display:inline-block;padding-right:.5rem;padding-left:.5rem;color:#868e96;content:"/";}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:underline;}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:none;}.breadcrumb-item.active{color:#868e96;}.pagination{display:flex;padding-left:0;list-style:none;border-radius:.25rem;}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;}.page-item.active .page-link{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff;}.page-item.disabled .page-link{color:#868e96;pointer-events:none;background-color:#fff;border-color:#ddd;}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #ddd;}.page-link:focus,.page-link:hover{color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#ddd;}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5;}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem;}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem;}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem;}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem;}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;}.badge:empty{display:none;}.btn .badge{position:relative;top:-1px;}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem;}.badge-primary{color:#fff;background-color:#007bff;}.badge-primary[href]:focus,.badge-primary[href]:hover{color:#fff;text-decoration:none;background-color:#0062cc;}.badge-secondary{color:#fff;background-color:#868e96;}.badge-secondary[href]:focus,.badge-secondary[href]:hover{color:#fff;text-decoration:none;background-color:#6c757d;}.badge-success{color:#fff;background-color:#28a745;}.badge-success[href]:focus,.badge-success[href]:hover{color:#fff;text-decoration:none;background-color:#1e7e34;}.badge-info{color:#fff;background-color:#17a2b8;}.badge-info[href]:focus,.badge-info[href]:hover{color:#fff;text-decoration:none;background-color:#117a8b;}.badge-warning{color:#111;background-color:#ffc107;}.badge-warning[href]:focus,.badge-warning[href]:hover{color:#111;text-decoration:none;background-color:#d39e00;}.badge-danger{color:#fff;background-color:#dc3545;}.badge-danger[href]:focus,.badge-danger[href]:hover{color:#fff;text-decoration:none;background-color:#bd2130;}.badge-light{color:#111;background-color:#f8f9fa;}.badge-light[href]:focus,.badge-light[href]:hover{color:#111;text-decoration:none;background-color:#dae0e5;}.badge-dark{color:#fff;background-color:#343a40;}.badge-dark[href]:focus,.badge-dark[href]:hover{color:#fff;text-decoration:none;background-color:#1d2124;}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem;}@media(min-width:576px){.jumbotron{padding:4rem 2rem;}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0;}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem;}.alert-heading{color:inherit;}.alert-link{font-weight:700;}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit;}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff;}.alert-primary hr{border-top-color:#9fcdff;}.alert-primary .alert-link{color:#002752;}.alert-secondary{color:#464a4e;background-color:#e7e8ea;border-color:#dddfe2;}.alert-secondary hr{border-top-color:#cfd2d6;}.alert-secondary .alert-link{color:#2e3133;}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb;}.alert-success hr{border-top-color:#b1dfbb;}.alert-success .alert-link{color:#0b2e13;}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb;}.alert-info hr{border-top-color:#abdde5;}.alert-info .alert-link{color:#062c33;}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba;}.alert-warning hr{border-top-color:#ffe8a1;}.alert-warning .alert-link{color:#533f03;}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb;}.alert-danger hr{border-top-color:#f1b0b7;}.alert-danger .alert-link{color:#491217;}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe;}.alert-light hr{border-top-color:#ececf6;}.alert-light .alert-link{color:#686868;}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca;}.alert-dark hr{border-top-color:#b9bbbe;}.alert-dark .alert-link{color:#040505;}@keyframes progress-bar-stripes{from{background-position:1rem 0;}to{background-position:0 0;}}.progress{display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem;}.progress-bar{display:flex;align-items:center;justify-content:center;color:#fff;background-color:#007bff;}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem;}.progress-bar-animated{animation:progress-bar-stripes 1s linear infinite;}.media{display:flex;align-items:flex-start;}.media-body{flex:1;}.list-group{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;}.list-group-item-action{width:100%;color:#495057;text-align:inherit;}.list-group-item-action:focus,.list-group-item-action:hover{color:#495057;text-decoration:none;background-color:#f8f9fa;}.list-group-item-action:active{color:#212529;background-color:#e9ecef;}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;margin-bottom:-1px;background-color:#fff;border:1px solid rgba(0,0,0,.125);}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem;}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem;}.list-group-item:focus,.list-group-item:hover{text-decoration:none;}.list-group-item.disabled,.list-group-item:disabled{color:#868e96;background-color:#fff;}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff;}.list-group-flush .list-group-item{border-right:0;border-left:0;border-radius:0;}.list-group-flush:first-child .list-group-item:first-child{border-top:0;}.list-group-flush:last-child .list-group-item:last-child{border-bottom:0;}.list-group-item-primary{color:#004085;background-color:#b8daff;}a.list-group-item-primary,button.list-group-item-primary{color:#004085;}a.list-group-item-primary:focus,a.list-group-item-primary:hover,button.list-group-item-primary:focus,button.list-group-item-primary:hover{color:#004085;background-color:#9fcdff;}a.list-group-item-primary.active,button.list-group-item-primary.active{color:#fff;background-color:#004085;border-color:#004085;}.list-group-item-secondary{color:#464a4e;background-color:#dddfe2;}a.list-group-item-secondary,button.list-group-item-secondary{color:#464a4e;}a.list-group-item-secondary:focus,a.list-group-item-secondary:hover,button.list-group-item-secondary:focus,button.list-group-item-secondary:hover{color:#464a4e;background-color:#cfd2d6;}a.list-group-item-secondary.active,button.list-group-item-secondary.active{color:#fff;background-color:#464a4e;border-color:#464a4e;}.list-group-item-success{color:#155724;background-color:#c3e6cb;}a.list-group-item-success,button.list-group-item-success{color:#155724;}a.list-group-item-success:focus,a.list-group-item-success:hover,button.list-group-item-success:focus,button.list-group-item-success:hover{color:#155724;background-color:#b1dfbb;}a.list-group-item-success.active,button.list-group-item-success.active{color:#fff;background-color:#155724;border-color:#155724;}.list-group-item-info{color:#0c5460;background-color:#bee5eb;}a.list-group-item-info,button.list-group-item-info{color:#0c5460;}a.list-group-item-info:focus,a.list-group-item-info:hover,button.list-group-item-info:focus,button.list-group-item-info:hover{color:#0c5460;background-color:#abdde5;}a.list-group-item-info.active,button.list-group-item-info.active{color:#fff;background-color:#0c5460;border-color:#0c5460;}.list-group-item-warning{color:#856404;background-color:#ffeeba;}a.list-group-item-warning,button.list-group-item-warning{color:#856404;}a.list-group-item-warning:focus,a.list-group-item-warning:hover,button.list-group-item-warning:focus,button.list-group-item-warning:hover{color:#856404;background-color:#ffe8a1;}a.list-group-item-warning.active,button.list-group-item-warning.active{color:#fff;background-color:#856404;border-color:#856404;}.list-group-item-danger{color:#721c24;background-color:#f5c6cb;}a.list-group-item-danger,button.list-group-item-danger{color:#721c24;}a.list-group-item-danger:focus,a.list-group-item-danger:hover,button.list-group-item-danger:focus,button.list-group-item-danger:hover{color:#721c24;background-color:#f1b0b7;}a.list-group-item-danger.active,button.list-group-item-danger.active{color:#fff;background-color:#721c24;border-color:#721c24;}.list-group-item-light{color:#818182;background-color:#fdfdfe;}a.list-group-item-light,button.list-group-item-light{color:#818182;}a.list-group-item-light:focus,a.list-group-item-light:hover,button.list-group-item-light:focus,button.list-group-item-light:hover{color:#818182;background-color:#ececf6;}a.list-group-item-light.active,button.list-group-item-light.active{color:#fff;background-color:#818182;border-color:#818182;}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca;}a.list-group-item-dark,button.list-group-item-dark{color:#1b1e21;}a.list-group-item-dark:focus,a.list-group-item-dark:hover,button.list-group-item-dark:focus,button.list-group-item-dark:hover{color:#1b1e21;background-color:#b9bbbe;}a.list-group-item-dark.active,button.list-group-item-dark.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21;}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5;}.close:focus,.close:hover{color:#000;text-decoration:none;opacity:.75;}button.close{padding:0;background:transparent;border:0;-webkit-appearance:none;}.modal-open{overflow:hidden;}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;outline:0;}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translate(0,-25%);}.modal.show .modal-dialog{transform:translate(0,0);}.modal-open .modal{overflow-x:hidden;overflow-y:auto;}.modal-dialog{position:relative;width:auto;margin:10px;pointer-events:none;}.modal-content{position:relative;display:flex;flex-direction:column;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0;}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000;}.modal-backdrop.fade{opacity:0;}.modal-backdrop.show{opacity:.5;}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:15px;border-bottom:1px solid #e9ecef;border-top-left-radius:.3rem;border-top-right-radius:.3rem;}.modal-header .close{padding:15px;margin:-15px -15px -15px auto;}.modal-title{margin-bottom:0;line-height:1.5;}.modal-body{position:relative;flex:1 1 auto;padding:15px;}.modal-footer{display:flex;align-items:center;justify-content:flex-end;padding:15px;border-top:1px solid #e9ecef;}.modal-footer>:not(:first-child){margin-left:.25rem;}.modal-footer>:not(:last-child){margin-right:.25rem;}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll;}@media(min-width:576px){.modal-dialog{max-width:500px;margin:30px auto;}.modal-sm{max-width:300px;}}@media(min-width:992px){.modal-lg{max-width:800px;}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0;}.tooltip.show{opacity:.9;}.tooltip .arrow{position:absolute;display:block;width:5px;height:5px;}.tooltip .arrow::before{position:absolute;border-color:transparent;border-style:solid;}.tooltip.bs-tooltip-top,.tooltip.bs-tooltip-auto[x-placement^="top"]{padding:5px 0;}.tooltip.bs-tooltip-top .arrow,.tooltip.bs-tooltip-auto[x-placement^="top"] .arrow{bottom:0;}.tooltip.bs-tooltip-top .arrow::before,.tooltip.bs-tooltip-auto[x-placement^="top"] .arrow::before{margin-left:-3px;content:"";border-width:5px 5px 0;border-top-color:#000;}.tooltip.bs-tooltip-right,.tooltip.bs-tooltip-auto[x-placement^="right"]{padding:0 5px;}.tooltip.bs-tooltip-right .arrow,.tooltip.bs-tooltip-auto[x-placement^="right"] .arrow{left:0;}.tooltip.bs-tooltip-right .arrow::before,.tooltip.bs-tooltip-auto[x-placement^="right"] .arrow::before{margin-top:-3px;content:"";border-width:5px 5px 5px 0;border-right-color:#000;}.tooltip.bs-tooltip-bottom,.tooltip.bs-tooltip-auto[x-placement^="bottom"]{padding:5px 0;}.tooltip.bs-tooltip-bottom .arrow,.tooltip.bs-tooltip-auto[x-placement^="bottom"] .arrow{top:0;}.tooltip.bs-tooltip-bottom .arrow::before,.tooltip.bs-tooltip-auto[x-placement^="bottom"] .arrow::before{margin-left:-3px;content:"";border-width:0 5px 5px;border-bottom-color:#000;}.tooltip.bs-tooltip-left,.tooltip.bs-tooltip-auto[x-placement^="left"]{padding:0 5px;}.tooltip.bs-tooltip-left .arrow,.tooltip.bs-tooltip-auto[x-placement^="left"] .arrow{right:0;}.tooltip.bs-tooltip-left .arrow::before,.tooltip.bs-tooltip-auto[x-placement^="left"] .arrow::before{right:0;margin-top:-3px;content:"";border-width:5px 0 5px 5px;border-left-color:#000;}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;background-color:#000;border-radius:.25rem;}.popover{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;}.popover .arrow{position:absolute;display:block;width:.8rem;height:.4rem;}.popover .arrow::before,.popover .arrow::after{position:absolute;display:block;border-color:transparent;border-style:solid;}.popover .arrow::before{content:"";border-width:.8rem;}.popover .arrow::after{content:"";border-width:.8rem;}.popover.bs-popover-top,.popover.bs-popover-auto[x-placement^="top"]{margin-bottom:.8rem;}.popover.bs-popover-top .arrow,.popover.bs-popover-auto[x-placement^="top"] .arrow{bottom:0;}.popover.bs-popover-top .arrow::before,.popover.bs-popover-auto[x-placement^="top"] .arrow::before,.popover.bs-popover-top .arrow::after,.popover.bs-popover-auto[x-placement^="top"] .arrow::after{border-bottom-width:0;}.popover.bs-popover-top .arrow::before,.popover.bs-popover-auto[x-placement^="top"] .arrow::before{bottom:-.8rem;margin-left:-.8rem;border-top-color:rgba(0,0,0,.25);}.popover.bs-popover-top .arrow::after,.popover.bs-popover-auto[x-placement^="top"] .arrow::after{bottom:calc((.8rem - 1px)*-1);margin-left:-.8rem;border-top-color:#fff;}.popover.bs-popover-right,.popover.bs-popover-auto[x-placement^="right"]{margin-left:.8rem;}.popover.bs-popover-right .arrow,.popover.bs-popover-auto[x-placement^="right"] .arrow{left:0;}.popover.bs-popover-right .arrow::before,.popover.bs-popover-auto[x-placement^="right"] .arrow::before,.popover.bs-popover-right .arrow::after,.popover.bs-popover-auto[x-placement^="right"] .arrow::after{margin-top:-.8rem;border-left-width:0;}.popover.bs-popover-right .arrow::before,.popover.bs-popover-auto[x-placement^="right"] .arrow::before{left:-.8rem;border-right-color:rgba(0,0,0,.25);}.popover.bs-popover-right .arrow::after,.popover.bs-popover-auto[x-placement^="right"] .arrow::after{left:calc((.8rem - 1px)*-1);border-right-color:#fff;}.popover.bs-popover-bottom,.popover.bs-popover-auto[x-placement^="bottom"]{margin-top:.8rem;}.popover.bs-popover-bottom .arrow,.popover.bs-popover-auto[x-placement^="bottom"] .arrow{top:0;}.popover.bs-popover-bottom .arrow::before,.popover.bs-popover-auto[x-placement^="bottom"] .arrow::before,.popover.bs-popover-bottom .arrow::after,.popover.bs-popover-auto[x-placement^="bottom"] .arrow::after{margin-left:-.8rem;border-top-width:0;}.popover.bs-popover-bottom .arrow::before,.popover.bs-popover-auto[x-placement^="bottom"] .arrow::before{top:-.8rem;border-bottom-color:rgba(0,0,0,.25);}.popover.bs-popover-bottom .arrow::after,.popover.bs-popover-auto[x-placement^="bottom"] .arrow::after{top:calc((.8rem - 1px)*-1);border-bottom-color:#fff;}.popover.bs-popover-bottom .popover-header::before,.popover.bs-popover-auto[x-placement^="bottom"] .popover-header::before{position:absolute;top:0;left:50%;display:block;width:20px;margin-left:-10px;content:"";border-bottom:1px solid #f7f7f7;}.popover.bs-popover-left,.popover.bs-popover-auto[x-placement^="left"]{margin-right:.8rem;}.popover.bs-popover-left .arrow,.popover.bs-popover-auto[x-placement^="left"] .arrow{right:0;}.popover.bs-popover-left .arrow::before,.popover.bs-popover-auto[x-placement^="left"] .arrow::before,.popover.bs-popover-left .arrow::after,.popover.bs-popover-auto[x-placement^="left"] .arrow::after{margin-top:-.8rem;border-right-width:0;}.popover.bs-popover-left .arrow::before,.popover.bs-popover-auto[x-placement^="left"] .arrow::before{right:-.8rem;border-left-color:rgba(0,0,0,.25);}.popover.bs-popover-left .arrow::after,.popover.bs-popover-auto[x-placement^="left"] .arrow::after{right:calc((.8rem - 1px)*-1);border-left-color:#fff;}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;color:inherit;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px);}.popover-header:empty{display:none;}.popover-body{padding:.5rem .75rem;color:#212529;}.carousel{position:relative;}.carousel-inner{position:relative;width:100%;overflow:hidden;}.carousel-item{position:relative;display:none;align-items:center;width:100%;transition:transform .6s ease;backface-visibility:hidden;perspective:1000px;}.carousel-item.active,.carousel-item-next,.carousel-item-prev{display:block;}.carousel-item-next,.carousel-item-prev{position:absolute;top:0;}.carousel-item-next.carousel-item-left,.carousel-item-prev.carousel-item-right{transform:translateX(0);}@supports (transform-style:preserve-3d){.carousel-item-next.carousel-item-left,.carousel-item-prev.carousel-item-right{transform:translate3d(0,0,0);}}.carousel-item-next,.active.carousel-item-right{transform:translateX(100%);}@supports (transform-style:preserve-3d){.carousel-item-next,.active.carousel-item-right{transform:translate3d(100%,0,0);}}.carousel-item-prev,.active.carousel-item-left{transform:translateX(-100%);}@supports (transform-style:preserve-3d){.carousel-item-prev,.active.carousel-item-left{transform:translate3d(-100%,0,0);}}.carousel-control-prev,.carousel-control-next{position:absolute;top:0;bottom:0;display:flex;align-items:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;}.carousel-control-prev:focus,.carousel-control-prev:hover,.carousel-control-next:focus,.carousel-control-next:hover{color:#fff;text-decoration:none;outline:0;opacity:.9;}.carousel-control-prev{left:0;}.carousel-control-next{right:0;}.carousel-control-prev-icon,.carousel-control-next-icon{display:inline-block;width:20px;height:20px;background:transparent no-repeat center center;background-size:100% 100%;}.carousel-control-prev-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E");}.carousel-control-next-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E");}.carousel-indicators{position:absolute;right:0;bottom:10px;left:0;z-index:15;display:flex;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none;}.carousel-indicators li{position:relative;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;background-color:rgba(255,255,255,.5);}.carousel-indicators li::before{position:absolute;top:-10px;left:0;display:inline-block;width:100%;height:10px;content:"";}.carousel-indicators li::after{position:absolute;bottom:-10px;left:0;display:inline-block;width:100%;height:10px;content:"";}.carousel-indicators .active{background-color:#fff;}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;}.align-baseline{vertical-align:baseline !important;}.align-top{vertical-align:top !important;}.align-middle{vertical-align:middle !important;}.align-bottom{vertical-align:bottom !important;}.align-text-bottom{vertical-align:text-bottom !important;}.align-text-top{vertical-align:text-top !important;}.bg-primary{background-color:#007bff !important;}a.bg-primary:focus,a.bg-primary:hover{background-color:#0062cc !important;}.bg-secondary{background-color:#868e96 !important;}a.bg-secondary:focus,a.bg-secondary:hover{background-color:#6c757d !important;}.bg-success{background-color:#28a745 !important;}a.bg-success:focus,a.bg-success:hover{background-color:#1e7e34 !important;}.bg-info{background-color:#17a2b8 !important;}a.bg-info:focus,a.bg-info:hover{background-color:#117a8b !important;}.bg-warning{background-color:#ffc107 !important;}a.bg-warning:focus,a.bg-warning:hover{background-color:#d39e00 !important;}.bg-danger{background-color:#dc3545 !important;}a.bg-danger:focus,a.bg-danger:hover{background-color:#bd2130 !important;}.bg-light{background-color:#f8f9fa !important;}a.bg-light:focus,a.bg-light:hover{background-color:#dae0e5 !important;}.bg-dark{background-color:#343a40 !important;}a.bg-dark:focus,a.bg-dark:hover{background-color:#1d2124 !important;}.bg-white{background-color:#fff !important;}.bg-transparent{background-color:transparent !important;}.border{border:1px solid #e9ecef !important;}.border-0{border:0 !important;}.border-top-0{border-top:0 !important;}.border-right-0{border-right:0 !important;}.border-bottom-0{border-bottom:0 !important;}.border-left-0{border-left:0 !important;}.border-primary{border-color:#007bff !important;}.border-secondary{border-color:#868e96 !important;}.border-success{border-color:#28a745 !important;}.border-info{border-color:#17a2b8 !important;}.border-warning{border-color:#ffc107 !important;}.border-danger{border-color:#dc3545 !important;}.border-light{border-color:#f8f9fa !important;}.border-dark{border-color:#343a40 !important;}.border-white{border-color:#fff !important;}.rounded{border-radius:.25rem !important;}.rounded-top{border-top-left-radius:.25rem !important;border-top-right-radius:.25rem !important;}.rounded-right{border-top-right-radius:.25rem !important;border-bottom-right-radius:.25rem !important;}.rounded-bottom{border-bottom-right-radius:.25rem !important;border-bottom-left-radius:.25rem !important;}.rounded-left{border-top-left-radius:.25rem !important;border-bottom-left-radius:.25rem !important;}.rounded-circle{border-radius:50% !important;}.rounded-0{border-radius:0 !important;}.clearfix::after{display:block;clear:both;content:"";}.d-none{display:none !important;}.d-inline{display:inline !important;}.d-inline-block{display:inline-block !important;}.d-block{display:block !important;}.d-table{display:table !important;}.d-table-row{display:table-row !important;}.d-table-cell{display:table-cell !important;}.d-flex{display:flex !important;}.d-inline-flex{display:inline-flex !important;}@media(min-width:576px){.d-sm-none{display:none !important;}.d-sm-inline{display:inline !important;}.d-sm-inline-block{display:inline-block !important;}.d-sm-block{display:block !important;}.d-sm-table{display:table !important;}.d-sm-table-row{display:table-row !important;}.d-sm-table-cell{display:table-cell !important;}.d-sm-flex{display:flex !important;}.d-sm-inline-flex{display:inline-flex !important;}}@media(min-width:768px){.d-md-none{display:none !important;}.d-md-inline{display:inline !important;}.d-md-inline-block{display:inline-block !important;}.d-md-block{display:block !important;}.d-md-table{display:table !important;}.d-md-table-row{display:table-row !important;}.d-md-table-cell{display:table-cell !important;}.d-md-flex{display:flex !important;}.d-md-inline-flex{display:inline-flex !important;}}@media(min-width:992px){.d-lg-none{display:none !important;}.d-lg-inline{display:inline !important;}.d-lg-inline-block{display:inline-block !important;}.d-lg-block{display:block !important;}.d-lg-table{display:table !important;}.d-lg-table-row{display:table-row !important;}.d-lg-table-cell{display:table-cell !important;}.d-lg-flex{display:flex !important;}.d-lg-inline-flex{display:inline-flex !important;}}@media(min-width:1200px){.d-xl-none{display:none !important;}.d-xl-inline{display:inline !important;}.d-xl-inline-block{display:inline-block !important;}.d-xl-block{display:block !important;}.d-xl-table{display:table !important;}.d-xl-table-row{display:table-row !important;}.d-xl-table-cell{display:table-cell !important;}.d-xl-flex{display:flex !important;}.d-xl-inline-flex{display:inline-flex !important;}}.d-print-block{display:none !important;}@media print{.d-print-block{display:block !important;}}.d-print-inline{display:none !important;}@media print{.d-print-inline{display:inline !important;}}.d-print-inline-block{display:none !important;}@media print{.d-print-inline-block{display:inline-block !important;}}@media print{.d-print-none{display:none !important;}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden;}.embed-responsive::before{display:block;content:"";}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0;}.embed-responsive-21by9::before{padding-top:42.85714%;}.embed-responsive-16by9::before{padding-top:56.25%;}.embed-responsive-4by3::before{padding-top:75%;}.embed-responsive-1by1::before{padding-top:100%;}.flex-row{flex-direction:row !important;}.flex-column{flex-direction:column !important;}.flex-row-reverse{flex-direction:row-reverse !important;}.flex-column-reverse{flex-direction:column-reverse !important;}.flex-wrap{flex-wrap:wrap !important;}.flex-nowrap{flex-wrap:nowrap !important;}.flex-wrap-reverse{flex-wrap:wrap-reverse !important;}.justify-content-start{justify-content:flex-start !important;}.justify-content-end{justify-content:flex-end !important;}.justify-content-center{justify-content:center !important;}.justify-content-between{justify-content:space-between !important;}.justify-content-around{justify-content:space-around !important;}.align-items-start{align-items:flex-start !important;}.align-items-end{align-items:flex-end !important;}.align-items-center{align-items:center !important;}.align-items-baseline{align-items:baseline !important;}.align-items-stretch{align-items:stretch !important;}.align-content-start{align-content:flex-start !important;}.align-content-end{align-content:flex-end !important;}.align-content-center{align-content:center !important;}.align-content-between{align-content:space-between !important;}.align-content-around{align-content:space-around !important;}.align-content-stretch{align-content:stretch !important;}.align-self-auto{align-self:auto !important;}.align-self-start{align-self:flex-start !important;}.align-self-end{align-self:flex-end !important;}.align-self-center{align-self:center !important;}.align-self-baseline{align-self:baseline !important;}.align-self-stretch{align-self:stretch !important;}@media(min-width:576px){.flex-sm-row{flex-direction:row !important;}.flex-sm-column{flex-direction:column !important;}.flex-sm-row-reverse{flex-direction:row-reverse !important;}.flex-sm-column-reverse{flex-direction:column-reverse !important;}.flex-sm-wrap{flex-wrap:wrap !important;}.flex-sm-nowrap{flex-wrap:nowrap !important;}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse !important;}.justify-content-sm-start{justify-content:flex-start !important;}.justify-content-sm-end{justify-content:flex-end !important;}.justify-content-sm-center{justify-content:center !important;}.justify-content-sm-between{justify-content:space-between !important;}.justify-content-sm-around{justify-content:space-around !important;}.align-items-sm-start{align-items:flex-start !important;}.align-items-sm-end{align-items:flex-end !important;}.align-items-sm-center{align-items:center !important;}.align-items-sm-baseline{align-items:baseline !important;}.align-items-sm-stretch{align-items:stretch !important;}.align-content-sm-start{align-content:flex-start !important;}.align-content-sm-end{align-content:flex-end !important;}.align-content-sm-center{align-content:center !important;}.align-content-sm-between{align-content:space-between !important;}.align-content-sm-around{align-content:space-around !important;}.align-content-sm-stretch{align-content:stretch !important;}.align-self-sm-auto{align-self:auto !important;}.align-self-sm-start{align-self:flex-start !important;}.align-self-sm-end{align-self:flex-end !important;}.align-self-sm-center{align-self:center !important;}.align-self-sm-baseline{align-self:baseline !important;}.align-self-sm-stretch{align-self:stretch !important;}}@media(min-width:768px){.flex-md-row{flex-direction:row !important;}.flex-md-column{flex-direction:column !important;}.flex-md-row-reverse{flex-direction:row-reverse !important;}.flex-md-column-reverse{flex-direction:column-reverse !important;}.flex-md-wrap{flex-wrap:wrap !important;}.flex-md-nowrap{flex-wrap:nowrap !important;}.flex-md-wrap-reverse{flex-wrap:wrap-reverse !important;}.justify-content-md-start{justify-content:flex-start !important;}.justify-content-md-end{justify-content:flex-end !important;}.justify-content-md-center{justify-content:center !important;}.justify-content-md-between{justify-content:space-between !important;}.justify-content-md-around{justify-content:space-around !important;}.align-items-md-start{align-items:flex-start !important;}.align-items-md-end{align-items:flex-end !important;}.align-items-md-center{align-items:center !important;}.align-items-md-baseline{align-items:baseline !important;}.align-items-md-stretch{align-items:stretch !important;}.align-content-md-start{align-content:flex-start !important;}.align-content-md-end{align-content:flex-end !important;}.align-content-md-center{align-content:center !important;}.align-content-md-between{align-content:space-between !important;}.align-content-md-around{align-content:space-around !important;}.align-content-md-stretch{align-content:stretch !important;}.align-self-md-auto{align-self:auto !important;}.align-self-md-start{align-self:flex-start !important;}.align-self-md-end{align-self:flex-end !important;}.align-self-md-center{align-self:center !important;}.align-self-md-baseline{align-self:baseline !important;}.align-self-md-stretch{align-self:stretch !important;}}@media(min-width:992px){.flex-lg-row{flex-direction:row !important;}.flex-lg-column{flex-direction:column !important;}.flex-lg-row-reverse{flex-direction:row-reverse !important;}.flex-lg-column-reverse{flex-direction:column-reverse !important;}.flex-lg-wrap{flex-wrap:wrap !important;}.flex-lg-nowrap{flex-wrap:nowrap !important;}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse !important;}.justify-content-lg-start{justify-content:flex-start !important;}.justify-content-lg-end{justify-content:flex-end !important;}.justify-content-lg-center{justify-content:center !important;}.justify-content-lg-between{justify-content:space-between !important;}.justify-content-lg-around{justify-content:space-around !important;}.align-items-lg-start{align-items:flex-start !important;}.align-items-lg-end{align-items:flex-end !important;}.align-items-lg-center{align-items:center !important;}.align-items-lg-baseline{align-items:baseline !important;}.align-items-lg-stretch{align-items:stretch !important;}.align-content-lg-start{align-content:flex-start !important;}.align-content-lg-end{align-content:flex-end !important;}.align-content-lg-center{align-content:center !important;}.align-content-lg-between{align-content:space-between !important;}.align-content-lg-around{align-content:space-around !important;}.align-content-lg-stretch{align-content:stretch !important;}.align-self-lg-auto{align-self:auto !important;}.align-self-lg-start{align-self:flex-start !important;}.align-self-lg-end{align-self:flex-end !important;}.align-self-lg-center{align-self:center !important;}.align-self-lg-baseline{align-self:baseline !important;}.align-self-lg-stretch{align-self:stretch !important;}}@media(min-width:1200px){.flex-xl-row{flex-direction:row !important;}.flex-xl-column{flex-direction:column !important;}.flex-xl-row-reverse{flex-direction:row-reverse !important;}.flex-xl-column-reverse{flex-direction:column-reverse !important;}.flex-xl-wrap{flex-wrap:wrap !important;}.flex-xl-nowrap{flex-wrap:nowrap !important;}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse !important;}.justify-content-xl-start{justify-content:flex-start !important;}.justify-content-xl-end{justify-content:flex-end !important;}.justify-content-xl-center{justify-content:center !important;}.justify-content-xl-between{justify-content:space-between !important;}.justify-content-xl-around{justify-content:space-around !important;}.align-items-xl-start{align-items:flex-start !important;}.align-items-xl-end{align-items:flex-end !important;}.align-items-xl-center{align-items:center !important;}.align-items-xl-baseline{align-items:baseline !important;}.align-items-xl-stretch{align-items:stretch !important;}.align-content-xl-start{align-content:flex-start !important;}.align-content-xl-end{align-content:flex-end !important;}.align-content-xl-center{align-content:center !important;}.align-content-xl-between{align-content:space-between !important;}.align-content-xl-around{align-content:space-around !important;}.align-content-xl-stretch{align-content:stretch !important;}.align-self-xl-auto{align-self:auto !important;}.align-self-xl-start{align-self:flex-start !important;}.align-self-xl-end{align-self:flex-end !important;}.align-self-xl-center{align-self:center !important;}.align-self-xl-baseline{align-self:baseline !important;}.align-self-xl-stretch{align-self:stretch !important;}}.float-left{float:left !important;}.float-right{float:right !important;}.float-none{float:none !important;}@media(min-width:576px){.float-sm-left{float:left !important;}.float-sm-right{float:right !important;}.float-sm-none{float:none !important;}}@media(min-width:768px){.float-md-left{float:left !important;}.float-md-right{float:right !important;}.float-md-none{float:none !important;}}@media(min-width:992px){.float-lg-left{float:left !important;}.float-lg-right{float:right !important;}.float-lg-none{float:none !important;}}@media(min-width:1200px){.float-xl-left{float:left !important;}.float-xl-right{float:right !important;}.float-xl-none{float:none !important;}}.position-static{position:static !important;}.position-relative{position:relative !important;}.position-absolute{position:absolute !important;}.position-fixed{position:fixed !important;}.position-sticky{position:sticky !important;}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030;}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030;}@supports (position:sticky){.sticky-top{position:sticky;top:0;z-index:1020;}}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;clip-path:inset(50%);border:0;}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal;clip-path:none;}.w-25{width:25% !important;}.w-50{width:50% !important;}.w-75{width:75% !important;}.w-100{width:100% !important;}.h-25{height:25% !important;}.h-50{height:50% !important;}.h-75{height:75% !important;}.h-100{height:100% !important;}.mw-100{max-width:100% !important;}.mh-100{max-height:100% !important;}.m-0{margin:0 !important;}.mt-0,.my-0{margin-top:0 !important;}.mr-0,.mx-0{margin-right:0 !important;}.mb-0,.my-0{margin-bottom:0 !important;}.ml-0,.mx-0{margin-left:0 !important;}.m-1{margin:.25rem !important;}.mt-1,.my-1{margin-top:.25rem !important;}.mr-1,.mx-1{margin-right:.25rem !important;}.mb-1,.my-1{margin-bottom:.25rem !important;}.ml-1,.mx-1{margin-left:.25rem !important;}.m-2{margin:.5rem !important;}.mt-2,.my-2{margin-top:.5rem !important;}.mr-2,.mx-2{margin-right:.5rem !important;}.mb-2,.my-2{margin-bottom:.5rem !important;}.ml-2,.mx-2{margin-left:.5rem !important;}.m-3{margin:1rem !important;}.mt-3,.my-3{margin-top:1rem !important;}.mr-3,.mx-3{margin-right:1rem !important;}.mb-3,.my-3{margin-bottom:1rem !important;}.ml-3,.mx-3{margin-left:1rem !important;}.m-4{margin:1.5rem !important;}.mt-4,.my-4{margin-top:1.5rem !important;}.mr-4,.mx-4{margin-right:1.5rem !important;}.mb-4,.my-4{margin-bottom:1.5rem !important;}.ml-4,.mx-4{margin-left:1.5rem !important;}.m-5{margin:3rem !important;}.mt-5,.my-5{margin-top:3rem !important;}.mr-5,.mx-5{margin-right:3rem !important;}.mb-5,.my-5{margin-bottom:3rem !important;}.ml-5,.mx-5{margin-left:3rem !important;}.p-0{padding:0 !important;}.pt-0,.py-0{padding-top:0 !important;}.pr-0,.px-0{padding-right:0 !important;}.pb-0,.py-0{padding-bottom:0 !important;}.pl-0,.px-0{padding-left:0 !important;}.p-1{padding:.25rem !important;}.pt-1,.py-1{padding-top:.25rem !important;}.pr-1,.px-1{padding-right:.25rem !important;}.pb-1,.py-1{padding-bottom:.25rem !important;}.pl-1,.px-1{padding-left:.25rem !important;}.p-2{padding:.5rem !important;}.pt-2,.py-2{padding-top:.5rem !important;}.pr-2,.px-2{padding-right:.5rem !important;}.pb-2,.py-2{padding-bottom:.5rem !important;}.pl-2,.px-2{padding-left:.5rem !important;}.p-3{padding:1rem !important;}.pt-3,.py-3{padding-top:1rem !important;}.pr-3,.px-3{padding-right:1rem !important;}.pb-3,.py-3{padding-bottom:1rem !important;}.pl-3,.px-3{padding-left:1rem !important;}.p-4{padding:1.5rem !important;}.pt-4,.py-4{padding-top:1.5rem !important;}.pr-4,.px-4{padding-right:1.5rem !important;}.pb-4,.py-4{padding-bottom:1.5rem !important;}.pl-4,.px-4{padding-left:1.5rem !important;}.p-5{padding:3rem !important;}.pt-5,.py-5{padding-top:3rem !important;}.pr-5,.px-5{padding-right:3rem !important;}.pb-5,.py-5{padding-bottom:3rem !important;}.pl-5,.px-5{padding-left:3rem !important;}.m-auto{margin:auto !important;}.mt-auto,.my-auto{margin-top:auto !important;}.mr-auto,.mx-auto{margin-right:auto !important;}.mb-auto,.my-auto{margin-bottom:auto !important;}.ml-auto,.mx-auto{margin-left:auto !important;}@media(min-width:576px){.m-sm-0{margin:0 !important;}.mt-sm-0,.my-sm-0{margin-top:0 !important;}.mr-sm-0,.mx-sm-0{margin-right:0 !important;}.mb-sm-0,.my-sm-0{margin-bottom:0 !important;}.ml-sm-0,.mx-sm-0{margin-left:0 !important;}.m-sm-1{margin:.25rem !important;}.mt-sm-1,.my-sm-1{margin-top:.25rem !important;}.mr-sm-1,.mx-sm-1{margin-right:.25rem !important;}.mb-sm-1,.my-sm-1{margin-bottom:.25rem !important;}.ml-sm-1,.mx-sm-1{margin-left:.25rem !important;}.m-sm-2{margin:.5rem !important;}.mt-sm-2,.my-sm-2{margin-top:.5rem !important;}.mr-sm-2,.mx-sm-2{margin-right:.5rem !important;}.mb-sm-2,.my-sm-2{margin-bottom:.5rem !important;}.ml-sm-2,.mx-sm-2{margin-left:.5rem !important;}.m-sm-3{margin:1rem !important;}.mt-sm-3,.my-sm-3{margin-top:1rem !important;}.mr-sm-3,.mx-sm-3{margin-right:1rem !important;}.mb-sm-3,.my-sm-3{margin-bottom:1rem !important;}.ml-sm-3,.mx-sm-3{margin-left:1rem !important;}.m-sm-4{margin:1.5rem !important;}.mt-sm-4,.my-sm-4{margin-top:1.5rem !important;}.mr-sm-4,.mx-sm-4{margin-right:1.5rem !important;}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem !important;}.ml-sm-4,.mx-sm-4{margin-left:1.5rem !important;}.m-sm-5{margin:3rem !important;}.mt-sm-5,.my-sm-5{margin-top:3rem !important;}.mr-sm-5,.mx-sm-5{margin-right:3rem !important;}.mb-sm-5,.my-sm-5{margin-bottom:3rem !important;}.ml-sm-5,.mx-sm-5{margin-left:3rem !important;}.p-sm-0{padding:0 !important;}.pt-sm-0,.py-sm-0{padding-top:0 !important;}.pr-sm-0,.px-sm-0{padding-right:0 !important;}.pb-sm-0,.py-sm-0{padding-bottom:0 !important;}.pl-sm-0,.px-sm-0{padding-left:0 !important;}.p-sm-1{padding:.25rem !important;}.pt-sm-1,.py-sm-1{padding-top:.25rem !important;}.pr-sm-1,.px-sm-1{padding-right:.25rem !important;}.pb-sm-1,.py-sm-1{padding-bottom:.25rem !important;}.pl-sm-1,.px-sm-1{padding-left:.25rem !important;}.p-sm-2{padding:.5rem !important;}.pt-sm-2,.py-sm-2{padding-top:.5rem !important;}.pr-sm-2,.px-sm-2{padding-right:.5rem !important;}.pb-sm-2,.py-sm-2{padding-bottom:.5rem !important;}.pl-sm-2,.px-sm-2{padding-left:.5rem !important;}.p-sm-3{padding:1rem !important;}.pt-sm-3,.py-sm-3{padding-top:1rem !important;}.pr-sm-3,.px-sm-3{padding-right:1rem !important;}.pb-sm-3,.py-sm-3{padding-bottom:1rem !important;}.pl-sm-3,.px-sm-3{padding-left:1rem !important;}.p-sm-4{padding:1.5rem !important;}.pt-sm-4,.py-sm-4{padding-top:1.5rem !important;}.pr-sm-4,.px-sm-4{padding-right:1.5rem !important;}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem !important;}.pl-sm-4,.px-sm-4{padding-left:1.5rem !important;}.p-sm-5{padding:3rem !important;}.pt-sm-5,.py-sm-5{padding-top:3rem !important;}.pr-sm-5,.px-sm-5{padding-right:3rem !important;}.pb-sm-5,.py-sm-5{padding-bottom:3rem !important;}.pl-sm-5,.px-sm-5{padding-left:3rem !important;}.m-sm-auto{margin:auto !important;}.mt-sm-auto,.my-sm-auto{margin-top:auto !important;}.mr-sm-auto,.mx-sm-auto{margin-right:auto !important;}.mb-sm-auto,.my-sm-auto{margin-bottom:auto !important;}.ml-sm-auto,.mx-sm-auto{margin-left:auto !important;}}@media(min-width:768px){.m-md-0{margin:0 !important;}.mt-md-0,.my-md-0{margin-top:0 !important;}.mr-md-0,.mx-md-0{margin-right:0 !important;}.mb-md-0,.my-md-0{margin-bottom:0 !important;}.ml-md-0,.mx-md-0{margin-left:0 !important;}.m-md-1{margin:.25rem !important;}.mt-md-1,.my-md-1{margin-top:.25rem !important;}.mr-md-1,.mx-md-1{margin-right:.25rem !important;}.mb-md-1,.my-md-1{margin-bottom:.25rem !important;}.ml-md-1,.mx-md-1{margin-left:.25rem !important;}.m-md-2{margin:.5rem !important;}.mt-md-2,.my-md-2{margin-top:.5rem !important;}.mr-md-2,.mx-md-2{margin-right:.5rem !important;}.mb-md-2,.my-md-2{margin-bottom:.5rem !important;}.ml-md-2,.mx-md-2{margin-left:.5rem !important;}.m-md-3{margin:1rem !important;}.mt-md-3,.my-md-3{margin-top:1rem !important;}.mr-md-3,.mx-md-3{margin-right:1rem !important;}.mb-md-3,.my-md-3{margin-bottom:1rem !important;}.ml-md-3,.mx-md-3{margin-left:1rem !important;}.m-md-4{margin:1.5rem !important;}.mt-md-4,.my-md-4{margin-top:1.5rem !important;}.mr-md-4,.mx-md-4{margin-right:1.5rem !important;}.mb-md-4,.my-md-4{margin-bottom:1.5rem !important;}.ml-md-4,.mx-md-4{margin-left:1.5rem !important;}.m-md-5{margin:3rem !important;}.mt-md-5,.my-md-5{margin-top:3rem !important;}.mr-md-5,.mx-md-5{margin-right:3rem !important;}.mb-md-5,.my-md-5{margin-bottom:3rem !important;}.ml-md-5,.mx-md-5{margin-left:3rem !important;}.p-md-0{padding:0 !important;}.pt-md-0,.py-md-0{padding-top:0 !important;}.pr-md-0,.px-md-0{padding-right:0 !important;}.pb-md-0,.py-md-0{padding-bottom:0 !important;}.pl-md-0,.px-md-0{padding-left:0 !important;}.p-md-1{padding:.25rem !important;}.pt-md-1,.py-md-1{padding-top:.25rem !important;}.pr-md-1,.px-md-1{padding-right:.25rem !important;}.pb-md-1,.py-md-1{padding-bottom:.25rem !important;}.pl-md-1,.px-md-1{padding-left:.25rem !important;}.p-md-2{padding:.5rem !important;}.pt-md-2,.py-md-2{padding-top:.5rem !important;}.pr-md-2,.px-md-2{padding-right:.5rem !important;}.pb-md-2,.py-md-2{padding-bottom:.5rem !important;}.pl-md-2,.px-md-2{padding-left:.5rem !important;}.p-md-3{padding:1rem !important;}.pt-md-3,.py-md-3{padding-top:1rem !important;}.pr-md-3,.px-md-3{padding-right:1rem !important;}.pb-md-3,.py-md-3{padding-bottom:1rem !important;}.pl-md-3,.px-md-3{padding-left:1rem !important;}.p-md-4{padding:1.5rem !important;}.pt-md-4,.py-md-4{padding-top:1.5rem !important;}.pr-md-4,.px-md-4{padding-right:1.5rem !important;}.pb-md-4,.py-md-4{padding-bottom:1.5rem !important;}.pl-md-4,.px-md-4{padding-left:1.5rem !important;}.p-md-5{padding:3rem !important;}.pt-md-5,.py-md-5{padding-top:3rem !important;}.pr-md-5,.px-md-5{padding-right:3rem !important;}.pb-md-5,.py-md-5{padding-bottom:3rem !important;}.pl-md-5,.px-md-5{padding-left:3rem !important;}.m-md-auto{margin:auto !important;}.mt-md-auto,.my-md-auto{margin-top:auto !important;}.mr-md-auto,.mx-md-auto{margin-right:auto !important;}.mb-md-auto,.my-md-auto{margin-bottom:auto !important;}.ml-md-auto,.mx-md-auto{margin-left:auto !important;}}@media(min-width:992px){.m-lg-0{margin:0 !important;}.mt-lg-0,.my-lg-0{margin-top:0 !important;}.mr-lg-0,.mx-lg-0{margin-right:0 !important;}.mb-lg-0,.my-lg-0{margin-bottom:0 !important;}.ml-lg-0,.mx-lg-0{margin-left:0 !important;}.m-lg-1{margin:.25rem !important;}.mt-lg-1,.my-lg-1{margin-top:.25rem !important;}.mr-lg-1,.mx-lg-1{margin-right:.25rem !important;}.mb-lg-1,.my-lg-1{margin-bottom:.25rem !important;}.ml-lg-1,.mx-lg-1{margin-left:.25rem !important;}.m-lg-2{margin:.5rem !important;}.mt-lg-2,.my-lg-2{margin-top:.5rem !important;}.mr-lg-2,.mx-lg-2{margin-right:.5rem !important;}.mb-lg-2,.my-lg-2{margin-bottom:.5rem !important;}.ml-lg-2,.mx-lg-2{margin-left:.5rem !important;}.m-lg-3{margin:1rem !important;}.mt-lg-3,.my-lg-3{margin-top:1rem !important;}.mr-lg-3,.mx-lg-3{margin-right:1rem !important;}.mb-lg-3,.my-lg-3{margin-bottom:1rem !important;}.ml-lg-3,.mx-lg-3{margin-left:1rem !important;}.m-lg-4{margin:1.5rem !important;}.mt-lg-4,.my-lg-4{margin-top:1.5rem !important;}.mr-lg-4,.mx-lg-4{margin-right:1.5rem !important;}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem !important;}.ml-lg-4,.mx-lg-4{margin-left:1.5rem !important;}.m-lg-5{margin:3rem !important;}.mt-lg-5,.my-lg-5{margin-top:3rem !important;}.mr-lg-5,.mx-lg-5{margin-right:3rem !important;}.mb-lg-5,.my-lg-5{margin-bottom:3rem !important;}.ml-lg-5,.mx-lg-5{margin-left:3rem !important;}.p-lg-0{padding:0 !important;}.pt-lg-0,.py-lg-0{padding-top:0 !important;}.pr-lg-0,.px-lg-0{padding-right:0 !important;}.pb-lg-0,.py-lg-0{padding-bottom:0 !important;}.pl-lg-0,.px-lg-0{padding-left:0 !important;}.p-lg-1{padding:.25rem !important;}.pt-lg-1,.py-lg-1{padding-top:.25rem !important;}.pr-lg-1,.px-lg-1{padding-right:.25rem !important;}.pb-lg-1,.py-lg-1{padding-bottom:.25rem !important;}.pl-lg-1,.px-lg-1{padding-left:.25rem !important;}.p-lg-2{padding:.5rem !important;}.pt-lg-2,.py-lg-2{padding-top:.5rem !important;}.pr-lg-2,.px-lg-2{padding-right:.5rem !important;}.pb-lg-2,.py-lg-2{padding-bottom:.5rem !important;}.pl-lg-2,.px-lg-2{padding-left:.5rem !important;}.p-lg-3{padding:1rem !important;}.pt-lg-3,.py-lg-3{padding-top:1rem !important;}.pr-lg-3,.px-lg-3{padding-right:1rem !important;}.pb-lg-3,.py-lg-3{padding-bottom:1rem !important;}.pl-lg-3,.px-lg-3{padding-left:1rem !important;}.p-lg-4{padding:1.5rem !important;}.pt-lg-4,.py-lg-4{padding-top:1.5rem !important;}.pr-lg-4,.px-lg-4{padding-right:1.5rem !important;}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem !important;}.pl-lg-4,.px-lg-4{padding-left:1.5rem !important;}.p-lg-5{padding:3rem !important;}.pt-lg-5,.py-lg-5{padding-top:3rem !important;}.pr-lg-5,.px-lg-5{padding-right:3rem !important;}.pb-lg-5,.py-lg-5{padding-bottom:3rem !important;}.pl-lg-5,.px-lg-5{padding-left:3rem !important;}.m-lg-auto{margin:auto !important;}.mt-lg-auto,.my-lg-auto{margin-top:auto !important;}.mr-lg-auto,.mx-lg-auto{margin-right:auto !important;}.mb-lg-auto,.my-lg-auto{margin-bottom:auto !important;}.ml-lg-auto,.mx-lg-auto{margin-left:auto !important;}}@media(min-width:1200px){.m-xl-0{margin:0 !important;}.mt-xl-0,.my-xl-0{margin-top:0 !important;}.mr-xl-0,.mx-xl-0{margin-right:0 !important;}.mb-xl-0,.my-xl-0{margin-bottom:0 !important;}.ml-xl-0,.mx-xl-0{margin-left:0 !important;}.m-xl-1{margin:.25rem !important;}.mt-xl-1,.my-xl-1{margin-top:.25rem !important;}.mr-xl-1,.mx-xl-1{margin-right:.25rem !important;}.mb-xl-1,.my-xl-1{margin-bottom:.25rem !important;}.ml-xl-1,.mx-xl-1{margin-left:.25rem !important;}.m-xl-2{margin:.5rem !important;}.mt-xl-2,.my-xl-2{margin-top:.5rem !important;}.mr-xl-2,.mx-xl-2{margin-right:.5rem !important;}.mb-xl-2,.my-xl-2{margin-bottom:.5rem !important;}.ml-xl-2,.mx-xl-2{margin-left:.5rem !important;}.m-xl-3{margin:1rem !important;}.mt-xl-3,.my-xl-3{margin-top:1rem !important;}.mr-xl-3,.mx-xl-3{margin-right:1rem !important;}.mb-xl-3,.my-xl-3{margin-bottom:1rem !important;}.ml-xl-3,.mx-xl-3{margin-left:1rem !important;}.m-xl-4{margin:1.5rem !important;}.mt-xl-4,.my-xl-4{margin-top:1.5rem !important;}.mr-xl-4,.mx-xl-4{margin-right:1.5rem !important;}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem !important;}.ml-xl-4,.mx-xl-4{margin-left:1.5rem !important;}.m-xl-5{margin:3rem !important;}.mt-xl-5,.my-xl-5{margin-top:3rem !important;}.mr-xl-5,.mx-xl-5{margin-right:3rem !important;}.mb-xl-5,.my-xl-5{margin-bottom:3rem !important;}.ml-xl-5,.mx-xl-5{margin-left:3rem !important;}.p-xl-0{padding:0 !important;}.pt-xl-0,.py-xl-0{padding-top:0 !important;}.pr-xl-0,.px-xl-0{padding-right:0 !important;}.pb-xl-0,.py-xl-0{padding-bottom:0 !important;}.pl-xl-0,.px-xl-0{padding-left:0 !important;}.p-xl-1{padding:.25rem !important;}.pt-xl-1,.py-xl-1{padding-top:.25rem !important;}.pr-xl-1,.px-xl-1{padding-right:.25rem !important;}.pb-xl-1,.py-xl-1{padding-bottom:.25rem !important;}.pl-xl-1,.px-xl-1{padding-left:.25rem !important;}.p-xl-2{padding:.5rem !important;}.pt-xl-2,.py-xl-2{padding-top:.5rem !important;}.pr-xl-2,.px-xl-2{padding-right:.5rem !important;}.pb-xl-2,.py-xl-2{padding-bottom:.5rem !important;}.pl-xl-2,.px-xl-2{padding-left:.5rem !important;}.p-xl-3{padding:1rem !important;}.pt-xl-3,.py-xl-3{padding-top:1rem !important;}.pr-xl-3,.px-xl-3{padding-right:1rem !important;}.pb-xl-3,.py-xl-3{padding-bottom:1rem !important;}.pl-xl-3,.px-xl-3{padding-left:1rem !important;}.p-xl-4{padding:1.5rem !important;}.pt-xl-4,.py-xl-4{padding-top:1.5rem !important;}.pr-xl-4,.px-xl-4{padding-right:1.5rem !important;}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem !important;}.pl-xl-4,.px-xl-4{padding-left:1.5rem !important;}.p-xl-5{padding:3rem !important;}.pt-xl-5,.py-xl-5{padding-top:3rem !important;}.pr-xl-5,.px-xl-5{padding-right:3rem !important;}.pb-xl-5,.py-xl-5{padding-bottom:3rem !important;}.pl-xl-5,.px-xl-5{padding-left:3rem !important;}.m-xl-auto{margin:auto !important;}.mt-xl-auto,.my-xl-auto{margin-top:auto !important;}.mr-xl-auto,.mx-xl-auto{margin-right:auto !important;}.mb-xl-auto,.my-xl-auto{margin-bottom:auto !important;}.ml-xl-auto,.mx-xl-auto{margin-left:auto !important;}}.text-justify{text-align:justify !important;}.text-nowrap{white-space:nowrap !important;}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.text-left{text-align:left !important;}.text-right{text-align:right !important;}.text-center{text-align:center !important;}@media(min-width:576px){.text-sm-left{text-align:left !important;}.text-sm-right{text-align:right !important;}.text-sm-center{text-align:center !important;}}@media(min-width:768px){.text-md-left{text-align:left !important;}.text-md-right{text-align:right !important;}.text-md-center{text-align:center !important;}}@media(min-width:992px){.text-lg-left{text-align:left !important;}.text-lg-right{text-align:right !important;}.text-lg-center{text-align:center !important;}}@media(min-width:1200px){.text-xl-left{text-align:left !important;}.text-xl-right{text-align:right !important;}.text-xl-center{text-align:center !important;}}.text-lowercase{text-transform:lowercase !important;}.text-uppercase{text-transform:uppercase !important;}.text-capitalize{text-transform:capitalize !important;}.font-weight-light{font-weight:300 !important;}.font-weight-normal{font-weight:400 !important;}.font-weight-bold{font-weight:700 !important;}.font-italic{font-style:italic !important;}.text-white{color:#fff !important;}.text-primary{color:#007bff !important;}a.text-primary:focus,a.text-primary:hover{color:#0062cc !important;}.text-secondary{color:#868e96 !important;}a.text-secondary:focus,a.text-secondary:hover{color:#6c757d !important;}.text-success{color:#28a745 !important;}a.text-success:focus,a.text-success:hover{color:#1e7e34 !important;}.text-info{color:#17a2b8 !important;}a.text-info:focus,a.text-info:hover{color:#117a8b !important;}.text-warning{color:#ffc107 !important;}a.text-warning:focus,a.text-warning:hover{color:#d39e00 !important;}.text-danger{color:#dc3545 !important;}a.text-danger:focus,a.text-danger:hover{color:#bd2130 !important;}.text-light{color:#f8f9fa !important;}a.text-light:focus,a.text-light:hover{color:#dae0e5 !important;}.text-dark{color:#343a40 !important;}a.text-dark:focus,a.text-dark:hover{color:#1d2124 !important;}.text-muted{color:#868e96 !important;}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0;}.visible{visibility:visible !important;}.invisible{visibility:hidden !important;}
\ No newline at end of file
diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/styles/mybstheme.scss b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/styles/mybstheme.scss
new file mode 100644
index 0000000000..9c09c0be55
--- /dev/null
+++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/wwwroot/styles/mybstheme.scss
@@ -0,0 +1,4 @@
+$navbar-dark-color: rgba(#fff,.8);
+$navbar-dark-hover-color: rgba(#fff,1.0);
+
+@import "../libs/bootstrap/scss/bootstrap.scss";
diff --git a/src/Volo.Abp.Identity.Web/Areas/Identity/Views/Users/Index.cshtml b/src/Volo.Abp.Identity.Web/Areas/Identity/Views/Users/Index.cshtml
deleted file mode 100644
index 49ec8cbb0c..0000000000
--- a/src/Volo.Abp.Identity.Web/Areas/Identity/Views/Users/Index.cshtml
+++ /dev/null
@@ -1,46 +0,0 @@
-@using Microsoft.AspNetCore.Mvc.Localization
-@using Volo.Abp.Identity.Web.Areas.Identity.Localization.Resource
-@inject IHtmlLocalizer L
-@section styles {
-
-
-
-}
-
-@section scripts {
-
-
-
-}
-
-
-
- @L["Users"]
-
-
-
-
-
-
-
-
-
-
- | @L["Actions"] |
- @L["UserName"] |
- @L["EmailAddress"] |
- @L["PhoneNumber"] |
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/Volo.Abp.Identity.Web/Pages/Identity/Users/Index.cshtml b/src/Volo.Abp.Identity.Web/Pages/Identity/Users/Index.cshtml
index 166e249849..5c5fbbfe15 100644
--- a/src/Volo.Abp.Identity.Web/Pages/Identity/Users/Index.cshtml
+++ b/src/Volo.Abp.Identity.Web/Pages/Identity/Users/Index.cshtml
@@ -15,29 +15,35 @@
}
-
-
- @L["Users"]
+
+
+
-
-
-
+
+
+
+
+ | @L["Actions"] |
+ @L["UserName"] |
+ @L["EmailAddress"] |
+ @L["PhoneNumber"] |
+
+
+
-
-
-
- | @L["Actions"] |
- @L["UserName"] |
- @L["EmailAddress"] |
- @L["PhoneNumber"] |
-
-
-
-
|