/*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */
body {
  --btn-hover-darken: 10%;
  --primary-color: #3399ff;
  --primary-color-fade-50: rgba(51, 153, 255, 0.5);
  --gray-500: #adb5bd;
}
*,
*::before,
*::after {
  box-sizing: border-box;
}
html {
  font-family: sans-serif;
  line-height: 1.15;
  -ms-overflow-style: scrollbar;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  -webkit-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
}
@at-root {
  @-ms-viewport {
    width: device-width;
  }
}
article,
aside,
dialog,
figcaption,
figure,
footer,
header,
hgroup,
main,
nav,
section {
  display: block;
}
/* Sections
   ========================================================================== */
/**
 * Remove the margin in all browsers (opinionated).
 */
body {
  margin: 0;
  color: #000;
  font-family: var(--common-body-font-family, 'Chinese Quote', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', 'Helvetica Neue', Helvetica, Arial, sans-serif);
  font-size: 12px;
  line-height: 1.5;
}
/**
 * Add the correct display in IE 9-.
 */
article,
aside,
footer,
header,
nav,
section {
  display: block;
}
/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */
h1 {
  margin: 0.67em 0;
  font-size: 2em;
}
/* Grouping content
   ========================================================================== */
/**
 * Add the correct display in IE 9-.
 * 1. Add the correct display in IE.
 */
figcaption,
figure,
main {
  /* 1 */
  display: block;
}
/**
 * Add the correct margin in IE 8.
 */
figure {
  margin: 1em 40px;
}
/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */
hr {
  overflow: visible;
  /* 2 */
  height: 0;
  /* 1 */
  box-sizing: content-box;
  /* 1 */
}
/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
pre {
  font-family: "SFMono-Regular", Menlo, Monaco, Consolas, "Courier New", monospace;
  /* 1 */
  font-size: 1em;
  /* 2 */
}
/* Text-level semantics
   ========================================================================== */
/**
 * 1. Remove the gray background on active links in IE 10.
 * 2. Remove gaps in links underline in iOS 8+ and Safari 8+.
 */
a {
  background-color: transparent;
  color: var(--primary-color, #3399ff);
  cursor: pointer;
  outline: none;
  text-decoration: none;
  -webkit-text-decoration-skip: objects;
  transition: color 0.3s;
}
a:active,
a:hover {
  color: var(--primary-color-dark-15, #0073e5);
  outline: 0;
  text-decoration: none;
}
a[disabled] {
  color: var(--gray-600, #6c757d);
  cursor: not-allowed;
  pointer-events: none;
}
/**
 * 1. Remove the bottom border in Chrome 57- and Firefox 39-.
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */
abbr[title] {
  border-bottom: none;
  /* 1 */
  text-decoration: underline;
  /* 2 */
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted;
  /* 2 */
}
/**
 * Prevent the duplicate application of `bolder` by the next rule in Safari 6.
 */
b,
strong {
  font-weight: inherit;
}
/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */
b,
strong {
  font-weight: bolder;
}
/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
code,
kbd,
samp {
  font-family: monospace, monospace;
  /* 1 */
  font-size: 1em;
  /* 2 */
}
/**
 * Add the correct font style in Android 4.3-.
 */
dfn {
  font-style: italic;
}
/**
 * Add the correct background and color in IE 9-.
 */
mark {
  background-color: #ff0;
  color: #000;
}
/**
 * Add the correct font size in all browsers.
 */
small {
  font-size: 80%;
}
/**
 * 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: -0.25em;
}
sup {
  top: -0.5em;
}
/* Embedded content
   ========================================================================== */
/**
 * Add the correct display in IE 9-.
 */
audio,
video {
  display: inline-block;
}
/**
 * Add the correct display in iOS 4-7.
 */
audio:not([controls]) {
  display: none;
  height: 0;
}
/**
 * Remove the border on images inside links in IE 10-.
 */
img {
  border-style: none;
}
/**
 * Hide the overflow in IE.
 */
svg:not(:root) {
  overflow: hidden;
}
/* Forms
   ========================================================================== */
/**
 * 1. Change the font styles in all browsers (opinionated).
 * 2. Remove the margin in Firefox and Safari.
 */
button,
input,
optgroup,
select,
textarea {
  margin: 0;
  /* 2 */
  font-family: inherit;
  font-size: 100%;
  /* 1 */
  line-height: 1.15;
  /* 1 */
}
/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */
button,
input {
  /* 1 */
  overflow: visible;
}
/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */
button,
select {
  /* 1 */
  text-transform: none;
}
/**
 * 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`
 *    controls in Android 4.
 * 2. Correct the inability to style clickable types in iOS and Safari.
 */
button,
html [type="button"],
[type="reset"],
[type="submit"] {
  -webkit-appearance: button;
  /* 2 */
}
/**
 * Remove the inner border and padding in Firefox.
 */
button::-moz-focus-inner,
[type='button']::-moz-focus-inner,
[type='reset']::-moz-focus-inner,
[type='submit']::-moz-focus-inner {
  padding: 0;
  border-style: none;
}
/**
 * Restore the focus styles unset by the previous rule.
 */
button:-moz-focusring,
[type='button']:-moz-focusring,
[type='reset']:-moz-focusring,
[type='submit']:-moz-focusring {
  outline: 1px dotted ButtonText;
}
/**
 * Correct the padding in Firefox.
 */
fieldset {
  padding: 0.35em 0.75em 0.625em;
}
/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *    `fieldset` elements in all browsers.
 */
legend {
  display: table;
  /* 1 */
  max-width: 100%;
  /* 1 */
  box-sizing: border-box;
  /* 1 */
  padding: 0;
  /* 3 */
  color: inherit;
  /* 2 */
  white-space: normal;
  /* 1 */
}
/**
 * 1. Add the correct display in IE 9-.
 * 2. Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */
progress {
  display: inline-block;
  /* 1 */
  vertical-align: baseline;
  /* 2 */
}
/**
 * Remove the default vertical scrollbar in IE.
 */
textarea {
  overflow: auto;
}
/**
 * 1. Add the correct box sizing in IE 10-.
 * 2. Remove the padding in IE 10-.
 */
[type='checkbox'],
[type='radio'] {
  box-sizing: border-box;
  /* 1 */
  padding: 0;
  /* 2 */
}
/**
 * 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;
}
/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */
[type='search'] {
  -webkit-appearance: textfield;
  /* 1 */
  outline-offset: -2px;
  /* 2 */
}
/**
 * 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 {
  -webkit-appearance: button;
  /* 1 */
  font: inherit;
  /* 2 */
}
/* Interactive
   ========================================================================== */
/*
 * Add the correct display in IE 9-.
 * 1. Add the correct display in Edge, IE, and Firefox.
 */
details,
menu {
  display: block;
}
/*
 * Add the correct display in all browsers.
 */
summary {
  display: list-item;
}
/* Scripting
   ========================================================================== */
/**
 * Add the correct display in IE 9-.
 */
canvas {
  display: inline-block;
}
/**
 * Add the correct display in IE.
 */
template {
  display: none;
}
/* Hidden
   ========================================================================== */
/**
 * Add the correct display in IE 10-.
 */
[hidden] {
  display: none;
}
h1,
h2,
h3,
h4,
h5,
h6,
.h1,
.h2,
.h3,
.h4,
.h5,
.h6 {
  color: inherit;
  font-family: inherit;
  font-weight: 500;
  line-height: 1.1;
}
h1 small,
h2 small,
h3 small,
h4 small,
h5 small,
h6 small,
.h1 small,
.h2 small,
.h3 small,
.h4 small,
.h5 small,
.h6 small,
h1 .small,
h2 .small,
h3 .small,
h4 .small,
h5 .small,
h6 .small,
.h1 .small,
.h2 .small,
.h3 .small,
.h4 .small,
.h5 .small,
.h6 .small {
  color: var(--gray-500, #adb5bd);
  font-weight: normal;
  line-height: 1;
}
h1,
.h1,
h2,
.h2,
h3,
.h3 {
  margin-top: 20px;
  margin-bottom: 10px;
}
h1 small,
.h1 small,
h2 small,
.h2 small,
h3 small,
.h3 small,
h1 .small,
.h1 .small,
h2 .small,
.h2 .small,
h3 .small,
.h3 .small {
  font-size: 65%;
}
h4,
.h4,
h5,
.h5,
h6,
.h6 {
  margin-top: 10px;
  margin-bottom: 10px;
}
h4 small,
.h4 small,
h5 small,
.h5 small,
h6 small,
.h6 small,
h4 .small,
.h4 .small,
h5 .small,
.h5 .small,
h6 .small,
.h6 .small {
  font-size: 75%;
}
/*
h1, .h1 { font-size: @font-size-h1; }
h2, .h2 { font-size: @font-size-h2; }
h3, .h3 { font-size: @font-size-h3; }
h4, .h4 { font-size: @font-size-h4; }
h5, .h5 { font-size: @font-size-h5; }
h6, .h6 { font-size: @font-size-h6; }
*/
p {
  margin: 0 0 10px;
}

.so-alert {
  position: relative;
  display: flex;
  padding: 8px 16px;
  margin-bottom: 20px;
  border: var(--alert-border-width, 1px) solid transparent;
  border-radius: var(--alert-border-radius, 4px);
  -webkit-transform-origin: 0 0;
          transform-origin: 0 0;
  transition: opacity 0.216s ease-out, -webkit-transform 0.216s;
  transition: transform 0.216s, opacity 0.216s ease-out;
  transition: transform 0.216s, opacity 0.216s ease-out, -webkit-transform 0.216s;
  font-size: var(--alert-font-size, 12px);
}
.so-alert h2,
.so-alert h3,
.so-alert h4 {
  margin-top: 0.3em;
  color: inherit;
}
.so-alert-with-close {
  padding-right: 36px;
}
.so-alert-link {
  font-weight: bold;
}
.so-alert-close {
  position: absolute;
  top: 8px;
  right: 12px;
  display: block;
}
.so-alert-close svg {
  width: 10px;
  height: 10px;
}
.so-alert-close svg path {
  fill: var(--alert-close-color, rgba(0, 0, 0, 0.3));
}
.so-alert-close:hover svg path {
  fill: var(--alert-close-hover-color, rgba(0, 0, 0, 0.8));
}
.so-alert-dismissed {
  opacity: 0;
  -webkit-transform: scaleY(0);
          transform: scaleY(0);
}
.so-alert-icon {
  display: block;
  margin-top: 2px;
}
.so-alert-content {
  flex: 1;
  word-break: break-all;
}
.so-alert > p,
.so-alert > ul {
  margin-bottom: 0;
}
.so-alert > p + p {
  margin-top: 5px;
}
.so-alert h2,
.so-alert h3,
.so-alert h4 {
  margin-top: 0;
}
.so-alert-default {
  border-color: var(--gray-200, #e9ecef);
  background-color: #fff;
  color: #333;
  box-shadow: var(--alert-box-shadow, 'none');
}
.so-alert-default hr {
  border-top-color: var(--gray-200-darken-5, #dadfe4);
}
.so-alert-default .alert-link {
  color: #1a1a1a;
}
.so-alert-info {
  border-color: var(--alert-info-border-color, #bce8f1);
  background-color: var(--alert-info-bg, #d9edf7);
  color: var(--alert-info-text-color, #31708f);
  box-shadow: var(--alert-info-box-shadow, 'none');
}
.so-alert-info hr {
  border-top-color: var(--alert-info-border-darken-5-color, #a6e1ec);
}
.so-alert-info .alert-link {
  color: var(--alert-info-text-darken-10-color, #245269);
}
.so-alert-info .so-alert-icon path {
  fill: var(--info-color, #17a2b8);
}
.so-alert-warning {
  border-color: var(--alert-warning-border-color, #faebcc);
  background-color: var(--alert-warning-bg, #fcf8e3);
  color: var(--alert-warning-text-color, #8a6d3b);
  box-shadow: var(--alert-warning-box-shadow, 'none');
}
.so-alert-warning hr {
  border-top-color: var(--alert-warning-border-darken-5-color, #f7e1b5);
}
.so-alert-warning .alert-link {
  color: var(--alert-warning-text-darken-10-color, #66512c);
}
.so-alert-warning .so-alert-icon path {
  fill: var(--warning-color, #ff9900);
}
.so-alert-success {
  border-color: var(--alert-success-border-color, #d6e9c6);
  background-color: var(--alert-success-bg, #dff0d8);
  color: var(--alert-success-text-color, #3c763d);
  box-shadow: var(--alert-success-box-shadow, 'none');
}
.so-alert-success hr {
  border-top-color: var(--alert-success-border-darken-5-color, #c9e2b3);
}
.so-alert-success .alert-link {
  color: var(--alert-success-text-darken-10-color, #2b542c);
}
.so-alert-success .so-alert-icon path {
  fill: var(--success-color, #00cc66);
}
.so-alert-danger,
.so-alert-error {
  border-color: var(--alert-danger-border-color, #ebccd1);
  background-color: var(--alert-danger-bg, #f2dede);
  color: var(--alert-danger-text-color, #a94442);
  box-shadow: var(--alert-danger-box-shadow, 'none');
}
.so-alert-danger hr,
.so-alert-error hr {
  border-top-color: var(--alert-danger-border-darken-5-color, #e4b9c0);
}
.so-alert-danger .alert-link,
.so-alert-error .alert-link {
  color: var(--alert-danger-text-darken-10-color, #843534);
}
.so-alert-danger .so-alert-icon path,
.so-alert-error .so-alert-icon path {
  fill: var(--danger-color, #f85555);
}

.so-button {
  display: inline-block;
  margin-bottom: 0;
  border: 1px solid transparent;
  background-image: none;
  cursor: pointer;
  font-weight: normal;
  outline: none;
  text-align: center;
  touch-action: manipulation;
  vertical-align: middle;
  white-space: nowrap;
  padding: var(--button-padding-base-vertical, 6px) var(--button-padding-base-horizontal, 12px);
  border-radius: var(--button-border-radius, 3px);
  font-size: var(--button-font-size-base, 12px);
  line-height: 1.5;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}
.so-button-spin {
  display: inline-block;
  margin-right: var(--button-spin-margin, 8px);
}
.so-button:hover,
.so-button:focus {
  z-index: 10;
  color: var(--primary-color-dark-15, #0073e5);
  outline: none;
  text-decoration: none;
}
.so-button::-moz-focus-inner {
  border: 0;
}
.so-button.active {
  background-image: none;
  outline: 0;
}
.so-button + .so-button {
  margin-left: var(--button-margin-left, 12px);
}
.so-button[disabled],
fieldset[disabled] .so-button {
  position: relative;
  box-shadow: none;
  cursor: not-allowed;
  opacity: 1;
}
.so-button.so-button-disabled {
  opacity: 1;
}
.so-button.so-button-disabled.so-button-link {
  opacity: 0.4;
}
fieldset[disabled] a.so-button {
  pointer-events: none;
}
.so-button-default {
  border-color: var(--gray-300, #dee2e6);
  background-color: #fff;
  color: var(--button-default-text-color, #333);
  fill: var(--button-default-text-color, #333);
  transition: all 0.15s ease-in-out;
}
.so-button-default:focus,
.so-button-default:hover {
  background-color: #fff;
  color: var(--button-default-text-color, #333);
}
.so-button-default:active {
  -webkit-animation: btn-focus-default 0.4s ease-out;
          animation: btn-focus-default 0.4s ease-out;
  background-color: #fff;
  color: var(--button-default-text-color, #333);
}
.so-button-default:active {
  background-image: none;
}
.so-button-default[disabled]:hover,
fieldset[disabled] .so-button-default:hover,
.so-button-default[disabled]:focus,
fieldset[disabled] .so-button-default:focus {
  border-color: var(--gray-300, #dee2e6);
  background-color: #fff;
}
.so-button-default[disabled]:active,
fieldset[disabled] .so-button-default:active {
  -webkit-animation: none;
          animation: none;
}
.so-button-default.so-button-outline:not(.so-button-disabled) {
  border-color: #fff;
  background: transparent;
  color: #fff;
  fill: #fff;
}
.so-button-default.so-button-outline:not(.so-button-disabled):focus,
.so-button-default.so-button-outline:not(.so-button-disabled):hover {
  background-color: #fff;
  color: var(--button-default-text-color, #333);
}
.so-button-default.so-button-outline:not(.so-button-disabled):active {
  -webkit-animation: btn-focus-default 0.4s ease-out;
          animation: btn-focus-default 0.4s ease-out;
  background-color: #fff;
  color: var(--button-default-text-color, #333);
}
.so-button-default.so-button-outline:not(.so-button-disabled)[disabled]:hover,
fieldset[disabled] .so-button-default.so-button-outline:not(.so-button-disabled):hover,
.so-button-default.so-button-outline:not(.so-button-disabled)[disabled]:focus,
fieldset[disabled] .so-button-default.so-button-outline:not(.so-button-disabled):focus {
  border-color: #fff;
  background: transparent;
  color: #fff;
}
.so-button-default.so-button-outline:not(.so-button-disabled)[disabled]:active,
fieldset[disabled] .so-button-default.so-button-outline:not(.so-button-disabled):active {
  -webkit-animation: none;
          animation: none;
}
.so-button-default:not(.so-button-disabled):hover,
.so-button-default:not(.so-button-disabled):focus,
.so-button-default:not(.so-button-disabled):active {
  color: var(--primary-color, #3399ff);
}
.so-button-default:not(.so-button-disabled):hover .so-icon,
.so-button-default:not(.so-button-disabled):focus .so-icon,
.so-button-default:not(.so-button-disabled):active .so-icon {
  color: var(--primary-color, #3399ff);
  fill: var(--primary-color, #3399ff);
}
.so-button-default[disabled]:hover {
  color: var(--button-default-text-color, #333);
  fill: var(--primary-color, #3399ff);
}
.so-button-primary {
  border-color: transparent;
  background-color: var(--primary-color, #3399ff);
  color: #fff;
  fill: #fff;
  transition: all 0.15s ease-in-out;
}
.so-button-primary:focus,
.so-button-primary:hover {
  background-color: var(--primary-color-dark-btn-hover, #007fff);
  color: #fff;
}
.so-button-primary:active {
  -webkit-animation: btn-focus-primary 0.4s ease-out;
          animation: btn-focus-primary 0.4s ease-out;
  background-color: var(--primary-color-dark-btn-hover, #007fff);
  color: #fff;
}
.so-button-primary:active {
  background-image: none;
}
.so-button-primary[disabled]:hover,
fieldset[disabled] .so-button-primary:hover,
.so-button-primary[disabled]:focus,
fieldset[disabled] .so-button-primary:focus {
  border-color: transparent;
  background-color: var(--primary-color, #3399ff);
}
.so-button-primary[disabled]:active,
fieldset[disabled] .so-button-primary:active {
  -webkit-animation: none;
          animation: none;
}
.so-button-primary.so-button-outline:not(.so-button-disabled) {
  border-color: var(--primary-color, #3399ff);
  background: transparent;
  color: var(--primary-color, #3399ff);
  fill: var(--primary-color, #3399ff);
}
.so-button-primary.so-button-outline:not(.so-button-disabled):focus,
.so-button-primary.so-button-outline:not(.so-button-disabled):hover {
  background-color: var(--primary-color, #3399ff);
  color: #fff;
}
.so-button-primary.so-button-outline:not(.so-button-disabled):active {
  -webkit-animation: btn-focus-primary 0.4s ease-out;
          animation: btn-focus-primary 0.4s ease-out;
  background-color: var(--primary-color, #3399ff);
  color: #fff;
}
.so-button-primary.so-button-outline:not(.so-button-disabled)[disabled]:hover,
fieldset[disabled] .so-button-primary.so-button-outline:not(.so-button-disabled):hover,
.so-button-primary.so-button-outline:not(.so-button-disabled)[disabled]:focus,
fieldset[disabled] .so-button-primary.so-button-outline:not(.so-button-disabled):focus {
  border-color: var(--primary-color, #3399ff);
  background: transparent;
  color: var(--primary-color, #3399ff);
}
.so-button-primary.so-button-outline:not(.so-button-disabled)[disabled]:active,
fieldset[disabled] .so-button-primary.so-button-outline:not(.so-button-disabled):active {
  -webkit-animation: none;
          animation: none;
}
.so-button-secondary {
  border-color: transparent;
  background-color: var(--secondary-color, #999999);
  color: #fff;
  fill: #fff;
  transition: all 0.15s ease-in-out;
}
@-webkit-keyframes btn-focus-secondary {
  0% {
    box-shadow: 0 0 0 0 var(--secondary-color-dark-5_fade-60, rgba(140, 140, 140, 0.6));
  }
  50% {
    box-shadow: 0 0 0 0.4em var(--secondary-color-dark-5_fade-0, rgba(140, 140, 140, 0));
  }
  100% {
    box-shadow: 0 0 0 0.8em var(--secondary-color-dark-5_fade-0, rgba(140, 140, 140, 0));
  }
}
@keyframes btn-focus-secondary {
  0% {
    box-shadow: 0 0 0 0 var(--secondary-color-dark-5_fade-60, rgba(140, 140, 140, 0.6));
  }
  50% {
    box-shadow: 0 0 0 0.4em var(--secondary-color-dark-5_fade-0, rgba(140, 140, 140, 0));
  }
  100% {
    box-shadow: 0 0 0 0.8em var(--secondary-color-dark-5_fade-0, rgba(140, 140, 140, 0));
  }
}
.so-button-secondary:focus,
.so-button-secondary:hover {
  background-color: var(--secondary-color-dark-btn-hover, #808080);
  color: #fff;
}
.so-button-secondary:active {
  -webkit-animation: btn-focus-secondary 0.4s ease-out;
          animation: btn-focus-secondary 0.4s ease-out;
  background-color: var(--secondary-color-dark-btn-hover, #808080);
  color: #fff;
}
.so-button-secondary:active {
  background-image: none;
}
.so-button-secondary[disabled]:hover,
fieldset[disabled] .so-button-secondary:hover,
.so-button-secondary[disabled]:focus,
fieldset[disabled] .so-button-secondary:focus {
  border-color: transparent;
  background-color: var(--secondary-color, #999999);
}
.so-button-secondary[disabled]:active,
fieldset[disabled] .so-button-secondary:active {
  -webkit-animation: none;
          animation: none;
}
.so-button-secondary.so-button-outline:not(.so-button-disabled) {
  border-color: var(--secondary-color, #999999);
  background: transparent;
  color: var(--secondary-color, #999999);
  fill: var(--secondary-color, #999999);
}
.so-button-secondary.so-button-outline:not(.so-button-disabled):focus,
.so-button-secondary.so-button-outline:not(.so-button-disabled):hover {
  background-color: var(--secondary-color, #999999);
  color: #fff;
}
.so-button-secondary.so-button-outline:not(.so-button-disabled):active {
  -webkit-animation: btn-focus-secondary 0.4s ease-out;
          animation: btn-focus-secondary 0.4s ease-out;
  background-color: var(--secondary-color, #999999);
  color: #fff;
}
.so-button-secondary.so-button-outline:not(.so-button-disabled)[disabled]:hover,
fieldset[disabled] .so-button-secondary.so-button-outline:not(.so-button-disabled):hover,
.so-button-secondary.so-button-outline:not(.so-button-disabled)[disabled]:focus,
fieldset[disabled] .so-button-secondary.so-button-outline:not(.so-button-disabled):focus {
  border-color: var(--secondary-color, #999999);
  background: transparent;
  color: var(--secondary-color, #999999);
}
.so-button-secondary.so-button-outline:not(.so-button-disabled)[disabled]:active,
fieldset[disabled] .so-button-secondary.so-button-outline:not(.so-button-disabled):active {
  -webkit-animation: none;
          animation: none;
}
.so-button-success {
  border-color: transparent;
  background-color: var(--success-color, #00cc66);
  color: #fff;
  fill: #fff;
  transition: all 0.15s ease-in-out;
}
.so-button-success:focus,
.so-button-success:hover {
  background-color: var(--success-color-dark-btn-hover, #00994d);
  color: #fff;
}
.so-button-success:active {
  -webkit-animation: btn-focus-success 0.4s ease-out;
          animation: btn-focus-success 0.4s ease-out;
  background-color: var(--success-color-dark-btn-hover, #00994d);
  color: #fff;
}
.so-button-success:active {
  background-image: none;
}
.so-button-success[disabled]:hover,
fieldset[disabled] .so-button-success:hover,
.so-button-success[disabled]:focus,
fieldset[disabled] .so-button-success:focus {
  border-color: transparent;
  background-color: var(--success-color, #00cc66);
}
.so-button-success[disabled]:active,
fieldset[disabled] .so-button-success:active {
  -webkit-animation: none;
          animation: none;
}
.so-button-success.so-button-outline:not(.so-button-disabled) {
  border-color: var(--success-color, #00cc66);
  background: transparent;
  color: var(--success-color, #00cc66);
  fill: var(--success-color, #00cc66);
}
.so-button-success.so-button-outline:not(.so-button-disabled):focus,
.so-button-success.so-button-outline:not(.so-button-disabled):hover {
  background-color: var(--success-color, #00cc66);
  color: #fff;
}
.so-button-success.so-button-outline:not(.so-button-disabled):active {
  -webkit-animation: btn-focus-success 0.4s ease-out;
          animation: btn-focus-success 0.4s ease-out;
  background-color: var(--success-color, #00cc66);
  color: #fff;
}
.so-button-success.so-button-outline:not(.so-button-disabled)[disabled]:hover,
fieldset[disabled] .so-button-success.so-button-outline:not(.so-button-disabled):hover,
.so-button-success.so-button-outline:not(.so-button-disabled)[disabled]:focus,
fieldset[disabled] .so-button-success.so-button-outline:not(.so-button-disabled):focus {
  border-color: var(--success-color, #00cc66);
  background: transparent;
  color: var(--success-color, #00cc66);
}
.so-button-success.so-button-outline:not(.so-button-disabled)[disabled]:active,
fieldset[disabled] .so-button-success.so-button-outline:not(.so-button-disabled):active {
  -webkit-animation: none;
          animation: none;
}
.so-button-info {
  border-color: transparent;
  background-color: var(--info-color, #17a2b8);
  color: #fff;
  fill: #fff;
  transition: all 0.15s ease-in-out;
}
.so-button-info:focus,
.so-button-info:hover {
  background-color: var(--info-color-dark-btn-hover, #117a8b);
  color: #fff;
}
.so-button-info:active {
  -webkit-animation: btn-focus-info 0.4s ease-out;
          animation: btn-focus-info 0.4s ease-out;
  background-color: var(--info-color-dark-btn-hover, #117a8b);
  color: #fff;
}
.so-button-info:active {
  background-image: none;
}
.so-button-info[disabled]:hover,
fieldset[disabled] .so-button-info:hover,
.so-button-info[disabled]:focus,
fieldset[disabled] .so-button-info:focus {
  border-color: transparent;
  background-color: var(--info-color, #17a2b8);
}
.so-button-info[disabled]:active,
fieldset[disabled] .so-button-info:active {
  -webkit-animation: none;
          animation: none;
}
.so-button-info.so-button-outline:not(.so-button-disabled) {
  border-color: var(--info-color, #17a2b8);
  background: transparent;
  color: var(--info-color, #17a2b8);
  fill: var(--info-color, #17a2b8);
}
.so-button-info.so-button-outline:not(.so-button-disabled):focus,
.so-button-info.so-button-outline:not(.so-button-disabled):hover {
  background-color: var(--info-color, #17a2b8);
  color: #fff;
}
.so-button-info.so-button-outline:not(.so-button-disabled):active {
  -webkit-animation: btn-focus-info 0.4s ease-out;
          animation: btn-focus-info 0.4s ease-out;
  background-color: var(--info-color, #17a2b8);
  color: #fff;
}
.so-button-info.so-button-outline:not(.so-button-disabled)[disabled]:hover,
fieldset[disabled] .so-button-info.so-button-outline:not(.so-button-disabled):hover,
.so-button-info.so-button-outline:not(.so-button-disabled)[disabled]:focus,
fieldset[disabled] .so-button-info.so-button-outline:not(.so-button-disabled):focus {
  border-color: var(--info-color, #17a2b8);
  background: transparent;
  color: var(--info-color, #17a2b8);
}
.so-button-info.so-button-outline:not(.so-button-disabled)[disabled]:active,
fieldset[disabled] .so-button-info.so-button-outline:not(.so-button-disabled):active {
  -webkit-animation: none;
          animation: none;
}
.so-button-warning {
  border-color: transparent;
  background-color: var(--warning-color, #ff9900);
  color: #fff;
  fill: #fff;
  transition: all 0.15s ease-in-out;
}
.so-button-warning:focus,
.so-button-warning:hover {
  background-color: var(--warning-color-dark-btn-hover, #cc7a00);
  color: #fff;
}
.so-button-warning:active {
  -webkit-animation: btn-focus-warning 0.4s ease-out;
          animation: btn-focus-warning 0.4s ease-out;
  background-color: var(--warning-color-dark-btn-hover, #cc7a00);
  color: #fff;
}
.so-button-warning:active {
  background-image: none;
}
.so-button-warning[disabled]:hover,
fieldset[disabled] .so-button-warning:hover,
.so-button-warning[disabled]:focus,
fieldset[disabled] .so-button-warning:focus {
  border-color: transparent;
  background-color: var(--warning-color, #ff9900);
}
.so-button-warning[disabled]:active,
fieldset[disabled] .so-button-warning:active {
  -webkit-animation: none;
          animation: none;
}
.so-button-warning.so-button-outline:not(.so-button-disabled) {
  border-color: var(--warning-color, #ff9900);
  background: transparent;
  color: var(--warning-color, #ff9900);
  fill: var(--warning-color, #ff9900);
}
.so-button-warning.so-button-outline:not(.so-button-disabled):focus,
.so-button-warning.so-button-outline:not(.so-button-disabled):hover {
  background-color: var(--warning-color, #ff9900);
  color: #fff;
}
.so-button-warning.so-button-outline:not(.so-button-disabled):active {
  -webkit-animation: btn-focus-warning 0.4s ease-out;
          animation: btn-focus-warning 0.4s ease-out;
  background-color: var(--warning-color, #ff9900);
  color: #fff;
}
.so-button-warning.so-button-outline:not(.so-button-disabled)[disabled]:hover,
fieldset[disabled] .so-button-warning.so-button-outline:not(.so-button-disabled):hover,
.so-button-warning.so-button-outline:not(.so-button-disabled)[disabled]:focus,
fieldset[disabled] .so-button-warning.so-button-outline:not(.so-button-disabled):focus {
  border-color: var(--warning-color, #ff9900);
  background: transparent;
  color: var(--warning-color, #ff9900);
}
.so-button-warning.so-button-outline:not(.so-button-disabled)[disabled]:active,
fieldset[disabled] .so-button-warning.so-button-outline:not(.so-button-disabled):active {
  -webkit-animation: none;
          animation: none;
}
.so-button-error,
.so-button-danger {
  border-color: transparent;
  background-color: var(--danger-color, #f85555);
  color: #fff;
  fill: #fff;
  transition: all 0.15s ease-in-out;
}
.so-button-error:focus,
.so-button-danger:focus,
.so-button-error:hover,
.so-button-danger:hover {
  background-color: var(--danger-color-dark-btn-hover, #f62424);
  color: #fff;
}
.so-button-error:active,
.so-button-danger:active {
  -webkit-animation: btn-focus-danger 0.4s ease-out;
          animation: btn-focus-danger 0.4s ease-out;
  background-color: var(--danger-color-dark-btn-hover, #f62424);
  color: #fff;
}
.so-button-error:active,
.so-button-danger:active {
  background-image: none;
}
.so-button-error[disabled]:hover,
.so-button-danger[disabled]:hover,
fieldset[disabled] .so-button-error:hover,
fieldset[disabled] .so-button-danger:hover,
.so-button-error[disabled]:focus,
.so-button-danger[disabled]:focus,
fieldset[disabled] .so-button-error:focus,
fieldset[disabled] .so-button-danger:focus {
  border-color: transparent;
  background-color: var(--danger-color, #f85555);
}
.so-button-error[disabled]:active,
.so-button-danger[disabled]:active,
fieldset[disabled] .so-button-error:active,
fieldset[disabled] .so-button-danger:active {
  -webkit-animation: none;
          animation: none;
}
.so-button-error.so-button-outline:not(.so-button-disabled),
.so-button-danger.so-button-outline:not(.so-button-disabled) {
  border-color: var(--danger-color, #f85555);
  background: transparent;
  color: var(--danger-color, #f85555);
  fill: var(--danger-color, #f85555);
}
.so-button-error.so-button-outline:not(.so-button-disabled):focus,
.so-button-danger.so-button-outline:not(.so-button-disabled):focus,
.so-button-error.so-button-outline:not(.so-button-disabled):hover,
.so-button-danger.so-button-outline:not(.so-button-disabled):hover {
  background-color: var(--danger-color, #f85555);
  color: #fff;
}
.so-button-error.so-button-outline:not(.so-button-disabled):active,
.so-button-danger.so-button-outline:not(.so-button-disabled):active {
  -webkit-animation: btn-focus-danger 0.4s ease-out;
          animation: btn-focus-danger 0.4s ease-out;
  background-color: var(--danger-color, #f85555);
  color: #fff;
}
.so-button-error.so-button-outline:not(.so-button-disabled)[disabled]:hover,
.so-button-danger.so-button-outline:not(.so-button-disabled)[disabled]:hover,
fieldset[disabled] .so-button-error.so-button-outline:not(.so-button-disabled):hover,
fieldset[disabled] .so-button-danger.so-button-outline:not(.so-button-disabled):hover,
.so-button-error.so-button-outline:not(.so-button-disabled)[disabled]:focus,
.so-button-danger.so-button-outline:not(.so-button-disabled)[disabled]:focus,
fieldset[disabled] .so-button-error.so-button-outline:not(.so-button-disabled):focus,
fieldset[disabled] .so-button-danger.so-button-outline:not(.so-button-disabled):focus {
  border-color: var(--danger-color, #f85555);
  background: transparent;
  color: var(--danger-color, #f85555);
}
.so-button-error.so-button-outline:not(.so-button-disabled)[disabled]:active,
.so-button-danger.so-button-outline:not(.so-button-disabled)[disabled]:active,
fieldset[disabled] .so-button-error.so-button-outline:not(.so-button-disabled):active,
fieldset[disabled] .so-button-danger.so-button-outline:not(.so-button-disabled):active {
  -webkit-animation: none;
          animation: none;
}
.so-button-text {
  background: transparent;
  border: none;
  box-shadow: none;
  padding-left: 4px;
  padding-right: 4px;
}
.so-button-text:not(:disabled):hover {
  opacity: .8;
}
.so-button-text,
.so-button-text:hover,
.so-button-text:focus,
.so-button-text:active {
  background: transparent;
  border: none;
  box-shadow: none;
  -webkit-animation: none;
          animation: none;
}
.so-button-text:disabled:hover {
  background: transparent;
}
.so-button-text.so-button-primary {
  color: var(--primary-color, #3399ff);
}
.so-button-text.so-button-success {
  color: var(--success-color, #00cc66);
}
.so-button-text.so-button-info {
  color: var(--info-color, #17a2b8);
}
.so-button-text.so-button-danger {
  color: var(--danger-color, #f85555);
}
.so-button-text.so-button-warning {
  color: var(--warning-color, #ff9900);
}
.so-button-text.so-button-secondary {
  color: var(--secondary-color, #999999);
}
.so-button-link {
  border-radius: 0;
  color: var(--primary-color, #3399ff);
  font-weight: normal;
}
.so-button-link,
.so-button-link:active,
.so-button-link[disabled],
fieldset[disabled] .so-button-link {
  background-color: transparent;
  box-shadow: none;
}
.so-button-link,
.so-button-link:hover,
.so-button-link:focus,
.so-button-link:active {
  border-color: transparent;
}
.so-button-link:hover,
.so-button-link:focus {
  background-color: transparent;
  color: var(--primary-color-dark-15, #0073e5);
  text-decoration: none;
}
.so-button-link[disabled]:hover,
fieldset[disabled] .so-button-link:hover,
.so-button-link[disabled]:focus,
fieldset[disabled] .so-button-link:focus {
  color: var(--primary-color, #3399ff);
  text-decoration: none;
}
.so-button-large {
  padding: var(--button-padding-large-vertical, 8px) var(--button-padding-large-horizontal, 16px);
  border-radius: var(--button-large-border-radius, 4px);
  font-size: var(--button-font-size-large, var(--font-size-large, 18px));
  line-height: 1.5;
}
.so-button-small {
  padding: var(--button-padding-small-vertical, 5px) var(--button-padding-small-horizontal, 10px);
  border-radius: var(--button-small-border-radius, 3px);
  font-size: var(--button-font-size-small, var(--font-size-small, 12px));
  line-height: 1.5;
}
.so-button-disabled:not(.so-button-link):not(.so-button-text),
.so-button-disabled:not(.so-button-link):not(.so-button-text):hover {
  background: var(--button-disabled-bg, #f5f5f5);
  color: var(--button-disabled-color, rgba(0, 0, 0, 0.45));
  fill: var(--button-disabled-color, rgba(0, 0, 0, 0.45));
  border-color: var(--button-disabled-border-color, #d9d9d9);
}
.so-button-circle {
  border-radius: 50%;
  min-width: 34px;
  padding-left: 0;
  padding-right: 0;
}
.so-button-circle.so-button-large {
  min-width: 43px;
}
.so-button-circle.so-button-small {
  min-width: 30px;
}
.so-button-round {
  border-radius: 1000px;
}
.so-button-group .so-button {
  position: relative;
  margin-left: 0px;
  border-right-width: 0;
  border-left-width: 0;
}
.so-button-group .so-button:before {
  position: absolute;
  top: 50%;
  left: 0;
  height: 50%;
  border-left-width: 1px;
  border-left-style: solid;
  border-left-color: rgba(255, 255, 255, 0.4);
  content: ' ';
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}
.so-button-group .so-button:first-child {
  margin-left: 0;
  border-left-width: 1px;
}
.so-button-group .so-button:first-child:before {
  display: none;
}
.so-button-group .so-button:last-child {
  border-right-width: 1px;
}
.so-button-group .so-button:not(:first-child):not(:last-child) {
  border-radius: 0;
}
.so-button-group .so-button:first-child:not(:last-child) {
  border-bottom-right-radius: 0;
  border-top-right-radius: 0;
}
.so-button-group .so-button:last-child:not(:first-child) {
  border-bottom-left-radius: 0;
  border-top-left-radius: 0;
}
.so-button-group .so-button:before {
  border-left-color: #d9d9d9;
  transition: all .2s;
}
.so-button-group .so-button:not(.so-button-outline):not(.so-button-default):not(.so-button-disabled):before {
  border-left-color: white;
}
.so-button-group .so-button.so-button-outline:not(.so-button-default):before {
  border-left-color: inherit;
}
.so-button-group .so-button.so-button-disabled:before {
  border-left-color: white;
}
.so-button-group .so-button.so-button-disabled.so-button-default:before,
.so-button-group .so-button.so-button-disabled.so-button-outline:before {
  border-left-color: var(--button-disabled-delimiter, #d9d9d9);
}
.so-button-group .so-button.so-button-disabled + .so-button:not(.so-button-disabled):before {
  border-left-color: transparent;
}
.so-button-group .so-button.so-button-disabled + .so-button:not(.so-button-disabled).so-button-outline:not(.so-button-default):before {
  height: 100%;
  border-left-color: var(--primary-color, #3399ff);
}
.so-button-group .so-button:not(.so-button-disabled) + .so-button-disabled:before {
  border-left-color: transparent;
}
.so-button-group .so-button:not(.so-button-disabled) + .so-button-disabled.so-button-outline:not(.so-button-default):before {
  height: 100%;
  border-left-color: var(--primary-color, #3399ff);
}
.so-button-group .so-button.so-button-default:not(.so-button-disabled):hover:before,
.so-button-group .so-button.so-button-default:not(.so-button-disabled):active:before,
.so-button-group .so-button.so-button-default:not(.so-button-disabled):focus:before,
.so-button-group .so-button.so-button-default:not(.so-button-disabled):hover + .so-button:before,
.so-button-group .so-button.so-button-default:not(.so-button-disabled):active + .so-button:before,
.so-button-group .so-button.so-button-default:not(.so-button-disabled):focus + .so-button:before {
  border-left-color: var(--primary-color, #3399ff);
  height: 100%;
}
.so-button-group .so-button.so-button-default:not(.so-button-disabled):hover + .so-dropdown-split-dropdown > .so-dropdown-button.so-dropdown-split-button:before,
.so-button-group .so-button.so-button-default:not(.so-button-disabled):active + .so-dropdown-split-dropdown > .so-dropdown-button.so-dropdown-split-button:before,
.so-button-group .so-button.so-button-default:not(.so-button-disabled):focus + .so-dropdown-split-dropdown > .so-dropdown-button.so-dropdown-split-button:before {
  border-left-color: var(--primary-color, #3399ff);
  height: 100%;
}
.so-button-group .so-button.so-button-outline:not(.so-button-disabled):hover:before,
.so-button-group .so-button.so-button-outline:not(.so-button-disabled):active:before,
.so-button-group .so-button.so-button-outline:not(.so-button-disabled):focus:before {
  border-left-color: inherit;
}
.so-button-from-input-group .so-button:before {
  border-left: none;
}
.so-button .so-dropdown {
  border-top-width: 1px;
  border-bottom-width: 1px;
}
.so-button:not(.so-button-text):not(.so-button-link) {
  min-width: var(--button-default-size-width, 0);
}
.so-button:not(.so-button-text):not(.so-button-link).so-button-large {
  min-width: var(--button-large-size-width, 0);
}
.so-button:not(.so-button-text):not(.so-button-link).so-button-small {
  min-width: var(--button-small-size-width, 0);
}

.so-dropdown {
  position: relative;
  display: inline-block;
}
.so-dropdown:focus {
  outline: none;
}
.so-dropdown-button {
  border-width: var(--dropdown-border-width, 1px);
}
.so-dropdown-button.so-button-default:not(.so-button-disabled):hover span.so-dropdown-caret svg path,
.so-dropdown-button.so-button-default:not(.so-button-disabled):active span.so-dropdown-caret svg path,
.so-dropdown-button.so-button-default:not(.so-button-disabled):focus span.so-dropdown-caret svg path {
  fill: var(--primary-color, #3399ff);
}
.so-dropdown-button.so-button-outline:not(.so-button-disabled):hover span.so-dropdown-caret svg path,
.so-dropdown-button.so-button-outline:not(.so-button-disabled):active span.so-dropdown-caret svg path,
.so-dropdown-button.so-button-outline:not(.so-button-disabled):focus span.so-dropdown-caret svg path {
  fill: white;
}
.so-dropdown .so-dropdown-button span.so-dropdown-caret {
  width: 10px;
  height: 10px;
  display: inline-block;
  vertical-align: middle;
}
.so-dropdown .so-dropdown-button span.so-dropdown-caret svg {
  vertical-align: top;
}
.so-dropdown .so-dropdown-button span.so-dropdown-caret:after {
  vertical-align: middle;
}
.so-dropdown-menu {
  position: absolute;
  z-index: 1000;
  min-width: 100%;
  padding: 0;
  background: #fff;
  background-clip: padding-box;
  border-radius: var(--input-dropdown-border-radius, 4px);
  box-shadow: 0 0 1px 1px rgba(0, 0, 0, 0.02), 0 6px 12px rgba(0, 0, 0, 0.175);
}
.so-dropdown-menu hr {
  height: 0;
  margin: 6px 0;
  border-width: 0;
  border-top: solid 1px #e5e5e5;
}
.so-dropdown-menu .so-dropdown-button {
  display: flex;
  align-items: center;
}
.so-dropdown .so-dropdown-button-content {
  display: inline-block;
  flex: 1;
  padding: 0 2px;
  text-align: left;
}
.so-dropdown-bottom-left > .so-dropdown-menu,
.so-dropdown-bottom-right > .so-dropdown-menu {
  top: 100%;
  margin-top: 2px;
}
.so-dropdown-bottom-left > .so-dropdown-menu,
.so-dropdown-top-left > .so-dropdown-menu {
  left: 0;
}
.so-dropdown-bottom-right > .so-dropdown-menu,
.so-dropdown-top-right > .so-dropdown-menu {
  right: 0;
}
.so-dropdown-top-left > .so-dropdown-menu,
.so-dropdown-top-right > .so-dropdown-menu {
  bottom: 100%;
  margin-bottom: 2px;
}
.so-dropdown-top-left > .so-dropdown-button .so-dropdown-caret,
.so-dropdown-top-right > .so-dropdown-button .so-dropdown-caret {
  -webkit-transform: rotate(180deg);
          transform: rotate(180deg);
}
.so-dropdown-left-bottom > .so-dropdown-menu,
.so-dropdown-right-bottom > .so-dropdown-menu {
  bottom: 0;
}
.so-dropdown-left-bottom > .so-dropdown-menu,
.so-dropdown-left-top > .so-dropdown-menu {
  right: 100%;
  margin-right: 2px;
}
.so-dropdown-left-bottom > .so-dropdown-button .so-dropdown-caret,
.so-dropdown-left-top > .so-dropdown-button .so-dropdown-caret {
  -webkit-transform: rotate(90deg);
          transform: rotate(90deg);
}
.so-dropdown-left-top > .so-dropdown-menu,
.so-dropdown-right-top > .so-dropdown-menu {
  top: 0;
}
.so-dropdown-right-bottom > .so-dropdown-menu,
.so-dropdown-right-top > .so-dropdown-menu {
  left: 100%;
  margin-left: 2px;
}
.so-dropdown-right-bottom > .so-dropdown-button .so-dropdown-caret,
.so-dropdown-right-top > .so-dropdown-button .so-dropdown-caret {
  -webkit-transform: rotate(270deg);
          transform: rotate(270deg);
}
.so-dropdown-right-bottom > .so-dropdown-button .so-dropdown-caret.so-dropdown-rtl,
.so-dropdown-right-top > .so-dropdown-button .so-dropdown-caret.so-dropdown-rtl {
  -webkit-transform: rotate(90deg);
          transform: rotate(90deg);
}
.so-dropdown-left-bottom .so-dropdown-button,
.so-dropdown-left-top .so-dropdown-button {
  direction: rtl;
}
.so-dropdown-item {
  display: block;
  padding: 6px 12px;
  color: var(--gray-800, #343a40);
  line-height: 1.5;
  text-decoration: none;
}
a.so-dropdown-item[disabled] {
  color: var(--gray-400, #ced4da);
  cursor: not-allowed;
}
.so-dropdown-item:first-child {
  border-top-left-radius: 4px;
  border-top-right-radius: 4px;
}
.so-dropdown-item:last-child {
  border-bottom-left-radius: 4px;
  border-bottom-right-radius: 4px;
}
.so-dropdown-item:hover,
.so-dropdown-item.so-dropdown-active {
  background-color: var(--dropdown-options-hover-bgc, #f5f5f5);
  color: var(--dropdown-options-hover-color, var(--gray-800-darken-5, #292d32));
  fill: var(--dropdown-options-hover-color, var(--gray-800-darken-5, #292d32));
}
.so-dropdown-item:focus {
  text-decoration: none;
}
.so-dropdown-no-width {
  white-space: nowrap;
}
.so-dropdown-split.so-dropdown-button {
  padding-right: var(--button-padding-base-horizontal-7, 8.4px);
  padding-left: var(--button-padding-base-horizontal-7, 8.4px);
}
.so-dropdown-split.so-dropdown-button:after,
.so-dropdown-split.so-dropdown-button:before {
  margin-right: 0;
  margin-left: 0;
}
.so-dropdown-box-list {
  padding: var(--dropdown-columns-padding, 0);
  box-sizing: content-box;
}
.so-dropdown-box-list .so-dropdown-item {
  text-align: center;
}
.so-dropdown-box-list .so-dropdown-item:hover {
  color: var(--primary-color, #3399ff);
}
.so-dropdown-rtl {
  direction: rtl;
  text-align: right;
}
.so-dropdown-rtl .so-dropdown-button-content {
  text-align: right;
}
.so-dropdown-right-top > .so-list.so-dropdown-rtl {
  left: 0;
  -webkit-transform: translateX(-100%);
          transform: translateX(-100%);
  margin-left: -2px;
}
.so-dropdown-bottom-left > .so-list.so-dropdown-rtl {
  left: 100%;
  -webkit-transform: translateX(-100%);
          transform: translateX(-100%);
}
.so-list + .so-dropdown-button.so-dropdown-item {
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}
.so-dropdown-split-dropdown {
  margin-left: -1px;
}
.so-dropdown-split-dropdown .so-dropdown-split-button {
  padding-right: 8px;
  padding-left: 8px;
  border-radius: 0 var(--button-border-radius, 3px) var(--button-border-radius, 3px) 0 !important;
  border-top-width: 1px;
  border-bottom-width: 1px;
}
.so-dropdown-split-dropdown .so-dropdown-split-button .so-dropdown-button-content {
  width: 0;
}
.so-dropdown-split-dropdown .so-dropdown-split-button:after {
  margin-left: 0;
}
.so-dropdown-split-dropdown .so-dropdown-split-button .so-dropdown-caret:after {
  margin-left: 0;
}
.so-button-group .so-dropdown.so-dropdown-split-dropdown {
  margin-left: 0;
}

.so-hidable-fade-animation-240 {
  transition: height 0.24s ease-in-out, opacity 0.24s ease-in-out;
}
.so-hidable-fade-animation-360 {
  transition: height 0.36s ease-in-out, opacity 0.36s ease-in-out;
}
.so-hidable-fade-animation-480 {
  transition: height 0.48s ease-in-out, opacity 0.48s ease-in-out;
}
.so-hidable-animation-240 {
  transition: height 0.24s ease-in-out, opacity 0.24s ease-in-out, -webkit-transform 0.24s ease-in-out;
  transition: height 0.24s ease-in-out, opacity 0.24s ease-in-out, transform 0.24s ease-in-out;
  transition: height 0.24s ease-in-out, opacity 0.24s ease-in-out, transform 0.24s ease-in-out, -webkit-transform 0.24s ease-in-out;
}
.so-hidable-animation-360 {
  transition: height 0.36s ease-in-out, opacity 0.36s ease-in-out, -webkit-transform 0.36s ease-in-out;
  transition: height 0.36s ease-in-out, opacity 0.36s ease-in-out, transform 0.36s ease-in-out;
  transition: height 0.36s ease-in-out, opacity 0.36s ease-in-out, transform 0.36s ease-in-out, -webkit-transform 0.36s ease-in-out;
}
.so-hidable-animation-480 {
  transition: height 0.48s ease-in-out, opacity 0.48s ease-in-out, -webkit-transform 0.48s ease-in-out;
  transition: height 0.48s ease-in-out, opacity 0.48s ease-in-out, transform 0.48s ease-in-out;
  transition: height 0.48s ease-in-out, opacity 0.48s ease-in-out, transform 0.48s ease-in-out, -webkit-transform 0.48s ease-in-out;
}
.so-hidable-scale-y {
  -webkit-transform: scaleY(0);
          transform: scaleY(0);
}
.so-hidable-scale-y.so-hidable-show {
  -webkit-transform: scaleY(1);
          transform: scaleY(1);
}
.so-hidable-fade,
.so-hidable-collapse-fade {
  opacity: 0;
}
.so-hidable-fade.so-hidable-show,
.so-hidable-collapse-fade.so-hidable-show {
  opacity: 1;
}
.so-select-rtl .so-hidable-scale-y,
.so-treeSelect-rtl .so-hidable-scale-y {
  -webkit-transform: scaleY(0) translateX(-100%);
          transform: scaleY(0) translateX(-100%);
}
.so-select-rtl .so-hidable-scale-y.so-hidable-show,
.so-treeSelect-rtl .so-hidable-scale-y.so-hidable-show {
  -webkit-transform: scaleY(1) translateX(-100%);
          transform: scaleY(1) translateX(-100%);
}

.so-list {
  display: block;
}
.so-list-absolute-wrapper {
  position: absolute;
  right: 0;
  top: 0;
  left: 0;
}
.so-list-container {
  box-sizing: border-box;
  position: relative;
  margin: 0;
  padding: 0;
  font-size: 12px;
  line-height: 22px;
  list-style: none;
  color: var(--gray-700, #495057);
}
.so-list-container .so-list-item {
  box-sizing: border-box;
  display: block;
  position: relative;
  padding: 12px;
}
.so-list-container .so-list-item:not(:last-child)::after {
  content: "";
  position: absolute;
  bottom: 0px;
  left: 0;
  width: 100%;
  height: var(--list-item-bottom-border-width, 1px);
  background-color: var(--gray-200, #e9ecef);
}
.so-list-container .so-list-item.so-list-checkbox {
  display: flex;
  justify-content: flex-start;
  align-items: center;
}
.so-list-container .so-list-item .so-list-meta-container,
.so-list-container .so-list-item .so-list-meta.so-list-includes {
  box-sizing: border-box;
  display: flex;
  justify-content: flex-start;
}
.so-list-container .so-list-item .so-list-meta-container .so-list-meta-avatar,
.so-list-container .so-list-item .so-list-meta.so-list-includes .so-list-meta-avatar {
  box-sizing: border-box;
  width: 40px;
  height: 40px;
  margin-right: 12px;
  flex: none;
}
.so-list-container .so-list-item .so-list-meta-container .so-list-meta-title,
.so-list-container .so-list-item .so-list-meta.so-list-includes .so-list-meta-title {
  font-weight: 600;
}
.so-list-container .so-list-item .so-list-meta-content {
  box-sizing: border-box;
  padding-top: 12px;
}
.so-list-container.so-list-fixed {
  display: flex;
  flex-direction: column;
  height: auto;
  max-height: 100%;
}
.so-list-container.so-list-fixed .so-list-list {
  flex: 1;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.so-list-container .so-list-list.so-list-empty {
  display: flex;
  height: 100%;
}
.so-list-container .so-list-item.so-list-empty {
  display: flex;
  justify-content: center;
  align-items: center;
  flex: 1;
}
.so-list-container.so-list-bordered {
  border: var(--list-item-bottom-border-width, 1px) solid var(--gray-200, #e9ecef);
  border-radius: 4px;
}
.so-list-container .so-list-footer {
  position: relative;
}
.so-list-container .so-list-footer::before {
  content: "";
  position: absolute;
  top: 0px;
  left: 0;
  width: 100%;
  height: var(--list-item-bottom-border-width, 1px);
  background-color: var(--gray-200, #e9ecef);
}
.so-list-container .so-list-loading {
  position: absolute;
  z-index: 11;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  display: flex;
  overflow: hidden;
  background-color: rgba(255, 255, 255, 0.4);
}
.so-list-base {
  box-sizing: border-box;
  display: flex;
  justify-content: space-between;
}
.so-list-base .so-list-extra {
  display: flex;
  margin-left: 16px;
  align-items: center;
}
.so-list-base .so-list-extra .so-list-split {
  width: var(--list-item-bottom-border-width, 1px);
  height: 16px;
  background-color: var(--gray-200, #e9ecef);
}
.so-list-base .so-button + .so-button {
  margin-left: 0;
}
.so-list-container.so-list-small .so-list-item {
  padding: 8px;
}
.so-list-container.so-list-small .so-list-item .so-list-meta-container .so-list-meta-avatar,
.so-list-container.so-list-small .so-list-item .so-list-meta.so-list-includes .so-list-meta-avatar {
  width: 32px;
  height: 32px;
}
.so-list-container.so-list-large .so-list-item {
  padding: 16px;
}
.so-list-container.so-list-large .so-list-item .so-list-meta-container .so-list-meta-avatar,
.so-list-container.so-list-large .so-list-item .so-list-meta.so-list-includes .so-list-meta-avatar {
  width: 64px;
  height: 64px;
}
.so-list-container.so-list-rtl {
  direction: rtl;
  text-align: right;
}
.so-list-container.so-list-rtl .so-list-item .so-list-meta-container .so-list-meta-avatar {
  margin-right: 0;
  margin-left: 12px;
}

.so-message {
  position: fixed;
  z-index: 1060;
  left: 50%;
  max-width: 50%;
}
@media (max-width: 992px) {
  .so-message {
    max-width: none;
  }
}
@-webkit-keyframes so-message-left-in {
  0% {
    -webkit-transform: translateX(-100%);
            transform: translateX(-100%);
  }
  100% {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
}
@keyframes so-message-left-in {
  0% {
    -webkit-transform: translateX(-100%);
            transform: translateX(-100%);
  }
  100% {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
}
@-webkit-keyframes so-message-right-in {
  0% {
    -webkit-transform: translateX(100%);
            transform: translateX(100%);
  }
  100% {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
}
@keyframes so-message-right-in {
  0% {
    -webkit-transform: translateX(100%);
            transform: translateX(100%);
  }
  100% {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
}
.so-message-top {
  top: 20px;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
}
.so-message-middle {
  top: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
}
.so-message-item {
  display: flex;
  transition: all 0.2s;
  z-index: 1;
}
.so-message-item-show-top,
.so-message-item-show-middle {
  -webkit-animation-name: MoveUpShow;
          animation-name: MoveUpShow;
  -webkit-animation-duration: 0.2s;
          animation-duration: 0.2s;
}
.so-message-item-dismissed-bottom-right {
  opacity: 0;
  z-index: -1;
  -webkit-transform: translateX(100%);
          transform: translateX(100%);
}
.so-message-item-dismissed-bottom-left {
  opacity: 0;
  z-index: -1;
  -webkit-transform: translateX(-100%);
          transform: translateX(-100%);
}
.so-message-msg {
  display: inline-flex;
  margin: 0 auto 20px;
  border-color: var(--message-border-color, var(--gray-200, #e9ecef));
  background: #fff;
  box-shadow: var(--message-box-shadow, 0 6px 12px rgba(0, 0, 0, 0.175));
  color: var(--message-text-color, #333);
  font-weight: var(--message-font-weight, 400);
}
.so-message-top-right,
.so-message-top-bottom {
  right: 20px;
  left: auto;
}
.so-message-top-right .so-message-msg,
.so-message-top-bottom .so-message-msg {
  min-width: 340px;
  padding: 20px;
  -webkit-animation: so-message-right-in 0.2s ease-out;
          animation: so-message-right-in 0.2s ease-out;
}
.so-message-top-right,
.so-message-top-left {
  top: 20px;
}
.so-message-bottom-right,
.so-message-bottom-left {
  top: auto;
  bottom: 0px;
}
.so-message-top-right,
.so-message-bottom-right {
  right: 20px;
  left: auto;
}
.so-message-top-right .so-message-msg,
.so-message-bottom-right .so-message-msg {
  min-width: 340px;
  padding: 20px;
  -webkit-animation: so-message-right-in 0.2s ease-out;
          animation: so-message-right-in 0.2s ease-out;
}
.so-message-top-left,
.so-message-bottom-left {
  left: 20px;
}
.so-message-top-left .so-message-msg,
.so-message-bottom-left .so-message-msg {
  min-width: 340px;
  padding: 20px;
  -webkit-animation: so-message-left-in 0.2s ease-out;
          animation: so-message-left-in 0.2s ease-out;
}
.so-message .so-alert-close svg path {
  fill: var(--message-close-color, rgba(0, 0, 0, 0.3));
}
@-webkit-keyframes MoveUpShow {
  0% {
    -webkit-transform: translateY(-25px);
            transform: translateY(-25px);
    opacity: 0;
  }
  100% {
    -webkit-transform: translateY(0);
            transform: translateY(0);
    opacity: 1;
  }
}
@keyframes MoveUpShow {
  0% {
    -webkit-transform: translateY(-25px);
            transform: translateY(-25px);
    opacity: 0;
  }
  100% {
    -webkit-transform: translateY(0);
            transform: translateY(0);
    opacity: 1;
  }
}

.so-table {
  border-radius: var(--table-border-radius-top, 0) var(--table-border-radius-top, 0) 0 0;
  position: relative;
  display: flex;
  overflow: auto;
  max-width: 100%;
  flex-direction: column;
  margin-bottom: var(--table-margin-bottom, 20px);
}
.so-table:after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 10;
  width: 100%;
  height: 100%;
  background: #fff;
  opacity: 0;
  transition: all 0.3s;
  content: '';
  pointer-events: none;
}
.so-table-sticky {
  overflow: visible;
}
.so-table table {
  min-width: 100%;
  border-collapse: separate;
  border-spacing: 0 var(--table-row-spacing, 0);
  color: var(--table-color, #6c757d);
  table-layout: fixed;
}
.so-table table > thead > tr > th,
.so-table table > tbody > tr > th,
.so-table table > tfoot > tr > th,
.so-table table > thead > tr > td,
.so-table table > tbody > tr > td,
.so-table table > tfoot > tr > td {
  position: relative;
  padding: var(--table-cell-padding-vertical, 8px) var(--table-cell-padding-horizontal, 8px);
  border-bottom: 1px solid var(--table-border-color, #ddd);
  background-clip: padding-box;
  line-height: 1.5;
  word-break: break-all;
}
.so-table table > thead > tr > th:first-child,
.so-table table > tbody > tr > th:first-child,
.so-table table > tfoot > tr > th:first-child,
.so-table table > thead > tr > td:first-child,
.so-table table > tbody > tr > td:first-child,
.so-table table > tfoot > tr > td:first-child {
  border-radius: var(--table-row-border-radius, 0) 0 0 var(--table-row-border-radius, 0);
}
.so-table table > thead > tr > th:last-child,
.so-table table > tbody > tr > th:last-child,
.so-table table > tfoot > tr > th:last-child,
.so-table table > thead > tr > td:last-child,
.so-table table > tbody > tr > td:last-child,
.so-table table > tfoot > tr > td:last-child {
  border-radius: 0 var(--table-row-border-radius, 0) var(--table-row-border-radius, 0) 0;
}
.so-table table > thead > tr > th {
  border-bottom-width: 0;
  background-color: var(--table-head-bg, #fafafa);
  color: var(--table-head-color, #000);
  vertical-align: middle;
  font-weight: var(--table-head-font-weight, bold);
}
.so-table table > thead > tr > th > div.so-table-has-sorter {
  display: flex;
}
.so-table table > thead + tbody > tr:first-child > td {
  border-top: 2px solid var(--table-border-color, #ddd);
}
.so-table table > tbody + tbody {
  border-top: 2px solid var(--table-border-color, #ddd);
}
.so-table table table {
  background-color: #fff;
}
.so-table table > tbody > tr {
  position: relative;
}
.so-table:not(.so-table-bordered) table > thead > tr > th {
  border-top: var(--table-header-top-divider-width, 0) solid var(--table-border-color, #ddd);
}
table tr .so-table-checkbox {
  width: 48px;
  padding-right: 0;
  padding-left: 0;
  text-align: center;
}
table tr .so-table-checkbox label {
  margin-right: 0;
  vertical-align: baseline;
}
table tr .so-table-checkbox i {
  vertical-align: top;
}
.so-table table tr.so-table-selected td {
  background: var(--table-selected-row-bg, #fff);
}
table tr .so-table-placeholder-checkbox {
  width: 48px;
}
.so-table caption {
  padding-top: var(--table-cell-padding-vertical, 8px);
  padding-bottom: var(--table-cell-padding-vertical, 8px);
  color: var(--gray-500, #adb5bd);
  text-align: left;
}
.so-table th {
  text-align: left;
}
.so-table-vertical-top td {
  vertical-align: top;
}
.so-table-vertical-middle td {
  vertical-align: middle;
}
.so-table-sorter-container {
  width: 18px;
  min-width: 18px;
  position: relative;
  -webkit-transform: translateX(6px);
          transform: translateX(6px);
}
.so-table-sorter-asc,
.so-table-sorter-desc {
  position: absolute;
  right: 0;
  width: 18px;
  color: transparent;
}
.so-table-sorter-asc:active,
.so-table-sorter-desc:active,
.so-table-sorter-asc:focus,
.so-table-sorter-desc:focus {
  color: transparent;
}
.so-table-sorter-asc:after,
.so-table-sorter-desc:after {
  position: absolute;
  right: 5px;
  border: solid transparent;
  content: ' ';
}
.so-table-sorter-asc {
  top: 0;
  bottom: 50%;
}
.so-table-sorter-asc:after {
  bottom: 2px;
  border-width: 0 4px 6px 4px;
  border-bottom-color: var(--gray-500, #adb5bd);
}
.so-table-sorter-asc:hover:after {
  border-bottom-color: var(--gray-700, #495057);
}
.so-table-sorter-desc {
  top: 50%;
  bottom: 0;
}
.so-table-sorter-desc:after {
  top: 2px;
  border-width: 6px 4px 0 4px;
  border-top-color: var(--gray-500, #adb5bd);
}
.so-table-sorter-desc:hover:after {
  border-top-color: var(--gray-700, #495057);
}
.so-table-sorter-active.so-table-sorter-asc:after {
  border-bottom-color: var(--primary-color, #3399ff);
}
.so-table-sorter-active.so-table-sorter-desc:after {
  border-top-color: var(--primary-color, #3399ff);
}
th.so-table-center {
  text-align: center;
}
table > thead > tr > th.so-table-condensed {
  padding: var(--table-header-cell-padding, 5px 10px);
}
.so-table-hover table > tbody > tr:hover > td {
  background-color: var(--table-hover-bg, #f5f5f5);
}
.so-table-normal td {
  background-color: var(--table-body-bg, #ffffff);
}
.so-table-small table > thead > tr > th {
  padding: var(--table-header-cell-padding, 5px 10px);
}
.so-table-small table > tbody > tr > td,
.so-table-small table > tfoot > tr > td {
  padding: var(--table-small-cell-padding, var(--table-header-cell-padding, 5px 10px));
}
.so-table-bordered {
  position: relative;
  border-left: 1px solid var(--table-border-color, #ddd);
  border-right: 1px solid var(--table-border-color, #ddd);
  border-bottom: 1px solid var(--table-border-color, #ddd);
  border-top: 1px solid var(--table-border-color, #ddd);
}
.so-table-bordered .so-table-ignore-right-border,
.so-table-bordered so-table-ignore-bottom-border {
  border-right: none;
}
.so-table-bordered .so-table-ignore-right-border:before,
.so-table-bordered so-table-ignore-bottom-border:before {
  display: none;
}
.so-table-bordered .so-table-head table {
  border-bottom-width: 1px;
}
.so-table-bordered table > thead > tr > th,
.so-table-bordered table > tbody > tr > th,
.so-table-bordered table > tfoot > tr > th,
.so-table-bordered table > thead > tr > td,
.so-table-bordered table > tbody > tr > td,
.so-table-bordered table > tfoot > tr > td {
  border-right: 1px solid var(--table-border-color, #ddd);
  border-bottom-width: 1px;
}
.so-table-bordered table > tbody > tr:last-child > td {
  border-bottom-width: 0px;
}
.so-table-bordered table > tbody > tr > td.so-table-ignore-bottom-border {
  border-bottom: none;
}
.so-table-bordered table > thead + tbody > tr:first-child > td {
  border-top-width: 1px;
}
.so-table-bordered .so-table-body table {
  border-top-width: 0;
}
.so-table-bordered .so-table-float-right .so-table-float-left:before {
  bottom: -1px;
}
.so-table-bordered .so-table-float-right .so-table-float-left:after {
  bottom: -1px;
}
.so-table-bordered .so-table-fixed-right,
.so-table-bordered .so-table-fixed-left {
  border-right: 0;
  z-index: 1;
}
.so-table-bordered .so-table-fixed-right:before,
.so-table-bordered .so-table-fixed-left:before {
  bottom: -1px;
  position: absolute;
  content: ' ';
  background: var(--table-border-color, #ddd);
  height: 100%;
  width: 1px;
  top: 0;
  right: 0;
}
.so-table-bordered .so-scroll-y {
  border-left: 1px solid var(--table-border-color, #ddd);
}
.so-table-bordered .so-scroll-x:after {
  position: absolute;
  content: '';
  display: inline-block;
  top: -2px;
  left: 0;
  right: 0;
  height: 1px;
  background: var(--table-border-color, #ddd);
}
table > tbody > tr.so-table-even > td {
  background-color: var(--table-even-td-bgc, #f9f9f9);
}
table > tbody > tr.so-table-odd > td {
  background-color: var(--table-odd-td-bgc, #fff);
}
.so-table-simple-body {
  overflow: auto;
}
.so-table-simple-head.so-table-scroll-y.so-table-head {
  padding-right: 0;
}
.so-table-simple-head.so-table-scroll-y.so-table-head:after {
  display: none;
}
.so-table-head {
  position: relative;
  overflow: hidden;
  flex: 0 0 auto;
  background: var(--table-head-bg, #fafafa);
}
.so-table-head > table {
  border-bottom: 2px solid var(--table-border-color, #ddd);
}
.so-table-empty-head {
  overflow: visible;
}
.so-table .so-table-icon-tree-expand {
  margin-right: var(--table-tree-expand-icon-margin-right, 8px);
  display: inline-block;
  width: 17px;
  height: 17px;
  line-height: 14px;
  text-align: center;
  background: #fff;
  border: 1px solid #e8e8e8;
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
}
.so-table .so-table-icon-tree-expand.so-table-icon-tree-plus:after {
  content: '+';
}
.so-table .so-table-icon-tree-expand.so-table-icon-tree-sub:after {
  content: '-';
}
.so-table-icon-expand-plus,
.so-table-icon-expand-sub {
  position: relative;
  display: block;
  width: 15px;
  height: 15px;
  margin: 2px 0;
  border: solid 1px var(--gray-600, #6c757d);
  background: #fff;
  border-radius: 2px;
  cursor: pointer;
}
.so-table-icon-expand-plus:before,
.so-table-icon-expand-sub:before,
.so-table-icon-expand-plus:after,
.so-table-icon-expand-sub:after {
  position: absolute;
  top: 6px;
  left: 2px;
  width: 9px;
  height: 0px;
  border-width: 0 0 1px 0;
  border-style: solid;
  border-color: inherit;
  content: ' ';
}
.so-table-icon-expand-plus:hover,
.so-table-icon-expand-sub:hover {
  border-color: var(--primary-color, #3399ff);
}
.so-table-icon-expand-plus:hover:before,
.so-table-icon-expand-sub:hover:before,
.so-table-icon-expand-plus:hover:after,
.so-table-icon-expand-sub:hover:after {
  background: var(--primary-color, #3399ff);
}
.so-table-icon-expand-plus:after {
  top: 2px;
  left: 6px;
  width: 0;
  height: 9px;
  border-width: 0 1px 0 0;
}
.so-table-scroll-y.so-table-head {
  padding-right: 16px;
}
.so-table-scroll-y.so-table-head:after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: 16px;
  border-bottom: 2px solid var(--table-border-color, #ddd);
  background-color: var(--table-head-bg, #fafafa);
  content: ' ';
}
.so-table-body {
  min-width: 100%;
  flex: 1;
}
.so-table-scroll-inner {
  min-width: 100%;
}
.so-table-float-left .so-table-fixed-left,
.so-table-float-right .so-table-fixed-right {
  position: relative;
  z-index: 100;
}
.so-table-float-left .so-table-fixed-last:after {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 100%;
  width: 6px;
  background: linear-gradient(to right, var(--table-fixed-start-color, rgba(0, 0, 0, 0.15)), var(--table-fixed-end-color, rgba(0, 0, 0, 0)));
  content: ' ';
}
.so-table-float-left .so-table-fixed-last:before {
  display: none;
}
.so-table-float-right .so-table-fixed-first::after {
  position: absolute;
  top: 0;
  right: 100%;
  bottom: 0;
  width: 6px;
  background: linear-gradient(to left, var(--table-fixed-start-color, rgba(0, 0, 0, 0.15)), var(--table-fixed-end-color, rgba(0, 0, 0, 0)));
  content: ' ';
}
.so-table-fixed-right + .so-table-fixed-right:before {
  width: 0;
}
.so-table-loading {
  position: absolute;
  z-index: 11;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  display: flex;
  overflow: hidden;
  background-color: rgba(255, 255, 255, 0.4);
}
.so-table-empty {
  position: -webkit-sticky;
  position: sticky;
  left: 0;
  display: flex;
  flex: 1;
  padding: 20px;
  color: #aaa;
  font-size: 16px;
  text-align: center;
}
.so-table-empty span {
  display: block;
  margin: auto;
}
.so-table-fixed .so-table-empty {
  border-right-width: 0;
}
.so-table-expand-wrapped {
  display: inline-block;
}
td.so-table-align-center,
th.so-table-align-center {
  text-align: center;
}
td.so-table-align-center > div.so-table-has-sorter,
th.so-table-align-center > div.so-table-has-sorter {
  justify-content: center;
}
td.so-table-align-center .so-table-icon-expand-plus,
td.so-table-align-center .so-table-icon-expand-sub {
  margin: 0 auto;
}
td.so-table-align-right,
th.so-table-align-right {
  text-align: right;
}
td.so-table-align-right > div.so-table-has-sorter,
th.so-table-align-right > div.so-table-has-sorter {
  justify-content: flex-end;
}
td.so-table-align-left,
th.so-table-align-left {
  text-align: left;
}
td.so-table-align-left > div.so-table-has-sorter,
th.so-table-align-left > div.so-table-has-sorter {
  justify-content: flex-start;
}
.so-table-resize-spanner {
  z-index: 12;
  position: absolute;
  right: -2px;
  top: 0;
  bottom: 0;
  width: 3px;
  background: var(--primary-color, #3399ff);
  opacity: 0;
  transition: opacity .3s;
  cursor: ew-resize;
}
.so-table-resize-spanner:after,
.so-table-resize-spanner:before {
  border-width: 3px;
  content: " ";
  position: absolute;
  width: 0;
  height: 0;
  margin: auto;
  bottom: 0;
  top: 0;
}
.so-table-resize-spanner:after {
  border-style: dashed solid dashed dashed;
  border-color: transparent var(--primary-color, #3399ff) transparent transparent;
  right: 4px;
}
.so-table-resize-spanner:before {
  border-style: dashed dashed dashed solid;
  border-color: transparent transparent transparent var(--primary-color, #3399ff);
  left: 4px;
}
.so-table-resize thead tr th:last-child .so-table-resize-spanner {
  display: none;
}
.so-table-resize table.so-table-resizing span.so-table-resize-spanner {
  opacity: 0;
}
.so-table-resize table th.so-table-resizing-item .so-table-resize-spanner {
  opacity: 1;
}
.so-table-resize th:hover .so-table-resize-spanner {
  opacity: 1;
}
.so-table-placeholder-tr td {
  padding-top: 0!important;
  padding-bottom: 0!important;
  border-bottom-width: 0!important;
  line-height: 0!important;
}
.so-table-placeholder-tr td > div {
  height: 0!important;
  overflow: hidden;
}
.so-table td .so-button + .so-button {
  margin-left: 0;
}
.so-table td .so-button:not(:last-child) {
  margin-right: var(--button-margin-left, 12px);
}
.so-table td .so-button-group .so-button:not(:last-child) {
  margin-right: 0;
}
.so-table-select::before {
  content: ' ';
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  border: 1px solid var(--primary-color, #3399ff);
}
.so-table-no-selection *::-moz-selection {
  background-color: transparent;
}
.so-table-no-selection *::selection {
  background-color: transparent;
}

.so-scroll {
  position: relative;
  overflow: hidden;
}
.so-scroll-inner {
  position: relative;
  z-index: 10;
  top: 0;
  left: 0;
  overflow: hidden;
}
.so-scroll-iframe {
  position: absolute;
  z-index: 0;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 0;
  background: transparent;
}
.so-scroll-dragging {
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
}
.so-scroll-bar {
  position: absolute;
  z-index: 90;
  border: 1px solid transparent;
  background: #fafafa;
}
.so-scroll-bar:hover .so-scroll-handle,
.so-scroll-bar.so-scroll-dragging .so-scroll-handle {
  background: rgba(127, 127, 127, 0.9);
}
.so-scroll-bar .so-scroll-handle {
  position: absolute;
  z-index: 2;
  display: none;
  background: rgba(0, 0, 0, 0.3);
  border-radius: 6px;
  cursor: default;
}
.so-scroll-bar .so-scroll-handle:focus {
  background: rgba(127, 127, 127, 0.9);
}
.so-scroll-bar.so-scroll-y {
  top: 0;
  right: 0;
  bottom: 0;
  width: 16px;
  border-width: 0 1px;
}
.so-scroll-bar.so-scroll-y .so-scroll-handle {
  left: 2px;
  width: 10px;
  min-height: 20px;
}
.so-scroll-bar.so-scroll-y.so-scroll-padding-y:after {
  position: absolute;
  z-index: 1;
  top: 100%;
  left: -1px;
  width: 16px;
  height: 16px;
  background: #fafafa;
  content: ' ';
}
.so-scroll-bar.so-scroll-x {
  right: 0;
  bottom: 0;
  left: 0;
  height: 16px;
  border-width: 1px 0;
}
.so-scroll-bar.so-scroll-x .so-scroll-handle {
  top: 2px;
  min-width: 20px;
  height: 10px;
}
.so-scroll-bar.so-scroll-show .so-scroll-handle {
  display: block;
}
.so-scroll-show-x {
  padding-bottom: 16px;
}
.so-scroll-show-x .so-scroll-y {
  bottom: 16px;
}
.so-scroll-show-y {
  padding-right: 16px;
}
.so-scroll-show-y .so-scroll-x {
  right: 16px;
}
.so-scroll-show-x .so-scroll-inner {
  right: 16px;
}
.so-scroll-show-y .so-scroll-inner {
  bottom: 16px;
}
.so-select-rtl .so-scroll-show-y,
.so-menu-rtl .so-scroll-show-y,
.so-input-rtl .so-scroll-show-y,
.so-transfer-rtl .so-scroll-show-y {
  padding-right: 0;
  padding-left: 16px;
}
.so-select-rtl .so-scroll-bar.so-scroll-y,
.so-menu-rtl .so-scroll-bar.so-scroll-y,
.so-input-rtl .so-scroll-bar.so-scroll-y,
.so-transfer-rtl .so-scroll-bar.so-scroll-y {
  right: auto;
  left: 0;
}

.so-pagination {
  font-size: var(--pagination-font-size, 12px);
}
.so-pagination-section {
  display: inline-block;
  margin-right: 8px;
  vertical-align: middle;
}
.so-pagination-section > span {
  color: var(--gray-600, #6c757d);
  line-height: var(--pagination-size, 28px);
}
.so-pagination-section:last-child {
  margin-right: 0;
}
.so-pagination-center {
  text-align: center;
}
.so-pagination-right {
  text-align: right;
}
.so-pagination-small .so-pagination-item {
  min-width: var(--pagination-size-small, 30px);
  height: var(--pagination-size-small, 30px);
  font-size: var(--font-size-small, 12px);
  line-height: var(--pagination-size-small, 30px);
}
.so-pagination-small .so-pagination-arrow {
  padding-top: 1px;
}
.so-pagination-large .so-pagination-item {
  min-width: var(--pagination-size-large, 42px);
  height: var(--pagination-size-large, 42px);
  font-size: var(--font-size-large, 18px);
  line-height: var(--pagination-size-large, 42px);
}
.so-pagination-item {
  position: relative;
  display: inline-block;
  min-width: var(--pagination-size, 28px);
  height: var(--pagination-size, 28px);
  padding: 0 2px;
  margin-right: 8px;
  border: var(--pagination-border-width, 1px) solid #ddd;
  background-color: #fff;
  border-radius: var(--pagination-border-radius, 4px);
  color: var(--gray-600, #6c757d);
  line-height: var(--pagination-size, 28px);
  text-align: center;
  text-decoration: none;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  vertical-align: top;
}
.so-pagination-item:last-child {
  margin-right: 0;
}
.so-pagination-item svg {
  width: 12px;
  height: 12px;
  fill: var(--gray-600, #6c757d);
}
.so-pagination-item[disabled] {
  color: var(--gray-500, #adb5bd);
}
.so-pagination-item[disabled] svg {
  fill: var(--gray-500, #adb5bd);
}
.so-pagination-item:hover {
  border-color: var(--pagination-hover-border, #ddd);
  background: var(--pagination-hover-bg, #f8f9fa);
  color: var(--pagination-hover-color, #3399ff);
}
.so-pagination-item:hover svg {
  fill: var(--pagination-hover-color, #3399ff);
}
.so-pagination-item:active,
.so-pagination-item:focus {
  text-decoration: none;
}
.so-pagination-current[disabled] {
  border-color: var(--primary-color, #3399ff);
  background: var(--primary-color, #3399ff);
  color: #fff;
}
.so-pagination-more-right svg,
.so-pagination-more-left svg {
  opacity: 0;
}
.so-pagination-more-right:before,
.so-pagination-more-left:before {
  position: absolute;
  top: 50%;
  left: 50%;
  content: '\2022\2022\2022';
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
}
.so-pagination-more-right:hover svg,
.so-pagination-more-left:hover svg {
  opacity: 1;
}
.so-pagination-more-right:hover:before,
.so-pagination-more-left:hover:before {
  display: none;
}
.so-pagination-no-border,
.so-pagination-no-border:hover {
  border-color: transparent;
  background: transparent;
}
div.so-pagination-pagesize {
  display: inline-block;
  width: auto;
}
div.so-pagination-pagesize .so-select-result .so-select-ellipsis {
  overflow: unset;
}
div.so-pagination-pagesize .so-select-options {
  width: auto;
}
.so-pagination-simple-span {
  margin-left: 16px;
}
.so-pagination-simple-input input {
  text-align: center;
}
.so-pagination.so-pagination-rtl {
  direction: rtl;
  text-align: right;
}

.so-breadcrumb {
  background-color: transparent;
  border-radius: 4px;
  font-size: 12px;
  list-style: none;
}
.so-breadcrumb-separator {
  margin: 0 8px;
}
.so-breadcrumb a,
.so-breadcrumb b {
  display: inline-block;
}
.so-breadcrumb a {
  color: #3399ff;
}
.so-breadcrumb b {
  font-weight: normal;
}
.so-breadcrumb a:hover {
  color: var(--primary-color, #3399ff);
}
.so-breadcrumb-down {
  display: inline-block;
  width: 10px;
  margin-left: 8px;
}
.so-breadcrumb-dropdown-item a {
  display: block;
  padding: 6px 20px;
  min-width: 100px;
}
.so-breadcrumb-dropdown-item a:hover {
  background: rgba(0, 0, 0, 0.05);
}

.so-icon {
  display: inline-block;
  font-size: inherit;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-style: normal;
  text-rendering: auto;
}
.so-icon-small {
  font-size: 12px;
}
.so-icon-large {
  font-size: 20px;
}
.so-icon-primary {
  color: var(--primary-color, #3399ff);
}
.so-icon-success {
  color: var(--success-color, #00cc66);
}
.so-icon-secondary {
  color: var(--secondary-color, #999999);
}
.so-icon-info {
  color: var(--info-color, #17a2b8);
}
.so-icon-warning {
  color: var(--warning-color, #ff9900);
}
.so-icon-danger {
  color: var(--danger-color, #f85555);
}
.so-icon-svg {
  width: 1em;
  height: 1em;
  vertical-align: -0.15em;
  fill: currentColor;
  overflow: hidden;
}

.so-menu {
  position: relative;
  z-index: 1000;
  height: 100%;
  padding: 0;
  margin: 0;
  background: #fff;
  line-height: 0;
  list-style: none;
  outline: none;
}
.so-menu ul {
  padding: 0;
  margin: 0;
  list-style: none;
}
.so-menu-root {
  box-shadow: none;
}
.so-menu ul.so-menu-root {
  margin-left: -1px;
}
.so-menu-item a {
  display: block;
  color: var(--menu-item-color, #212529);
  white-space: nowrap;
}
.so-menu-item a:focus {
  text-decoration: none;
}
.so-menu-item a:hover {
  color: var(--menu-item-light-hover-color, var(--primary-color, #3399ff));
  background-color: var(--menu-item-light-hover-bgc, transparent);
}
.so-menu-item.so-menu-disabled a {
  color: rgba(0, 0, 0, 0.25);
  cursor: not-allowed;
}
.so-menu-title {
  position: relative;
  height: var(--menu-item-height, 40px);
  padding: 0 20px;
  line-height: var(--menu-item-height, 40px);
  font-size: var(--menu-item-font-size, 14px);
}
.so-menu-has-children > .so-menu-title {
  padding-right: 40px;
}
.so-menu-has-children > .so-menu-title:after {
  position: absolute;
  top: 50%;
  right: 16px;
  -webkit-transform: translateY(-65%) rotate(0deg);
          transform: translateY(-65%) rotate(0deg);
}
.so-menu-highlight > .so-menu-title {
  color: var(--primary-color, #3399ff);
}
.so-menu-list {
  display: none;
}
.so-menu-list .so-menu-has-children.so-menu-open > .so-menu-title:after {
  -webkit-transform: translateY(-65%) rotate(180deg);
          transform: translateY(-65%) rotate(180deg);
}
.so-menu-list .so-menu-has-children.so-menu-open > .so-menu-list {
  display: block;
}
ul.so-menu-root {
  display: block;
}
.so-menu.so-menu-inline {
  border-right: solid 1px #e8e8e8;
}
.so-menu-inline.so-menu-root {
  box-sizing: content-box;
}
.so-menu-inline > .so-menu-item {
  display: block;
}
.so-menu-inline .so-menu-active.so-menu-no-children {
  padding: var(--menu-active-padding-vertical, 0) var(--menu-active-padding-horizontal, 0);
}
.so-menu-inline .so-menu-active.so-menu-no-children > a {
  background: var(--menu-item-active-bg, #3399ff);
  color: var(--menu-item-active-color, #fff);
  border-radius: var(--menu-active-border-radius, 0);
  text-indent: var(--menu-active-padding-horizontal-negative, 0);
}
.so-menu-inline .so-menu-active.so-menu-no-children > a:after {
  position: absolute;
  top: 0;
  right: 0px;
  width: var(--menu-active-bar, 3px);
  height: 100%;
  background: var(--menu-item-active-indicator, var(--primary-color, #3399ff));
  content: ' ';
}
.so-menu-inline .so-menu-active.so-menu-has-children > a {
  color: var(--primary-color, #3399ff);
}
.so-menu-horizontal {
  height: 42px;
  margin-left: 0;
}
.so-menu-horizontal.so-menu-root {
  border-bottom: solid 1px #e8e8e8;
  display: inline-block;
  white-space: nowrap;
  min-width: 100%;
}
.so-menu-horizontal .so-menu-wrapper {
  position: absolute;
  overflow: hidden;
  width: 100%;
}
.so-menu-horizontal.so-menu-has-open .so-menu-wrapper {
  height: 100vh;
}
.so-menu-horizontal:hover .so-menu-bar {
  display: block;
}
.so-menu-horizontal > .so-menu-item {
  position: relative;
  display: inline-block;
}
.so-menu-horizontal > .so-menu-active > a,
.so-menu-horizontal > .so-menu-highlight > a {
  position: relative;
  color: var(--primary-color, #3399ff);
}
.so-menu-horizontal > .so-menu-active > a:before,
.so-menu-horizontal > .so-menu-highlight > a:before {
  position: absolute;
  right: 0;
  bottom: -1px;
  left: 0;
  height: 2px;
  background: var(--primary-color, #3399ff);
  content: ' ';
}
.so-menu-horizontal .so-menu-active.so-menu-no-children > a:after {
  width: 0;
}
.so-menu-horizontal .so-menu-root .so-menu-list {
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 100%;
  padding: 4px 0;
  margin-top: 4px;
  background: #fff;
  border-radius: 4px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}
.so-menu ul.so-menu-horizontal.so-menu-root {
  margin-left: 0;
}
.so-menu-bar {
  display: none;
}
.so-menu-vertical.so-menu-root {
  border-right: solid 1px #e8e8e8;
}
.so-menu-vertical > .so-menu-item {
  position: relative;
}
.so-menu-vertical:hover .so-menu-bar {
  display: block;
}
.so-menu-vertical.so-menu-scroll .so-menu-wrapper {
  position: absolute;
  overflow: hidden;
  min-width: 100%;
  height: 100%;
}
.so-menu-vertical.so-menu-has-open .so-menu-wrapper {
  width: 100vw;
}
.so-menu-vertical .so-menu-root .so-menu-list {
  position: absolute;
  top: 0;
  left: 100%;
  width: auto;
  min-width: auto;
  padding: 4px 0;
  margin-left: 3px;
  background: #fff;
  border-radius: 4px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}
.so-menu-vertical .so-menu-has-children > .so-menu-title:after,
.so-menu-vertical .so-menu-has-children.so-menu-open > .so-menu-title:after {
  -webkit-transform: translateY(-65%) rotate(270deg);
          transform: translateY(-65%) rotate(270deg);
}
.so-menu-vertical .so-menu-root .so-menu-open-up .so-menu-list {
  top: auto;
  bottom: 0;
}
.so-menu-vertical .so-menu-active.so-menu-no-children > a {
  background: var(--menu-item-active-bg, #3399ff);
  color: var(--menu-item-active-color, #fff);
}
.so-menu-vertical .so-menu-in-path.so-menu-has-children > a {
  background: var(--menu-item-active-bg, #3399ff);
  color: var(--menu-item-active-color, #fff);
}
.so-menu-vertical .so-menu-in-path.so-menu-has-children > a::before {
  content: ' ';
  position: absolute;
  right: 0;
  top: 0;
  width: var(--menu-vertical-in-path-bar-width, 4px);
  border-top-left-radius: var(--menu-vertical-in-path-bar-width, 4px);
  border-bottom-left-radius: var(--menu-vertical-in-path-bar-width, 4px);
  height: 100%;
  background-color: var(--menu-item-active-indicator, var(--primary-color, #3399ff));
}
.so-menu-vertical .so-menu-in-path.so-menu-no-children.so-menu-active > a,
.so-menu-vertical .so-menu-in-path.so-menu-has-children.so-menu-active > a {
  background-color: var(--menu-item-has-children-active-bgc, var(--primary-color, #3399ff));
  color: var(--menu-item-has-children-active-color, #fff);
}
.so-menu-dark,
.so-menu-dark .so-menu-list {
  background-color: var(--menu-dark-bg, #001529);
  color: var(--menu-dark-color, #bfbfbf);
}
.so-menu-dark .so-menu-item a {
  color: var(--menu-dark-color, #bfbfbf);
}
.so-menu-dark .so-menu-item a:hover {
  color: var(--menu-item-dark-hover-color, #fff);
  background-color: var(--menu-item-dark-hover-bgc, rgba(51, 153, 255, 0.5));
}
.so-menu-dark.so-menu-horizontal,
.so-menu-dark.so-menu-vertical {
  border-color: var(--menu-dark-bg, #001529);
}
.so-menu-dark.so-menu-horizontal .so-menu-list,
.so-menu-dark.so-menu-vertical .so-menu-list {
  background-color: var(--menu-dark-bg, #001529);
  color: var(--menu-dark-color, #bfbfbf);
}
.so-menu-dark.so-menu-inline .so-menu-active.so-menu-no-children a,
.so-menu-dark.so-menu-vertical .so-menu-active.so-menu-no-children a,
.so-menu-dark.so-menu-horizontal .so-menu-active.so-menu-no-children a {
  background: var(--menu-dark-acitve-bg, #3399ff);
  color: #fff;
}
.so-menu-dark.so-menu-inline .so-menu-active.so-menu-no-children a:after,
.so-menu-dark.so-menu-vertical .so-menu-active.so-menu-no-children a:after,
.so-menu-dark.so-menu-horizontal .so-menu-active.so-menu-no-children a:after,
.so-menu-dark.so-menu-inline .so-menu-active.so-menu-no-children aafter:before,
.so-menu-dark.so-menu-vertical .so-menu-active.so-menu-no-children aafter:before,
.so-menu-dark.so-menu-horizontal .so-menu-active.so-menu-no-children aafter:before {
  width: 0;
  height: 0;
}
.so-menu-dark.so-menu-inline .so-menu-active > a,
.so-menu-dark.so-menu-vertical .so-menu-active > a,
.so-menu-dark.so-menu-horizontal .so-menu-active > a,
.so-menu-dark.so-menu-inline .so-menu-highlight > a,
.so-menu-dark.so-menu-vertical .so-menu-highlight > a,
.so-menu-dark.so-menu-horizontal .so-menu-highlight > a {
  color: #fff;
}
.so-menu-dark .so-menu-submenu-title:hover {
  color: #fff;
}
.so-menu-dark .so-menu-submenu-title:hover > a {
  color: #fff;
}
.so-menu-dark:not(.so-menu-horizontal) .so-menu-has-children.so-menu-in-path > a:before {
  content: ' ';
  position: absolute;
  left: 0;
  top: 0;
  width: var(--menu-active-bar, 3px);
  height: 100%;
  background-color: var(--menu-dark-item-active-indicator, var(--primary-color, #3399ff));
}
.so-menu-dark.so-menu-vertical ul.so-menu-root {
  margin-left: 0;
  border-right: none;
}
.so-menu-dark.so-menu-vertical ul.so-menu-root > li.so-menu-item > a:hover {
  background-color: var(--menu-item-dark-hover-bgc, rgba(51, 153, 255, 0.5));
}
.so-menu-dark.so-menu-vertical ul.so-menu-root > .so-menu-item:not(.so-menu-in-path) > a {
  background-color: var(--menu-root-node-bgc, transparent);
}
.so-menu-dark.so-menu-vertical .so-menu-has-children .so-menu-title::after {
  right: 18px;
}
.so-menu-dark.so-menu-vertical .so-menu-in-path.so-menu-has-children > a {
  background-color: var(--menu-vertical-dark-parent-active-bgc, #020B18);
  color: #fff;
}
.so-menu-dark.so-menu-vertical .so-menu-in-path.so-menu-has-children > a::before {
  width: var(--menu-vertical-in-path-bar-width, 4px);
  right: auto;
  left: 0;
  border-top-right-radius: var(--menu-vertical-in-path-bar-width, 4px);
  border-bottom-right-radius: var(--menu-vertical-in-path-bar-width, 4px);
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}
.so-menu-dark.so-menu-vertical .so-menu-in-path.so-menu-has-children.so-menu-active > a {
  background: var(--menu-dark-acitve-bg, #3399ff);
  color: #fff;
}
.so-menu-dark.so-menu-vertical .so-menu-item > a {
  background-color: var(--menu-root-node-bgc, transparent);
}
.so-menu-dark ul.so-menu-root > li.so-menu-item > a {
  background-color: var(--menu-root-node-bgc, transparent);
}
.so-menu-dark ul.so-menu-root > li.so-menu-item > a:hover {
  background-color: var(--menu-item-dark-hover-bgc, rgba(51, 153, 255, 0.5));
}
.so-menu-dark ul.so-menu-root > li.so-menu-item > ul {
  border-top: 1px solid var(--menu-children-segmentation, transparent);
}
.so-menu-dark.so-menu .so-menu-caret-solid .so-menu-title > .so-menu-caret.so-menu-has-childs {
  border-top-color: var(--menu-dark-color, #bfbfbf);
}
.so-menu-dark.so-menu .so-menu-caret-solid .so-menu-title:hover > .so-menu-caret.so-menu-has-childs {
  border-top-color: var(--menu-item-dark-hover-color, #fff);
}
.so-menu .so-menu-has-children.so-menu-caret-solid.so-menu-open > .so-menu-title .so-menu-caret {
  -webkit-transform: rotate(180deg);
          transform: rotate(180deg);
  -webkit-transform-origin: 50% 37.5%;
          transform-origin: 50% 37.5%;
}
.so-menu .so-menu-has-children.so-menu-caret-solid > .so-menu-title:after {
  content: none;
}
.so-menu .so-menu-has-children.so-menu-caret-solid > .so-menu-title {
  padding-right: 20px;
}
.so-menu .so-menu-caret-solid .so-menu-title > .so-menu-caret {
  position: relative;
  width: 0;
  height: 0;
  border: 4px solid transparent;
  border-top: 4px solid transparent;
  display: inline-block;
  -webkit-transform: translateY(25%);
          transform: translateY(25%);
  margin-right: 8px;
}
.so-menu .so-menu-caret-solid .so-menu-title > .so-menu-caret.so-menu-has-childs {
  border-top-color: var(--menu-item-color, #212529);
}
.so-menu .so-menu-caret-solid .so-menu-title:hover > .so-menu-caret.so-menu-has-childs {
  border-top-color: var(--menu-item-light-hover-color, var(--primary-color, #3399ff));
}
.so-menu.so-menu-rtl {
  direction: rtl;
  text-align: right;
}
.so-menu.so-menu-rtl:not(.so-menu-horizontal) .so-menu-active.so-menu-no-children a:before {
  position: absolute;
  top: 0;
  left: 0px;
  width: 3px;
  height: 100%;
  background: var(--primary-color, #3399ff);
  content: ' ';
}
.so-menu.so-menu-rtl:not(.so-menu-horizontal) .so-menu-active.so-menu-no-children a:after {
  content: none;
}
.so-menu.so-menu-rtl .so-menu-has-children:not(.so-menu-caret-solid) > .so-menu-title {
  padding-left: 40px;
  padding-right: 20px;
}
.so-menu.so-menu-rtl .so-menu-has-children:not(.so-menu-caret-solid) > .so-menu-title:after {
  right: auto;
  left: 16px;
}
.so-menu.so-menu-rtl .so-menu-has-children:not(.so-menu-caret-solid) > .so-menu-title:before {
  left: auto;
  right: 0;
}
.so-menu.so-menu-rtl .so-menu-has-children.so-menu-open > .so-menu-title:after {
  -webkit-transform: translateY(-65%) rotate(180deg);
          transform: translateY(-65%) rotate(180deg);
}
.so-menu.so-menu-rtl .so-menu-has-children.so-menu-caret-solid > .so-menu-title .so-menu-caret {
  margin-right: 0;
  margin-left: 8px;
}
.so-menu.so-menu-rtl.so-menu-vertical .so-menu-root .so-menu-list.so-menu-vertical {
  left: auto;
  right: 100%;
  margin-left: 0;
  margin-right: 3px;
}

.so-checkinput {
  color: var(--checkinput-color, var(--gray-900, #212529));
  position: relative;
  display: inline-block;
  margin-right: var(--checkbox-margin-right, 24px);
  margin-bottom: 0;
  cursor: pointer;
  vertical-align: middle;
}
.so-checkinput input[type='checkbox'],
.so-checkinput input[type='radio'] {
  position: absolute;
  top: 0;
  left: 0;
  clip: rect(0, 0, 0, 0);
  visibility: hidden;
}
@-webkit-keyframes so-checkinput-focus {
  0% {
    box-shadow: 0 0 0 0 var(--primary-color-fade-50, rgba(51, 153, 255, 0.5));
  }
  50% {
    box-shadow: 0 0 0 4px var(--primary-color-fade-0, rgba(51, 153, 255, 0));
  }
  100% {
    box-shadow: 0 0 0 8px var(--primary-color-fade-0, rgba(51, 153, 255, 0));
  }
}
@keyframes so-checkinput-focus {
  0% {
    box-shadow: 0 0 0 0 var(--primary-color-fade-50, rgba(51, 153, 255, 0.5));
  }
  50% {
    box-shadow: 0 0 0 4px var(--primary-color-fade-0, rgba(51, 153, 255, 0));
  }
  100% {
    box-shadow: 0 0 0 8px var(--primary-color-fade-0, rgba(51, 153, 255, 0));
  }
}
.so-checkinput-button > .so-checkinput.so-checkinput-disabled.so-checkinput {
  background: var(--button-disabled-bg, #f5f5f5);
  color: var(--button-disabled-color, rgba(0, 0, 0, 0.45));
}
.so-checkinput-button > .so-checkinput.so-checkinput-disabled.so-checkinput:hover {
  background: var(--button-disabled-bg, #f5f5f5);
  color: var(--button-disabled-color, rgba(0, 0, 0, 0.45));
}
.so-checkinput-button > .so-checkinput.so-checkinput-disabled.so-checkinput:not(:first-child)::before {
  background-color: var(--button-disabled-delimiter, #d9d9d9);
}
.so-checkinput-button > .so-checkinput.so-checkinput-disabled.so-checkinput:not(:last-child)::after {
  background-color: var(--button-disabled-delimiter, #d9d9d9);
}
.so-checkinput-button.so-checkinput-small .so-checkinput {
  padding: var(--button-padding-small-vertical, 5px) var(--button-padding-small-horizontal, 10px);
  border-radius: 0px;
  font-size: var(--button-font-size-small, var(--font-size-small, 12px));
  line-height: 1.5;
}
.so-checkinput-button.so-checkinput-large .so-checkinput {
  padding: var(--button-padding-large-vertical, 8px) var(--button-padding-large-horizontal, 16px);
  border-radius: 0px;
  font-size: var(--button-font-size-large, var(--font-size-large, 18px));
  line-height: 1.5;
}
.so-checkinput-button .so-checkinput {
  position: relative;
  margin-right: 0;
  border: 1px solid var(--gray-300, #dee2e6);
  font-weight: normal;
  outline: none;
  text-align: center;
  touch-action: manipulation;
  vertical-align: middle;
  white-space: nowrap;
  box-sizing: border-box;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  padding: var(--button-padding-base-vertical, 6px) var(--button-padding-base-horizontal, 12px);
  border-radius: var(--button-border-radius, 3px);
  font-size: var(--button-font-size-base, 12px);
  line-height: 1.5;
  border-color: var(--gray-300, #dee2e6);
  background-color: #fff;
  color: var(--button-default-text-color, #333);
  fill: var(--button-default-text-color, #333);
  transition: all 0.15s ease-in-out;
  border-radius: 0px;
}
.so-checkinput-button .so-checkinput:focus,
.so-checkinput-button .so-checkinput:hover,
.so-checkinput-button .so-checkinput:active {
  border-color: var(--primary-color, #3399ff);
  color: var(--primary-color, #3399ff);
}
.so-checkinput-button .so-checkinput:focus .so-checkinput-desc,
.so-checkinput-button .so-checkinput:hover .so-checkinput-desc,
.so-checkinput-button .so-checkinput:active .so-checkinput-desc {
  color: inherit;
}
.so-checkinput-button .so-checkinput:active {
  background-image: none;
}
.so-checkinput-button .so-checkinput[disabled]:hover,
fieldset[disabled] .so-checkinput-button .so-checkinput:hover,
.so-checkinput-button .so-checkinput[disabled]:focus,
fieldset[disabled] .so-checkinput-button .so-checkinput:focus {
  border-color: var(--gray-300, #dee2e6);
  background-color: #fff;
}
.so-checkinput-button .so-checkinput[disabled]:active,
fieldset[disabled] .so-checkinput-button .so-checkinput:active {
  -webkit-animation: none;
          animation: none;
}
.so-checkinput-button .so-checkinput > .so-checkinput-indicator,
.so-checkinput-button .so-checkinput > input {
  display: none;
}
.so-checkinput-button .so-checkinput:not(:first-child) {
  border-left-width: 0px;
}
.so-checkinput-button .so-checkinput:not(:first-child):before {
  position: absolute;
  top: -1px;
  left: -1px;
  display: block;
  box-sizing: content-box;
  width: 1px;
  height: 100%;
  padding: 1px 0;
  background-color: var(--gray-300, #dee2e6);
  content: '';
  transition: background-color 0.15s ease-in-out;
}
.so-checkinput-button .so-checkinput:not(:last-child)::after {
  position: absolute;
  top: -1px;
  right: -1px;
  display: block;
  box-sizing: content-box;
  width: 1px;
  height: 100%;
  padding: 1px 0;
  background-color: transparent;
  content: '';
  z-index: 100;
  transition: background-color 0.15s ease-in-out;
}
.so-checkinput-button .so-checkinput:hover:not(.so-checkinput-disabled)::before,
.so-checkinput-button .so-checkinput:active:not(.so-checkinput-disabled)::before,
.so-checkinput-button .so-checkinput:focus:not(.so-checkinput-disabled)::before {
  background-color: var(--primary-color, #3399ff);
}
.so-checkinput-button .so-checkinput:hover:not(.so-checkinput-disabled):not(:last-child)::after,
.so-checkinput-button .so-checkinput:focus:not(.so-checkinput-disabled):not(:last-child)::after,
.so-checkinput-button .so-checkinput:active:not(.so-checkinput-disabled):not(:last-child)::after {
  background-color: var(--primary-color, #3399ff);
}
.so-checkinput-button .so-checkinput.so-checkinput-radio {
  border-color: var(--radio-button-group-border-color, var(--gray-300, #dee2e6));
  background-color: var(--radio-button-group-bgc, #fff);
  color: var(--radio-button-group-color, var(--button-default-text-color, #333));
  fill: var(--radio-button-group-color, var(--button-default-text-color, #333));
  transition: all 0.15s ease-in-out;
}
.so-checkinput-button .so-checkinput.so-checkinput-radio:focus,
.so-checkinput-button .so-checkinput.so-checkinput-radio:hover {
  color: var(--radio-button-group-color, var(--button-default-text-color, #333));
}
.so-checkinput-button .so-checkinput.so-checkinput-radio:active {
  -webkit-animation: btn-focus-default 0.4s ease-out;
          animation: btn-focus-default 0.4s ease-out;
  color: var(--radio-button-group-color, var(--button-default-text-color, #333));
}
.so-checkinput-button .so-checkinput.so-checkinput-radio:active {
  background-image: none;
}
.so-checkinput-button .so-checkinput.so-checkinput-radio[disabled]:hover,
fieldset[disabled] .so-checkinput-button .so-checkinput.so-checkinput-radio:hover,
.so-checkinput-button .so-checkinput.so-checkinput-radio[disabled]:focus,
fieldset[disabled] .so-checkinput-button .so-checkinput.so-checkinput-radio:focus {
  border-color: var(--radio-button-group-border-color, var(--gray-300, #dee2e6));
  background-color: var(--radio-button-group-bgc, #fff);
}
.so-checkinput-button .so-checkinput.so-checkinput-radio[disabled]:active,
fieldset[disabled] .so-checkinput-button .so-checkinput.so-checkinput-radio:active {
  -webkit-animation: none;
          animation: none;
}
.so-checkinput-button .so-checkinput.so-checkinput-checked {
  border-color: transparent;
  background-color: var(--primary-color, #3399ff);
  color: #fff;
  fill: #fff;
  transition: all 0.15s ease-in-out;
}
.so-checkinput-button .so-checkinput.so-checkinput-checked:not(.so-checkinput-disabled) {
  z-index: 1;
}
.so-checkinput-button .so-checkinput.so-checkinput-checked:focus,
.so-checkinput-button .so-checkinput.so-checkinput-checked:hover {
  background-color: var(--primary-color-dark-btn-hover, #007fff);
  color: #fff;
}
.so-checkinput-button .so-checkinput.so-checkinput-checked:active {
  -webkit-animation: btn-focus-primary 0.4s ease-out;
          animation: btn-focus-primary 0.4s ease-out;
  background-color: var(--primary-color-dark-btn-hover, #007fff);
  color: #fff;
}
.so-checkinput-button .so-checkinput.so-checkinput-checked:active {
  background-image: none;
}
.so-checkinput-button .so-checkinput.so-checkinput-checked[disabled]:hover,
fieldset[disabled] .so-checkinput-button .so-checkinput.so-checkinput-checked:hover,
.so-checkinput-button .so-checkinput.so-checkinput-checked[disabled]:focus,
fieldset[disabled] .so-checkinput-button .so-checkinput.so-checkinput-checked:focus {
  border-color: transparent;
  background-color: var(--primary-color, #3399ff);
}
.so-checkinput-button .so-checkinput.so-checkinput-checked[disabled]:active,
fieldset[disabled] .so-checkinput-button .so-checkinput.so-checkinput-checked:active {
  -webkit-animation: none;
          animation: none;
}
.so-checkinput-button .so-checkinput.so-checkinput-checked[disabled]:hover,
fieldset[disabled] .so-checkinput-button .so-checkinput.so-checkinput-checked:hover,
.so-checkinput-button .so-checkinput.so-checkinput-checked[disabled]:focus,
fieldset[disabled] .so-checkinput-button .so-checkinput.so-checkinput-checked:focus {
  background: var(--button-disabled-bg, #f5f5f5);
  color: var(--button-disabled-color, rgba(0, 0, 0, 0.45));
}
.so-checkinput-button .so-checkinput.so-checkinput-checked[disabled]:active,
fieldset[disabled] .so-checkinput-button .so-checkinput.so-checkinput-checked:active {
  -webkit-animation: none;
          animation: none;
}
.so-checkinput-button .so-checkinput.so-checkinput-checked:before {
  background: var(--primary-color, #3399ff);
}
.so-checkinput-button .so-checkinput.so-checkinput-checked .so-checkinput-desc {
  color: #fff;
}
.so-checkinput-button .so-checkinput:first-child {
  border-top-left-radius: var(--radio-button-group-border-radius, var(--button-border-radius, 3px));
  border-bottom-left-radius: var(--radio-button-group-border-radius, var(--button-border-radius, 3px));
}
.so-checkinput-button .so-checkinput:last-child {
  border-top-right-radius: var(--radio-button-group-border-radius, var(--button-border-radius, 3px));
  border-bottom-right-radius: var(--radio-button-group-border-radius, var(--button-border-radius, 3px));
}
.so-checkinput-button.so-checkinput-outline .so-checkinput.so-checkinput-checked {
  border-color: var(--primary-color, #3399ff);
  background-color: #fff;
  color: var(--primary-color, #3399ff);
  border-right-width: 1px;
}
.so-checkinput-button.so-checkinput-outline .so-checkinput.so-checkinput-checked:hover,
.so-checkinput-button.so-checkinput-outline .so-checkinput.so-checkinput-checked:active,
.so-checkinput-button.so-checkinput-outline .so-checkinput.so-checkinput-checked:focus {
  border-color: var(--primary-color, #3399ff);
  background-color: #fff;
  color: var(--primary-color, #3399ff);
}
.so-checkinput-button.so-checkinput-outline .so-checkinput.so-checkinput-checked .so-checkinput-desc {
  color: var(--primary-color, #3399ff);
}
.so-checkinput-button.so-checkinput-group span {
  vertical-align: baseline;
}
.so-checkinput-switch {
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  text-align: center;
  margin: 8px 0;
  min-width: 44px;
  height: var(--switch-bg-height, 16px);
  line-height: var(--switch-bg-height, 16px);
  border-radius: 22px;
  padding-left: var(--switch-indicator-size, 24px);
  padding-right: 4px;
  background: var(--switch-unchecked-bg, #ced4da);
  position: relative;
  transition: all 0.36s cubic-bezier(0.78, 0.14, 0.15, 0.86);
}
.so-checkinput-switch input {
  width: 0;
  height: 0;
}
.so-checkinput-switch .so-checkinput-indicator {
  display: none;
}
.so-checkinput-switch-indicator {
  position: absolute;
  left: var(--switch-indicator-padding-horizontal, 0px);
  transition: all 0.36s cubic-bezier(0.78, 0.14, 0.15, 0.86);
  width: var(--switch-indicator-size, 24px);
  height: var(--switch-indicator-size, 24px);
  top: var(--switch-indicator-top, -4px);
  background: #fff;
  display: inline-block;
  border-radius: 50%;
  box-shadow: 0 1px 4px var(--gray-500, #adb5bd);
}
.so-checkinput-switch-children {
  font-size: 12px;
  color: #fff;
  padding: 0 4px;
}
.so-checkinput-checked.so-checkinput-switch {
  padding-right: var(--switch-indicator-size, 24px);
  padding-left: 4px;
  background: var(--switch-checked-bg, var(--primary-color-fade-50, rgba(51, 153, 255, 0.5)));
}
.so-checkinput-checked.so-checkinput-switch .so-checkinput-switch-indicator {
  box-shadow: var(--switch-checked-box-shadow, 0 1px 4px var(--primary-color-fade-50, rgba(51, 153, 255, 0.5)));
  left: 100%;
  margin-left: var(--switch-indicator-padding-horizontal-negative, 0px);
  -webkit-transform: translateX(-100%);
          transform: translateX(-100%);
  background: var(--switch-indicator-checked-bg, var(--primary-color, #3399ff));
}
.so-checkinput-checked.so-checkinput-small.so-checkinput-switch {
  padding-left: 0;
  padding-right: var(--switch-small-indicator-size, 16px);
}
.so-checkinput-checked.so-checkinput-large.so-checkinput-switch {
  padding-left: 0;
  padding-right: var(--switch-large-indicator-size, 32px);
}
.so-checkinput-small.so-checkinput-switch {
  min-width: 28px;
  height: var(--switch-small-bg-height, 10px);
  line-height: var(--switch-small-bg-height, 10px);
  border-radius: 14px;
  padding-left: var(--switch-small-indicator-size, 16px);
  padding-right: 0;
}
.so-checkinput-small.so-checkinput-switch .so-checkinput-switch-indicator {
  width: var(--switch-small-indicator-size, 16px);
  height: var(--switch-small-indicator-size, 16px);
  top: var(--switch-small-indicator-top, -3px);
  padding-left: 8px;
  padding-right: 8px;
}
.so-checkinput-large.so-checkinput-switch {
  min-width: 60px;
  height: var(--switch-large-bg-height, 22px);
  line-height: var(--switch-large-bg-height, 22px);
  border-radius: 30px;
  padding-left: var(--switch-large-indicator-size, 32px);
  padding-right: 0;
}
.so-checkinput-large.so-checkinput-switch .so-checkinput-switch-indicator {
  width: var(--switch-large-indicator-size, 32px);
  height: var(--switch-large-indicator-size, 32px);
  top: var(--switch-large-indicator-top, -5px);
}
.so-checkinput-disabled.so-checkinput-switch {
  opacity: .4;
}
.so-checkinput-checked i.so-checkinput-indicator,
.so-checkinput-indeterminate i.so-checkinput-indicator {
  -webkit-animation: so-checkinput-focus 0.6s ease-out;
          animation: so-checkinput-focus 0.6s ease-out;
}
i.so-checkinput-indicator {
  position: relative;
  display: inline-block;
  overflow: hidden;
  width: 16px;
  height: 16px;
  border: solid var(--checkbox-border-width, 1px) var(--checkbox-border-color, #ced4da);
  border-radius: var(--checkbox-indicator-border-radius, 2px);
  vertical-align: middle;
}
i.so-checkinput-indicator + span {
  padding: 0 8px;
  vertical-align: middle;
}
i.so-checkinput-indicator:after {
  position: absolute;
  z-index: 10;
  display: block;
  content: ' ';
}
i.so-checkinput-indicator.so-checkinput-radio {
  background-color: #fff;
}
i.so-checkinput-indicator.so-checkinput-checkbox + span {
  padding: 0 var(--checkbox-text-padding-x, 8px);
}
i.so-checkinput-checkbox.so-checkinput-indicator {
  background: #fff;
}
i.so-checkinput-checkbox.so-checkinput-indicator:after {
  top: 50%;
  left: 50%;
  width: 10px;
  height: 5px;
  border: solid 2px transparent;
  border-width: 0 0 2px 2px;
}
.so-checkinput:not(.so-checkinput-checked) i.so-checkinput-radio.so-checkinput-indicator {
  border-width: var(--radio-border-uncheck-width, 1px);
}
i.so-checkinput-radio.so-checkinput-indicator {
  border-radius: 50%;
  display: inline-flex;
  width: var(--radio-width, 16px);
  height: var(--radio-width, 16px);
  border-width: var(--radio-border-width, 1px);
}
i.so-checkinput-radio.so-checkinput-indicator:after {
  margin: auto;
  position: static;
  width: var(--radio-inner-width, 8px);
  height: var(--radio-inner-width, 8px);
  border-radius: 50%;
}
.so-checkinput .so-checkinput-text {
  display: inline-block;
  width: auto;
}
.so-checkinput-group {
  padding: 6px 0;
}
.so-checkinput-block .so-checkinput {
  display: block;
  margin-bottom: 8px;
}
.so-checkinput-no-block .so-checkinput {
  display: inline-block;
  margin-bottom: 0;
}
.so-checkinput:focus {
  outline: none;
}
.so-checkinput:focus i.so-checkinput-indicator {
  box-shadow: 0 0 0 var(--input-focus-width, 3px) var(--input-border-focus-color-fade-25, rgba(128, 189, 255, 0.25));
}
.so-checkinput:hover i.so-checkinput-indicator,
.so-checkinput:focus i.so-checkinput-indicator {
  border-color: var(--primary-color, #3399ff);
}
.so-checkinput-checked i.so-checkinput-checkbox.so-checkinput-indicator {
  border-color: var(--primary-color, #3399ff);
  background: var(--primary-color, #3399ff);
}
.so-checkinput-checked i.so-checkinput-checkbox.so-checkinput-indicator:after {
  border-color: #fff;
  -webkit-transform: translate(-50%, -65%) rotate(-45deg);
          transform: translate(-50%, -65%) rotate(-45deg);
}
.so-checkinput-checked i.so-checkinput-radio.so-checkinput-indicator {
  border-color: var(--primary-color, #3399ff);
}
.so-checkinput-checked i.so-checkinput-radio.so-checkinput-indicator:after {
  background: var(--primary-color, #3399ff);
}
.so-checkinput-indeterminate i.so-checkinput-indicator {
  border-color: var(--primary-color, #3399ff);
  background: var(--primary-color, #3399ff);
}
.so-checkinput-indeterminate i.so-checkinput-indicator:after {
  border-color: #fff;
  border-left-width: 0;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  height: 2px;
}
.so-checkinput-disabled {
  cursor: not-allowed;
}
.so-checkinput-disabled i.so-checkinput-indicator,
.so-checkinput-disabled:hover i.so-checkinput-indicator,
.so-checkinput-disable:focus i.so-checkinput-indicator,
.so-checkinput-disabled.so-checkinput-checked i.so-checkinput-indicator {
  border-color: var(--checkbox-border-color, #ced4da);
  box-shadow: none;
  background-color: var(--checkbox-disabled-bgc, #E8EBF0);
}
.so-checkinput-disabled.so-checkinput-checked i.so-checkinput-indicator.so-checkinput-checkbox,
.so-checkinput-disabled.so-checkinput-indeterminate i.so-checkinput-indicator.so-checkinput-checkbox {
  border-color: var(--checkbox-border-color, #ced4da);
  background-color: var(--checkbox-border-color, #ced4da);
}
.so-checkinput-disabled.so-checkinput-checked i.so-checkinput-indicator.so-checkinput-checkbox::after,
.so-checkinput-disabled.so-checkinput-indeterminate i.so-checkinput-indicator.so-checkinput-checkbox::after {
  border-color: #fff;
}
.so-checkinput-disabled.so-checkinput-checked i.so-checkinput-radio:after {
  background-color: var(--gray-500, #adb5bd);
}
.so-checkinput-disabled.so-checkinput-checked i.so-checkinput-indicator:after,
.so-checkinput-disabled.so-checkinput-indeterminate i.so-checkinput-indicator:after {
  border-color: var(--checkbox-border-color, #ced4da);
}
.so-checkinput-radio-container:not(.so-checkinput-disabled) .so-checkinput-desc {
  color: var(--radio-text-color, var(--checkinput-color, var(--gray-900, #212529)));
}
.so-checkinput-rtl {
  direction: rtl;
  text-align: right;
}
.so-checkinput-rtl.so-checkinput-group.so-checkinput-button {
  direction: ltr;
  text-align: left;
}
.so-checkinput-rtl.so-checkinput-group.so-checkinput-button .so-checkinput-radio-container {
  margin-left: 0;
}
.so-checkinput-rtl.so-checkinput-radio-container,
.so-checkinput-rtl.so-checkinput-checkbox-container {
  margin-right: 0;
  margin-left: var(--checkbox-margin-right, 24px);
}

.so-form {
  position: relative;
}
.so-form-item {
  display: flex;
  align-items: flex-start;
  margin-bottom: var(--form-item-margin-bottom, 20px);
}
.so-form-item.so-form-label-vertical-align-middle {
  align-items: center;
}
.so-form-item.so-form-label-vertical-align-middle .so-form-label {
  margin-top: 0;
  line-height: 1;
  padding: 0;
}
.so-form-item.so-form-label-vertical-align-bottom {
  align-items: flex-end;
}
.so-form-item .so-form-label {
  display: inline-block;
  width: 140px;
  padding: 6px 6px;
  word-break: break-word;
}
.so-form-item.so-form-required .so-form-label:before {
  margin-right: 4px;
  color: var(--danger-color, #f85555);
  content: '*';
  font-family: SimSun;
}
.so-form-item:not(.so-form-label-align-top) .so-form-label {
  text-align: var(--form-item-label-align, 'left');
}
.so-form-item .so-form-control {
  flex: 1;
  padding: 0 6px;
}
.so-form-item .so-form-control:first-child {
  padding-left: 0;
}
.so-form .so-form-tip,
.so-form .so-form-error {
  margin-top: 5px;
  margin-bottom: 8px;
  color: var(--form-tip-color, #7e8b98);
  font-size: var(--form-tip-font-size, 13px);
}
.so-form .so-form-error {
  color: var(--danger-color, #f85555);
}
.so-form .so-form-error + .so-form-tip {
  display: none;
}
.so-form-item.so-form-label-align-right .so-form-label {
  text-align: right;
}
.so-form-item.so-form-label-align-left .so-form-label {
  text-align: left;
}
.so-form-label-align-top {
  display: block;
  width: 100%;
}
.so-form-label-align-top .so-form-label {
  width: 100%;
  padding: 0;
  margin-bottom: 6px;
}
.so-form-label-align-top .so-form-control {
  padding: 0;
}
.so-form-inline .so-input {
  display: inline-flex;
  width: auto;
  vertical-align: top;
}
.so-form-inline > .so-input {
  margin-right: var(--form-item-margin-right, 20px);
}
.so-form-inline .so-input-group {
  display: inline-flex;
}
.so-form-inline .so-form-item {
  display: inline-flex;
  margin-right: var(--form-item-margin-right, 20px);
  vertical-align: top;
}
.so-form-inline .so-form-item.so-form-label-vertical-align-middle .so-form-label {
  margin-top: 0;
}
.so-form-inline .so-form-item .so-form-label {
  width: auto;
  padding: 0;
  margin-top: 8px;
  margin-right: 12px;
}
.so-form-inline .so-form-item .so-input {
  margin-right: 0;
}
.so-form-inline .so-form-item .so-form-control {
  display: inline-block;
  padding: 0;
}
.so-form-inline > * {
  margin-bottom: 12px;
}
.so-form-disabled .so-input,
.so-form-disabled .so-input:hover,
.so-form-disabled .so-input input {
  border-color: var(--input-border-color, #ced4da);
  background-color: var(--input-bg-disabled, #e9ecef);
  cursor: not-allowed;
  color: var(--input-disabled-color, #999DA8);
}
.so-form-disabled .so-input .so-input-disabled:hover,
.so-form-disabled .so-input input {
  background: transparent;
}
.so-form.so-form-rtl {
  direction: rtl;
  text-align: right;
}
.so-form.so-form-rtl .so-form-item .so-form-label,
.so-form.so-form-rtl .so-form-align-right .so-form-label {
  text-align: left;
}
.so-form.so-form-rtl.so-form-inline .so-form-item {
  margin-right: 0;
  margin-left: var(--form-item-margin-right, 20px);
}
.so-form.so-form-rtl.so-form-inline .so-form-item .so-form-label {
  margin-right: 0;
  margin-left: 12px;
}
.so-form.so-form-rtl.so-form-inline > .so-input {
  margin-right: 0;
  margin-left: var(--form-item-margin-right, 20px);
}
.so-form.so-form-rtl .so-button + .so-button {
  margin-left: 0;
  margin-right: var(--button-margin-left, 12px);
}
.so-form.so-form-rtl .so-upload .so-upload-image-item {
  margin-right: 0;
  margin-left: 12px;
}
.so-input {
  position: relative;
  display: flex;
  width: 100%;
  border: 1px solid var(--input-border-color, #ced4da);
  background-color: #fff;
  background-image: none;
  border-radius: var(--input-border-radius, 4px);
  color: var(--input-text-color, #333E59);
  font-size: 12px;
  line-height: 1.5;
  transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
}
.so-input:focus {
  outline: none;
  border-color: var(--input-border-focus-color, #80bdff);
  box-shadow: 0 0 0 var(--input-focus-width, 3px) var(--input-border-focus-color-fade-25, rgba(128, 189, 255, 0.25));
}
.so-input-clear-wrapper {
  flex-basis: 16px;
}
.so-input-clear-wrapper .so-input-clear {
  position: absolute;
  top: 50%;
  right: 8px;
  width: 12px;
  height: 12px;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  cursor: pointer;
  background: var(--input-clear-bg-color, #ced4da);
  border-radius: 6px;
}
.so-input-clear-wrapper .so-input-clear:hover {
  background: var(--input-clear-bg-hover-color, #3399ff);
}
.so-input-clear-wrapper .so-input-clear:after,
.so-input-clear-wrapper .so-input-clear:before {
  position: absolute;
  top: 5px;
  left: 3px;
  display: block;
  width: 6px;
  height: 1px;
  background: #fff;
  content: ' ';
}
.so-input-clear-wrapper .so-input-clear:after {
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
}
.so-input-clear-wrapper .so-input-clear:before {
  -webkit-transform: rotate(315deg);
          transform: rotate(315deg);
}
.so-input-inline {
  display: inline-block;
  display: inline-flex;
}
.so-input:hover {
  border-color: var(--input-border-focus-color, #80bdff);
}
.so-input-group {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  padding: 0;
}
.so-input-group .so-input + .so-input {
  border-left-width: 1px;
}
.so-input-group button {
  border-width: 0;
  min-width: 0;
}
.so-input-group > span,
.so-input-group > i {
  display: block;
  margin: auto 0;
  background: transparent;
}
.so-input-group > span:first-child,
.so-input-group > i:first-child {
  padding-left: 12px;
}
.so-input-group > span:last-child,
.so-input-group > i:last-child {
  padding-right: 8px;
}
.so-input-group > b {
  display: flex;
  align-items: center;
  padding: 0 8px;
  margin: 0;
  margin-left: -1px;
  border: 1px solid var(--input-border-color, #ced4da);
  border-width: 0 1px;
  background: var(--gray-200, #e9ecef);
  font-weight: normal;
}
.so-input-group > b:first-child {
  margin-left: 0;
  border-left-width: 0;
  border-bottom-left-radius: var(--input-border-radius, 4px);
  border-top-left-radius: var(--input-border-radius, 4px);
}
.so-input-group > b:last-child {
  border-right-width: 0;
  border-bottom-right-radius: var(--input-border-radius, 4px);
  border-top-right-radius: var(--input-border-radius, 4px);
}
.so-input-group .so-input-invalid.so-input-focus {
  box-shadow: none;
}
.so-input-group .so-icon {
  color: var(--gray-400, #ced4da);
  fill: var(--gray-400, #ced4da);
}
.so-input-number-up,
.so-input-number-down {
  position: absolute;
  right: 0;
  width: 18px;
  padding: 0 4px;
  border-left: solid 1px var(--gray-200, #e9ecef);
  line-height: 1;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}
.so-input-number-up svg path,
.so-input-number-down svg path {
  fill: var(--gray-500, #adb5bd);
}
.so-input-number-up:hover svg path,
.so-input-number-down:hover svg path {
  fill: var(--primary-color, #3399ff);
}
.so-input-number-up {
  top: 0;
  bottom: 50%;
  border-bottom: solid 1px var(--gray-200, #e9ecef);
}
.so-input-number-up svg {
  -webkit-transform: rotate(-90deg);
          transform: rotate(-90deg);
}
.so-input-number-down {
  top: 50%;
  bottom: 0;
}
.so-input-number-down svg {
  -webkit-transform: rotate(90deg);
          transform: rotate(90deg);
}
.so-input-group.so-input-small,
.so-input-group.so-input-large {
  padding: 0;
}
.so-input .so-input {
  width: auto;
  flex: 1;
  border-width: 0;
  border-color: var(--input-border-color, #ced4da);
  background: transparent;
  border-radius: 0;
  box-shadow: none;
}
.so-input .so-input-disabled {
  border-color: var(--input-border-color, #ced4da);
  background-color: var(--input-bg-disabled, #e9ecef);
  cursor: not-allowed;
  background: transparent;
  color: var(--input-disabled-color, #999DA8);
}
@-webkit-keyframes so-input-fade-center {
  0% {
    -webkit-transform: scale(0.6) translateX(-50%);
            transform: scale(0.6) translateX(-50%);
  }
  100% {
    -webkit-transform: scale(1) translateX(-50%);
            transform: scale(1) translateX(-50%);
  }
}
@keyframes so-input-fade-center {
  0% {
    -webkit-transform: scale(0.6) translateX(-50%);
            transform: scale(0.6) translateX(-50%);
  }
  100% {
    -webkit-transform: scale(1) translateX(-50%);
            transform: scale(1) translateX(-50%);
  }
}
@-webkit-keyframes so-input-fade {
  0% {
    -webkit-transform: scale(0.6);
            transform: scale(0.6);
  }
  100% {
    -webkit-transform: scale(1);
            transform: scale(1);
  }
}
@keyframes so-input-fade {
  0% {
    -webkit-transform: scale(0.6);
            transform: scale(0.6);
  }
  100% {
    -webkit-transform: scale(1);
            transform: scale(1);
  }
}
.so-input-tip,
.so-input-error {
  position: absolute;
  z-index: 1000;
  min-width: 200px;
  max-width: 400px;
  padding: 6px 12px;
  background: var(--gray-100, #f8f9fa);
  border-radius: var(--input-border-radius, 4px);
  box-shadow: 0 0 0 1px var(--input-border-color, #ced4da), 0 2px 8px rgba(0, 0, 0, 0.15);
  color: var(--gray-900-lighten-40, #7e8b98);
  font-size: 12px;
}
.so-input-tip:before,
.so-input-error:before {
  position: absolute;
  width: 6px;
  height: 6px;
  border: solid 1px var(--input-border-color, #ced4da);
  border-width: 1px 0 0 1px;
  background: inherit;
  content: ' ';
}
.so-input-tip.so-input-bottom-left,
.so-input-error.so-input-bottom-left,
.so-input-tip.so-input-bottom,
.so-input-error.so-input-bottom,
.so-input-tip.so-input-bottom-right,
.so-input-error.so-input-bottom-right {
  top: 100%;
  margin-top: 10px;
  -webkit-transform-origin: 0 0;
          transform-origin: 0 0;
}
.so-input-tip.so-input-bottom-left:before,
.so-input-error.so-input-bottom-left:before,
.so-input-tip.so-input-bottom:before,
.so-input-error.so-input-bottom:before,
.so-input-tip.so-input-bottom-right:before,
.so-input-error.so-input-bottom-right:before {
  bottom: 100%;
  -webkit-transform: rotate(45deg) translateY(3px);
          transform: rotate(45deg) translateY(3px);
}
.so-input-tip.so-input-top-left,
.so-input-error.so-input-top-left,
.so-input-tip.so-input-top,
.so-input-error.so-input-top,
.so-input-tip.so-input-top-right,
.so-input-error.so-input-top-right {
  bottom: 100%;
  margin-bottom: 10px;
  -webkit-transform-origin: 0 100%;
          transform-origin: 0 100%;
}
.so-input-tip.so-input-top-left:before,
.so-input-error.so-input-top-left:before,
.so-input-tip.so-input-top:before,
.so-input-error.so-input-top:before,
.so-input-tip.so-input-top-right:before,
.so-input-error.so-input-top-right:before {
  top: 100%;
  -webkit-transform: rotate(225deg) translate(3px);
          transform: rotate(225deg) translate(3px);
}
.so-input-tip.so-input-bottom,
.so-input-error.so-input-bottom,
.so-input-tip.so-input-top,
.so-input-error.so-input-top {
  left: 50%;
  -webkit-animation: so-input-fade-center 0.16s ease-in;
          animation: so-input-fade-center 0.16s ease-in;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
}
.so-input-tip.so-input-bottom:before,
.so-input-error.so-input-bottom:before,
.so-input-tip.so-input-top:before,
.so-input-error.so-input-top:before {
  left: 50%;
}
.so-input-tip.so-input-bottom-left,
.so-input-error.so-input-bottom-left,
.so-input-tip.so-input-top-left,
.so-input-error.so-input-top-left {
  left: 0;
  -webkit-animation: so-input-fade 0.16s ease-in;
          animation: so-input-fade 0.16s ease-in;
}
.so-input-tip.so-input-bottom-right,
.so-input-error.so-input-bottom-right,
.so-input-tip.so-input-top-right,
.so-input-error.so-input-top-right {
  right: 0;
  -webkit-animation: so-input-fade 0.16s ease-in;
          animation: so-input-fade 0.16s ease-in;
}
.so-input-tip.so-input-bottom-right:before,
.so-input-error.so-input-bottom-right:before,
.so-input-tip.so-input-top-right:before,
.so-input-error.so-input-top-right:before {
  right: 9px;
}
.so-input-tip.so-input-bottom-right,
.so-input-error.so-input-bottom-right {
  -webkit-transform-origin: 100% 0;
          transform-origin: 100% 0;
}
.so-input-tip.so-input-top-right,
.so-input-error.so-input-top-right {
  -webkit-transform-origin: 100% 100%;
          transform-origin: 100% 100%;
}
.so-input-tip {
  visibility: hidden;
}
.so-input-error {
  box-shadow: 0 0 0 1px #ebccd1, 0 2px 8px rgba(0, 0, 0, 0.15);
  color: var(--danger-color, #f85555);
}
.so-input-error:before {
  border-color: #ebccd1;
}
.so-input-focus {
  border-color: var(--input-border-focus-color, #80bdff);
  box-shadow: 0 0 0 var(--input-focus-width, 3px) var(--input-border-focus-color-fade-25, rgba(128, 189, 255, 0.25));
}
.so-input-focus .so-input-tip {
  visibility: visible;
}
.so-input-invalid,
.so-input-invalid:hover {
  border-color: var(--danger-color, #f85555);
}
.so-input-invalid.so-input-focus {
  border-color: var(--danger-color, #f85555);
  box-shadow: 0 0 0 var(--input-focus-width, 3px) var(--danger-color-fade-25, rgba(248, 85, 85, 0.25));
}
.so-input-no-border {
  border-width: 0;
}
.so-input-no-border.so-input-focus {
  box-shadow: none;
}
.so-input-overflow-auto {
  overflow: auto;
}
.so-input-overflow-hidden {
  overflow: hidden;
}
.so-input input,
.so-input textarea {
  display: block;
  width: 100%;
  padding: 6px 12px;
  border: 0;
  background: transparent;
  line-height: inherit;
  outline: none;
  color: var(--input-text-color, #333E59);
}
.so-input-disabled,
.so-input-disabled:hover,
.so-input-disabled input {
  border-color: var(--input-border-color, #ced4da);
  background-color: var(--input-bg-disabled, #e9ecef);
  cursor: not-allowed;
  color: var(--input-disabled-color, #999DA8);
}
.so-input-disabled input {
  background: transparent;
}
.so-input-disabled .so-input-disabled:hover {
  background: transparent;
}
.so-input-disabled .so-select-result {
  color: var(--input-disabled-color, #999DA8);
}
.so-input ::-webkit-input-placeholder,
.so-input-placeholder {
  color: var(--input-placeholder-color, #999);
  font-size: var(--input-placeholder-size, 14px);
}
.so-input ::-moz-placeholder,
.so-input-placeholder {
  color: var(--input-placeholder-color, #999);
  font-size: var(--input-placeholder-size, 14px);
}
.so-input ::-ms-input-placeholder,
.so-input-placeholder {
  color: var(--input-placeholder-color, #999);
  font-size: var(--input-placeholder-size, 14px);
}
.so-input ::placeholder,
.so-input-placeholder {
  color: var(--input-placeholder-color, #999);
  font-size: var(--input-placeholder-size, 14px);
}
.so-input textarea {
  position: relative;
  z-index: 2;
  line-height: var(--common-line-height, 1.42857143);
  resize: none;
}
.so-input input.so-input-number {
  padding-right: 22px;
}
.so-input input.so-input-number + .so-input-clear-wrapper .so-input-clear {
  right: 22px;
}
textarea.so-input-shadow {
  position: absolute;
  z-index: 0;
  top: 0;
  left: 0;
  visibility: hidden;
}
textarea.so-input-auto-size {
  overflow: hidden;
}
textarea.so-input-textarea-resize {
  resize: vertical;
}
.so-input-small {
  font-size: var(--font-size-small, 12px);
  line-height: 1.5;
}
.so-input-small input {
  padding: 5px 10px;
}
.so-input-large {
  font-size: var(--font-size-large, 18px);
}
.so-input-large input {
  padding: 8px 8px;
}
.so-input.so-input-rtl {
  direction: rtl;
  text-align: right;
}
.so-input.so-input-rtl.so-input-group > span:first-child,
.so-input.so-input-rtl.so-input-group > i:first-child {
  padding-right: 12px;
}
.so-input.so-input-rtl.so-input-group > span:last-child,
.so-input.so-input-rtl.so-input-group > i:last-child {
  padding-left: 8px;
}
.so-input.so-input-rtl .so-input-number-up,
.so-input.so-input-rtl .so-input-number-down {
  left: 0;
  right: auto;
  border-left: none;
  border-right: 1px solid var(--gray-200, #e9ecef);
}
.so-input.so-input-rtl input.so-input-number {
  padding-right: 8px;
  padding-left: 22px;
}
.so-input-group.so-input-rtl .so-input + .so-input.so-input-rtl {
  border-left-width: 0;
  border-right-width: 1px;
}
.so-input-group.so-input-rtl.so-button-group .so-button:last-child:not(:first-child) {
  border-bottom-right-radius: 0;
  border-top-right-radius: 0;
  border-top-left-radius: var(--button-border-radius, 3px);
  border-bottom-left-radius: var(--button-border-radius, 3px);
}
.so-input-group.so-input-rtl.so-button-group > b:first-child {
  border-left-width: 1px;
  border-right-width: 0;
  border-bottom-left-radius: 0;
  border-top-left-radius: 0;
  border-bottom-right-radius: var(--input-border-radius, 4px);
  border-top-right-radius: var(--input-border-radius, 4px);
}
.so-input-group.so-input-rtl.so-button-group > b:last-child {
  border-left-width: 0;
  border-right-width: 1px;
  border-bottom-left-radius: var(--input-border-radius, 4px);
  border-top-left-radius: var(--input-border-radius, 4px);
  border-bottom-right-radius: 0;
  border-top-right-radius: 0;
  margin-left: 0;
}
.so-inputBorder-rtl {
  direction: rtl;
  text-align: right;
}

.so-select {
  position: relative;
}
.so-select-inner {
  width: 100%;
  outline: none;
}
.so-select-result {
  display: flex;
  overflow: auto;
  max-height: 80px;
  flex-flow: wrap;
  cursor: pointer;
  padding: 6px 24px 0 12px;
}
.so-select-result span {
  display: inline-block;
}
.so-select-result span.so-select-ellipsis {
  display: block;
  overflow: hidden;
  flex: 1;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.so-select-result .so-select-ellipsis {
  margin-bottom: 6px;
}
.so-select-result .so-select-ellipsis:after {
  content: '\feff ';
}
.so-select-result .so-select-input {
  display: inline-flex;
  min-width: 12px;
  flex: 1;
  margin-bottom: 6px;
  outline: none;
  cursor: text;
  white-space: pre-wrap;
}
.so-select-result .so-select-input:after {
  content: '\feff ';
}
.so-select-result .so-select-input.so-select-full {
  display: block;
}
.so-select-result .so-select-item {
  position: relative;
  display: inline-block;
  overflow: hidden;
  max-width: 80%;
  padding: var(--select-result-padding-vertical, 0) var(--select-result-padding-horizontal-16, 20px) var(--select-result-padding-vertical, 0) var(--select-result-padding-horizontal, 4px);
  margin-right: var(--select-result-padding-horizontal, 4px);
  margin-bottom: 6px;
  background: var(--gray-100, #f8f9fa);
  border-radius: 3px;
  color: inherit;
  text-overflow: ellipsis;
}
.so-select-result .so-select-item:after {
  content: '\feff ';
}
.so-select-result .so-select-item-compressed {
  padding: 0 8px;
  text-overflow: unset;
  transition: none;
}
.so-select-result .so-select-item-compressed > span {
  letter-spacing: 2px;
}
.so-select-result .so-select-item-more {
  background: var(--select-compressed-hover-bg, rgba(51, 153, 255, 0.6));
  color: #fff;
}
.so-select-result .so-select-item.so-select-disabled {
  padding-right: var(--select-result-padding-horizontal, 4px);
  cursor: not-allowed;
  color: var(--input-disabled-color, #999DA8);
}
.so-select-result .so-select-item .so-select-close {
  right: var(--select-result-padding-horizontal, 4px);
  display: block;
  background-color: transparent;
}
.so-select-result .so-select-item .so-select-close:before,
.so-select-result .so-select-item .so-select-close:after {
  background-color: var(--gray-500, #adb5bd);
  width: 8px;
}
.so-select-result .so-select-item .so-select-close:hover {
  background-color: transparent;
}
.so-select-result .so-select-item .so-select-close:hover:before,
.so-select-result .so-select-item .so-select-close:hover:after {
  background-color: var(--gray-600, #6c757d);
}
.so-select-compressed {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
}
.so-select-compressed .so-select-ban {
  padding-right: var(--select-result-padding-horizontal, 4px);
}
.so-select-compressed.so-select-result .so-select-item {
  text-overflow: ellipsis;
  overflow: hidden;
  white-space: nowrap;
}
.so-select-close-warpper {
  position: absolute;
  top: 50%;
  right: 7px;
  display: block;
  width: 18px;
  height: 18px;
  -webkit-transform: translate(0, -50%);
          transform: translate(0, -50%);
}
.so-select-close-warpper .so-select-indicator {
  right: 2px;
}
.so-select-indicator {
  position: absolute;
  top: 50%;
  right: 7px;
  display: block;
  width: 12px;
  height: 12px;
  color: var(--gray-500, #adb5bd);
  margin-top: -5px;
}
.so-select-indicator.so-select-close {
  box-sizing: content-box;
  border-left: 1px solid #fff;
  border-right: 1px solid #fff;
  display: none;
  background: var(--select-clear-bg-color, #94a1ae);
  border-radius: 6px;
}
.so-select-indicator.so-select-close:hover {
  background: var(--input-clear-bg-hover-color, #3399ff);
}
.so-select-indicator.so-select-close:after,
.so-select-indicator.so-select-close:before {
  position: absolute;
  top: 5px;
  left: 3px;
  display: block;
  width: 6px;
  height: 1px;
  background: #fff;
  content: ' ';
}
.so-select-indicator.so-select-close:after {
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
}
.so-select-indicator.so-select-close:before {
  -webkit-transform: rotate(315deg);
          transform: rotate(315deg);
}
.so-select-indicator.so-select-caret {
  transition: -webkit-transform 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86);
  transition: transform 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86);
  transition: transform 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86), -webkit-transform 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86);
}
.so-select-indicator.so-select-caret svg {
  fill: var(--gray-500, #adb5bd);
  vertical-align: top;
}
.so-select-indicator.so-select-multi {
  width: 3px;
  height: 3px;
  background: var(--gray-500, #adb5bd);
  border-radius: 50%;
  -webkit-transform: translate(-3px, 100%);
          transform: translate(-3px, 100%);
  text-align: left;
}
.so-select-indicator.so-select-multi:after,
.so-select-indicator.so-select-multi:before {
  display: inline-block;
  content: '';
  width: 3px;
  height: 3px;
  background: var(--gray-500, #adb5bd);
  border-radius: 50%;
  position: absolute;
}
.so-select-indicator.so-select-multi:before {
  -webkit-transform: translateX(-5px);
          transform: translateX(-5px);
}
.so-select-indicator.so-select-multi:after {
  -webkit-transform: translateX(-10px);
          transform: translateX(-10px);
}
.so-select-focus .so-select-close,
.so-select-result:hover .so-select-close {
  display: block;
}
.so-select-focus .so-select-caret {
  -webkit-transform: rotate(180deg);
          transform: rotate(180deg);
}
.so-select-options,
.so-select-box-list {
  position: absolute;
  z-index: 1000;
  left: 0;
  display: none;
  overflow: hidden;
  width: 100%;
  background: #fff;
  background-clip: padding-box;
  border-radius: var(--input-dropdown-border-radius, 4px);
}
.so-select-tree {
  width: auto;
  min-width: 100%;
}
.so-select-tree .so-select-tree-wrapper {
  padding: 8px 8px 4px 8px;
}
.so-select-tree .so-select-tree-wrapper .so-tree-node:last-child > div {
  padding-bottom: 4px;
}
.so-select-tree .so-select-tree-wrapper .so-tree-content {
  color: var(--gray-600, #6c757d);
  white-space: nowrap;
  cursor: default;
}
.so-select-tree .so-select-tree-wrapper .so-tree-content .so-select-tree-node {
  display: block;
  padding: 0 4px;
  border-radius: 2px;
  max-width: 300px;
  overflow: hidden;
  text-overflow: ellipsis;
}
.so-select-tree .so-select-tree-wrapper .so-tree-content .so-select-tree-node:hover {
  background-color: var(--primary-color-fade-10, rgba(51, 153, 255, 0.1));
}
.so-select-tree .so-select-tree-wrapper .so-tree-content .so-select-tree-node.so-select-selected {
  background-color: var(--primary-color-fade-60, rgba(51, 153, 255, 0.6));
  color: white;
}
.so-select-tree .so-select-tree-wrapper .so-tree-content .so-select-tree-node.so-select-disabled {
  padding-right: var(--select-result-padding-horizontal, 4px);
  cursor: not-allowed;
  background: var(--select-tree-disabled-bg-color, #e9ecef);
}
.so-select-box-list {
  display: flex;
  overflow: hidden;
  min-height: 200px;
  max-height: 320px;
  flex-direction: column;
}
.so-select-box-list .so-select-header {
  padding: 6px 12px;
  border-bottom: solid 1px #eee;
}
.so-select-box-list .so-select-header .so-select-header-title {
  vertical-align: middle;
}
.so-select-box-list .so-select-box-options {
  overflow: hidden;
  flex: 1;
}
.so-select-box-list .so-select-box-options .so-select-no-data {
  padding-top: 60px;
  color: var(--gray-500, #adb5bd);
  text-align: center;
}
.so-select-box-list .so-select-scrollable {
  overflow: auto;
}
.so-select-box-list .so-select-option {
  display: inline-block;
  padding-right: 12px;
  margin-right: 0;
}
.so-select-box-list .so-select-filter-input {
  display: inline-flex;
  width: 180px;
  border-width: 1px;
  border-radius: 2px;
  float: right;
}
.so-select-box-list .so-select-filter-input svg {
  width: 22px;
  height: 22px;
  padding: 4px;
}
.so-select-box-list .so-select-filter-input svg path {
  fill: #999;
}
.so-select-drop-down .so-select-options,
.so-select-drop-down .so-select-box-list {
  top: 100%;
  margin-top: 4px;
  box-shadow: 0 0 1px 1px rgba(0, 0, 0, 0.02), 0 6px 12px rgba(0, 0, 0, 0.175);
  -webkit-transform-origin: 0 0;
          transform-origin: 0 0;
}
.so-select-drop-up .so-select-options,
.so-select-drop-up .so-select-box-list {
  bottom: 100%;
  margin-bottom: 4px;
  box-shadow: 0 0 1px 1px rgba(0, 0, 0, 0.1), 0 -2px 12px rgba(0, 0, 0, 0.175);
  -webkit-transform-origin: 0 100%;
          transform-origin: 0 100%;
}
.so-select-option {
  position: relative;
  display: block;
  overflow: hidden;
  padding: 6px 24px 6px 12px;
  color: var(--select-option-color, #343a40);
  font-size: 12px;
  line-height: 22px;
  text-overflow: ellipsis;
  transition: none;
  white-space: nowrap;
  background: var(--select-option-bg-color, transparent);
}
.so-select-option.so-select-active {
  background-color: var(--select-item-active-bg, #f5f5f5);
  color: var(--select-item-active-color, #292d32);
  text-decoration: none;
}
.so-select-option.so-select-active > svg {
  position: absolute;
  top: 50%;
  right: 8px;
  width: 12px;
  height: 12px;
  fill: var(--primary-color, #3399ff);
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}
.so-select-option:not(.so-select-group):hover {
  background-color: var(--select-option-hover-bg, #f5f5f5);
  color: var(--select-option-hover-color, #3399ff);
}
.so-select-option.so-select-disabled,
.so-select-option.so-select-disabled:hover,
.so-select-option.so-select-disabled.so-select-active {
  background: var(--select-disabled-bg-color, #e9ecef);
  color: var(--select-disabled-color, #343a40);
  cursor: not-allowed;
}
.so-select-group {
  font-size: var(--font-size-small, 12px);
  color: var(--gray-500, #adb5bd);
  cursor: default;
}
.so-select-group:hover {
  color: var(--gray-500, #adb5bd);
}
.so-select-option + .so-select-group:before {
  content: '';
  position: absolute;
  left: 12px;
  top: 0;
  right: 2px;
  border-top: 1px solid #ddd;
}
.so-select-control-mouse .so-select-option:not(.so-select-group):hover {
  background-color: var(--select-option-hover-bg, #f5f5f5);
  color: var(--select-option-hover-color, #3399ff);
  text-decoration: none;
}
.so-select-control-mouse .so-select-group:hover {
  color: var(--gray-500, #adb5bd);
}
.so-select-control-mouse .so-select-option.so-select-disabled:hover {
  background: var(--select-disabled-bg-color, #e9ecef);
  color: var(--select-disabled-color, #343a40);
}
.so-select-control-keyboard .so-select-option.so-select-hover {
  background-color: var(--select-option-hover-bg, #f5f5f5);
  color: var(--select-option-hover-color, #3399ff);
  text-decoration: none;
}
.so-select-control-keyboard .so-select-option.so-select-group.so-select-hover {
  color: var(--gray-500, #adb5bd);
}
.so-select-control-keyboard .so-select-option {
  cursor: none;
}
span.so-select-option {
  color: var(--gray-500, #adb5bd);
}
.so-select-small .so-select-result {
  padding: 5px 22px 0 10px;
}
.so-select-small .so-select-result .so-select-item,
.so-select-small .so-select-result .so-select-ellipsis,
.so-select-small .so-select-result .so-select-input {
  margin-bottom: 5px;
  font-size: var(--font-size-small, 12px);
}
.so-select-large .so-select-result {
  padding: 8px 28px 0 16px;
}
.so-select-large .so-select-result .so-select-item,
.so-select-large .so-select-result .so-select-ellipsis,
.so-select-large .so-select-result .so-select-input {
  margin-bottom: 8px;
  font-size: var(--font-size-large, 18px);
}
.so-select-multiple .so-select-result {
  padding-left: 6px;
  padding-right: 34px;
}
.so-select-multiple .so-select-result .so-select-close-warpper {
  right: 17px;
}
.so-select-multiple .so-select-compressed {
  padding-left: 6px;
  padding-right: 24px;
}
.so-select-multiple .so-select-compressed .so-select-close-warpper {
  right: 7px;
}
.so-select-large.so-select-multiple .so-select-result {
  padding-left: 8px;
}
.so-select-small.so-select-multiple .so-select-result {
  padding-left: 5px;
}
.so-select-disabled .so-select-result {
  cursor: not-allowed;
}
.so-select-disabled .so-select-result .so-select-item {
  padding-right: var(--select-result-padding-horizontal, 4px);
  background: var(--select-disabled-bg-color, #e9ecef);
}
.so-select-disabled .so-select-result .so-select-item .so-select-close {
  display: none;
}
.so-select-root {
  position: absolute;
  top: 0;
  left: 0;
}
.so-select-popover .so-select-result {
  padding: 14px 14px 8px 14px;
  max-height: 112px;
  max-width: 300px;
}
.so-select-popover .so-select-result .so-select-item {
  max-width: 100%;
  color: var(--gray-600, #6c757d);
  font-size: 16px;
}
.so-select-auto-adapt .so-select-options {
  width: auto;
  min-width: 100%;
}
.so-select-pre .so-select-item,
.so-select-pre .so-select-option,
.so-select-pre .so-select-result .so-select-input {
  white-space: pre;
}
.so-select-auto-adapt.so-select-options {
  width: auto;
  min-width: 100%;
}
.so-select.so-select-rtl,
.so-select.so-input-rtl {
  direction: rtl;
  text-align: right;
}
.so-select.so-select-rtl .so-select-result,
.so-select.so-input-rtl .so-select-result {
  padding: 6px 12px 0 24px;
}
.so-select.so-select-rtl .so-select-result.so-select-compressed .so-select-indicator.so-select-multi,
.so-select.so-input-rtl .so-select-result.so-select-compressed .so-select-indicator.so-select-multi {
  left: 18px;
  right: auto;
  -webkit-transform: translate(0px, 100%);
          transform: translate(0px, 100%);
}
.so-select.so-select-rtl .so-select-result.so-select-compressed .so-select-indicator.so-select-multi:before,
.so-select.so-input-rtl .so-select-result.so-select-compressed .so-select-indicator.so-select-multi:before {
  -webkit-transform: translateX(-3px);
          transform: translateX(-3px);
}
.so-select.so-select-rtl .so-select-result.so-select-compressed .so-select-indicator.so-select-multi:after,
.so-select.so-input-rtl .so-select-result.so-select-compressed .so-select-indicator.so-select-multi:after {
  -webkit-transform: translateX(-9px);
          transform: translateX(-9px);
}
.so-select.so-select-rtl .so-select-result .so-select-item,
.so-select.so-input-rtl .so-select-result .so-select-item {
  padding: var(--select-result-padding-vertical, 0) var(--select-result-padding-horizontal, 4px) var(--select-result-padding-vertical, 0) var(--select-result-padding-horizontal-16, 20px);
}
.so-select.so-select-rtl .so-select-result .so-select-item .so-select-close,
.so-select.so-input-rtl .so-select-result .so-select-item .so-select-close {
  left: var(--select-result-padding-horizontal, 4px);
}
.so-select.so-select-rtl .so-select-result .so-select-item.so-select-item-compressed,
.so-select.so-input-rtl .so-select-result .so-select-item.so-select-item-compressed {
  padding: 0 8px;
}
.so-select.so-select-rtl .so-select-result .so-select-close-warpper,
.so-select.so-input-rtl .so-select-result .so-select-close-warpper {
  right: auto;
  left: 17px;
}
.so-select.so-select-rtl .so-select-result .so-select-close-warpper .so-select-close,
.so-select.so-input-rtl .so-select-result .so-select-close-warpper .so-select-close {
  right: 12px;
  left: auto;
}
.so-select.so-select-rtl .so-select-option,
.so-select.so-input-rtl .so-select-option {
  padding: 6px 12px 6px 24px;
}
.so-select.so-select-rtl .so-select-option.so-select-active > svg,
.so-select.so-input-rtl .so-select-option.so-select-active > svg {
  right: auto;
  left: 8px;
}
.so-select.so-select-rtl .so-select-indicator,
.so-select.so-input-rtl .so-select-indicator {
  right: auto;
  left: 7px;
}
.so-select-custom-header {
  padding: 6px 12px 6px 12px;
  line-height: 22px;
}
.so-list-absolute-wrapper.so-select-rtl {
  direction: rtl;
  text-align: right;
}
.so-list-absolute-wrapper.so-select-rtl .so-select-option {
  padding: 6px 12px 6px 24px;
}
.so-list-absolute-wrapper.so-select-rtl .so-select-option.so-select-active > svg {
  right: auto;
  left: 8px;
}

.so-treeSelect {
  position: relative;
}
.so-treeSelect-inner {
  width: 100%;
  outline: none;
}
.so-treeSelect-tree-wrapper {
  color: var(--gray-600, #6c757d);
  padding: 8px 8px 4px 8px;
}
.so-treeSelect-tree-wrapper .so-tree-node:last-child > div {
  padding-bottom: 4px;
}
.so-treeSelect-tree-wrapper .so-tree-content {
  white-space: nowrap;
  padding-left: 4px;
}
.so-treeSelect-tree-wrapper .so-tree-content .so-tree-text {
  max-width: 300px;
  overflow: hidden;
  text-overflow: ellipsis;
}
.so-treeSelect-tree-wrapper .so-treeSelect-single .so-tree-content {
  cursor: default;
  transition: all .2s;
  cursor: pointer;
  padding-left: 0;
}
.so-treeSelect-tree-wrapper .so-treeSelect-single .so-tree-content:hover .so-treeSelect-content-wrapper:not(.so-treeSelect-selected) {
  background: var(--gray-100, #f8f9fa);
}
.so-treeSelect-result {
  cursor: pointer;
  display: flex;
  overflow: auto;
  max-height: 80px;
  flex-flow: wrap;
  padding: 6px 24px 0 12px;
}
.so-treeSelect-result span {
  display: inline-block;
}
.so-treeSelect-result span.so-treeSelect-ellipsis {
  display: block;
  overflow: hidden;
  flex: 1;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.so-treeSelect-result .so-treeSelect-ellipsis {
  margin-bottom: 6px;
}
.so-treeSelect-result .so-treeSelect-ellipsis:after {
  content: '\feff ';
}
.so-treeSelect-result .so-treeSelect-input {
  display: block;
  min-width: 12px;
  flex: 1;
  margin-bottom: 6px;
  outline: none;
  white-space: pre-wrap;
}
.so-treeSelect-result .so-treeSelect-input:after {
  content: '\feff ';
}
.so-treeSelect-result .so-treeSelect-item {
  position: relative;
  display: inline-block;
  overflow: hidden;
  max-width: 80%;
  padding: var(--select-result-padding-vertical, 0) var(--select-result-padding-horizontal-16, 20px) var(--select-result-padding-vertical, 0) var(--select-result-padding-horizontal, 4px);
  margin-right: var(--select-result-padding-horizontal, 4px);
  margin-bottom: 6px;
  background: var(--gray-100, #f8f9fa);
  border-radius: 3px;
  color: inherit;
  text-overflow: ellipsis;
}
.so-treeSelect-result .so-treeSelect-item-compressed {
  padding: 0 8px;
  font-size: 80%;
  opacity: .9;
  text-overflow: unset;
  transition: none;
}
.so-treeSelect-result .so-treeSelect-item-compressed > span {
  vertical-align: middle;
  letter-spacing: 2px;
}
.so-treeSelect-result .so-treeSelect-item-more {
  background: var(--primary-color-fade-60, rgba(51, 153, 255, 0.6));
  color: #fff;
}
.so-treeSelect-result .so-treeSelect-item.so-treeSelect-disabled {
  padding-right: var(--select-result-padding-horizontal, 4px);
  cursor: not-allowed;
}
.so-treeSelect-result .so-treeSelect-item .so-treeSelect-close {
  right: var(--select-result-padding-horizontal, 4px);
  display: block;
  background-color: transparent;
}
.so-treeSelect-result .so-treeSelect-item .so-treeSelect-close:before,
.so-treeSelect-result .so-treeSelect-item .so-treeSelect-close:after {
  background-color: var(--gray-500, #adb5bd);
  width: 8px;
}
.so-treeSelect-result .so-treeSelect-item .so-treeSelect-close:hover {
  background-color: transparent;
}
.so-treeSelect-result .so-treeSelect-item .so-treeSelect-close:hover:before,
.so-treeSelect-result .so-treeSelect-item .so-treeSelect-close:hover:after {
  background-color: var(--gray-600, #6c757d);
}
.so-treeSelect-compressed {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
}
.so-treeSelect-compressed .so-treeSelect-ban {
  padding-right: var(--select-result-padding-horizontal, 4px);
}
.so-treeSelect-indicator {
  position: absolute;
  top: 50%;
  right: 7px;
  display: block;
  width: 12px;
  height: 12px;
  color: var(--gray-500, #adb5bd);
  -webkit-transform: translate(0, -50%);
          transform: translate(0, -50%);
}
.so-treeSelect-indicator.so-treeSelect-close {
  display: none;
  background: var(--gray-400-darken-20, #94a1ae);
  border-radius: 6px;
}
.so-treeSelect-indicator.so-treeSelect-close:hover {
  background: var(--input-clear-bg-hover-color, #3399ff);
}
.so-treeSelect-indicator.so-treeSelect-close:after,
.so-treeSelect-indicator.so-treeSelect-close:before {
  position: absolute;
  top: 5px;
  left: 3px;
  display: block;
  width: 6px;
  height: 1px;
  background: #fff;
  content: ' ';
}
.so-treeSelect-indicator.so-treeSelect-close:after {
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
}
.so-treeSelect-indicator.so-treeSelect-close:before {
  -webkit-transform: rotate(315deg);
          transform: rotate(315deg);
}
.so-treeSelect-indicator.so-treeSelect-caret svg {
  fill: var(--gray-500, #adb5bd);
  vertical-align: top;
}
.so-treeSelect-focus .so-treeSelect-close,
.so-treeSelect-result:hover .so-treeSelect-close {
  display: block;
}
.so-treeSelect-options,
.so-treeSelect-box-list {
  position: absolute;
  min-width: 100%;
  z-index: 1000;
  left: 0;
  display: none;
  overflow: hidden;
  background: #fff;
  background-clip: padding-box;
  border-radius: var(--input-dropdown-border-radius, 4px);
}
.so-treeSelect-options .so-treeSelect-disabled,
.so-treeSelect-box-list .so-treeSelect-disabled,
.so-treeSelect-options .so-treeSelect-disabled:hover,
.so-treeSelect-box-list .so-treeSelect-disabled:hover,
.so-treeSelect-options .so-treeSelect-disabled.so-treeSelect-active,
.so-treeSelect-box-list .so-treeSelect-disabled.so-treeSelect-active {
  background: var(--input-bg-disabled, #e9ecef);
  cursor: not-allowed;
}
.so-treeSelect-options span.so-treeSelect-content-wrapper {
  display: block;
  padding: 0px 4px;
  max-width: 300px;
  overflow: hidden;
  text-overflow: ellipsis;
}
.so-treeSelect-options span.so-treeSelect-selected {
  background-color: var(--primary-color-fade-10, rgba(51, 153, 255, 0.1));
  color: var(--primary-color, #3399ff);
}
.so-treeSelect-box-list {
  display: flex;
  overflow: hidden;
  min-height: 200px;
  max-height: 300px;
  flex-direction: column;
}
.so-treeSelect-box-list .so-treeSelect-header {
  padding: 6px 12px;
  border-bottom: solid 1px #eee;
}
.so-treeSelect-box-list .so-treeSelect-box-options {
  overflow: auto;
  flex: 1;
  padding: 6px 0;
}
.so-treeSelect-box-list .so-treeSelect-box-options .so-treeSelect-no-data {
  padding-top: 60px;
  color: var(--gray-500, #adb5bd);
  text-align: center;
}
.so-treeSelect-box-list .so-treeSelect-option {
  display: inline-block;
  padding-right: 12px;
  margin-right: 0;
}
.so-treeSelect-box-list .so-treeSelect-filter-input {
  display: inline-flex;
  width: 180px;
  border-width: 1px;
  border-radius: 2px;
  float: right;
}
.so-treeSelect-box-list .so-treeSelect-filter-input svg {
  width: 22px;
  height: 22px;
  padding: 4px;
}
.so-treeSelect-box-list .so-treeSelect-filter-input svg path {
  fill: #999;
}
.so-treeSelect-drop-down .so-treeSelect-options,
.so-treeSelect-drop-down .so-treeSelect-box-list {
  top: 100%;
  margin-top: 4px;
  box-shadow: 0 0 1px 1px rgba(0, 0, 0, 0.02), 0 6px 12px rgba(0, 0, 0, 0.175);
  -webkit-transform-origin: 0 0;
          transform-origin: 0 0;
}
.so-treeSelect-drop-up .so-treeSelect-options,
.so-treeSelect-drop-up .so-treeSelect-box-list {
  bottom: 100%;
  margin-bottom: 4px;
  box-shadow: 0 0 1px 1px rgba(0, 0, 0, 0.1), 0 -2px 12px rgba(0, 0, 0, 0.175);
  -webkit-transform-origin: 0 100%;
          transform-origin: 0 100%;
}
.so-treeSelect-option {
  position: relative;
  display: block;
  overflow: hidden;
  padding: 6px 24px 6px 12px;
  color: var(--gray-800, #343a40);
  font-size: 12px;
  line-height: 1.5;
  text-overflow: ellipsis;
  transition: none;
  white-space: nowrap;
}
.so-treeSelect-option.so-treeSelect-active {
  background-color: var(--select-item-active-bg, #f5f5f5);
  color: var(--select-item-active-color, #292d32);
  text-decoration: none;
}
.so-treeSelect-option.so-treeSelect-active::after {
  position: absolute;
  top: 50%;
  right: 8px;
  width: 12px;
  height: 12px;
  background: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='var(--primary-color, #3399ff)' d='M913.017 237.02c-25.311-25.312-66.349-25.312-91.66 0l-412.475 412.474-206.237-206.237c-25.312-25.312-66.35-25.312-91.661 0s-25.312 66.35 0 91.66l252.067 252.067c0.729 0.73 1.439 1.402 2.134 2.029 25.434 23.257 64.913 22.585 89.527-2.029l458.303-458.303c25.313-25.312 25.313-66.35 0.001-91.661z'%3E%3C/path%3E%3C/svg%3E");
  color: var(--primary-color, #3399ff);
  content: ' ';
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}
.so-treeSelect-option:hover {
  color: var(--gray-800, #343a40);
}
.so-treeSelect-option.so-treeSelect-disabled,
.so-treeSelect-option.so-treeSelect-disabled:hover,
.so-treeSelect-option.so-treeSelect-disabled.so-treeSelect-active {
  background: var(--input-bg-disabled, #e9ecef);
  cursor: not-allowed;
}
.so-treeSelect-control-mouse .so-treeSelect-option:hover {
  background-color: var(--select-option-hover-bg, #f5f5f5);
  color: var(--select-option-hover-color, #3399ff);
  text-decoration: none;
}
.so-treeSelect-control-mouse .so-treeSelect-option.so-treeSelect-disabled:hover {
  background: var(--input-bg-disabled, #e9ecef);
}
.so-treeSelect-control-keyboard .so-treeSelect-option.so-treeSelect-hover {
  background-color: var(--select-option-hover-bg, #f5f5f5);
  color: var(--select-option-hover-color, #3399ff);
  text-decoration: none;
}
.so-treeSelect-control-keyboard .so-treeSelect-option {
  cursor: none;
}
span.so-treeSelect-option {
  color: var(--gray-500, #adb5bd);
}
.so-treeSelect-small .so-treeSelect-result {
  padding: 5px 22px 0 10px;
}
.so-treeSelect-small .so-treeSelect-result .so-treeSelect-item,
.so-treeSelect-small .so-treeSelect-result .so-treeSelect-ellipsis,
.so-treeSelect-small .so-treeSelect-result .so-treeSelect-input {
  margin-bottom: 5px;
}
.so-treeSelect-large .so-treeSelect-result {
  padding: 8px 28px 0 16px;
}
.so-treeSelect-large .so-treeSelect-result .so-treeSelect-item,
.so-treeSelect-large .so-treeSelect-result .so-treeSelect-ellipsis,
.so-treeSelect-large .so-treeSelect-result .so-treeSelect-input {
  margin-bottom: 8px;
}
.so-treeSelect-multiple .so-treeSelect-result {
  padding-left: 6px;
  padding-right: 34px;
}
.so-treeSelect-multiple .so-treeSelect-result a.so-treeSelect-close.so-treeSelect-indicator {
  right: 17px;
}
.so-treeSelect-multiple .so-treeSelect-compressed {
  padding-left: 6px;
  padding-right: 24px;
}
.so-treeSelect-multiple .so-treeSelect-compressed a.so-treeSelect-close.so-treeSelect-indicator {
  right: 7px;
}
.so-treeSelect-large.so-treeSelect-multiple .so-treeSelect-result {
  padding-left: 8px;
}
.so-treeSelect-small.so-treeSelect-multiple .so-treeSelect-result {
  padding-left: 5px;
}
.so-treeSelect-popover .so-treeSelect-result {
  padding: 14px 14px 8px 14px;
  max-height: 112px;
  max-width: 300px;
}
.so-treeSelect-popover .so-treeSelect-result .so-treeSelect-item {
  max-width: 100%;
  color: var(--gray-600, #6c757d);
  font-size: 16px;
}
.so-treeSelect-disabled .so-treeSelect-result {
  cursor: not-allowed;
}
.so-treeSelect-disabled .so-treeSelect-result .so-treeSelect-item {
  padding-right: var(--select-result-padding-horizontal, 4px);
  background: var(--input-bg-disabled, #e9ecef);
}
.so-treeSelect-disabled .so-treeSelect-result .so-treeSelect-item .so-treeSelect-close {
  display: none;
}
.so-treeSelect.so-treeSelect-rtl,
.so-treeSelect.so-input-rtl {
  direction: rtl;
  text-align: right;
}
.so-treeSelect.so-treeSelect-rtl .so-treeSelect-result,
.so-treeSelect.so-input-rtl .so-treeSelect-result {
  padding: 6px 12px 0 24px;
}
.so-treeSelect.so-treeSelect-rtl .so-treeSelect-result .so-treeSelect-item,
.so-treeSelect.so-input-rtl .so-treeSelect-result .so-treeSelect-item {
  padding: var(--select-result-padding-vertical, 0) var(--select-result-padding-horizontal, 4px) var(--select-result-padding-vertical, 0) var(--select-result-padding-horizontal-16, 20px);
}
.so-treeSelect.so-treeSelect-rtl .so-treeSelect-result .so-treeSelect-item .so-treeSelect-close,
.so-treeSelect.so-input-rtl .so-treeSelect-result .so-treeSelect-item .so-treeSelect-close {
  right: auto;
  left: var(--select-result-padding-horizontal, 4px);
}
.so-treeSelect.so-treeSelect-rtl .so-treeSelect-indicator,
.so-treeSelect.so-input-rtl .so-treeSelect-indicator {
  left: 7px;
  right: auto;
}
.so-treeSelect.so-treeSelect-rtl .so-treeSelect-multiple .so-treeSelect-result a.so-treeSelect-close.so-treeSelect-indicator,
.so-treeSelect.so-input-rtl .so-treeSelect-multiple .so-treeSelect-result a.so-treeSelect-close.so-treeSelect-indicator {
  right: auto;
  left: 17px;
}

@-webkit-keyframes scale-in {
  0% {
    -webkit-transform: scale(0.2);
            transform: scale(0.2);
  }
  100% {
    -webkit-transform: scale(1) translate(0, 0);
            transform: scale(1) translate(0, 0);
  }
}
@keyframes scale-in {
  0% {
    -webkit-transform: scale(0.2);
            transform: scale(0.2);
  }
  100% {
    -webkit-transform: scale(1) translate(0, 0);
            transform: scale(1) translate(0, 0);
  }
}
@-webkit-keyframes scale-out {
  0% {
    -webkit-transform: scale(1) translate(0, 0);
            transform: scale(1) translate(0, 0);
  }
  100% {
    -webkit-transform: scale(0.2);
            transform: scale(0.2);
  }
}
@keyframes scale-out {
  0% {
    -webkit-transform: scale(1) translate(0, 0);
            transform: scale(1) translate(0, 0);
  }
  100% {
    -webkit-transform: scale(0.2);
            transform: scale(0.2);
  }
}
.so-modal {
  position: fixed;
  z-index: 1050;
  top: 0;
  left: 0;
  overflow: auto;
  width: 100%;
  height: 100%;
  text-align: center;
  opacity: 0;
}
.so-modal-panel {
  padding: var(--modal-panel-padding, 0);
  text-align: left;
  margin: 0 auto;
  -webkit-transform: translateY(-100px);
          transform: translateY(-100px);
}
.so-modal-zoom {
  -webkit-transform: none;
          transform: none;
}
.so-modal-title {
  color: var(--modal-title-color, rgba(0, 0, 0, 0.85));
  font-size: var(--modal-title-font-size, 16px);
  font-weight: 500;
  font-family: var(--modal-title-font, inherit);
  line-height: 1.5;
  padding-right: 0px;
}
.so-modal-title.so-modal-with-icon {
  display: flex;
  justify-content: flex-start;
  align-items: center;
}
.so-modal-title .so-modal-icon {
  margin-right: 8px;
  width: 20px;
  height: 20px;
  display: flex;
}
.so-modal-title .so-modal-icon svg {
  width: 20px;
  height: 20px;
  font-size: 20px;
}
.so-modal .so-modal-body {
  padding: 40px 40px 20px 70px;
}
.so-modal .so-modal-body .so-modal-title {
  margin-bottom: 8px;
}
.so-modal .so-modal-body .so-modal-icon {
  position: absolute;
  top: var(--modal-icon-top, 40px);
  left: var(--modal-icon-left, 32px);
  width: var(--modal-icon-size, 24px);
  height: var(--modal-icon-size, 24px);
}
.so-modal-position {
  overflow-x: hidden;
  overflow-y: hidden;
  transition: opacity 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86);
}
.so-modal-position .so-modal-mask > .so-modal-panel {
  transition: -webkit-transform 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86);
  transition: transform 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86);
  transition: transform 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86), -webkit-transform 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86);
  border-radius: 0;
  padding: 0;
}
.so-modal-position .so-modal-mask > .so-modal-panel > .so-modal-title {
  border-radius: 0;
  background: var(--gray-100, #f8f9fa);
  padding: 12px 16px;
  padding-right: 46px;
}
.so-modal-position .so-modal-mask > .so-modal-panel > .so-card-body {
  border-radius: 0;
  padding: 16px;
}
.so-modal-position .so-modal-mask > .so-modal-panel > .so-card-footer {
  border-radius: 0;
  padding: 16px;
}
.so-modal-position .so-modal-mask > .so-modal-panel > .so-modal-close {
  top: 0;
  right: 0;
  margin-top: 12px;
  margin-right: 12px;
}
.so-modal-end {
  opacity: 0;
  transition: opacity 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86);
}
.so-modal-end .so-modal-panel {
  transition: -webkit-transform 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86);
  transition: transform 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86);
  transition: transform 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86), -webkit-transform 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86);
}
.so-modal-end .so-modal-panel.so-modal-zoom {
  -webkit-animation: scale-out 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86);
          animation: scale-out 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86);
}
.so-modal-show {
  opacity: 1;
  transition: opacity 0.3s cubic-bezier(0.08, 0.82, 0.17, 1);
}
.so-modal-show .so-modal-panel {
  transition: -webkit-transform 0.3s cubic-bezier(0.08, 0.82, 0.17, 1);
  transition: transform 0.3s cubic-bezier(0.08, 0.82, 0.17, 1);
  transition: transform 0.3s cubic-bezier(0.08, 0.82, 0.17, 1), -webkit-transform 0.3s cubic-bezier(0.08, 0.82, 0.17, 1);
  -webkit-transform: scale(1) translate(0, 0);
          transform: scale(1) translate(0, 0);
}
.so-modal-start .so-modal-panel.so-modal-zoom {
  -webkit-animation: scale-in 0.3s cubic-bezier(0.08, 0.82, 0.17, 1);
          animation: scale-in 0.3s cubic-bezier(0.08, 0.82, 0.17, 1);
}
.so-modal-right {
  top: 0;
  right: 0;
  bottom: 0;
  margin: 0;
  -webkit-transform: translate(100%, 0);
          transform: translate(100%, 0);
}
.so-modal-left {
  top: 0;
  bottom: 0;
  left: 0;
  margin: 0;
  -webkit-transform: translate(-100%, 0);
          transform: translate(-100%, 0);
}
.so-modal-top {
  top: 0;
  right: 0;
  left: 0;
  margin: 0;
  -webkit-transform: translate(0, -100%);
          transform: translate(0, -100%);
}
.so-modal-bottom {
  right: 0;
  bottom: 0;
  left: 0;
  margin: 0;
  -webkit-transform: translate(0, 100%);
          transform: translate(0, 100%);
}
.so-modal-top,
.so-modal-bottom {
  max-width: 100%;
}
.so-modal-success .so-modal-icon path {
  fill: var(--success-color, #00cc66);
}
.so-modal-info .so-modal-icon path {
  fill: var(--info-color, #17a2b8);
}
.so-modal-warning .so-modal-icon path,
.so-modal-confirm .so-modal-icon path {
  fill: var(--warning-color, #ff9900);
}
.so-modal-error .so-modal-icon path {
  fill: var(--danger-color, #f85555);
}
.so-modal-info .so-modal-footer.so-modal-method:after,
.so-modal-success .so-modal-footer.so-modal-method:after,
.so-modal-warning .so-modal-footer.so-modal-method:after,
.so-modal-error .so-modal-footer.so-modal-method:after,
.so-modal-normal .so-modal-footer.so-modal-method:after,
.so-modal-confirm .so-modal-footer.so-modal-method:after {
  display: none;
}
.so-modal-close {
  position: absolute;
  z-index: 100;
  top: var(--modal-close-top-margin, 18px);
  right: var(--modal-close-right-margin, 24px);
  display: block;
  width: 10px;
  height: 10px;
  padding: 0;
  margin-top: var(--modal-panel-padding, 0);
  margin-right: var(--modal-panel-padding, 0);
}
.so-modal-close:hover > svg {
  fill: var(--modal-close-icon-hover-color, #000);
}
.so-modal-close > svg {
  fill: var(--modal-close-icon-color, #000);
}
.so-modal-close.so-modal-rtl {
  left: 0;
  right: auto;
  margin-right: 0;
  margin-left: var(--modal-panel-padding, 0);
}
.so-modal .so-moveable .so-modal-title {
  cursor: move;
}
.so-modal-mask {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  min-height: 100%;
}
.so-modal-mask > .so-card {
  font-size: var(--modal-font-size, inherit);
  border-radius: var(--modal-border-radius, 4px);
  border: var(--modal-border-width, 1px) solid var(--modal-border-color, #ddd);
  color: var(--modal-color, inherit);
}
.so-modal-mask > .so-card-hover:hover,
.so-modal-mask > .so-card-shadow {
  box-shadow: var(--modal-box-shadow, 0 2px 8px rgba(0, 0, 0, 0.1));
}
.so-modal-mask > .so-card > .so-card-header {
  padding-top: var(--modal-header-padding-top, 16px);
  padding-right: var(--modal-header-padding-right, 36px);
  padding-bottom: var(--modal-header-padding-bottom, 16px);
  padding-left: var(--modal-header-padding-left, 24px);
  border-radius: var(--modal-border-radius, 4px) var(--modal-border-radius, 4px) 0 0;
  background: var(--modal-header-bg, #fff);
}
.so-modal-mask > .so-card > .so-card-body {
  padding-top: var(--modal-body-padding-top, 16px);
  padding-right: var(--modal-body-padding-right, 24px);
  padding-bottom: var(--modal-body-padding-bottom, 16px);
  padding-left: var(--modal-body-padding-left, 24px);
}
.so-modal-mask > .so-card .so-modal-body {
  padding-top: var(--modal-icon-body-padding-top, 40px);
  padding-right: var(--modal-icon-body-padding-right, 40px);
  padding-bottom: var(--modal-icon-body-padding-bottom, 20px);
  padding-left: var(--modal-icon-body-padding-left, 70px);
}
.so-modal-mask > .so-card > .so-card-footer {
  padding: var(--modal-footer-padding, 16px 24px);
  border-radius: 0 0 var(--modal-border-radius, 4px) var(--modal-border-radius, 4px);
  background: var(--modal-footer-bg, #fff);
}
.so-modal-mask > .so-card > .so-card-header:after,
.so-modal-mask > .so-card > .so-card-footer:after {
  height: var(--modal-divider-height, 1px);
  width: var(--modal-divider-width, 100%);
  background: var(--modal-divider-color, #ddd);
}
.so-modal-mask > .so-card.so-modal-rtl {
  direction: rtl;
  text-align: right;
}
.so-modal-mask > .so-card.so-modal-rtl > .so-card-header {
  padding-right: var(--modal-header-padding-left, 24px);
  padding-left: var(--modal-header-padding-right, 36px);
}
.so-modal-mask > .so-card.so-modal-rtl > .so-card-footer {
  text-align: left;
}
.so-modal-mask > .so-card.so-modal-rtl > .so-card-footer .so-button + .so-button {
  margin-left: 0;
  margin-right: var(--button-margin-left, 12px);
}
.so-modal-mask > .so-card.so-modal-rtl .so-modal-body {
  padding-right: var(--modal-icon-body-padding-left, 70px);
  padding-left: var(--modal-icon-body-padding-right, 40px);
}
.so-modal-mask > .so-card.so-modal-rtl .so-modal-body .so-modal-title {
  padding-right: 0;
  padding-left: 24px;
}
.so-modal-mask > .so-card.so-modal-rtl .so-modal-body .so-modal-icon {
  left: auto;
  right: var(--modal-icon-left, 32px);
}
.so-modal-mask > .so-card.so-modal-rtl .so-modal-title .so-modal-icon {
  margin-right: 0;
  margin-left: 8px;
}

.so-card {
  position: relative;
  display: flex;
  min-width: 0;
  flex-direction: column;
  border: var(--card-border-width, 1px) solid var(--card-border-color, #ddd);
  background-clip: border-box;
  background-color: #fff;
  border-radius: var(--panel-border-radius, 4px);
  word-wrap: break-word;
  color: var(--card-color, 'inherit');
  font-size: var(--card-font-size, 'inherit');
}
.so-card-hover:hover,
.so-card-shadow {
  box-shadow: var(--card-box-shadow, 0 2px 8px rgba(0, 0, 0, 0.1));
}
.so-card-header:after,
.so-card-footer:after {
  content: ' ';
  height: var(--card-divider-height, 1px);
  background: var(--card-divider-color, #ddd);
  position: absolute;
  width: var(--card-divider-width, 100%);
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
}
.so-card-header {
  position: relative;
  z-index: 10;
  padding: var(--panel-header-padding-vertical, 16px) var(--panel-header-padding-horizontal, 24px);
  background-color: var(--card-header-bg, #fff);
  color: var(--card-header-color, 'inherit');
}
.so-card-header:after {
  bottom: 0;
}
.so-card-header .so-card-indicator {
  display: inline-block;
  width: 10px;
  height: 10px;
  margin-right: 10px;
}
.so-card-header .so-card-indicator svg {
  -webkit-transform: rotate(90deg);
          transform: rotate(90deg);
  transition: -webkit-transform 0.2s linear;
  transition: transform 0.2s linear;
  transition: transform 0.2s linear, -webkit-transform 0.2s linear;
}
.so-card-collapsible .so-card-header {
  cursor: pointer;
  margin-bottom: -1px;
}
.so-card-collapsed {
  overflow: hidden;
}
.so-card-collapsed .so-card-indicator svg {
  -webkit-transform: rotate(0deg);
          transform: rotate(0deg);
}
.so-card-accordion {
  margin-bottom: -1px;
}
.so-card-accordion .so-card-header {
  background: var(--gray-100, #f8f9fa);
  margin-bottom: -1px;
}
.so-card-body {
  flex: 1 1 auto;
  padding: var(--panel-body-padding-vertical, 16px) var(--panel-body-padding-horizontal, 24px);
  position: relative;
}
.so-card-body:hover .so-card-foldup {
  background: var(--gray-300, #dee2e6);
}
.so-card-body:hover .so-card-foldup > span {
  margin-bottom: 1px;
  border-bottom-color: #fff;
}
.so-card-body .so-card-foldup {
  cursor: pointer;
  position: absolute;
  width: 25px;
  height: 25px;
  border-radius: 50%;
  overflow: hidden;
  bottom: 0;
  left: 50%;
  text-align: center;
  transition: all 0.3s;
  -webkit-transform: translate(-50%, 50%);
          transform: translate(-50%, 50%);
}
.so-card-body .so-card-foldup > span {
  transition: all 0.3s;
  display: inline-block;
  margin-bottom: 2px;
  border-top: 0;
  border-right: 6px solid transparent;
  border-bottom: 6px solid #ddd;
  border-left: 6px solid transparent;
}
.so-card-footer {
  position: relative;
  padding: var(--panel-footer-padding-vertical, 16px) var(--panel-footer-padding-horizontal, 24px);
  background-color: var(--card-footer-bg, #fff);
  color: var(--card-footer-color, 'inherit');
}
.so-card-footer:after {
  top: 0;
}
.so-card-center {
  text-align: center;
}
.so-card-right {
  text-align: right;
}
.so-card > .so-card-header {
  border-radius: var(--panel-border-radius, 4px) var(--panel-border-radius, 4px) 0 0;
}
.so-card > .so-card-footer {
  border-radius: 0 0 var(--panel-border-radius, 4px) var(--panel-border-radius, 4px);
}

.so-datepicker:focus {
  outline: none;
}
label.so-datepicker {
  display: inline-block;
  width: 150px;
}
label.so-datepicker-c-datetime {
  width: 240px;
}
label.so-datepicker-c-time {
  width: 120px;
}
label.so-datepicker-r-date,
label.so-datepicker-r-week,
label.so-datepicker-r-month {
  width: 300px;
}
label.so-datepicker-r-datetime {
  width: 420px;
}
label.so-datepicker-r-time {
  width: 250px;
}
.so-datepicker-title {
  padding: 0 0 8px 0;
  text-align: center;
}
.so-datepicker-inner {
  width: 100%;
  padding: 6px 24px 6px 12px;
  outline: none;
  cursor: pointer;
}
.so-datepicker-size-small.so-datepicker-inner {
  padding: 5px 22px 5px 10px;
}
.so-datepicker-size-large.so-datepicker-inner {
  padding: 8px 28px 8px 16px;
}
.so-datepicker-result {
  position: relative;
  display: flex;
  cursor: pointer;
}
.so-datepicker-result .so-datepicker-icon {
  position: absolute;
  top: 50%;
  right: 0;
  width: 14px;
  height: 14px;
  margin: -9px -16px 0 0;
  font-size: 14px;
}
.so-datepicker-result .so-datepicker-icon path {
  transition: all .2s;
  fill: var(--gray-500, #adb5bd);
}
.so-datepicker-result .so-datepicker-close {
  display: none;
}
.so-datepicker-result .so-datepicker-close:hover path {
  fill: var(--gray-700, #495057);
}
.so-datepicker-result .so-datepicker-txt {
  flex: 1;
  outline: none;
}
.so-datepicker-result .so-datepicker-txt:after {
  content: '\feff ';
}
.so-datepicker-disabled .so-datepicker-result {
  cursor: not-allowed;
}
.so-datepicker-range .so-datepicker-result .so-datepicker-txt {
  text-align: center;
}
.so-datepicker-txt[contenteditable="true"] {
  cursor: text;
}
.so-datepicker-separate {
  margin: 0 8px;
}
.so-datepicker-text-focus {
  background: var(--primary-color, #3399ff);
  color: #fff;
  border-radius: 50px;
}
.so-datepicker:hover .so-datepicker-result .so-datepicker-indecator {
  display: none;
}
.so-datepicker:hover .so-datepicker-result .so-datepicker-close {
  display: block;
}
.so-datepicker-picker {
  position: absolute;
  z-index: 1000;
  padding: 12px;
  color: var(--input-text-color, #333E59);
  background: #fff;
  background-clip: padding-box;
  border-radius: var(--input-dropdown-border-radius, 4px);
  box-shadow: 0 0 1px 1px rgba(0, 0, 0, 0.02), 0 6px 12px rgba(0, 0, 0, 0.175);
  font-size: 12px;
}
.so-datepicker-picker.so-datepicker-quick {
  padding-left: 0;
}
.so-datepicker-picker span {
  color: var(--gray-600, #6c757d);
}
.so-datepicker-picker .so-datepicker-header {
  display: flex;
  padding: 4px 8px;
}
.so-datepicker-picker .so-datepicker-header span {
  cursor: pointer;
  line-height: 1;
}
.so-datepicker-picker .so-datepicker-header span:hover {
  color: var(--primary-color, #3399ff);
}
.so-datepicker-picker .so-datepicker-header .so-datepicker-icon {
  width: 18px;
  height: 16px;
  padding: 0 4px;
}
.so-datepicker-picker .so-datepicker-header .so-datepicker-icon path {
  fill: var(--gray-600, #6c757d);
}
.so-datepicker-picker .so-datepicker-header .so-datepicker-icon:hover path {
  fill: var(--primary-color, #3399ff);
}
.so-datepicker-picker .so-datepicker-header .so-datepicker-icon.so-datepicker-disabled {
  cursor: not-allowed;
}
.so-datepicker-picker .so-datepicker-header .so-datepicker-icon.so-datepicker-disabled path {
  fill: var(--gray-400, #ced4da);
}
.so-datepicker-picker .so-datepicker-header .so-datepicker-ym {
  flex: 1;
  text-align: center;
}
.so-datepicker-picker .so-datepicker-header .so-datepicker-ym span {
  padding: 0 6px;
}
.so-datepicker-picker .so-datepicker-header .so-datepicker-ym + .so-datepicker-ym {
  text-align: left;
}
.so-datepicker-picker span.so-datepicker-today {
  color: var(--primary-color, #3399ff);
  background: transparent;
  box-shadow: 0 0 0 1px var(--primary-color, #3399ff) inset;
}
.so-datepicker-picker .so-datepicker-list span:hover {
  background: var(--datepicker-day-hover-bgc, var(--gray-100, #f8f9fa));
  color: #000;
}
.so-datepicker-picker .so-datepicker-list span:hover.so-datepicker-today {
  background: transparent;
  color: var(--primary-color, #3399ff);
}
.so-datepicker-picker span.so-datepicker-active,
.so-datepicker-picker span.so-datepicker-active:hover {
  background: var(--primary-color, #3399ff);
  color: #fff;
}
.so-datepicker-picker span.so-datepicker-active:hover.so-datepicker-today {
  background: var(--primary-color, #3399ff);
  color: #fff;
}
.so-datepicker-left-bottom .so-datepicker-picker {
  top: 100%;
  left: 0;
  margin-top: 4px;
}
.so-datepicker-left-top .so-datepicker-picker {
  bottom: 100%;
  left: 0;
  margin-bottom: 4px;
  box-shadow: 0 0 1px 1px rgba(0, 0, 0, 0.02), 0 -2px 12px rgba(0, 0, 0, 0.175);
}
.so-datepicker-right-top .so-datepicker-picker {
  right: 0;
  bottom: 100%;
  margin-bottom: 4px;
  box-shadow: 0 0 1px 1px rgba(0, 0, 0, 0.02), 0 -2px 12px rgba(0, 0, 0, 0.175);
}
.so-datepicker-right-bottom .so-datepicker-picker {
  top: 100%;
  right: 0;
  margin-top: 4px;
}
.so-datepicker-day-picker,
.so-datepicker-month-picker,
.so-datepicker-year-picker {
  width: 252px;
}
.so-datepicker-day-picker span,
.so-datepicker-month-picker span,
.so-datepicker-year-picker span {
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
}
.so-datepicker-range-picker {
  display: flex;
}
.so-datepicker-range-picker > div:nth-last-child(2) {
  margin-right: 12px;
}
.so-datepicker-range-picker > div:last-child {
  position: relative;
}
.so-datepicker-range-picker > div:last-child:before {
  content: ' ';
  position: absolute;
  left: -6px;
  height: 100%;
  border-left: 1px solid var(--divider-color, #f0f0f0);
}
.so-datepicker-day-picker {
  display: flex;
  flex-direction: column;
  height: 100%;
}
.so-datepicker-day-picker .so-datepicker-week {
  margin-bottom: 4px;
  border-bottom: solid 1px #f2f2f2;
  text-align: center;
}
.so-datepicker-day-picker .so-datepicker-week span {
  display: inline-block;
  width: 28px;
  margin: 8px 4px;
}
.so-datepicker-day-picker .so-datepicker-list {
  position: relative;
  z-index: 10;
  background: #fff;
  text-align: center;
}
.so-datepicker-day-picker .so-datepicker-list div {
  display: inline-block;
  width: 36px;
  height: 32px;
  padding: 2px 0;
  margin-bottom: 4px;
}
.so-datepicker-day-picker .so-datepicker-list div.so-datepicker-hover,
.so-datepicker-day-picker .so-datepicker-list div.so-datepicker-active {
  background: var(--datepicker-day-hover-bgc, var(--gray-100, #f8f9fa));
}
.so-datepicker-day-picker .so-datepicker-list div.so-datepicker-hover-start {
  border-bottom-left-radius: 16px;
  border-top-left-radius: 16px;
}
.so-datepicker-day-picker .so-datepicker-list div.so-datepicker-hover-end {
  border-bottom-right-radius: 16px;
  border-top-right-radius: 16px;
}
.so-datepicker-day-picker .so-datepicker-list div.so-datepicker-active.so-datepicker-hover-start span,
.so-datepicker-day-picker .so-datepicker-list div.so-datepicker-active.so-datepicker-hover-end span {
  background: var(--primary-color, #3399ff);
  color: #fff;
}
.so-datepicker-day-picker .so-datepicker-list span {
  display: block;
  width: 28px;
  height: 28px;
  margin: 0 auto;
  border-radius: 14px;
  cursor: pointer;
  font-size: 13px;
  line-height: 28px;
  text-align: center;
}
.so-datepicker-day-picker .so-datepicker-list .so-datepicker-disabled {
  color: var(--gray-400, #ced4da);
  cursor: not-allowed;
}
.so-datepicker-day-picker .so-datepicker-list .so-datepicker-disabled.so-datepicker-today {
  box-shadow: 0 0 0 1px var(--gray-400, #ced4da) inset;
}
.so-datepicker-day-picker .so-datepicker-list .so-datepicker-disabled.so-datepicker-today:hover {
  color: var(--gray-400, #ced4da);
}
.so-datepicker-day-picker .so-datepicker-list .so-datepicker-other-month {
  color: var(--gray-400, #ced4da);
}
.so-datepicker-day-picker .so-datepicker-datetime {
  position: relative;
  padding-top: 12px;
  padding-left: 12px;
  border-top: solid 1px #f2f2f2;
}
.so-datepicker-day-picker .so-datepicker-datetime .so-datepicker-clock {
  fill: var(--gray-600, #6c757d);
  margin-right: 8px;
  position: relative;
  top: 2px;
}
.so-datepicker-day-picker .so-datepicker-datetime .so-datepicker-clock > svg {
  width: 14px;
  height: 14px;
}
.so-datepicker-day-picker .so-datepicker-datetime .so-datepicker-time-picker {
  position: absolute;
  z-index: 0;
  bottom: 100%;
  left: 0;
  background: #fff;
  box-shadow: 0 0 1px 1px rgba(0, 0, 0, 0.02), 0 -2px 12px rgba(0, 0, 0, 0.175);
  visibility: hidden;
}
.so-datepicker-day-picker .so-datepicker-datetime:hover .so-datepicker-time-picker {
  z-index: 100;
  visibility: visible;
}
.so-datepicker-month-picker .so-datepicker-list {
  padding-top: 12px;
  text-align: center;
}
.so-datepicker-month-picker .so-datepicker-list span {
  display: inline-block;
  width: 70px;
  padding: 4px 6px;
  margin: 6px 5px;
  border-radius: var(--datepicker-rect-active-border-radius, 2px);
  cursor: pointer;
}
.so-datepicker-month-picker .so-datepicker-list .so-datepicker-disabled {
  color: var(--gray-400, #ced4da);
  cursor: not-allowed;
}
.so-datepicker-year-picker .so-datepicker-list {
  padding-top: 12px;
  text-align: center;
}
.so-datepicker-year-picker .so-datepicker-list span {
  display: inline-block;
  width: 50px;
  padding: 4px 6px;
  margin: 4px 15px;
  border-radius: var(--datepicker-rect-active-border-radius, 2px);
  cursor: pointer;
}
.so-datepicker-time-picker {
  width: auto;
  font-size: 0;
  white-space: nowrap;
}
.so-datepicker-time-picker .so-datepicker-time-list {
  position: relative;
  display: inline-block;
  overflow: hidden;
  width: 65px;
  height: 150px;
  box-sizing: border-box;
  flex-direction: column;
  border-right: solid 1px var(--gray-200, #e9ecef);
  background: linear-gradient(to bottom, var(--gray-100, #f8f9fa), var(--gray-100, #f8f9fa), 30px, transparent 30px, transparent) 0 60px;
  font-size: 12px;
  text-align: left;
}
.so-datepicker-time-picker .so-datepicker-time-list:last-child {
  border-right: 0;
}
.so-datepicker-time-picker .so-datepicker-time-list .so-datepicker-pad {
  height: 60px;
}
.so-datepicker-time-picker .so-datepicker-time-list span,
.so-datepicker-time-picker .so-datepicker-time-list a {
  display: block;
  padding-left: 18px;
  color: #eee;
  line-height: 30px;
  height: 30px;
}
.so-datepicker-time-picker .so-datepicker-time-list .so-datepicker-time-active {
  color: #000;
  font-weight: bold;
}
.so-datepicker-time-picker .so-datepicker-time-list:hover {
  overflow: auto;
}
.so-datepicker-absolute .so-datepicker-absolute-left-top {
  box-shadow: 0 0 1px 1px rgba(0, 0, 0, 0.02), 0 -2px 12px rgba(0, 0, 0, 0.175);
}
.so-datepicker-absolute .so-datepicker-absolute-right-top {
  box-shadow: 0 0 1px 1px rgba(0, 0, 0, 0.02), 0 -2px 12px rgba(0, 0, 0, 0.175);
}
.so-datepicker-quick-select {
  min-width: 80px;
  border-right: 1px solid var(--divider-color, #f0f0f0);
}
.so-datepicker-quick-select-item {
  white-space: nowrap;
  padding: 4px 12px;
  cursor: pointer;
  position: relative;
  transition: all .2s;
}
.so-datepicker-quick-select-item:hover {
  background: var(--primary-color-fade-10, rgba(51, 153, 255, 0.1));
}
.so-datepicker-quick-select-item::after {
  content: '';
  transition: all .2s;
  opacity: 0;
  background: var(--primary-color, #3399ff);
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
  width: 2px;
}
.so-datepicker-quick-select-item-active {
  color: var(--primary-color, #3399ff);
}
.so-datepicker-quick-select-item-active:after {
  opacity: 1;
}
.so-datepicker-rtl {
  direction: rtl;
  text-align: right;
}
.so-datepicker-rtl.so-datepicker-inner {
  padding: 6px 12px 6px 24px;
}
.so-datepicker-rtl.so-datepicker-inner .so-datepicker-result .so-datepicker-icon {
  right: auto;
  left: 0;
  margin-right: 0;
  margin-left: -16px;
}
.so-datepicker-rtl .so-datepicker-picker .so-datepicker-header .so-datepicker-left,
.so-datepicker-rtl .so-datepicker-picker .so-datepicker-header .so-datepicker-right {
  -webkit-transform: rotate(180deg);
          transform: rotate(180deg);
}
.so-datepicker-rtl .so-datepicker-range-picker > div:nth-last-child(2) {
  margin-right: 0;
  margin-left: 12px;
}
.so-datepicker-rtl .so-datepicker-range-picker > div:last-child:before {
  content: none;
}
.so-datepicker-rtl .so-datepicker-range-picker > div:last-child:after {
  content: ' ';
  position: absolute;
  height: 100%;
  right: -6px;
  top: 0;
  border-left: 1px solid var(--divider-color, #f0f0f0);
}
.so-datepicker-rtl .so-datepicker-day-picker .so-datepicker-list .so-datepicker-hover-end {
  border-bottom-right-radius: 0;
  border-top-right-radius: 0;
  border-bottom-left-radius: 16px;
  border-top-left-radius: 16px;
}
.so-datepicker-rtl .so-datepicker-day-picker .so-datepicker-list .so-datepicker-hover-start {
  border-bottom-left-radius: 0;
  border-top-left-radius: 0;
  border-bottom-right-radius: 16px;
  border-top-right-radius: 16px;
}
.so-datepicker-rtl .so-datepicker-time-picker .so-datepicker-time-list:first-child {
  border-width: 0;
}
.so-datepicker-rtl .so-datepicker-time-picker .so-datepicker-time-list:last-child {
  border-right: 1px solid var(--gray-200, #e9ecef);
}
.so-datepicker-rtl .so-datepicker-quick-select {
  border-right: none;
  border-left: 1px solid var(--divider-color, #f0f0f0);
}

.so-rate {
  position: relative;
  white-space: nowrap;
  display: inline-block;
}
@-webkit-keyframes so-rate-highlight {
  0% {
    opacity: 1;
    -webkit-transform: scale(1);
            transform: scale(1);
  }
  100% {
    opacity: 0;
    -webkit-transform: scale(1.6);
            transform: scale(1.6);
  }
}
@keyframes so-rate-highlight {
  0% {
    opacity: 1;
    -webkit-transform: scale(1);
            transform: scale(1);
  }
  100% {
    opacity: 0;
    -webkit-transform: scale(1.6);
            transform: scale(1.6);
  }
}
.so-rate-background {
  position: relative;
  z-index: 0;
}
.so-rate-background > span {
  color: var(--gray-400, #ced4da);
}
.so-rate-front,
.so-rate-static {
  position: absolute;
  z-index: 1;
}
.so-rate-front > span,
.so-rate-static > span {
  position: relative;
  color: #fadb14;
}
.so-rate-front span,
.so-rate-background span {
  cursor: pointer;
}
.so-rate-front,
.so-rate-background,
.so-rate-static {
  top: 0;
  left: 0;
}
.so-rate-front > span,
.so-rate-background > span,
.so-rate-static > span {
  display: inline-block;
  margin-right: 6px;
  vertical-align: middle;
}
.so-rate-front > span:last-child,
.so-rate-background > span:last-child,
.so-rate-static > span:last-child {
  margin-right: 0;
}
.so-rate-highlight {
  position: absolute;
  top: 0;
  left: 0;
  -webkit-animation: so-rate-highlight 0.3s ease-out;
          animation: so-rate-highlight 0.3s ease-out;
  font-style: normal;
}
span.so-rate-text {
  margin-left: 4px;
  color: var(--gray-600, #6c757d);
  font-size: 14px;
}

.so-image {
  position: relative;
  display: inline-block;
  overflow: hidden;
}
.so-image > * {
  position: absolute;
  top: 0;
  left: 0;
}
.so-image-inner {
  right: 0;
  bottom: 0;
}
.so-image img {
  max-width: 100%;
  max-height: 100%;
}
.so-image-mask {
  display: flex;
  background: var(--gray-100, #f8f9fa);
  color: var(--gray-500, #adb5bd);
}
.so-image-mask div {
  margin: auto;
}
.so-image-rounded {
  border-radius: 4px;
}
.so-image-circle {
  border-radius: 50%;
}
.so-image-thumbnail {
  background-color: #fff;
  border-radius: 2px;
  box-shadow: 0 0 1px 1px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.075);
  transition: all 0.2s ease-in-out;
}
.so-image-thumbnail .so-image-inner {
  top: 3px;
  right: 3px;
  bottom: 3px;
  left: 3px;
}
.so-image-fill .so-image-inner,
.so-image-fit .so-image-inner {
  background-position: 50% 50%;
  background-repeat: no-repeat;
}
.so-image-fill .so-image-inner {
  background-size: cover;
}
.so-image-center .so-image-inner {
  display: flex;
}
.so-image-center .so-image-inner img {
  margin: auto;
}
.so-image-stretch .so-image-inner img {
  width: 100%;
  height: 100%;
}
.so-image-group .so-image {
  margin-right: 8px;
}
.so-image-pile.so-image-group {
  position: relative;
}
.so-image-pile.so-image-group .so-image {
  position: absolute;
  z-index: 0;
  top: 0;
  left: 0;
  display: none;
}
.so-image-pile.so-image-group .so-image:first-child {
  position: relative;
  z-index: 10;
  display: inline-block;
}
.so-image-pile.so-image-group .so-image:nth-child(2) {
  top: 8px;
  left: 8px;
  display: inline-block;
}
.so-image-gallery {
  position: fixed;
  z-index: 1100;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
}
.so-image-gallery .so-image-center,
.so-image-gallery .so-image-left,
.so-image-gallery .so-image-right {
  display: flex;
  position: absolute;
  z-index: 10;
  top: 50%;
  background: #fff;
}
.so-image-gallery .so-image-center > div,
.so-image-gallery .so-image-left > div,
.so-image-gallery .so-image-right > div {
  box-sizing: content-box;
  border: solid 10px #fff;
}
.so-image-gallery .so-image-center {
  z-index: 20;
  min-width: 100px;
  min-height: 100px;
}
.so-image-gallery .so-image-left:hover,
.so-image-gallery .so-image-right:hover {
  cursor: pointer;
  opacity: 1;
}
@-webkit-keyframes so-image-kf-f2c {
  0% {
    left: 100%;
    margin-left: -80px;
    -webkit-transform: translate(0, -50%);
            transform: translate(0, -50%);
  }
  100% {
    left: 50%;
    margin-left: 0;
    -webkit-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%);
  }
}
@keyframes so-image-kf-f2c {
  0% {
    left: 100%;
    margin-left: -80px;
    -webkit-transform: translate(0, -50%);
            transform: translate(0, -50%);
  }
  100% {
    left: 50%;
    margin-left: 0;
    -webkit-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%);
  }
}
@-webkit-keyframes so-image-kf-c2b {
  0% {
    right: 50%;
    margin-right: 0;
    -webkit-transform: translate(50%, -50%);
            transform: translate(50%, -50%);
  }
  100% {
    right: 100%;
    margin-right: -80px;
    -webkit-transform: translate(0, -50%);
            transform: translate(0, -50%);
  }
}
@keyframes so-image-kf-c2b {
  0% {
    right: 50%;
    margin-right: 0;
    -webkit-transform: translate(50%, -50%);
            transform: translate(50%, -50%);
  }
  100% {
    right: 100%;
    margin-right: -80px;
    -webkit-transform: translate(0, -50%);
            transform: translate(0, -50%);
  }
}
@-webkit-keyframes so-image-kf-c2f {
  0% {
    left: 50%;
    margin-left: 0;
    -webkit-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%);
  }
  100% {
    left: 100%;
    margin-left: -80px;
    -webkit-transform: translate(0, -50%);
            transform: translate(0, -50%);
  }
}
@keyframes so-image-kf-c2f {
  0% {
    left: 50%;
    margin-left: 0;
    -webkit-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%);
  }
  100% {
    left: 100%;
    margin-left: -80px;
    -webkit-transform: translate(0, -50%);
            transform: translate(0, -50%);
  }
}
@-webkit-keyframes so-image-kf-b2c {
  0% {
    right: 100%;
    margin-right: -80px;
    -webkit-transform: translate(0, -50%);
            transform: translate(0, -50%);
  }
  100% {
    right: 50%;
    margin-right: 0;
    -webkit-transform: translate(50%, -50%);
            transform: translate(50%, -50%);
  }
}
@keyframes so-image-kf-b2c {
  0% {
    right: 100%;
    margin-right: -80px;
    -webkit-transform: translate(0, -50%);
            transform: translate(0, -50%);
  }
  100% {
    right: 50%;
    margin-right: 0;
    -webkit-transform: translate(50%, -50%);
            transform: translate(50%, -50%);
  }
}
.so-image-gallery .so-image-center.so-image-init {
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
}
.so-image-gallery .so-image-left.so-image-init,
.so-image-gallery .so-image-left.so-image-backward {
  right: 100%;
  margin-right: -80px;
  opacity: 0.4;
  -webkit-transform: translate(0, -50%);
          transform: translate(0, -50%);
}
.so-image-gallery .so-image-right.so-image-init,
.so-image-gallery .so-image-right.so-image-forward {
  left: 100%;
  margin-left: -80px;
  opacity: 0.4;
  -webkit-transform: translate(0, -50%);
          transform: translate(0, -50%);
}
.so-image-gallery .so-image-center.so-image-forward {
  -webkit-animation: so-image-kf-f2c 0.42s linear;
          animation: so-image-kf-f2c 0.42s linear;
}
.so-image-gallery .so-image-left.so-image-forward {
  -webkit-animation: so-image-kf-c2b 0.42s linear;
          animation: so-image-kf-c2b 0.42s linear;
}
.so-image-gallery .so-image-center.so-image-backward {
  -webkit-animation: so-image-kf-b2c 0.42s linear;
          animation: so-image-kf-b2c 0.42s linear;
}
.so-image-gallery .so-image-right.so-image-backward {
  -webkit-animation: so-image-kf-c2f 0.42s linear;
          animation: so-image-kf-c2f 0.42s linear;
}
.so-image-gallery .so-image-overlay {
  position: absolute;
  z-index: 0;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: rgba(0, 0, 0, 0.5);
}
.so-image-gallery .so-image-close {
  position: absolute;
  top: -14px;
  right: -10px;
  width: 24px;
  height: 24px;
  border: solid 1px #fff;
  background: #333;
  border-radius: 12px;
  box-shadow: 0px 1px 2px 2px rgba(0, 0, 0, 0.3);
}
.so-image-gallery .so-image-close svg {
  position: absolute;
  top: 5px;
  left: 5px;
  width: 12px;
  height: 12px;
  fill: #fff;
}
.so-image-gallery img {
  display: block;
}
.so-image-magnify {
  display: inline-block;
  margin: auto;
}
.so-image-magnify > img {
  background: #fff;
  position: relative;
  z-index: 2;
}
.so-image-magnify-loading {
  z-index: 1;
  display: inline-block;
  margin: auto;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  width: 30px;
  height: 30px;
  pointer-events: none;
}
.so-image-left .so-image-magnify-loading,
.so-image-right .so-image-magnify-loading {
  display: none;
}

.so-tooltip {
  position: absolute;
  z-index: 1070;
  display: block;
  font-size: var(--font-size-small, 12px);
  word-wrap: break-word;
  pointer-events: none;
}
@-webkit-keyframes so-tooltip-kf-opacity {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
@keyframes so-tooltip-kf-opacity {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
@-webkit-keyframes so-tooltip-kf-top {
  0% {
    margin-top: 0;
  }
  100% {
    margin-top: -8px;
  }
}
@keyframes so-tooltip-kf-top {
  0% {
    margin-top: 0;
  }
  100% {
    margin-top: -8px;
  }
}
@-webkit-keyframes so-tooltip-kf-bottom {
  0% {
    margin-top: 0;
  }
  100% {
    margin-top: 8px;
  }
}
@keyframes so-tooltip-kf-bottom {
  0% {
    margin-top: 0;
  }
  100% {
    margin-top: 8px;
  }
}
@-webkit-keyframes so-tooltip-kf-left {
  0% {
    margin-left: 0;
  }
  100% {
    margin-left: -8px;
  }
}
@keyframes so-tooltip-kf-left {
  0% {
    margin-left: 0;
  }
  100% {
    margin-left: -8px;
  }
}
@-webkit-keyframes so-tooltip-kf-right {
  0% {
    margin-left: 0;
  }
  100% {
    margin-left: 8px;
  }
}
@keyframes so-tooltip-kf-right {
  0% {
    margin-left: 0;
  }
  100% {
    margin-left: 8px;
  }
}
.so-tooltip-animation {
  transition: opacity 0.3 ease, -webkit-transform 0.3s cubic-bezier(0.71, 1.7, 0.77, 1.24);
  transition: opacity 0.3 ease, transform 0.3s cubic-bezier(0.71, 1.7, 0.77, 1.24);
  transition: opacity 0.3 ease, transform 0.3s cubic-bezier(0.71, 1.7, 0.77, 1.24), -webkit-transform 0.3s cubic-bezier(0.71, 1.7, 0.77, 1.24);
}
.so-tooltip-disabled-wrapper {
  display: inline-block;
}
.so-tooltip-arrow {
  position: absolute;
  z-index: 1;
  display: inline-block;
  width: 0;
  height: 0;
}
.so-tooltip-inner {
  position: relative;
  z-index: 2;
  max-width: 200px;
  padding: var(--tooltip-padding-vertical, 3px) var(--tooltip-padding-horizontal, 8px);
  background-color: var(--tooltip-bg, #000);
  border-radius: 4px;
  color: #fff;
  text-align: center;
}
.so-tooltip-top {
  margin-top: -8px;
  -webkit-transform: translate(-50%, -100%);
          transform: translate(-50%, -100%);
}
.so-tooltip-top .so-tooltip-arrow {
  top: 100%;
  left: 50%;
  border-top: 5px solid var(--tooltip-bg, #000);
  border-right: 5px solid transparent;
  border-left: 5px solid transparent;
  -webkit-transform: translate(-50%, 0);
          transform: translate(-50%, 0);
}
.so-tooltip-top.so-tooltip-animation {
  -webkit-animation: so-tooltip-kf-opacity 0.3s ease, so-tooltip-kf-top 0.3s cubic-bezier(0.71, 1.7, 0.77, 1.24);
          animation: so-tooltip-kf-opacity 0.3s ease, so-tooltip-kf-top 0.3s cubic-bezier(0.71, 1.7, 0.77, 1.24);
}
.so-tooltip-right {
  margin-left: 8px;
  -webkit-transform: translate(0, -50%);
          transform: translate(0, -50%);
}
.so-tooltip-right .so-tooltip-arrow {
  top: 50%;
  right: 100%;
  border-top: 5px solid transparent;
  border-right: 5px solid var(--tooltip-bg, #000);
  border-bottom: 5px solid transparent;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}
.so-tooltip-right.so-tooltip-animation {
  -webkit-animation: so-tooltip-kf-opacity 0.3s ease, so-tooltip-kf-right 0.3s cubic-bezier(0.71, 1.7, 0.77, 1.24);
          animation: so-tooltip-kf-opacity 0.3s ease, so-tooltip-kf-right 0.3s cubic-bezier(0.71, 1.7, 0.77, 1.24);
}
.so-tooltip-left {
  margin-left: -8px;
  -webkit-transform: translate(-100%, -50%);
          transform: translate(-100%, -50%);
}
.so-tooltip-left .so-tooltip-arrow {
  top: 50%;
  left: 100%;
  border-top: 5px solid transparent;
  border-bottom: 5px solid transparent;
  border-left: 5px solid var(--tooltip-bg, #000);
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}
.so-tooltip-left.so-tooltip-animation {
  -webkit-animation: so-tooltip-kf-opacity 0.3s ease, so-tooltip-kf-left 0.3s cubic-bezier(0.71, 1.7, 0.77, 1.24);
          animation: so-tooltip-kf-opacity 0.3s ease, so-tooltip-kf-left 0.3s cubic-bezier(0.71, 1.7, 0.77, 1.24);
}
.so-tooltip-bottom {
  margin-top: 8px;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
}
.so-tooltip-bottom .so-tooltip-arrow {
  top: 0;
  left: 50%;
  border-right: 5px solid transparent;
  border-bottom: 5px solid var(--tooltip-bg, #000);
  border-left: 5px solid transparent;
  -webkit-transform: translate(-50%, -100%);
          transform: translate(-50%, -100%);
}
.so-tooltip-bottom.so-tooltip-animation {
  -webkit-animation: so-tooltip-kf-opacity 0.3s ease, so-tooltip-kf-bottom 0.3s cubic-bezier(0.71, 1.7, 0.77, 1.24);
          animation: so-tooltip-kf-opacity 0.3s ease, so-tooltip-kf-bottom 0.3s cubic-bezier(0.71, 1.7, 0.77, 1.24);
}

.so-popover {
  position: absolute;
  z-index: 1060;
  display: block;
  border: var(--popover-border-width, 1px) solid var(--popover-border-color, #dee2e6);
  background-clip: padding-box;
  background-color: #fff;
  border-radius: var(--popover-border-radius, 4px);
  box-shadow: var(--popover-box-shadow, 0 5px 10px rgba(0, 0, 0, 0.2));
  font-size: var(--popover-text-font-size, var(--font-size-small, 12px));
  word-wrap: break-word;
}
@-webkit-keyframes so-popover-kf-opacity {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
@keyframes so-popover-kf-opacity {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
.so-popover:after {
  background: transparent;
  position: absolute;
  content: '';
}
.so-popover-arrow {
  position: absolute;
  z-index: 1;
  display: inline-block;
  padding: 4.2px;
  border: var(--popover-border-width, 1px) solid var(--popover-border-color, #dee2e6);
  background-color: #fff;
  border-left: none;
  border-bottom: none;
}
.so-popover-top,
.so-popover-top-left,
.so-popover-top-right {
  margin-top: -10px;
  -webkit-transform: translate(-50%, -100%);
          transform: translate(-50%, -100%);
}
.so-popover-top:after,
.so-popover-top-left:after,
.so-popover-top-right:after {
  left: 0;
  right: 0;
  bottom: -12px;
  height: 12px;
}
.so-popover-top .so-popover-arrow,
.so-popover-top-left .so-popover-arrow,
.so-popover-top-right .so-popover-arrow {
  bottom: 0;
  left: 50%;
  -webkit-transform: translate(-50%, 50%) rotate(135deg);
          transform: translate(-50%, 50%) rotate(135deg);
}
.so-popover-top-left {
  -webkit-transform: translate(0, -100%);
          transform: translate(0, -100%);
}
.so-popover-top-left .so-popover-arrow {
  left: 12px;
}
.so-popover-top-right {
  -webkit-transform: translate(-100%, -100%);
          transform: translate(-100%, -100%);
}
.so-popover-top-right .so-popover-arrow {
  right: 6px;
  left: auto;
}
.so-popover-left-top,
.so-popover-left-bottom,
.so-popover-left {
  margin-left: -10px;
  -webkit-transform: translate(-100%, -50%);
          transform: translate(-100%, -50%);
}
.so-popover-left-top:after,
.so-popover-left-bottom:after,
.so-popover-left:after {
  top: 0;
  bottom: 0;
  right: -12px;
  width: 12px;
}
.so-popover-left-top .so-popover-arrow,
.so-popover-left-bottom .so-popover-arrow,
.so-popover-left .so-popover-arrow {
  top: 50%;
  right: 0;
  -webkit-transform: translate(50%, -50%) rotate(45deg);
          transform: translate(50%, -50%) rotate(45deg);
}
.so-popover-left-top {
  -webkit-transform: translateX(-100%);
          transform: translateX(-100%);
}
.so-popover-left-top .so-popover-arrow {
  top: 12px;
}
.so-popover-left-bottom {
  -webkit-transform: translate(-100%, -100%);
          transform: translate(-100%, -100%);
}
.so-popover-left-bottom .so-popover-arrow {
  top: auto;
  bottom: 6px;
}
.so-popover-right-top,
.so-popover-right-bottom,
.so-popover-right {
  margin-left: 10px;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}
.so-popover-right-top:after,
.so-popover-right-bottom:after,
.so-popover-right:after {
  top: 0;
  bottom: 0;
  left: -12px;
  width: 12px;
}
.so-popover-right-top .so-popover-arrow,
.so-popover-right-bottom .so-popover-arrow,
.so-popover-right .so-popover-arrow {
  top: 50%;
  left: 0;
  -webkit-transform: translate(-50%, -50%) rotate(225deg);
          transform: translate(-50%, -50%) rotate(225deg);
}
.so-popover-right-top {
  -webkit-transform: translateY(0);
          transform: translateY(0);
}
.so-popover-right-top .so-popover-arrow {
  top: 12px;
}
.so-popover-right-bottom {
  -webkit-transform: translateY(-100%);
          transform: translateY(-100%);
}
.so-popover-right-bottom .so-popover-arrow {
  top: auto;
  bottom: 6px;
}
.so-popover-bottom-left,
.so-popover-bottom,
.so-popover-bottom-right,
.so-popover-cover {
  margin-top: 10px;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
}
.so-popover-bottom-left:after,
.so-popover-bottom:after,
.so-popover-bottom-right:after,
.so-popover-cover:after {
  left: 0;
  right: 0;
  top: -12px;
  height: 12px;
}
.so-popover-bottom-left .so-popover-arrow,
.so-popover-bottom .so-popover-arrow,
.so-popover-bottom-right .so-popover-arrow,
.so-popover-cover .so-popover-arrow {
  top: 0;
  left: 50%;
  -webkit-transform: translate(-50%, -50%) rotate(315deg);
          transform: translate(-50%, -50%) rotate(315deg);
}
.so-popover-bottom-left,
.so-popover-cover {
  -webkit-transform: translateX(0);
          transform: translateX(0);
}
.so-popover-bottom-left .so-popover-arrow,
.so-popover-cover .so-popover-arrow {
  left: 12px;
}
.so-popover-cover {
  margin-top: 0;
}
.so-popover-bottom-right {
  -webkit-transform: translateX(-100%);
          transform: translateX(-100%);
}
.so-popover-bottom-right .so-popover-arrow {
  right: 6px;
  left: auto;
}
.so-popover-bottom-right {
  -webkit-transform: none;
          transform: none;
}
.so-popover-top-right {
  -webkit-transform: translateY(-100%);
          transform: translateY(-100%);
}
.so-popover-content {
  position: relative;
  z-index: 2;
  background-color: #fff;
  border-radius: inherit;
}
.so-popover-info {
  border-color: var(--alert-info-border-color, #bce8f1);
}
.so-popover-info .so-popover-content {
  background: var(--alert-info-bg, #d9edf7);
}
.so-popover-info .so-popover-arrow {
  border-color: var(--alert-info-border-color, #bce8f1);
  background: var(--alert-info-bg, #d9edf7);
}
.so-popover-info .so-popover-icon path {
  fill: var(--info-color, #17a2b8);
}
.so-popover-warning {
  border-color: var(--alert-warning-border-color, #faebcc);
}
.so-popover-warning .so-popover-content {
  background: var(--alert-warning-bg, #fcf8e3);
}
.so-popover-warning .so-popover-arrow {
  border-color: var(--alert-warning-border-color, #faebcc);
  background: var(--alert-warning-bg, #fcf8e3);
}
.so-popover-warning .so-popover-icon path {
  fill: var(--warning-color, #ff9900);
}
.so-popover-success {
  border-color: var(--alert-success-border-color, #d6e9c6);
}
.so-popover-success .so-popover-content {
  background: var(--alert-success-bg, #dff0d8);
}
.so-popover-success .so-popover-arrow {
  border-color: var(--alert-success-border-color, #d6e9c6);
  background: var(--alert-success-bg, #dff0d8);
}
.so-popover-success .so-popover-icon path {
  fill: var(--success-color, #00cc66);
}
.so-popover-danger,
.so-popover-error {
  border-color: var(--alert-danger-border-color, #ebccd1);
}
.so-popover-danger .so-popover-content,
.so-popover-error .so-popover-content {
  background: var(--alert-danger-bg, #f2dede);
}
.so-popover-danger .so-popover-arrow,
.so-popover-error .so-popover-arrow {
  border-color: var(--alert-danger-border-color, #ebccd1);
  background: var(--alert-danger-bg, #f2dede);
}
.so-popover-danger .so-popover-icon path,
.so-popover-error .so-popover-icon path {
  fill: var(--danger-color, #f85555);
}
.so-popover-confirm {
  padding: 16px;
}
.so-popover-confirm .so-popover-footer {
  text-align: right;
}
.so-popover-confirm .so-popover-mention .so-popover-alert {
  padding-top: 0;
  padding-left: 0;
  padding-right: 0;
  background: transparent;
  border: none;
  color: #000;
  box-shadow: none;
  margin-bottom: 8px;
  font-size: 12px;
}
.so-popover-text {
  display: inline-block;
  max-width: var(--popover-text-max-width, 320px);
  padding: var(--common-content-text-padding, 8px 12px);
}
.so-popover-input-tip {
  color: var(--form-tip-color, #7e8b98);
  border: none;
  box-shadow: 0 0 0 1px var(--input-border-color, #ced4da), 0 2px 8px rgba(0, 0, 0, 0.15);
}
.so-popover-input-tip .so-popover-content,
.so-popover-input-tip .so-popover-arrow {
  background-color: var(--gray-100, #f8f9fa);
  border-color: var(--input-border-color, #ced4da);
}
.so-popover-input-tip .so-popover-content > span {
  padding: 6px 12px;
}
.so-popover-input-error {
  color: var(--danger-color, #f85555);
  border: none;
  box-shadow: 0 0 0 1px #ebccd1, 0 2px 8px rgba(0, 0, 0, 0.15);
}
.so-popover-input-error .so-popover-arrow {
  border-color: #ebccd1;
}

.so-tree {
  position: relative;
}
.so-tree-node {
  position: relative;
  padding-left: 24px;
  line-height: 1.5;
}
.so-tree-node > .so-tree-children {
  margin-left: var(--tree-level-indent, 0);
}
.so-tree-node > div {
  padding-bottom: var(--tree-node-margin-bottom, 2px);
}
.so-tree-node:last-child > div {
  padding-bottom: 0;
}
.so-tree-with-line > .so-tree-node:only-child:before {
  display: none;
}
.so-tree-with-line .so-tree-node:before {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 6px;
  width: 1px;
  background: linear-gradient(to bottom, var(--gray-500, #adb5bd), var(--gray-500, #adb5bd) 2px, transparent 3px, transparent);
  background-size: 100% 6px;
  content: ' ';
}
.so-tree-with-line .so-tree-node:after {
  position: absolute;
  top: 11px;
  left: 7px;
  width: 14px;
  height: 1px;
  background: linear-gradient(to right, var(--gray-500, #adb5bd), var(--gray-500, #adb5bd) 2px, transparent 3px, transparent);
  background-size: 6px 100%;
  content: ' ';
}
.so-tree-with-line .so-tree-node:last-child:before {
  top: -4px;
  bottom: auto;
  height: 14px;
}
.so-tree-with-line .so-tree-node:first-child:before {
  top: -4px;
}
.so-tree-with-line.so-tree > .so-tree-node:first-child:before {
  top: 9px;
}
.so-tree-with-line .so-tree-icon-plus,
.so-tree-with-line .so-tree-icon-sub {
  position: absolute;
  z-index: 10;
  top: 3px;
  left: 0px;
}
.so-tree-with-line .so-tree-icon-plus:hover span.so-tree-default-icon,
.so-tree-with-line .so-tree-icon-sub:hover span.so-tree-default-icon {
  border-color: var(--primary-color, #3399ff);
}
.so-tree-with-line .so-tree-icon-plus:focus span.so-tree-default-icon,
.so-tree-with-line .so-tree-icon-sub:focus span.so-tree-default-icon {
  border-color: var(--input-border-focus-color, #80bdff);
  box-shadow: 0 0 0 var(--input-focus-width, 3px) var(--input-border-focus-color-fade-25, rgba(128, 189, 255, 0.25));
}
.so-tree-with-line .so-tree-icon-plus span.so-tree-default-icon,
.so-tree-with-line .so-tree-icon-sub span.so-tree-default-icon {
  position: relative;
  display: inline-block;
  width: 13px;
  height: 13px;
  border: solid 1px var(--tree-indicator-color, var(--gray-600, #6c757d));
  background: #fff;
  border-radius: 2px;
}
.so-tree-with-line .so-tree-icon-plus span.so-tree-default-icon:before,
.so-tree-with-line .so-tree-icon-sub span.so-tree-default-icon:before {
  position: absolute;
  top: 5px;
  left: 2px;
  display: block;
  width: 7px;
  height: 0;
  border-bottom: solid 1px transparent;
  border-color: inherit;
  content: ' ';
}
.so-tree-with-line .so-tree-icon-plus span.so-tree-default-icon:after {
  position: absolute;
  top: 2px;
  left: 5px;
  display: block;
  width: 0;
  height: 7px;
  border-right: solid 1px transparent;
  border-color: inherit;
  content: ' ';
}
.so-tree-no-line .so-tree-icon-plus,
.so-tree-no-line .so-tree-icon-sub {
  position: absolute;
  z-index: 10;
  top: 0px;
  left: 0px;
  width: 16px;
}
.so-tree-no-line .so-tree-icon-plus:after,
.so-tree-no-line .so-tree-icon-sub:after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  display: inline-block;
  padding: 12px;
  transition: all .2s;
  z-index: -1;
}
.so-tree-no-line .so-tree-icon-plus:hover::after,
.so-tree-no-line .so-tree-icon-sub:hover::after {
  background: var(--gray-100, #f8f9fa);
}
.so-tree-no-line .so-tree-icon-plus .so-tree-default-icon,
.so-tree-no-line .so-tree-icon-sub .so-tree-default-icon {
  border-left-color: var(--gray-600, #6c757d);
}
.so-tree-no-line .so-tree-icon-plus span.so-tree-default-icon,
.so-tree-no-line .so-tree-icon-sub span.so-tree-default-icon {
  position: absolute;
  top: 8px;
  left: 10px;
  display: inline-block;
  width: 0;
  height: 0;
  border-width: 4px 5px;
  border-style: solid;
  border-color: transparent transparent transparent var(--tree-indicator-color, var(--gray-600, #6c757d));
  -webkit-transform-origin: 2px 4px;
          transform-origin: 2px 4px;
  transition: -webkit-transform 0.2s linear;
  transition: transform 0.2s linear;
  transition: transform 0.2s linear, -webkit-transform 0.2s linear;
}
.so-tree-no-line .so-tree-icon-sub span.so-tree-default-icon {
  -webkit-transform: rotate(90deg);
          transform: rotate(90deg);
}
.so-tree-icon-loading {
  position: absolute;
  z-index: 10;
  top: 3px;
  left: 0px;
  width: 12px;
  height: 12px;
  background: #fff;
}
.so-tree-content {
  z-index: 10;
  display: flex;
  line-height: 24px;
}
.so-tree-content .so-tree-text {
  flex: 1;
}
.so-tree-checkbox {
  z-index: 10;
  margin-right: 6px;
  font-size: 0;
}
.so-tree-drag-place {
  position: relative;
  z-index: 0;
  width: 100%;
  height: 0;
}
.so-tree-drag-place div {
  border: dashed 1px #ddd;
  background: var(--gray-100, #f8f9fa);
}
.so-tree.so-tree-rtl {
  direction: rtl;
  text-align: right;
}
.so-tree.so-tree-rtl .so-tree-node {
  padding-left: 0;
  padding-right: 24px;
}
.so-tree.so-tree-rtl .so-tree-node .so-tree-icon-plus,
.so-tree.so-tree-rtl .so-tree-node .so-tree-icon-sub {
  left: auto;
  right: 0;
}
.so-tree.so-tree-rtl .so-tree-node .so-tree-icon-plus .so-tree-default-icon,
.so-tree.so-tree-rtl .so-tree-node .so-tree-icon-sub .so-tree-default-icon {
  -webkit-transform: rotate(180deg);
          transform: rotate(180deg);
}
.so-tree.so-tree-rtl .so-tree-node .so-tree-icon-sub .so-tree-default-icon {
  -webkit-transform: rotate(90deg);
          transform: rotate(90deg);
}
.so-tree.so-tree-rtl.so-tree-with-line .so-tree-node:before {
  left: auto;
  right: 5px;
}
.so-tree.so-tree-rtl.so-tree-with-line .so-tree-node:after {
  left: auto;
  right: 6px;
}

.so-slider {
  position: relative;
  padding: 20px 10px;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
}
.so-slider-background {
  height: var(--slider-bar-height, 6px);
  background: var(--primary-color, #3399ff);
  border-radius: var(--slider-border-radius, 3px);
}
.so-slider-inner {
  position: absolute;
  top: 20px;
  right: 10px;
  left: 10px;
  height: var(--slider-bar-height, 6px);
  cursor: pointer;
}
.so-slider-bar {
  position: absolute;
  z-index: 2;
  top: 0;
  width: 100%;
  height: var(--slider-bar-height, 6px);
}
.so-slider-bar .so-slider-bar-bg {
  height: 100%;
  background: var(--slider-bar-color, #ced4da);
  border-radius: var(--slider-border-radius, 3px);
}
.so-slider-bar .so-slider-indicator {
  z-index: 100;
  box-shadow: var(--slider-indicator-box-shadow, none);
}
.so-slider-bar .so-slider-result {
  position: absolute;
  right: 0;
  bottom: var(--slider-value-bottom, 14px);
  display: none;
  padding: 0 4px;
  background: #fff;
  border-radius: 2px;
  font-size: 12px;
  -webkit-transform: translate(50%, 0);
          transform: translate(50%, 0);
}
.so-slider-bar .so-slider-result:after {
  position: absolute;
  top: 100%;
  left: 50%;
  width: 0;
  height: 0;
  border-width: 3px 3px 0 3px;
  border-style: solid;
  border-color: #fff transparent transparent transparent;
  content: ' ';
  -webkit-transform: translate(-50%, 0);
          transform: translate(-50%, 0);
}
.so-slider-bar .so-slider-result.so-slider-show {
  display: block;
}
.so-slider:hover .so-slider-result {
  display: block;
}
.so-slider-indicator {
  position: absolute;
  top: 50%;
  right: 0;
  width: var(--slider-indicator-size, 14px);
  height: var(--slider-indicator-size, 14px);
  border: solid 2px var(--primary-color, #3399ff);
  background: var(--slider-indicator-bg, #fff);
  border-radius: var(--slider-indicator-size-half, 7px);
  cursor: pointer;
  -webkit-transform: translate(50%, -50%);
          transform: translate(50%, -50%);
  transition: background 0.15s ease-in-out;
}
.so-slider-indicator:hover {
  background-color: var(--primary-color, #3399ff);
}
.so-slider-disabled .so-slider-background {
  background: var(--slider-disabled-bar-bg, #adb5bd);
}
.so-slider-disabled .so-slider-inner {
  cursor: not-allowed;
}
.so-slider-disabled .so-slider-indicator {
  border: solid 2px var(--slider-disbaled-indicator-border-color, var(--slider-disabled-bar-bg, #adb5bd));
  background: var(--slider-disbaled-indicator-bg, var(--slider-indicator-bg, #fff));
  cursor: not-allowed;
}
.so-slider-right {
  z-index: 10;
  right: 0;
}
.so-slider-right .so-slider-indicator {
  right: auto;
  left: 0;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
}
.so-slider-right .so-slider-result {
  right: auto;
  left: 0;
  -webkit-transform: translate(-50%, 0);
          transform: translate(-50%, 0);
}
.so-slider-scale {
  display: flex;
  visibility: hidden;
}
.so-slider-scale.so-slider-show {
  visibility: visible;
}
.so-slider-scale div {
  position: relative;
  display: block;
  flex: 1;
  padding-top: 12px;
}
.so-slider-scale div:last-child {
  flex: 0;
}
.so-slider-scale div:before {
  position: absolute;
  top: 5px;
  left: -1px;
  height: 6px;
  border-left: solid 1px #ccc;
  content: ' ';
}
.so-slider-scale div span {
  position: absolute;
  font-size: 12px;
  -webkit-transform: translate(-50%, 0) scale(0.9);
          transform: translate(-50%, 0) scale(0.9);
}
.so-slider:hover .so-slider-scale {
  visibility: visible;
}
.so-slider-vertical {
  display: inline-flex;
  padding: 10px 70px 10px 20px;
}
.so-slider-vertical .so-slider-background {
  width: var(--slider-bar-height, 6px);
  height: 100%;
}
.so-slider-vertical .so-slider-inner {
  top: 10px;
  right: auto;
  bottom: 10px;
  left: 20px;
  display: inline-flex;
  width: var(--slider-bar-height, 6px);
  height: auto;
}
.so-slider-vertical .so-slider-result {
  right: auto;
  bottom: 0;
  left: 15px;
  padding: 1px 6px;
  background: #fff;
  -webkit-transform: translate(0, 50%);
          transform: translate(0, 50%);
}
.so-slider-vertical .so-slider-result:after {
  top: 50%;
  right: 100%;
  left: auto;
  border-width: 3px 3px 3px 0;
  border-color: transparent #fff transparent transparent;
  -webkit-transform: translate(0, -50%);
          transform: translate(0, -50%);
}
.so-slider-vertical .so-slider-scale {
  display: inline-flex;
  flex: 1;
  flex-direction: column-reverse;
  margin-left: 15px;
}
.so-slider-vertical .so-slider-scale div {
  padding-top: 0;
}
.so-slider-vertical .so-slider-scale div:before {
  top: 0px;
  left: -10px;
  width: 6px;
  height: 0px;
  border-top: solid 1px #ccc;
  border-left: 0;
}
.so-slider-vertical .so-slider-scale div span {
  -webkit-transform: translate(0, -50%) scale(0.9);
          transform: translate(0, -50%) scale(0.9);
}
.so-slider-vertical .so-slider-scale div:first-child {
  flex: 0;
}
.so-slider-vertical .so-slider-scale div:last-child {
  flex: 1;
}
.so-slider-bottom {
  top: auto;
  bottom: 0;
}
.so-slider-bottom .so-slider-indicator {
  top: 0;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
}
.so-slider-bottom .so-slider-result {
  top: 0;
  bottom: auto;
  -webkit-transform: translate(0, -50%);
          transform: translate(0, -50%);
}
.so-slider-top .so-slider-indicator {
  top: auto;
  bottom: 0;
  left: 50%;
  -webkit-transform: translate(-50%, 50%);
          transform: translate(-50%, 50%);
}

.so-tabs {
  position: relative;
}
.so-tabs-header {
  position: relative;
  z-index: 1;
  display: flex;
  margin-bottom: 0;
}
.so-tabs-header-tabs {
  display: flex;
  flex: 1;
  overflow: hidden;
}
.so-tabs-header .so-tabs-tab {
  position: relative;
  z-index: 1;
  display: inline-block;
  padding: 10px 15px;
  margin: 0 0 -1px 0;
  border: solid 1px transparent;
  border-radius: 4px 4px 0 0;
  cursor: pointer;
  transition: color 0.2s;
}
.so-tabs-header .so-tabs-tab + .so-tabs-tab {
  margin-left: var(--tabs-tab-spacing, 4px);
}
.so-tabs-header .so-tabs-tab-bordered {
  border: 1px solid #ddd;
  margin-bottom: 0;
}
.so-tabs-header .so-tabs-tab-bordered + .so-tabs-tab-bordered {
  margin-left: 0px;
}
.so-tabs-header .so-tabs-tab-bordered-active {
  border-bottom-color: transparent;
  color: var(--primary-color, #3399ff);
}
.so-tabs-header .so-tabs-disabled {
  cursor: not-allowed;
}
.so-tabs-header .so-tabs-active {
  z-index: 100;
  cursor: default;
}
.so-tabs-header .so-tabs-hr {
  position: absolute;
  z-index: 10;
  bottom: 0;
  width: 100%;
  border-bottom: solid 1px transparent;
}
.so-tabs-header .so-tabs-extra {
  display: flex;
  align-items: center;
}
.so-tabs .so-tabs-indicator {
  display: inline-block;
  width: 40px;
  padding-top: 11px;
  cursor: pointer;
  text-align: center;
}
.so-tabs .so-tabs-indicator svg {
  width: 12px;
  height: 12px;
  -webkit-transform: rotate(90deg);
          transform: rotate(90deg);
  transition: -webkit-transform 0.2s linear;
  transition: transform 0.2s linear;
  transition: transform 0.2s linear, -webkit-transform 0.2s linear;
}
.so-tabs .so-tabs-indicator svg path {
  fill: #999;
}
.so-tabs .so-tabs-indicator:hover svg path {
  fill: var(--primary-color, #3399ff);
}
.so-tabs .so-tabs-indicator.so-tabs-collapsed svg {
  -webkit-transform: rotate(0);
          transform: rotate(0);
}
.so-tabs .so-tabs-button-active {
  position: relative;
  z-index: 100;
  background: var(--primary-color, #3399ff);
  color: #fff;
  border-color: var(--primary-color, #3399ff);
}
.so-tabs .so-tabs-button-active:before {
  display: none;
}
.so-tabs .so-tabs-button-active:not(:last-child):after {
  position: absolute;
  top: -1px;
  right: -1px;
  bottom: 0;
  width: 0;
  border-right: solid 1px var(--primary-color, #3399ff);
  content: ' ';
  height: calc(100% + 2px);
}
.so-tabs .so-tabs-button-active.so-button-default:not(.so-button-disabled):hover,
.so-tabs .so-tabs-button-active.so-button-default:not(.so-button-disabled):active,
.so-tabs .so-tabs-button-active.so-button-default:not(.so-button-disabled):focus {
  color: #fff;
}
.so-tabs-inner {
  overflow: hidden;
  flex: 1;
}
.so-tabs-inner a.so-tabs-link {
  color: #000;
}
.so-tabs-inner a.so-tabs-link.so-tabs-active {
  color: var(--primary-color, #3399ff);
}
.so-tabs-scroll {
  display: inline-block;
  transition: margin 0.2s linear;
  white-space: nowrap;
}
.so-tabs-align-right .so-tabs-inner {
  text-align: right;
}
.so-tabs-align-right .so-tabs-header-button {
  text-align: right;
}
.so-tabs-auto-fill {
  height: 100%;
  display: flex;
  flex-direction: column;
}
.so-tabs-auto-fill .so-tabs-panel {
  flex: 1;
  overflow: auto;
}
.so-tabs-vertical {
  display: flex;
  justify-content: flex-start;
  flex-direction: row;
}
.so-tabs-vertical > .so-tabs-header {
  flex-direction: column;
}
.so-tabs-vertical > .so-tabs-header .so-tabs-inner {
  padding: 0 0 1px 0;
}
.so-tabs-vertical > .so-tabs-header .so-tabs-inner .so-tabs-tab {
  display: block;
}
.so-tabs-vertical > .so-tabs-header .so-tabs-inner .so-tabs-tab + .so-tabs-tab {
  margin-top: var(--tabs-tab-spacing, 4px);
  margin-left: 0;
}
.so-tabs-vertical > .so-tabs-header .so-tabs-scroll-next,
.so-tabs-vertical > .so-tabs-header .so-tabs-scroll-prev {
  width: 100%;
  height: 30px;
}
.so-tabs-vertical > .so-tabs-header .so-tabs-scroll-next svg,
.so-tabs-vertical > .so-tabs-header .so-tabs-scroll-prev svg {
  -webkit-transform: translate(-50%, -50%) rotate(90deg);
          transform: translate(-50%, -50%) rotate(90deg);
}
.so-tabs-vertical > .so-tabs-header .so-tabs-hr {
  width: 0;
  height: 100%;
  border-left: solid 1px transparent;
}
.so-tabs-vertical > .so-tabs-panel {
  flex: 1;
}
.so-tabs-align-vertical-left .so-tabs-header-tabs {
  flex-direction: column;
}
.so-tabs-align-vertical-left .so-tabs-header {
  margin-right: 0;
}
.so-tabs-align-vertical-left .so-tabs-tab {
  border-radius: 4px 0 0 4px;
}
.so-tabs-align-vertical-left .so-tabs-hr {
  right: 0;
}
.so-tabs-align-vertical-right .so-tabs-header-tabs {
  flex-direction: column;
}
.so-tabs-align-vertical-right .so-tabs-tab {
  border-radius: 0 4px 4px 0;
}
.so-tabs-align-vertical-right .so-tabs-hr {
  left: 0;
}
.so-tabs-scroll-prev,
.so-tabs-scroll-next {
  position: relative;
  width: 30px;
  background: #fff;
  cursor: pointer;
  text-align: center;
}
.so-tabs-scroll-prev svg,
.so-tabs-scroll-next svg {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 10px;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
}
.so-tabs-scroll-prev {
  box-shadow: 0 0 1px 1px rgba(0, 0, 0, 0.2);
}
.so-tabs-scroll-next {
  box-shadow: 0 0 1px 1px rgba(0, 0, 0, 0.2);
}
.so-tabs-panel {
  position: relative;
  z-index: 10;
  display: none;
}
.so-tabs-panel.so-tabs-show {
  display: block;
}
.so-tabs-dash .so-tabs-active {
  color: var(--primary-color, #3399ff);
}
.so-tabs-dash .so-tabs-active:after {
  bottom: 0;
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  position: absolute;
  width: 24px;
  height: 3px;
  border-radius: 3px;
  background: var(--primary-color, #3399ff);
  content: ' ';
}
.so-tabs-line .so-tabs-active {
  color: var(--primary-color, #3399ff);
}
.so-tabs-line .so-tabs-active:after {
  position: absolute;
  width: 100%;
  height: 2px;
  background: var(--primary-color, #3399ff);
  content: ' ';
}
.so-tabs-line .so-tabs-header .so-tabs-tab:hover:not(.so-tabs-active) {
  color: var(--primary-color-dark-btn-hover, #007fff);
}
.so-tabs-line:not(.so-tabs-vertical) > .so-tabs-header .so-tabs-active:after,
.so-tabs-line:not(.so-tabs-vertical) .so-tabs-sticky .so-tabs-header .so-tabs-active:after {
  bottom: 0;
  left: 0;
}
.so-tabs-dash.so-tabs-align-vertical-left > .so-tabs-header .so-tabs-active:after,
.so-tabs-line.so-tabs-align-vertical-left > .so-tabs-header .so-tabs-active:after,
.so-tabs-dash.so-tabs-align-vertical-left .so-tabs-sticky .so-tabs-header .so-tabs-active:after,
.so-tabs-line.so-tabs-align-vertical-left .so-tabs-sticky .so-tabs-header .so-tabs-active:after {
  top: 0;
  right: -1px;
  left: auto;
  width: 2px;
  height: 100%;
}
.so-tabs-dash.so-tabs-align-vertical-right > .so-tabs-header .so-tabs-active::after,
.so-tabs-line.so-tabs-align-vertical-right > .so-tabs-header .so-tabs-active::after,
.so-tabs-dash.so-tabs-align-vertical-right .so-tabs-sticky .so-tabs-header .so-tabs-active:after,
.so-tabs-line.so-tabs-align-vertical-right .so-tabs-sticky .so-tabs-header .so-tabs-active:after {
  top: 0;
  left: -1px;
  right: auto;
  width: 2px;
  height: 100%;
}

.so-tag {
  position: relative;
  display: inline-block;
  padding: var(--tag-padding-vertical, 2px) var(--tag-padding-horizontal, 8px);
  margin: 0 4px;
  border: 1px solid transparent;
  background: var(--tag-bg, #fafafa);
  border-radius: var(--tag-border-radius, 3px);
  color: var(--tag-color, #595959);
  cursor: pointer;
  font-size: 75%;
  font-weight: var(--tag-font-weight, 600);
  line-height: 1.5;
  transition: all 0.3s;
}
.so-tag .so-tag-inline {
  display: inline-block;
  vertical-align: top;
}
.so-tag.so-tag-disabled {
  cursor: not-allowed;
}
.so-tag-input {
  display: inline-block;
  width: 100px;
  height: 24px;
  margin: 0 0 0 4px;
  font-size: 75%;
  vertical-align: middle;
}
.so-tag-input input {
  padding: 2px 4px;
  line-height: 18px;
}
.so-tag .so-tag-close-icon {
  display: inline-block;
  width: 6px;
  margin: 0 0 0 8px;
}
.so-tag .so-tag-close-icon:hover svg {
  fill: var(--tag-close-hover-color, '#000');
}
.so-tag .so-tag-close-icon svg {
  fill: var(--tag-close-color, '#000');
  position: absolute;
  top: 50%;
  width: 6px;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}
.so-tag .so-tag-close-loading {
  display: inline-block;
  margin: 0 0 0 8px;
}
.so-tag-default {
  border-color: var(--tag-border-color, #d9d9d9);
}
.so-tag-success {
  border-color: transparent;
  background-color: var(--tag-success-bg, var(--success-color, #00cc66));
  color: #fff;
  color: var(--tag-success-color, #fff);
}
.so-tag-info {
  border-color: transparent;
  background-color: var(--tag-info-bg, var(--info-color, #17a2b8));
  color: #fff;
  color: var(--tag-info-color, #fff);
}
.so-tag-warning {
  border-color: transparent;
  background-color: var(--tag-warning-bg, var(--warning-color, #ff9900));
  color: #fff;
  color: var(--tag-warning-color, #fff);
}
.so-tag-danger {
  border-color: transparent;
  background-color: var(--tag-danger-bg, var(--danger-color, #f85555));
  color: #fff;
  color: var(--tag-danger-color, #fff);
}
.so-tag.so-tag-rtl {
  direction: rtl;
  text-align: right;
}
.so-tag.so-tag-rtl .so-tag-close-icon svg {
  left: 10px;
}

.so-progress-line {
  display: flex;
  align-items: center;
}
.so-progress-line .so-progress-background {
  position: relative;
  overflow: hidden;
  flex: 1;
  background: var(--progress-bgc, var(--gray-200, #e9ecef));
}
.so-progress-line .so-progress-content {
  margin-left: 8px;
}
.so-progress-line .so-progress-front {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  background: var(--primary-color, #3399ff);
  transition: width 0.32s linear;
}
.so-progress-circle {
  position: relative;
  display: inline-block;
}
.so-progress-circle svg {
  -webkit-transform: rotate(270deg);
          transform: rotate(270deg);
}
.so-progress-circle .so-progress-background {
  stroke: var(--progress-bgc, var(--gray-200, #e9ecef));
}
.so-progress-circle .so-progress-front {
  stroke: var(--primary-color, #3399ff);
  transition: stroke-dashoffset 0.32s ease 0s, stroke-dasharray 0.32s ease 0s, stroke 0.32s, stroke-width 0.06s ease 0.32s;
}
.so-progress-circle .so-progress-content {
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
}
.so-progress-success .so-progress-front {
  background: var(--success-color, #00cc66);
  stroke: var(--success-color, #00cc66);
}
.so-progress-success .so-progress-content {
  color: var(--success-color, #00cc66);
}
.so-progress-info .so-progress-front {
  background: var(--info-color, #17a2b8);
  stroke: var(--info-color, #17a2b8);
}
.so-progress-warning .so-progress-front {
  background: var(--warning-color, #ff9900);
  stroke: var(--warning-color, #ff9900);
}
.so-progress-error .so-progress-front,
.so-progress-danger .so-progress-front {
  background: var(--danger-color, #f85555);
  stroke: var(--danger-color, #f85555);
}

.so-upload-handle {
  display: inline-block;
  margin-bottom: 8px;
  cursor: pointer;
}
.so-upload-hide-list .so-upload-handle {
  margin-bottom: 0;
}
.so-upload-view-value,
.so-upload-view-file {
  position: relative;
  padding: 4px 10px;
}
.so-upload-view-value .so-upload-text,
.so-upload-view-file .so-upload-text {
  margin-right: 20px;
  word-break: break-all;
}
.so-upload-view-value .so-upload-delete,
.so-upload-view-file .so-upload-delete,
.so-upload-view-value .so-upload-recover,
.so-upload-view-file .so-upload-recover {
  position: absolute;
  top: 2px;
  right: 10px;
  width: 12px;
  height: 12px;
  color: var(--danger-color, #f85555);
  font-size: 16px;
  vertical-align: middle;
}
.so-upload-view-value .so-upload-delete svg,
.so-upload-view-file .so-upload-delete svg,
.so-upload-view-value .so-upload-recover svg,
.so-upload-view-file .so-upload-recover svg {
  width: 12px;
  height: 12px;
}
.so-upload-view-value .so-upload-delete:active,
.so-upload-view-file .so-upload-delete:active,
.so-upload-view-value .so-upload-recover:active,
.so-upload-view-file .so-upload-recover:active {
  text-decoration: none;
}
.so-upload-view-value .so-upload-delete svg,
.so-upload-view-file .so-upload-delete svg {
  width: 10px;
  height: 10px;
  fill: var(--gray-300, #dee2e6);
}
.so-upload-view-value .so-upload-recover svg,
.so-upload-view-file .so-upload-recover svg {
  fill: var(--primary-color, #3399ff);
}
.so-upload-view-value:hover,
.so-upload-view-file:hover {
  background: #f5f5f5;
}
.so-upload-view-value:hover .so-upload-delete svg,
.so-upload-view-file:hover .so-upload-delete svg {
  fill: var(--danger-color, #f85555);
}
.so-upload-view-value.so-upload-to-be-delete,
.so-upload-view-file.so-upload-to-be-delete {
  color: var(--gray-400, #ced4da);
  text-decoration: line-through;
}
.so-upload-view-value.so-upload-error,
.so-upload-view-file.so-upload-error {
  color: var(--danger-color, #f85555);
}
.so-upload-view-file .so-upload-delete svg {
  fill: var(--danger-color, #f85555);
}
.so-upload-view-file .so-upload-progress {
  margin-top: 2px;
}
.so-upload-image-item {
  position: relative;
  display: inline-block;
  margin-right: 12px;
  border: dashed 1px var(--gray-400, #ced4da);
  background: #fff;
  border-radius: 2px;
  vertical-align: top;
}
.so-upload-image-item:hover .so-upload-image-options {
  opacity: 1;
  visibility: visible;
}
.so-upload-image-item .so-upload-image-options {
  border-radius: 2px;
  padding: 0 2px;
  transition: all .2s;
  position: absolute;
  top: 4px;
  left: 4px;
  right: 4px;
  bottom: 4px;
  background: rgba(0, 0, 0, 0.4);
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-around;
  opacity: 0;
  visibility: hidden;
}
.so-upload-image-item .so-upload-image-options .so-upload-options-item {
  width: 20px;
  height: 20px;
  fill: var(--gray-300, #dee2e6);
  transition: all .2s;
}
.so-upload-image-item .so-upload-image-options .so-upload-options-item:hover {
  fill: #fff;
}
.so-upload-image-item .so-upload-image-bg {
  position: absolute;
  z-index: 0;
  top: 4px;
  right: 4px;
  bottom: 4px;
  left: 4px;
  background-size: cover;
}
.so-upload-image-item .so-upload-progress-bg {
  position: absolute;
  z-index: 1;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: rgba(0, 0, 0, 0.3);
  border-radius: inherit;
}
.so-upload-image-item .so-upload-progress {
  position: absolute;
  z-index: 10;
  right: 4px;
  bottom: 4px;
  left: 4px;
}
.so-upload-image-item .so-upload-delete {
  cursor: pointer;
}
.so-upload-image-item .so-upload-delete:after,
.so-upload-image-item .so-upload-delete:before {
  position: absolute;
  left: 50%;
  top: 2px;
  content: '';
  display: inline-block;
  width: 1px;
  height: 10px;
  background: #fff;
}
.so-upload-image-item .so-upload-delete:after {
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
}
.so-upload-image-item .so-upload-delete:before {
  -webkit-transform: rotate(-45deg);
          transform: rotate(-45deg);
}
.so-upload-image-item .so-upload-delete,
.so-upload-image-item .so-upload-recover {
  position: absolute;
  z-index: 100;
  top: -7px;
  right: -7px;
  display: flex;
  width: 14px;
  height: 14px;
  background: var(--danger-color, #f85555);
  border-radius: 8px;
}
.so-upload-image-item .so-upload-delete svg,
.so-upload-image-item .so-upload-recover svg {
  width: 6px;
  height: 6px;
  margin: auto;
  fill: #ffffff;
}
.so-upload-image-item .so-upload-recover {
  background: var(--primary-color, #3399ff);
}
.so-upload-image-item .so-upload-recover svg {
  width: 8px;
  height: 8px;
}
.so-upload-image-item.so-upload-error {
  border-color: var(--danger-color, #f85555);
}
.so-upload-image-item.so-upload-error .so-upload-message {
  position: absolute;
  z-index: 1000;
  top: 100%;
  left: 50%;
  min-width: 120px;
  max-width: 240px;
  padding: 5px 10px;
  margin-top: 8px;
  background: var(--gray-100, #f8f9fa);
  border-radius: var(--input-border-radius, 4px);
  box-shadow: 0 0 0 1px #ebccd1, 0 2px 8px rgba(0, 0, 0, 0.15);
  color: var(--danger-color, #f85555);
  font-size: 12px;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  -webkit-transform-origin: 0 0;
          transform-origin: 0 0;
}
.so-upload-image-item.so-upload-error .so-upload-message:before {
  position: absolute;
  bottom: 100%;
  left: 50%;
  width: 6px;
  height: 6px;
  border: solid 1px #ebccd1;
  border-width: 1px 0 0 1px;
  background: inherit;
  content: ' ';
  -webkit-transform: rotate(45deg) translateY(3px);
          transform: rotate(45deg) translateY(3px);
}
.so-upload-image-item.so-upload-error .so-upload-progress-bg {
  display: none;
}
.so-upload-dragger-wrapper {
  display: block;
  width: 100%;
}
.so-upload-dragger-area {
  position: relative;
  color: rgba(0, 0, 0, 0.8);
  padding: 16px;
  width: 100%;
  height: 100%;
  text-align: center;
  background: #fafafa;
  border-radius: 2px;
  cursor: pointer;
}
.so-upload-dragger-area :after {
  content: '';
  display: block;
  top: -1px;
  left: -1px;
  right: -1px;
  bottom: -1px;
  position: absolute;
  border-radius: 2px;
  border: 1px dashed var(--gray-400, #ced4da);
  transition: border-color 0.3s;
}
.so-upload-dragger-area:hover :after {
  border-color: var(--primary-color, #3399ff);
}
.so-upload-dragger-area.so-upload-disabled {
  cursor: not-allowed;
}
.so-upload-dragger-area.so-upload-disabled :after {
  border: 1px dashed var(--gray-400, #ced4da);
}
.so-upload-drop .so-upload-image-plus,
.so-upload-drop .so-upload-image-item {
  border-color: var(--primary-color, #3399ff);
}
.so-upload-drop .so-upload-dragger-area :after {
  border-color: var(--primary-color, #3399ff);
}
.so-upload-image-plus {
  position: relative;
  display: inline-flex;
  vertical-align: top;
}
.so-upload-image-plus.so-upload-disabled {
  cursor: not-allowed;
}
.so-upload-image-plus.so-upload-disabled:hover,
.so-upload-image-plus.so-upload-disabled:focus {
  border-color: var(--gray-400, #ced4da);
}
.so-upload-image-plus.so-upload-disabled:hover .so-upload-indicator:before,
.so-upload-image-plus.so-upload-disabled:focus .so-upload-indicator:before,
.so-upload-image-plus.so-upload-disabled:hover .so-upload-indicator:after,
.so-upload-image-plus.so-upload-disabled:focus .so-upload-indicator:after {
  background: #999;
}
.so-upload-image-plus .so-upload-indicator {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 30px;
  height: 30px;
  margin: -15px -15px;
}
.so-upload-image-plus .so-upload-indicator:before,
.so-upload-image-plus .so-upload-indicator:after {
  position: absolute;
  display: block;
  background: #999;
  content: ' ';
}
.so-upload-image-plus .so-upload-indicator:before {
  left: 14px;
  width: 2px;
  height: 30px;
}
.so-upload-image-plus .so-upload-indicator:after {
  top: 14px;
  width: 30px;
  height: 2px;
}
.so-upload-image-plus:hover,
.so-upload-image-plus:focus {
  border-color: var(--primary-color, #3399ff);
}
.so-upload-image-plus:hover .so-upload-indicator:before,
.so-upload-image-plus:focus .so-upload-indicator:before,
.so-upload-image-plus:hover .so-upload-indicator:after,
.so-upload-image-plus:focus .so-upload-indicator:after {
  background: var(--primary-color, #3399ff);
}
.so-upload-image-plus:focus {
  outline: none;
}
.so-upload-image-result {
  border-style: solid;
}
.so-upload-image-result .so-upload-delete {
  visibility: hidden;
}
.so-upload-image-result:hover .so-upload-delete {
  visibility: visible;
}
.so-upload-image-result.so-upload-to-be-delete {
  border-style: dashed;
}
.so-upload-image-result.so-upload-to-be-delete .so-upload-image-bg {
  -webkit-filter: grayscale(100%);
          filter: grayscale(100%);
  opacity: 0.6;
}
.so-upload-bprogress {
  border-color: transparent;
  background-color: var(--primary-color, #3399ff);
  color: #fff;
  fill: #fff;
  transition: all 0.15s ease-in-out;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  border: 1px solid transparent;
  position: relative;
  padding: var(--button-padding-base-vertical, 6px) var(--button-padding-base-horizontal, 12px);
  border-radius: var(--button-border-radius, 3px);
  font-size: var(--button-font-size-base, 12px);
  line-height: 1.5;
}
.so-upload-bprogress:focus,
.so-upload-bprogress:hover {
  background-color: var(--primary-color-dark-btn-hover, #007fff);
  color: #fff;
}
.so-upload-bprogress:active {
  -webkit-animation: btn-focus-primary 0.4s ease-out;
          animation: btn-focus-primary 0.4s ease-out;
  background-color: var(--primary-color-dark-btn-hover, #007fff);
  color: #fff;
}
.so-upload-bprogress:active {
  background-image: none;
}
.so-upload-bprogress[disabled]:hover,
fieldset[disabled] .so-upload-bprogress:hover,
.so-upload-bprogress[disabled]:focus,
fieldset[disabled] .so-upload-bprogress:focus {
  border-color: transparent;
  background-color: var(--primary-color, #3399ff);
}
.so-upload-bprogress[disabled]:active,
fieldset[disabled] .so-upload-bprogress:active {
  -webkit-animation: none;
          animation: none;
}
.so-upload-bprogress .so-upload-stream {
  z-index: 1;
  white-space: nowrap;
  overflow: hidden;
  color: #fff;
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  transition: right 0.2s ease-in-out;
}
.so-upload-bprogress .so-upload-stream > span {
  display: inline-block;
  margin: 6px 12px;
}
.so-upload-bprogress:focus {
  outline: none;
}
.so-upload-bprogress.so-upload-disabled {
  position: relative;
  box-shadow: none;
  cursor: not-allowed;
  opacity: 0.65;
}
.so-upload-bprogress.so-upload-disabled:hover,
.so-upload-bprogress.so-upload-disabled:focus {
  -webkit-animation: none;
          animation: none;
}
.so-upload-bprogress.so-upload-uploading {
  background: #fff;
  color: var(--button-default-text-color, #333);
  cursor: not-allowed;
  opacity: 0.85;
}
.so-upload-bprogress.so-upload-bprogress-success {
  background: var(--success-color, #00cc66);
  border-color: var(--success-color-dark-5, #00b359);
}
.so-upload-bprogress.so-upload-bprogress-info {
  background: var(--info-color, #17a2b8);
  border-color: var(--info-color-dark-5, #148ea1);
}
.so-upload-bprogress.so-upload-bprogress-warning {
  background: var(--warning-color, #ff9900);
}
.so-upload-bprogress.so-upload-bprogress-error,
.so-upload-bprogress.so-upload-bprogress-danger {
  background: var(--danger-color, #f85555);
  border-color: var(--danger-color-dark-5, #f73d3d);
}
.so-upload-disabled .so-upload-delete {
  cursor: not-allowed;
}
.so-upload-bprogress-primary {
  background: var(--primary-color, #3399ff);
  border-color: var(--primary-color-dark-5, #198cff);
}
.so-upload-border-primary {
  border-color: var(--primary-color-dark-5, #198cff);
}
.so-upload-bprogress-success {
  background: var(--success-color, #00cc66);
  border-color: var(--success-color-dark-5, #00b359);
}
.so-upload-border-success {
  border-color: var(--success-color-dark-5, #00b359);
}
.so-upload-bprogress-info {
  background: var(--info-color, #17a2b8);
  border-color: var(--info-color-dark-5, #148ea1);
}
.so-upload-border-info {
  border-color: var(--info-color-dark-5, #148ea1);
}
.so-upload-bprogress-warning {
  background: var(--warning-color, #ff9900);
  border-color: var(--warning-color-dark-5, #e68a00);
}
.so-upload-border-warning {
  border-color: var(--warning-color-dark-5, #e68a00);
}
.so-upload-bprogress-error {
  background: var(--danger-color, #f85555);
  border-color: var(--danger-color-dark-5, #f73d3d);
}
.so-upload-border-error {
  border-color: var(--danger-color-dark-5, #f73d3d);
}
.so-upload-bprogress-danger {
  background: var(--danger-color, #f85555);
  border-color: #fff;
}
.so-upload-border-danger {
  border-color: #fff;
}
.so-upload-url-invalid-border {
  border-color: var(--danger-color, #f85555) !important;
}
.so-upload-url-invalid-indicator:before,
.so-upload-url-invalid-indicator:after {
  background: var(--danger-color, #f85555) !important;
}
.so-upload-url-invalid-message {
  position: absolute;
  z-index: 1000;
  top: 100%;
  left: 50%;
  min-width: 120px;
  max-width: 240px;
  padding: 5px 10px;
  margin-top: 8px;
  background: var(--gray-100, #f8f9fa);
  border-radius: var(--input-border-radius, 4px);
  box-shadow: 0 0 0 1px #ebccd1, 0 2px 8px rgba(0, 0, 0, 0.15);
  color: var(--danger-color, #f85555);
  font-size: 12px;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  -webkit-transform-origin: 0 0;
          transform-origin: 0 0;
}
.so-upload-url-invalid-message:before {
  position: absolute;
  bottom: 100%;
  left: 50%;
  width: 6px;
  height: 6px;
  border: solid 1px #ebccd1;
  border-width: 1px 0 0 1px;
  background: inherit;
  content: ' ';
  -webkit-transform: rotate(45deg) translateY(3px);
          transform: rotate(45deg) translateY(3px);
}

.so-carousel {
  position: relative;
  overflow: hidden;
}
@-webkit-keyframes so-carousel-r2c {
  0% {
    -webkit-transform: translateX(100%);
            transform: translateX(100%);
  }
  100% {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
}
@keyframes so-carousel-r2c {
  0% {
    -webkit-transform: translateX(100%);
            transform: translateX(100%);
  }
  100% {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
}
@-webkit-keyframes so-carousel-c2r {
  0% {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
  100% {
    -webkit-transform: translateX(100%);
            transform: translateX(100%);
  }
}
@keyframes so-carousel-c2r {
  0% {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
  100% {
    -webkit-transform: translateX(100%);
            transform: translateX(100%);
  }
}
@-webkit-keyframes so-carousel-l2c {
  0% {
    -webkit-transform: translateX(-100%);
            transform: translateX(-100%);
  }
  100% {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
}
@keyframes so-carousel-l2c {
  0% {
    -webkit-transform: translateX(-100%);
            transform: translateX(-100%);
  }
  100% {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
}
@-webkit-keyframes so-carousel-c2l {
  0% {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
  100% {
    -webkit-transform: translateX(-100%);
            transform: translateX(-100%);
  }
}
@keyframes so-carousel-c2l {
  0% {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
  100% {
    -webkit-transform: translateX(-100%);
            transform: translateX(-100%);
  }
}
@-webkit-keyframes so-carousel-t2c {
  0% {
    -webkit-transform: translateY(-100%);
            transform: translateY(-100%);
  }
  100% {
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}
@keyframes so-carousel-t2c {
  0% {
    -webkit-transform: translateY(-100%);
            transform: translateY(-100%);
  }
  100% {
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}
@-webkit-keyframes so-carousel-c2t {
  0% {
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
  100% {
    -webkit-transform: translateY(-100%);
            transform: translateY(-100%);
  }
}
@keyframes so-carousel-c2t {
  0% {
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
  100% {
    -webkit-transform: translateY(-100%);
            transform: translateY(-100%);
  }
}
@-webkit-keyframes so-carousel-b2c {
  0% {
    -webkit-transform: translateY(100%);
            transform: translateY(100%);
  }
  100% {
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}
@keyframes so-carousel-b2c {
  0% {
    -webkit-transform: translateY(100%);
            transform: translateY(100%);
  }
  100% {
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}
@-webkit-keyframes so-carousel-c2b {
  0% {
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
  100% {
    -webkit-transform: translateY(100%);
            transform: translateY(100%);
  }
}
@keyframes so-carousel-c2b {
  0% {
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
  100% {
    -webkit-transform: translateY(100%);
            transform: translateY(100%);
  }
}
@-webkit-keyframes so-carousel-fade-in {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
@keyframes so-carousel-fade-in {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
@-webkit-keyframes so-carousel-fade-out {
  0% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}
@keyframes so-carousel-fade-out {
  0% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}
.so-carousel-item {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.so-carousel-item > * {
  width: 100%;
  height: 100%;
}
.so-carousel-item-current {
  z-index: 10;
}
.so-carousel-item-pre {
  z-index: 9;
}
.so-carousel-slide.so-carousel-forward .so-carousel-item-current {
  -webkit-animation: so-carousel-r2c 0.4s ease-in-out;
          animation: so-carousel-r2c 0.4s ease-in-out;
}
.so-carousel-slide.so-carousel-forward .so-carousel-item-pre {
  -webkit-animation: so-carousel-c2l 0.4s ease-in-out;
          animation: so-carousel-c2l 0.4s ease-in-out;
}
.so-carousel-slide.so-carousel-backward .so-carousel-item-current {
  -webkit-animation: so-carousel-l2c 0.4s ease-in-out;
          animation: so-carousel-l2c 0.4s ease-in-out;
}
.so-carousel-slide.so-carousel-backward .so-carousel-item-pre {
  -webkit-animation: so-carousel-c2r 0.4s ease-in-out;
          animation: so-carousel-c2r 0.4s ease-in-out;
}
.so-carousel-slide-y.so-carousel-forward .so-carousel-item-current {
  -webkit-animation: so-carousel-b2c 0.4s ease-in-out;
          animation: so-carousel-b2c 0.4s ease-in-out;
}
.so-carousel-slide-y.so-carousel-forward .so-carousel-item-pre {
  -webkit-animation: so-carousel-c2t 0.4s ease-in-out;
          animation: so-carousel-c2t 0.4s ease-in-out;
}
.so-carousel-slide-y.so-carousel-backward .so-carousel-item-current {
  -webkit-animation: so-carousel-t2c 0.4s ease-in-out;
          animation: so-carousel-t2c 0.4s ease-in-out;
}
.so-carousel-slide-y.so-carousel-backward .so-carousel-item-pre {
  -webkit-animation: so-carousel-c2b 0.4s ease-in-out;
          animation: so-carousel-c2b 0.4s ease-in-out;
}
.so-carousel-fade .so-carousel-item-current {
  -webkit-animation: so-carousel-fade-in 0.4s ease-in-out;
          animation: so-carousel-fade-in 0.4s ease-in-out;
}
.so-carousel-indicator {
  position: absolute;
  z-index: 100;
  bottom: var(--carousel-indicator-position, 10px);
}
.so-carousel-indicator a {
  display: block;
  width: 10px;
  height: 10px;
  margin-right: 4px;
  border: solid 1px #fff;
  background-color: rgba(0, 0, 0, 0.25);
  border-radius: 50%;
  color: #fff;
  float: left;
}
.so-carousel-indicator a:last-child {
  margin-right: 0;
}
.so-carousel-indicator a:hover,
.so-carousel-indicator a:focus {
  text-decoration: none;
}
.so-carousel-indicator.so-carousel-indicator-left {
  left: var(--carousel-indicator-position, 10px);
}
.so-carousel-indicator.so-carousel-indicator-center {
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
}
.so-carousel-indicator.so-carousel-indicator-right {
  right: var(--carousel-indicator-position, 10px);
}
a.so-carousel-indicator-active {
  background-color: rgba(255, 255, 255, 0.8);
  color: #000;
}
.so-carousel-indicator-number a {
  width: 14px;
  height: 14px;
  border-radius: 1px;
  font-size: 12px;
  line-height: 14px;
  text-align: center;
}
.so-carousel-indicator-line a {
  width: 14px;
  height: 3px;
  border-width: 0;
  background-color: rgba(255, 255, 255, 0.3);
  border-radius: 0;
}
.so-carousel-indicator-line a.so-carousel-indicator-active {
  width: 18px;
  background-color: #ffffff;
}
.so-carousel-slide-y .so-carousel-indicator.so-carousel-indicator-left,
.so-carousel-slide-y .so-carousel-indicator.so-carousel-indicator-right {
  bottom: 50%;
  -webkit-transform: translate(0, 50%);
          transform: translate(0, 50%);
}
.so-carousel-slide-y .so-carousel-indicator.so-carousel-indicator-left a,
.so-carousel-slide-y .so-carousel-indicator.so-carousel-indicator-right a {
  margin-right: 0;
  margin-bottom: 4px;
  clear: both;
}
.so-carousel-slide-y .so-carousel-indicator.so-carousel-indicator-left a:last-child,
.so-carousel-slide-y .so-carousel-indicator.so-carousel-indicator-right a:last-child {
  margin: 0;
}
.so-carousel-slide-y .so-carousel-indicator.so-carousel-indicator-left.so-carousel-indicator-line a,
.so-carousel-slide-y .so-carousel-indicator.so-carousel-indicator-right.so-carousel-indicator-line a {
  width: 3px;
  height: 14px;
}
.so-carousel-slide-y .so-carousel-indicator.so-carousel-indicator-left.so-carousel-indicator-line a.so-carousel-indicator-active,
.so-carousel-slide-y .so-carousel-indicator.so-carousel-indicator-right.so-carousel-indicator-line a.so-carousel-indicator-active {
  height: 18px;
}

.so-cascader {
  position: relative;
  width: 100%;
}
.so-cascader:focus {
  outline: none;
}
.so-cascader-result {
  cursor: pointer;
  display: flex;
  max-height: 105px;
  flex-flow: wrap;
  padding: 6px 24px 0 12px;
  overflow-y: auto;
}
.so-cascader-result .so-input-placeholder {
  color: var(--input-placeholder-color, #999);
}
.so-cascader-result span,
.so-cascader-result .so-cascader-item {
  display: inline-block;
  overflow: hidden;
  max-width: 80%;
  padding: 0 var(--select-result-padding-horizontal, 4px);
  margin-right: var(--select-result-padding-horizontal, 4px);
  margin-bottom: 6px;
  border-radius: 3px;
  color: inherit;
  text-overflow: ellipsis;
  position: relative;
}
.so-cascader-result span-compressed,
.so-cascader-result .so-cascader-item-compressed {
  padding: 0 8px;
  font-size: 80%;
  opacity: .9;
}
.so-cascader-result span-compressed > span,
.so-cascader-result .so-cascader-item-compressed > span {
  vertical-align: middle;
  letter-spacing: 2px;
  padding: 0;
  margin: 0;
  overflow: visible;
  max-width: none;
}
.so-cascader-result span:after,
.so-cascader-result .so-cascader-item:after {
  content: '\feff ';
}
.so-cascader-result span.so-cascader-remove-container,
.so-cascader-result .so-cascader-item.so-cascader-remove-container {
  padding-right: 16px;
}
.so-cascader-result span.so-cascader-remove-container:after,
.so-cascader-result .so-cascader-item.so-cascader-remove-container:after {
  content: none;
}
.so-cascader-result span .so-cascader-single-remove,
.so-cascader-result .so-cascader-item .so-cascader-single-remove {
  box-sizing: border-box;
  position: absolute;
  top: 50%;
  right: 8px;
  -webkit-transform: translate(50%, -50%);
          transform: translate(50%, -50%);
  margin: 0;
  padding: 0;
}
.so-cascader-result span .so-cascader-single-remove svg,
.so-cascader-result .so-cascader-item .so-cascader-single-remove svg {
  width: 6px;
  height: 6px;
  -webkit-transform: translateY(-1px);
          transform: translateY(-1px);
}
.so-cascader-result span .so-cascader-single-remove svg path,
.so-cascader-result .so-cascader-item .so-cascader-single-remove svg path {
  transition: all .2s;
  fill: var(--gray-500, #adb5bd);
}
.so-cascader-result span .so-cascader-single-remove:hover svg path,
.so-cascader-result .so-cascader-item .so-cascader-single-remove:hover svg path {
  fill: var(--primary-color, #3399ff);
}
.so-cascader-result .so-cascader-item {
  background: var(--gray-100, #f8f9fa);
  font-size: 12px;
  color: var(--gray-700, #495057);
}
.so-cascader-result .so-cascader-input {
  display: inline-flex;
  min-width: 12px;
  flex: 1;
  margin-bottom: 6px;
  outline: none;
  cursor: text;
  white-space: pre;
}
.so-cascader-result .so-cascader-input:after {
  content: '\feff ';
}
.so-cascader-result .so-cascader-input.so-cascader-full {
  display: block;
}
.so-cascader-disabled .so-cascader-result {
  cursor: not-allowed;
}
.so-cascader:not(.so-cascader-disabled) .so-cascader-focus .so-cascader-close,
.so-cascader:not(.so-cascader-disabled) .so-cascader-result:hover .so-cascader-close {
  display: block;
}
.so-cascader-multiple .so-cascader-close {
  right: 19px;
}
.so-cascader-options {
  width: auto;
  align-items: stretch;
  font-size: 12px;
}
.so-cascader-focus .so-cascader-options {
  display: inline-flex;
}
.so-cascader-no-data {
  width: 100%;
  position: relative;
  display: block;
  overflow: hidden;
  padding: 6px 24px 6px 12px;
  color: var(--gray-500, #adb5bd);
  font-size: 12px;
  line-height: 1.5;
  text-overflow: ellipsis;
  transition: none;
  white-space: nowrap;
}
.so-cascader-no-data:hover {
  color: var(--select-item-active-color, #292d32);
}
.so-cascader-list {
  display: inline-block;
  min-width: 120px;
  height: 100%;
  border-right: solid 1px var(--gray-200, #e9ecef);
  overflow-y: auto;
  vertical-align: top;
}
.so-cascader-node {
  position: relative;
  padding: 6px 28px 6px 12px;
  color: var(--gray-800, #343a40);
  white-space: nowrap;
}
.so-cascader-node:hover {
  background-color: #f5f5f5;
}
.so-cascader-node.so-cascader-disabled {
  color: var(--gray-400, #ced4da);
  cursor: not-allowed;
}
.so-cascader-node.so-cascader-disabled:hover {
  background-color: transparent;
}
.so-cascader-loading {
  position: absolute;
  top: 10px;
  right: 12px;
}
.so-cascader-has-children .so-cascader-caret,
.so-cascader-may-be-children .so-cascader-caret {
  display: inline-block;
  width: 10px;
  height: 10px;
  position: absolute;
  top: 50%;
  right: 12px;
  -webkit-transform: translateY(-50%) rotate(-90deg);
          transform: translateY(-50%) rotate(-90deg);
}
.so-cascader-may-be-children .so-cascader-caret {
  fill: var(--gray-300, #dee2e6);
}
.so-cascader-active {
  background-color: var(--cascader-active-background-color, var(--select-item-active-bg, #f5f5f5));
  color: var(--cascader-active-color, var(--select-item-active-color, #292d32));
  text-decoration: none;
}
.so-cascader-active.so-cascader-node {
  background-color: var(--cascader-active-background-color, var(--select-item-active-bg, #f5f5f5));
  color: var(--cascader-active-color, var(--select-item-active-color, #292d32));
}
.so-cascader-filter {
  display: block;
  min-width: 100%;
  width: auto;
}
.so-cascader-filter-list {
  overflow: auto;
}
.so-cascader-filter-list-separator {
  margin: 0 4px;
}
.so-cascader-filter-list-content {
  display: inline-block;
  transition: all .2s;
}
.so-cascader-filter-list-content.so-cascader-disabled {
  color: var(--gray-400, #ced4da);
  cursor: not-allowed;
}
.so-cascader-filter-list .so-cascader-node {
  cursor: pointer;
}
.so-cascader-filter:not(.so-cascader-leaf-only) .so-cascader-filter-list-content:not(.so-cascader-disabled):hover {
  color: var(--primary-color, #3399ff);
}
.so-cascader-popover .so-cascader-result {
  max-height: 112px;
  max-width: 300px;
  padding: 14px 14px 8px 14px;
}
.so-cascader-popover .so-cascader-result .so-cascader-item {
  max-width: none;
}
.so-cascader-rtl .so-cascader-result {
  padding: 5px 8px 0 20px;
}
.so-list-absolute-wrapper.so-cascader-rtl .so-cascader-options {
  -webkit-transform: translateX(-100%);
          transform: translateX(-100%);
}
.so-list-absolute-wrapper.so-cascader-rtl .so-cascader-node {
  padding: 6px 12px 6px 28px;
  text-align: right;
}
.so-list-absolute-wrapper.so-cascader-rtl .so-cascader-node .so-checkinput-checkbox-container {
  margin-left: 8px;
}
.so-list-absolute-wrapper.so-cascader-rtl .so-cascader-has-children .so-cascader-caret {
  -webkit-transform: translateY(-50%) rotate(90deg);
          transform: translateY(-50%) rotate(90deg);
  left: 12px;
  right: auto;
}
.so-cascader-rtl:not(.so-list-absolute-wrapper) .so-cascader-options {
  left: auto;
  right: 0;
}
.so-cascader-rtl:not(.so-list-absolute-wrapper) .so-cascader-node {
  padding: 6px 12px 6px 28px;
  text-align: right;
}
.so-cascader-rtl:not(.so-list-absolute-wrapper) .so-cascader-node .so-checkinput-checkbox-container {
  margin-left: 8px;
}
.so-cascader-rtl:not(.so-list-absolute-wrapper) .so-cascader-has-children .so-cascader-caret,
.so-cascader-rtl:not(.so-list-absolute-wrapper) .so-cascader-may-be-children .so-cascader-caret {
  -webkit-transform: translateY(-50%) rotate(90deg);
          transform: translateY(-50%) rotate(90deg);
  left: 12px;
  right: auto;
}
.so-input.so-input-small .so-cascader-result {
  padding-top: 2px;
}
.so-input.so-input-small .so-cascader-result .so-input-placeholder,
.so-input.so-input-small .so-cascader-result .so-cascader-item,
.so-input.so-input-small .so-cascader-result .so-cascader-input {
  margin-bottom: 2px;
  font-size: var(--font-size-small, 12px);
}
.so-input.so-input-large .so-cascader-result {
  padding-top: 8px;
}
.so-input.so-input-large .so-cascader-result .so-input-placeholder,
.so-input.so-input-large .so-cascader-result .so-cascader-item,
.so-input.so-input-large .so-cascader-result .so-cascader-input {
  margin-bottom: 8px;
  font-size: var(--font-size-large, 18px);
}
.so-cascader-result.so-cascader-large .so-cascader-item {
  font-size: var(--font-size-large, 18px);
}
.so-cascader-result.so-cascader-small .so-cascader-item {
  font-size: var(--font-size-small, 12px);
}

.so-transfer {
  display: flex;
  align-items: stretch;
}
.so-transfer-card {
  display: inline-block;
  min-width: 200px;
}
.so-transfer-card-header {
  padding: 8px 12px;
  display: flex;
  justify-content: space-between;
  align-items: stretch;
}
.so-transfer-card-header-title {
  padding: 2px 0 0 0;
}
.so-transfer-card-body {
  padding: 2px 0;
  overflow: hidden;
  height: 180px;
  z-index: 1;
}
.so-transfer-card-body .so-transfer-body-container {
  box-sizing: border-box;
  height: 100%;
}
.so-transfer-card-footer {
  padding: 0;
}
.so-transfer-item {
  width: 100%;
  cursor: pointer;
}
.so-transfer-item-check {
  width: 100%;
  margin-right: 0;
  padding: 6px 0 6px 12px;
}
.so-transfer-item-check i.so-checkinput-indicator + span {
  vertical-align: top;
}
.so-transfer-item:hover {
  background-color: var(--select-option-hover-bg, #f5f5f5);
}
.so-transfer-item-disabled {
  color: var(--gray-500, #adb5bd);
}
.so-transfer-item-disabled:hover {
  background-color: transparent;
  color: var(--gray-500, #adb5bd);
}
.so-transfer-btns {
  padding: 0 8px;
  display: flex;
  align-items: center;
}
.so-transfer-btns-bottom {
  margin-bottom: 4px;
}
.so-transfer-btns-button {
  color: #fff;
  display: inline-flex;
}
.so-transfer-btns-button > svg {
  height: 18px;
  width: 10px;
  fill: #fff;
}
.so-transfer-btns-button[disabled] > svg {
  fill: rgba(0, 0, 0, 0.25);
}
.so-transfer-filter {
  padding: 10px 12px 8px;
}
.so-transfer-empty {
  position: absolute;
  text-align: center;
  width: 100%;
  top: 50%;
  color: var(--gray-500, #adb5bd);
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}
.so-transfer.so-transfer-rtl {
  direction: rtl;
  text-align: right;
}
.so-transfer.so-transfer-rtl .so-transfer-btns-button > svg {
  -webkit-transform: rotate(180deg);
          transform: rotate(180deg);
}
.so-transfer.so-transfer-rtl .so-transfer-item-check {
  margin-left: 0;
  padding: 6px 12px 6px 0;
}

.so-spin-container {
  position: relative;
}
.so-spin-container .so-spin-loading {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 4;
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
}
.so-spin-container .so-spin-content {
  position: relative;
}
.so-spin-container .so-spin-content:after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 3;
  width: 100%;
  height: 100%;
  background: #fff;
  opacity: 0;
  transition: all .3s;
  content: '';
  pointer-events: none;
}
.so-spin-show .so-spin-content:after {
  opacity: .5;
}

.so-card-group-scroller {
  height: 100%;
  overflow: auto;
}
.so-card-group-scroller .so-card-group-grid {
  padding: 0;
  display: grid;
}
.so-card-group-scroller .so-card-group-grid .so-card-group-item {
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 4px 8px 0 rgba(20, 23, 55, 0.05);
  overflow: hidden;
  border: 1px solid #eee;
  transition: all .2s ease;
  position: relative;
}
.so-card-group-scroller .so-card-group-grid .so-card-group-item .so-card-group-checkbox {
  position: absolute;
  right: 12px;
  top: 12px;
  margin: 0;
}
.so-card-group-scroller .so-card-group-grid .so-card-group-item:hover {
  box-shadow: 0 4px 12px 0 rgba(20, 23, 55, 0.15);
}

.so-editableArea {
  width: 100%;
  position: relative;
}
.so-editableArea .so-editableArea-input {
  width: 100%;
}
.so-editableArea .so-editableArea-input input {
  overflow: hidden;
  text-overflow: ellipsis;
}
.so-editableArea-none-bordered .so-editableArea-input {
  border-color: transparent;
}
.so-editableArea-none-bordered .so-editableArea-input:hover {
  border-color: var(--input-border-focus-color, #80bdff);
}
.so-editableArea-popover {
  border: none;
  box-shadow: none;
}
.so-editableArea-clear {
  box-sizing: border-box;
  position: absolute;
  top: 50%;
  right: 8px;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  width: 12px;
  height: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.so-editableArea-clear:hover svg {
  fill: var(--input-clear-bg-hover-color, #3399ff);
}
.so-editableArea-clear svg {
  width: 100%;
  height: 100%;
  background-color: #fff;
  fill: var(--input-clear-bg-color, #ced4da);
  transition: all 0.2s;
}

.so-moveable-draging {
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
  transition-duration: 0s;
}

.so-resizable {
  position: relative;
  overflow: hidden;
  min-height: 100px;
  min-width: 100px;
}
.so-resizable-handler {
  z-index: 11;
  position: absolute;
  touch-action: none;
  background: transparent;
}
.so-resizable-handler-xy {
  cursor: se-resize;
  width: 10px;
  height: 10px;
  bottom: 0;
  right: 0;
  z-index: 12;
}
.so-resizable-handler-x {
  cursor: e-resize;
  width: 6px;
  right: -4px;
  top: 0;
  bottom: 0;
}
.so-resizable-handler-y {
  cursor: s-resize;
  height: 6px;
  left: 0;
  bottom: -4px;
  right: 0;
}

.so-lazyload {
  border: 1px solid transparent;
}

.so-divider {
  margin: 0;
  padding: 0;
  font-size: 12px;
  border-top: 1px solid var(--divider-color, #f0f0f0);
}
.so-divider-vertical {
  position: relative;
  top: -0.06em;
  display: inline-block;
  height: 0.9em;
  margin: 0 8px;
  vertical-align: middle;
  border-top: 0;
  border-left: 1px solid var(--divider-color, #f0f0f0);
}
.so-divider-horizontal {
  display: flex;
  clear: both;
  width: 100%;
  min-width: 100%;
  margin: 24px 0;
}
.so-divider-horizontal.so-divider-with-text {
  display: flex;
  margin: 16px 0;
  color: #000;
  white-space: nowrap;
  text-align: center;
  border-top: 0;
  border-top-color: var(--divider-color, #f0f0f0);
}
.so-divider-horizontal.so-divider-with-text::before,
.so-divider-horizontal.so-divider-with-text::after {
  position: relative;
  top: 50%;
  width: 50%;
  border-top: 1px solid transparent;
  border-top-color: inherit;
  border-bottom: 0;
  -webkit-transform: translateY(50%);
          transform: translateY(50%);
  content: '';
}
.so-divider-horizontal.so-divider-with-text-left::before {
  top: 50%;
  width: 5%;
}
.so-divider-horizontal.so-divider-with-text-left::after {
  top: 50%;
  width: 95%;
}
.so-divider-horizontal.so-divider-with-text-right::before {
  top: 50%;
  width: 95%;
}
.so-divider-horizontal.so-divider-with-text-right::after {
  top: 50%;
  width: 5%;
}
.so-divider-inner-text {
  display: inline-block;
  padding: 0 1em;
}

.so-expose-location-primary {
  color: var(--primary-color, #3399ff);
  display: none;
  position: absolute;
}
.so-expose-location-warning {
  color: var(--warning-color, #ff9900);
  display: none;
  position: absolute;
}
.so-expose-location-danger {
  color: var(--danger-color, #f85555);
  display: none;
  position: absolute;
}
.so-expose-location-success {
  color: var(--success-color, #00cc66);
  display: none;
  position: absolute;
}
.so-expose-location-secondary {
  color: var(--secondary-color, #999999);
  display: none;
  position: absolute;
}
.so-expose-primary-background {
  background-color: var(--primary-color, #3399ff);
}
.so-expose-primary-color {
  color: var(--primary-color, #3399ff);
}
.so-expose-primary-border {
  border-color: var(--primary-color, #3399ff);
}
.so-expose-warning-background {
  background-color: var(--warning-color, #ff9900);
}
.so-expose-warning-color {
  color: var(--warning-color, #ff9900);
}
.so-expose-warning-border {
  border-color: var(--warning-color, #ff9900);
}
.so-expose-danger-background {
  background-color: var(--danger-color, #f85555);
}
.so-expose-danger-color {
  color: var(--danger-color, #f85555);
}
.so-expose-danger-border {
  border-color: var(--danger-color, #f85555);
}
.so-expose-success-background {
  background-color: var(--success-color, #00cc66);
}
.so-expose-success-color {
  color: var(--success-color, #00cc66);
}
.so-expose-success-border {
  border-color: var(--success-color, #00cc66);
}
.so-expose-secondary-background {
  background-color: var(--secondary-color, #999999);
}
.so-expose-secondary-color {
  color: var(--secondary-color, #999999);
}
.so-expose-secondary-border {
  border-color: var(--secondary-color, #999999);
}
.so-expose-table {
  color: var(--table-color, #6c757d);
  margin-bottom: var(--table-margin-bottom, 20px);
}
.so-expose-table-head {
  font-weight: var(--table-head-font-weight, bold);
  background: var(--table-head-bg, #fafafa);
  border-radius: var(--table-border-radius-top, 0) var(--table-border-radius-top, 0) 0 0;
  color: var(--table-head-color, #000);
  border-color: var(--table-border-color, #ddd);
  padding: var(--table-header-cell-padding, 5px 10px);
}
.so-expose-table-head-hover {
  background: var(--table-hover-bg, #f5f5f5);
}
.so-expose-table-head-top {
  border-width: var(--table-header-top-divider-width, 0);
}
.so-expose-table-spacing {
  height: var(--table-row-spacing, 0);
  border-radius: var(--table-row-border-radius, 0);
}
.so-expose-table-cell {
  padding: var(--table-cell-padding-vertical, 8px) var(--table-cell-padding-horizontal, 8px);
}
.so-expose-table-small {
  padding: var(--table-small-cell-padding, var(--table-header-cell-padding, 5px 10px));
}
.so-expose-table-fixed-start {
  background: var(--table-fixed-start-color, rgba(0, 0, 0, 0.15));
}
.so-expose-table-fixed-end {
  background: var(--table-fixed-end-color, rgba(0, 0, 0, 0));
}
.so-expose-table-scroll-ratio {
  width: var(--table-scroll-ratio, 100px);
}
.so-expose-table-selected {
  background: var(--table-selected-row-bg, #fff);
}
.so-expose-table-tree-expand {
  margin-right: var(--table-tree-expand-icon-margin-right, 8px);
}
.so-expose-table-body {
  background: var(--table-body-bg, #ffffff);
}
.so-expose-table-even {
  background-color: var(--table-even-td-bgc, #f9f9f9);
}
.so-expose-table-odd {
  background-color: var(--table-odd-td-bgc, #fff);
}
.so-expose-dropdown-button {
  border: var(--dropdown-border-width, 1px) solid #000;
}
.so-expose-dropdown-options-hover {
  background-color: var(--dropdown-options-hover-bgc, #f5f5f5);
  color: var(--dropdown-options-hover-color, var(--gray-800-darken-5, #292d32));
}
.so-expose-select-result-item {
  background: var(--gray-100, #f8f9fa);
  padding: var(--select-result-padding-vertical, 0) var(--select-result-padding-horizontal-16, 20px) var(--select-result-padding-vertical, 0) var(--select-result-padding-horizontal, 4px);
}
.so-expose-select-option-hover {
  background: var(--select-option-hover-bg, #f5f5f5);
  color: var(--select-option-hover-color, #3399ff);
}
.so-expose-select-close {
  background: var(--select-clear-bg-color, #94a1ae);
}
.so-expose-select-compressed {
  background: var(--select-compressed-hover-bg, rgba(51, 153, 255, 0.6));
}
.so-expose-datepicker-month-item {
  border-radius: 2px;
}
.so-expose-datepicker-day-hover-bgc {
  background-color: var(--datepicker-day-hover-bgc, var(--gray-100, #f8f9fa));
}
.so-expose-slider-bar {
  background: var(--slider-bar-color, #ced4da);
}
.so-expose-slider-bar-disabled {
  background: var(--slider-disabled-bar-bg, #adb5bd);
}
.so-expose-slider-indicator {
  background: var(--slider-indicator-bg, #fff);
  width: var(--slider-indicator-size, 14px);
}
.so-expose-slider-indicator-disabled {
  background: var(--slider-disbaled-indicator-bg, var(--slider-indicator-bg, #fff));
  border-color: var(--slider-disbaled-indicator-border-color, var(--slider-disabled-bar-bg, #adb5bd));
}
.so-expose-slider-value {
  height: var(--slider-value-bottom, 14px);
}
.so-expose-menu-text {
  color: var(--menu-item-color, #212529);
}
.so-expose-menu-dark {
  background: var(--menu-dark-bg, #001529);
  color: var(--menu-dark-color, #bfbfbf);
}
.so-expose-menu-dark-active {
  background: var(--menu-dark-acitve-bg, #3399ff);
}
.so-expose-menu-dark-hover {
  color: var(--menu-item-dark-hover-color, #fff);
  background-color: var(--menu-item-dark-hover-bgc, rgba(51, 153, 255, 0.5));
}
.so-expose-menu-dark-bar {
  background-color: var(--menu-dark-item-active-indicator, var(--primary-color, #3399ff));
}
.so-expose-menu-dark-root {
  background-color: var(--menu-root-node-bgc, transparent);
}
.so-expose-menu-dark-seg {
  border-top-color: var(--menu-children-segmentation, transparent);
}
.so-expose-menu-dark-vertical {
  background-color: var(--menu-vertical-dark-parent-active-bgc, #020B18);
}
.so-expose-menu-dark-vertical-children {
  background-color: var(--menu-item-has-children-active-bgc, var(--primary-color, #3399ff));
  color: var(--menu-item-has-children-active-color, #fff);
}
.so-expose-menu-dark-vertical-bar {
  width: var(--menu-vertical-in-path-bar-width, 4px);
}
.so-expose-menu-bar {
  background-color: var(--menu-item-active-indicator, var(--primary-color, #3399ff));
  width: var(--menu-active-bar, 3px);
}
.so-expose-menu-active {
  background: var(--menu-item-active-bg, #3399ff);
  color: var(--menu-item-active-color, #fff);
  border-radius: var(--menu-active-border-radius, 0);
  padding: var(--menu-active-padding-vertical, 0) var(--menu-active-padding-horizontal, 0);
}
.so-expose-menu-light-hover {
  color: var(--menu-item-light-hover-color, var(--primary-color, #3399ff));
  background-color: var(--menu-item-light-hover-bgc, transparent);
}
.so-expose-form-inline {
  margin-right: var(--form-item-margin-right, 20px);
}
.so-expose-form-tip {
  color: var(--form-tip-color, #7e8b98);
  font-size: var(--form-tip-font-size, 13px);
}
.so-expose-form-label {
  text-align: var(--form-item-label-align, 'left');
}
.so-expose-gray-100 {
  color: var(--gray-100, #f8f9fa);
}
.so-expose-gray-200 {
  color: var(--gray-200, #e9ecef);
}
.so-expose-gray-300 {
  color: var(--gray-300, #dee2e6);
}
.so-expose-gray-400 {
  color: var(--gray-400, #ced4da);
}
.so-expose-gray-500 {
  color: var(--gray-500, #adb5bd);
}
.so-expose-gray-600 {
  color: var(--gray-600, #6c757d);
}
.so-expose-gray-700 {
  color: var(--gray-700, #495057);
}
.so-expose-gray-800 {
  color: var(--gray-800, #343a40);
}
.so-expose-gray-900 {
  color: var(--gray-900, #212529);
}
.so-expose-button {
  margin-left: var(--button-margin-left, 12px);
}
.so-expose-button-disabled-delimiter {
  border-color: var(--button-disabled-delimiter, #d9d9d9);
}
.so-expose-input-focus {
  border-color: var(--input-border-focus-color, #80bdff);
}
.so-expose-input-placeholder {
  font-size: var(--input-placeholder-size, 14px);
  color: var(--input-placeholder-color, #999);
}
.so-expose-input-clear {
  background-color: var(--input-clear-bg-color, #ced4da);
}
.so-expose-input-clear-hover {
  background-color: var(--input-clear-bg-hover-color, #3399ff);
}
.so-expose-alert-close {
  color: var(--alert-close-color, rgba(0, 0, 0, 0.3));
}
.so-expose-alert-close-hover {
  color: var(--alert-close-hover-color, rgba(0, 0, 0, 0.8));
}
.so-expose-radio {
  width: var(--radio-width, 16px);
  border: var(--radio-border-width, 1px) solid #fff;
  color: var(--radio-text-color, var(--checkinput-color, var(--gray-900, #212529)));
}
.so-expose-radio-inner {
  width: var(--radio-inner-width, 8px);
}
.so-expose-radio-uncheck {
  width: var(--radio-border-uncheck-width, 1px);
}
.so-expose-radio-group-default {
  color: var(--radio-button-group-color, var(--button-default-text-color, #333));
  background-color: var(--radio-button-group-bgc, #fff);
  border-color: var(--radio-button-group-border-color, var(--gray-300, #dee2e6));
  border-radius: var(--radio-button-group-border-radius, var(--button-border-radius, 3px));
}
.so-expose-radio-group-active {
  color: var(--radio-button-group-active-color, #fff);
  background-color: var(--radio-button-group-active-bgc, var(--primary-color, #3399ff));
  border-color: var(--radio-button-group-active-border-color, var(--primary-color-dark-5, #198cff));
}
.so-expose-pagination {
  font-size: var(--pagination-font-size, 12px);
}
.so-expose-pagination-hover {
  border-color: var(--pagination-hover-border, #ddd);
  color: var(--pagination-hover-color, #3399ff);
  background-color: var(--pagination-hover-bg, #f8f9fa);
}
.so-expose-pagination-default {
  width: var(--pagination-size, 28px);
}
.so-expose-pagination-small {
  width: var(--pagination-size-small, 30px);
}
.so-expose-pagination-large {
  width: var(--pagination-size-large, 42px);
}
.so-expose-modal-icon {
  width: var(--modal-icon-size, 24px);
  margin-left: var(--modal-icon-left, 32px);
  margin-top: var(--modal-icon-top, 40px);
}
.so-expose-modal-icon-body {
  padding-top: var(--modal-icon-body-padding-top, 40px);
  padding-right: var(--modal-icon-body-padding-right, 40px);
  padding-bottom: var(--modal-icon-body-padding-bottom, 20px);
  padding-left: var(--modal-icon-body-padding-left, 70px);
}
.so-expose-modal-close {
  color: var(--modal-close-icon-color, #000);
  margin-top: var(--modal-close-top-margin, 18px);
  margin-right: var(--modal-close-right-margin, 24px);
}
.so-expose-modal-close-hover {
  color: var(--modal-close-icon-hover-color, #000);
}
.so-expose-modal-card {
  font-size: var(--modal-font-size, inherit);
  border-radius: var(--modal-border-radius, 4px);
  border: var(--modal-border-width, 1px) solid var(--modal-border-color, #ddd);
  box-shadow: var(--modal-box-shadow, 0 2px 8px rgba(0, 0, 0, 0.1));
}
.so-expose-modal-card-header {
  padding-top: var(--modal-header-padding-top, 16px);
  padding-right: var(--modal-header-padding-right, 36px);
  padding-bottom: var(--modal-header-padding-bottom, 16px);
  padding-left: var(--modal-header-padding-left, 24px);
  background: var(--modal-header-bg, #fff);
}
.so-expose-modal-card-body {
  padding-top: var(--modal-body-padding-top, 16px);
  padding-right: var(--modal-body-padding-right, 24px);
  padding-bottom: var(--modal-body-padding-bottom, 16px);
  padding-left: var(--modal-body-padding-left, 24px);
}
.so-expose-modal-card-footer {
  padding: var(--modal-footer-padding, 16px 24px);
  background: var(--modal-footer-bg, #fff);
  color: var(--modal-footer-color, 'inherit');
}
.so-expose-modal-divider {
  height: var(--modal-divider-height, 1px);
  background: var(--modal-divider-color, #ddd);
}
.so-expose-tag-close {
  color: var(--tag-close-color, '#000');
}
.so-expose-tag-close-hover {
  color: var(--tag-close-hover-color, '#000');
}
.so-expose-card-divider {
  height: var(--card-divider-height, 1px);
  width: var(--card-divider-width, 100%);
  background: var(--card-divider-color, #ddd);
}
.so-expose-tree-indent {
  width: var(--tree-level-indent, 0);
}
.so-expose-tree-node {
  margin-bottom: var(--tree-node-margin-bottom, 2px);
}
.so-expose-tree-default-icon {
  border-left-color: var(--tree-indicator-color, var(--gray-600, #6c757d));
}
.so-expose-checkbox-indicator {
  border-color: var(--checkbox-border-color, #ced4da);
  width: var(--checkbox-border-width, 1px);
  border-radius: var(--checkbox-indicator-border-radius, 2px);
}
.so-expose-checkbox-text {
  padding: 0 var(--checkbox-text-padding-x, 8px);
}
.so-expose-switch-type {
  -webkit-animation-name: outter;
          animation-name: outter;
}
.so-expose-msg-close {
  color: var(--message-close-color, rgba(0, 0, 0, 0.3));
}
.so-expose-tabs {
  margin-left: var(--tabs-tab-spacing, 4px);
}
.so-expose-cascader-active {
  background-color: var(--cascader-active-background-color, var(--select-item-active-bg, #f5f5f5));
  color: var(--cascader-active-color, var(--select-item-active-color, #292d32));
}
.so-expose-list-item {
  background-color: var(--list-item-hover-bgc, rgba(25, 122, 250, 0.1));
  width: var(--list-item-bottom-border-width, 1px);
}
.so-expose-progress {
  background-color: var(--progress-bgc, var(--gray-200, #e9ecef));
}
.so-expose-common-base {
  font-size: 12px;
}
.so-expose-common-input-delay {
  width: var(--common-input-delay, 400px);
}
.so-expose-common-input-trim {
  opacity: var(--common-input-trim, 0);
}
.so-expose-common-spin-default {
  -webkit-animation-name: var(--common-spin-default-name, default);
          animation-name: var(--common-spin-default-name, default);
}
.so-expose-common-caret {
  -webkit-animation-name: var(--common-caret-style, fill);
          animation-name: var(--common-caret-style, fill);
}

.so-spin-default {
  position: relative;
  margin: auto;
}
@-webkit-keyframes so-spin-default-scale {
  0%,
  80%,
  100% {
    -webkit-transform: scale3d(0, 0, 1);
            transform: scale3d(0, 0, 1);
  }
  40% {
    -webkit-transform: scale3d(1, 1, 1);
            transform: scale3d(1, 1, 1);
  }
}
@keyframes so-spin-default-scale {
  0%,
  80%,
  100% {
    -webkit-transform: scale3d(0, 0, 1);
            transform: scale3d(0, 0, 1);
  }
  40% {
    -webkit-transform: scale3d(1, 1, 1);
            transform: scale3d(1, 1, 1);
  }
}
@-webkit-keyframes so-spin-default-fade {
  0%,
  39%,
  100% {
    opacity: 0.2;
  }
  40% {
    opacity: 1;
  }
}
@keyframes so-spin-default-fade {
  0%,
  39%,
  100% {
    opacity: 0.2;
  }
  40% {
    opacity: 1;
  }
}
.so-spin-default-item {
  position: absolute;
  top: 0;
  left: 45%;
  width: 10%;
  height: 50%;
  -webkit-transform-origin: 50% 100%;
          transform-origin: 50% 100%;
}
.so-spin-default-item div {
  height: 55%;
  margin: 0 auto;
  -webkit-animation: so-spin-default-fade 1s infinite ease-in-out both;
          animation: so-spin-default-fade 1s infinite ease-in-out both;
}
.so-spin-default-scale svg,
.so-spin-default-scale div {
  -webkit-animation: so-spin-default-scale 1s infinite ease-in-out both;
          animation: so-spin-default-scale 1s infinite ease-in-out both;
}
.so-spin-default-fade svg,
.so-spin-default-fade div {
  -webkit-animation: so-spin-default-fade 1s infinite ease-in-out both;
          animation: so-spin-default-fade 1s infinite ease-in-out both;
}
.so-spin-default .so-spin-default-item:nth-child(2) {
  -webkit-transform: rotateZ(30deg);
          transform: rotateZ(30deg);
}
.so-spin-default .so-spin-default-item:nth-child(2) svg,
.so-spin-default .so-spin-default-item:nth-child(2) div {
  -webkit-animation-delay: -0.91666667s;
          animation-delay: -0.91666667s;
}
.so-spin-default .so-spin-default-item:nth-child(3) {
  -webkit-transform: rotateZ(60deg);
          transform: rotateZ(60deg);
}
.so-spin-default .so-spin-default-item:nth-child(3) svg,
.so-spin-default .so-spin-default-item:nth-child(3) div {
  -webkit-animation-delay: -0.83333333s;
          animation-delay: -0.83333333s;
}
.so-spin-default .so-spin-default-item:nth-child(4) {
  -webkit-transform: rotateZ(90deg);
          transform: rotateZ(90deg);
}
.so-spin-default .so-spin-default-item:nth-child(4) svg,
.so-spin-default .so-spin-default-item:nth-child(4) div {
  -webkit-animation-delay: -0.75s;
          animation-delay: -0.75s;
}
.so-spin-default .so-spin-default-item:nth-child(5) {
  -webkit-transform: rotateZ(120deg);
          transform: rotateZ(120deg);
}
.so-spin-default .so-spin-default-item:nth-child(5) svg,
.so-spin-default .so-spin-default-item:nth-child(5) div {
  -webkit-animation-delay: -0.66666667s;
          animation-delay: -0.66666667s;
}
.so-spin-default .so-spin-default-item:nth-child(6) {
  -webkit-transform: rotateZ(150deg);
          transform: rotateZ(150deg);
}
.so-spin-default .so-spin-default-item:nth-child(6) svg,
.so-spin-default .so-spin-default-item:nth-child(6) div {
  -webkit-animation-delay: -0.58333333s;
          animation-delay: -0.58333333s;
}
.so-spin-default .so-spin-default-item:nth-child(7) {
  -webkit-transform: rotateZ(180deg);
          transform: rotateZ(180deg);
}
.so-spin-default .so-spin-default-item:nth-child(7) svg,
.so-spin-default .so-spin-default-item:nth-child(7) div {
  -webkit-animation-delay: -0.5s;
          animation-delay: -0.5s;
}
.so-spin-default .so-spin-default-item:nth-child(8) {
  -webkit-transform: rotateZ(210deg);
          transform: rotateZ(210deg);
}
.so-spin-default .so-spin-default-item:nth-child(8) svg,
.so-spin-default .so-spin-default-item:nth-child(8) div {
  -webkit-animation-delay: -0.41666667s;
          animation-delay: -0.41666667s;
}
.so-spin-default .so-spin-default-item:nth-child(9) {
  -webkit-transform: rotateZ(240deg);
          transform: rotateZ(240deg);
}
.so-spin-default .so-spin-default-item:nth-child(9) svg,
.so-spin-default .so-spin-default-item:nth-child(9) div {
  -webkit-animation-delay: -0.33333333s;
          animation-delay: -0.33333333s;
}
.so-spin-default .so-spin-default-item:nth-child(10) {
  -webkit-transform: rotateZ(270deg);
          transform: rotateZ(270deg);
}
.so-spin-default .so-spin-default-item:nth-child(10) svg,
.so-spin-default .so-spin-default-item:nth-child(10) div {
  -webkit-animation-delay: -0.25s;
          animation-delay: -0.25s;
}
.so-spin-default .so-spin-default-item:nth-child(11) {
  -webkit-transform: rotateZ(300deg);
          transform: rotateZ(300deg);
}
.so-spin-default .so-spin-default-item:nth-child(11) svg,
.so-spin-default .so-spin-default-item:nth-child(11) div {
  -webkit-animation-delay: -0.16666667s;
          animation-delay: -0.16666667s;
}
.so-spin-default .so-spin-default-item:nth-child(12) {
  -webkit-transform: rotateZ(330deg);
          transform: rotateZ(330deg);
}
.so-spin-default .so-spin-default-item:nth-child(12) svg,
.so-spin-default .so-spin-default-item:nth-child(12) div {
  -webkit-animation-delay: -0.08333333s;
          animation-delay: -0.08333333s;
}

.so-spin-ring {
  margin: auto;
  border-style: solid;
  border-color: rgba(0, 0, 0, 0.05);
  -webkit-animation: so-spin-ring-spin 1s infinite linear;
          animation: so-spin-ring-spin 1s infinite linear;
  border-radius: 50%;
}
@-webkit-keyframes so-spin-ring-spin {
  0% {
    -webkit-transform: rotateZ(0deg);
            transform: rotateZ(0deg);
  }
  100% {
    -webkit-transform: rotateZ(359deg);
            transform: rotateZ(359deg);
  }
}
@keyframes so-spin-ring-spin {
  0% {
    -webkit-transform: rotateZ(0deg);
            transform: rotateZ(0deg);
  }
  100% {
    -webkit-transform: rotateZ(359deg);
            transform: rotateZ(359deg);
  }
}

.so-spin-plane {
  margin: auto;
  -webkit-animation: so-spin-plane-spin 1s infinite linear;
          animation: so-spin-plane-spin 1s infinite linear;
}
@-webkit-keyframes so-spin-plane-spin {
  0% {
    -webkit-transform: perspective(120px) rotateX(0deg) rotateY(0deg);
            transform: perspective(120px) rotateX(0deg) rotateY(0deg);
  }
  50% {
    -webkit-transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg);
            transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg);
  }
  100% {
    -webkit-transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg);
            transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg);
  }
}
@keyframes so-spin-plane-spin {
  0% {
    -webkit-transform: perspective(120px) rotateX(0deg) rotateY(0deg);
            transform: perspective(120px) rotateX(0deg) rotateY(0deg);
  }
  50% {
    -webkit-transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg);
            transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg);
  }
  100% {
    -webkit-transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg);
            transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg);
  }
}

.so-spin-pulse {
  margin: auto;
  -webkit-animation: so-spin-pulse-scale 1s infinite ease-in-out;
          animation: so-spin-pulse-scale 1s infinite ease-in-out;
  border-radius: 100%;
}
@-webkit-keyframes so-spin-pulse-scale {
  0% {
    -webkit-transform: scale3d(0, 0, 1);
            transform: scale3d(0, 0, 1);
  }
  100% {
    opacity: 0;
    -webkit-transform: scale3d(1, 1, 1);
            transform: scale3d(1, 1, 1);
  }
}
@keyframes so-spin-pulse-scale {
  0% {
    -webkit-transform: scale3d(0, 0, 1);
            transform: scale3d(0, 0, 1);
  }
  100% {
    opacity: 0;
    -webkit-transform: scale3d(1, 1, 1);
            transform: scale3d(1, 1, 1);
  }
}

.so-spin-wave {
  margin: auto;
  font-size: 10px;
  text-align: center;
  white-space: nowrap;
}
@-webkit-keyframes so-spin-wave-scale {
  0%,
  40%,
  100% {
    -webkit-transform: scale3d(1, 0.4, 1);
            transform: scale3d(1, 0.4, 1);
  }
  20% {
    -webkit-transform: scale3d(1, 1, 1);
            transform: scale3d(1, 1, 1);
  }
}
@keyframes so-spin-wave-scale {
  0%,
  40%,
  100% {
    -webkit-transform: scale3d(1, 0.4, 1);
            transform: scale3d(1, 0.4, 1);
  }
  20% {
    -webkit-transform: scale3d(1, 1, 1);
            transform: scale3d(1, 1, 1);
  }
}
.so-spin-wave-item {
  display: inline-block;
  height: 100%;
  margin-right: 2px;
  -webkit-animation: so-spin-wave-scale 1.2s infinite ease-in-out;
          animation: so-spin-wave-scale 1.2s infinite ease-in-out;
}
.so-spin-wave-item:last-child {
  margin-right: 0;
}
.so-spin-wave .so-spin-wave-item:nth-child(2) {
  -webkit-animation-delay: -1.1s;
          animation-delay: -1.1s;
}
.so-spin-wave .so-spin-wave-item:nth-child(3) {
  -webkit-animation-delay: -1s;
          animation-delay: -1s;
}
.so-spin-wave .so-spin-wave-item:nth-child(4) {
  -webkit-animation-delay: -0.9s;
          animation-delay: -0.9s;
}
.so-spin-wave .so-spin-wave-item:nth-child(5) {
  -webkit-animation-delay: -0.8s;
          animation-delay: -0.8s;
}

.so-chasing-dots {
  position: relative;
  margin: auto;
  -webkit-animation: so-chasing-dots-rotate 2s infinite linear;
          animation: so-chasing-dots-rotate 2s infinite linear;
  text-align: center;
}
@-webkit-keyframes so-chasing-dots-rotate {
  100% {
    -webkit-transform: rotateZ(360deg);
            transform: rotateZ(360deg);
  }
}
@keyframes so-chasing-dots-rotate {
  100% {
    -webkit-transform: rotateZ(360deg);
            transform: rotateZ(360deg);
  }
}
@-webkit-keyframes so-chasing-dots-bounce {
  0%,
  100% {
    -webkit-transform: scale3d(0, 0, 1);
            transform: scale3d(0, 0, 1);
  }
  50% {
    -webkit-transform: scale3d(1, 1, 1);
            transform: scale3d(1, 1, 1);
  }
}
@keyframes so-chasing-dots-bounce {
  0%,
  100% {
    -webkit-transform: scale3d(0, 0, 1);
            transform: scale3d(0, 0, 1);
  }
  50% {
    -webkit-transform: scale3d(1, 1, 1);
            transform: scale3d(1, 1, 1);
  }
}
.so-chasing-dots-item {
  position: absolute;
  top: 0;
  display: inline-block;
  width: 60%;
  height: 60%;
  -webkit-animation: so-chasing-dots-bounce 2s infinite ease-in-out;
          animation: so-chasing-dots-bounce 2s infinite ease-in-out;
  border-radius: 100%;
}
.so-chasing-dots-item:last-child {
  top: auto;
  bottom: 0;
  -webkit-animation-delay: -1s;
          animation-delay: -1s;
}

.so-double-bounce {
  position: relative;
  margin: auto;
}
@-webkit-keyframes so-double-bounce-spin {
  0%,
  100% {
    -webkit-transform: scale3d(0, 0, 1);
            transform: scale3d(0, 0, 1);
  }
  50% {
    -webkit-transform: scale3d(1, 1, 1);
            transform: scale3d(1, 1, 1);
  }
}
@keyframes so-double-bounce-spin {
  0%,
  100% {
    -webkit-transform: scale3d(0, 0, 1);
            transform: scale3d(0, 0, 1);
  }
  50% {
    -webkit-transform: scale3d(1, 1, 1);
            transform: scale3d(1, 1, 1);
  }
}
.so-double-bounce-item {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  -webkit-animation: so-double-bounce-spin 2s infinite ease-in-out;
          animation: so-double-bounce-spin 2s infinite ease-in-out;
  border-radius: 50%;
  opacity: 0.6;
}
.so-double-bounce-item:last-child {
  -webkit-animation-delay: -1s;
          animation-delay: -1s;
}

.so-cube-grid {
  margin: auto;
}
.so-cube-grid-item {
  width: 33.33333%;
  height: 33.3333%;
  -webkit-animation: so-cube-grid-spin 1.3s infinite ease-in-out;
          animation: so-cube-grid-spin 1.3s infinite ease-in-out;
  float: left;
}
@-webkit-keyframes so-cube-grid-spin {
  0%,
  70%,
  100% {
    -webkit-transform: scale3D(1, 1, 1);
            transform: scale3D(1, 1, 1);
  }
  35% {
    -webkit-transform: scale3D(0, 0, 1);
            transform: scale3D(0, 0, 1);
  }
}
@keyframes so-cube-grid-spin {
  0%,
  70%,
  100% {
    -webkit-transform: scale3D(1, 1, 1);
            transform: scale3D(1, 1, 1);
  }
  35% {
    -webkit-transform: scale3D(0, 0, 1);
            transform: scale3D(0, 0, 1);
  }
}
.so-cube-grid-item:nth-child(1) {
  -webkit-animation-delay: 0.2s;
          animation-delay: 0.2s;
}
.so-cube-grid-item:nth-child(2) {
  -webkit-animation-delay: 0.3s;
          animation-delay: 0.3s;
}
.so-cube-grid-item:nth-child(3) {
  -webkit-animation-delay: 0.4s;
          animation-delay: 0.4s;
}
.so-cube-grid-item:nth-child(4) {
  -webkit-animation-delay: 0.1s;
          animation-delay: 0.1s;
}
.so-cube-grid-item:nth-child(5) {
  -webkit-animation-delay: 0.2s;
          animation-delay: 0.2s;
}
.so-cube-grid-item:nth-child(6) {
  -webkit-animation-delay: 0.3s;
          animation-delay: 0.3s;
}
.so-cube-grid-item:nth-child(7) {
  -webkit-animation-delay: 0s;
          animation-delay: 0s;
}
.so-cube-grid-item:nth-child(8) {
  -webkit-animation-delay: 0.1s;
          animation-delay: 0.1s;
}
.so-cube-grid-item:nth-child(9) {
  -webkit-animation-delay: 0.2s;
          animation-delay: 0.2s;
}

.so-chasing-ring {
  position: relative;
  margin: auto;
}
@-webkit-keyframes so-chasing-ring-loading {
  0% {
    -webkit-transform: rotateZ(0deg);
            transform: rotateZ(0deg);
  }
  100% {
    -webkit-transform: rotateZ(360deg);
            transform: rotateZ(360deg);
  }
}
@keyframes so-chasing-ring-loading {
  0% {
    -webkit-transform: rotateZ(0deg);
            transform: rotateZ(0deg);
  }
  100% {
    -webkit-transform: rotateZ(360deg);
            transform: rotateZ(360deg);
  }
}
@-webkit-keyframes so-chasing-ring-loading1 {
  0% {
    -webkit-transform: rotateZ(0deg);
            transform: rotateZ(0deg);
  }
  44% {
    -webkit-transform: rotateZ(225deg);
            transform: rotateZ(225deg);
  }
  100% {
    -webkit-transform: rotateZ(360deg);
            transform: rotateZ(360deg);
  }
}
@keyframes so-chasing-ring-loading1 {
  0% {
    -webkit-transform: rotateZ(0deg);
            transform: rotateZ(0deg);
  }
  44% {
    -webkit-transform: rotateZ(225deg);
            transform: rotateZ(225deg);
  }
  100% {
    -webkit-transform: rotateZ(360deg);
            transform: rotateZ(360deg);
  }
}
@-webkit-keyframes so-chasing-ring-loading2 {
  0% {
    -webkit-transform: rotateZ(75deg);
            transform: rotateZ(75deg);
  }
  44% {
    -webkit-transform: rotateZ(225deg);
            transform: rotateZ(225deg);
  }
  100% {
    -webkit-transform: rotateZ(435deg);
            transform: rotateZ(435deg);
  }
}
@keyframes so-chasing-ring-loading2 {
  0% {
    -webkit-transform: rotateZ(75deg);
            transform: rotateZ(75deg);
  }
  44% {
    -webkit-transform: rotateZ(225deg);
            transform: rotateZ(225deg);
  }
  100% {
    -webkit-transform: rotateZ(435deg);
            transform: rotateZ(435deg);
  }
}
@-webkit-keyframes so-chasing-ring-loading3 {
  0% {
    -webkit-transform: rotateZ(150deg);
            transform: rotateZ(150deg);
  }
  44% {
    -webkit-transform: rotateZ(225deg);
            transform: rotateZ(225deg);
  }
  100% {
    -webkit-transform: rotateZ(510deg);
            transform: rotateZ(510deg);
  }
}
@keyframes so-chasing-ring-loading3 {
  0% {
    -webkit-transform: rotateZ(150deg);
            transform: rotateZ(150deg);
  }
  44% {
    -webkit-transform: rotateZ(225deg);
            transform: rotateZ(225deg);
  }
  100% {
    -webkit-transform: rotateZ(510deg);
            transform: rotateZ(510deg);
  }
}
@-webkit-keyframes so-chasing-ring-loading4 {
  0% {
    -webkit-transform: rotateZ(225deg);
            transform: rotateZ(225deg);
  }
  44% {
    -webkit-transform: rotateZ(225deg);
            transform: rotateZ(225deg);
  }
  100% {
    -webkit-transform: rotateZ(585deg);
            transform: rotateZ(585deg);
  }
}
@keyframes so-chasing-ring-loading4 {
  0% {
    -webkit-transform: rotateZ(225deg);
            transform: rotateZ(225deg);
  }
  44% {
    -webkit-transform: rotateZ(225deg);
            transform: rotateZ(225deg);
  }
  100% {
    -webkit-transform: rotateZ(585deg);
            transform: rotateZ(585deg);
  }
}
.so-chasing-ring-item {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  box-sizing: border-box;
  border: solid 1px transparent;
  border-radius: 100%;
  -webkit-transform-origin: 50% 50%;
          transform-origin: 50% 50%;
}
.so-chasing-ring-item:nth-child(1) {
  -webkit-animation: so-chasing-ring-loading1 2s infinite;
          animation: so-chasing-ring-loading1 2s infinite;
}
.so-chasing-ring-item:nth-child(2) {
  -webkit-animation: so-chasing-ring-loading2 2s infinite;
          animation: so-chasing-ring-loading2 2s infinite;
}
.so-chasing-ring-item:nth-child(3) {
  -webkit-animation: so-chasing-ring-loading3 2s infinite;
          animation: so-chasing-ring-loading3 2s infinite;
}
.so-chasing-ring-item:nth-child(4) {
  -webkit-animation: so-chasing-ring-loading4 2s infinite;
          animation: so-chasing-ring-loading4 2s infinite;
}

.so-scale-circle {
  position: relative;
  margin: auto;
}
@-webkit-keyframes so-scale-circle-scale {
  0%,
  80%,
  100% {
    -webkit-transform: scale3d(0, 0, 1);
            transform: scale3d(0, 0, 1);
  }
  40% {
    -webkit-transform: scale3d(1, 1, 1);
            transform: scale3d(1, 1, 1);
  }
}
@keyframes so-scale-circle-scale {
  0%,
  80%,
  100% {
    -webkit-transform: scale3d(0, 0, 1);
            transform: scale3d(0, 0, 1);
  }
  40% {
    -webkit-transform: scale3d(1, 1, 1);
            transform: scale3d(1, 1, 1);
  }
}
@-webkit-keyframes so-scale-circle-fade {
  0%,
  39%,
  100% {
    opacity: 0;
  }
  40% {
    opacity: 1;
  }
}
@keyframes so-scale-circle-fade {
  0%,
  39%,
  100% {
    opacity: 0;
  }
  40% {
    opacity: 1;
  }
}
.so-scale-circle-item {
  position: absolute;
  top: 10%;
  left: 10%;
  width: 80%;
  height: 80%;
}
.so-scale-circle-item div {
  border-radius: 100%;
}
.so-scale-circle-scale svg,
.so-scale-circle-scale div {
  -webkit-animation: so-scale-circle-scale 1.2s infinite ease-in-out both;
          animation: so-scale-circle-scale 1.2s infinite ease-in-out both;
}
.so-scale-circle-fade svg,
.so-scale-circle-fade div {
  -webkit-animation: so-scale-circle-fade 1.2s infinite ease-in-out both;
          animation: so-scale-circle-fade 1.2s infinite ease-in-out both;
}
.so-scale-circle .so-scale-circle-item:nth-child(2) {
  -webkit-transform: rotateZ(30deg);
          transform: rotateZ(30deg);
}
.so-scale-circle .so-scale-circle-item:nth-child(2) svg,
.so-scale-circle .so-scale-circle-item:nth-child(2) div {
  -webkit-animation-delay: -1.1s;
          animation-delay: -1.1s;
}
.so-scale-circle .so-scale-circle-item:nth-child(3) {
  -webkit-transform: rotateZ(60deg);
          transform: rotateZ(60deg);
}
.so-scale-circle .so-scale-circle-item:nth-child(3) svg,
.so-scale-circle .so-scale-circle-item:nth-child(3) div {
  -webkit-animation-delay: -1s;
          animation-delay: -1s;
}
.so-scale-circle .so-scale-circle-item:nth-child(4) {
  -webkit-transform: rotateZ(90deg);
          transform: rotateZ(90deg);
}
.so-scale-circle .so-scale-circle-item:nth-child(4) svg,
.so-scale-circle .so-scale-circle-item:nth-child(4) div {
  -webkit-animation-delay: -0.9s;
          animation-delay: -0.9s;
}
.so-scale-circle .so-scale-circle-item:nth-child(5) {
  -webkit-transform: rotateZ(120deg);
          transform: rotateZ(120deg);
}
.so-scale-circle .so-scale-circle-item:nth-child(5) svg,
.so-scale-circle .so-scale-circle-item:nth-child(5) div {
  -webkit-animation-delay: -0.8s;
          animation-delay: -0.8s;
}
.so-scale-circle .so-scale-circle-item:nth-child(6) {
  -webkit-transform: rotateZ(150deg);
          transform: rotateZ(150deg);
}
.so-scale-circle .so-scale-circle-item:nth-child(6) svg,
.so-scale-circle .so-scale-circle-item:nth-child(6) div {
  -webkit-animation-delay: -0.7s;
          animation-delay: -0.7s;
}
.so-scale-circle .so-scale-circle-item:nth-child(7) {
  -webkit-transform: rotateZ(180deg);
          transform: rotateZ(180deg);
}
.so-scale-circle .so-scale-circle-item:nth-child(7) svg,
.so-scale-circle .so-scale-circle-item:nth-child(7) div {
  -webkit-animation-delay: -0.6s;
          animation-delay: -0.6s;
}
.so-scale-circle .so-scale-circle-item:nth-child(8) {
  -webkit-transform: rotateZ(210deg);
          transform: rotateZ(210deg);
}
.so-scale-circle .so-scale-circle-item:nth-child(8) svg,
.so-scale-circle .so-scale-circle-item:nth-child(8) div {
  -webkit-animation-delay: -0.5s;
          animation-delay: -0.5s;
}
.so-scale-circle .so-scale-circle-item:nth-child(9) {
  -webkit-transform: rotateZ(240deg);
          transform: rotateZ(240deg);
}
.so-scale-circle .so-scale-circle-item:nth-child(9) svg,
.so-scale-circle .so-scale-circle-item:nth-child(9) div {
  -webkit-animation-delay: -0.4s;
          animation-delay: -0.4s;
}
.so-scale-circle .so-scale-circle-item:nth-child(10) {
  -webkit-transform: rotateZ(270deg);
          transform: rotateZ(270deg);
}
.so-scale-circle .so-scale-circle-item:nth-child(10) svg,
.so-scale-circle .so-scale-circle-item:nth-child(10) div {
  -webkit-animation-delay: -0.3s;
          animation-delay: -0.3s;
}
.so-scale-circle .so-scale-circle-item:nth-child(11) {
  -webkit-transform: rotateZ(300deg);
          transform: rotateZ(300deg);
}
.so-scale-circle .so-scale-circle-item:nth-child(11) svg,
.so-scale-circle .so-scale-circle-item:nth-child(11) div {
  -webkit-animation-delay: -0.2s;
          animation-delay: -0.2s;
}
.so-scale-circle .so-scale-circle-item:nth-child(12) {
  -webkit-transform: rotateZ(330deg);
          transform: rotateZ(330deg);
}
.so-scale-circle .so-scale-circle-item:nth-child(12) svg,
.so-scale-circle .so-scale-circle-item:nth-child(12) div {
  -webkit-animation-delay: -0.1s;
          animation-delay: -0.1s;
}

.so-three-bounce {
  margin: auto;
  text-align: center;
}
@-webkit-keyframes so-three-bounce-bounce {
  0%,
  80%,
  100% {
    -webkit-transform: scale3d(0, 0, 1);
            transform: scale3d(0, 0, 1);
  }
  40% {
    -webkit-transform: scale3d(1, 1, 1);
            transform: scale3d(1, 1, 1);
  }
}
@keyframes so-three-bounce-bounce {
  0%,
  80%,
  100% {
    -webkit-transform: scale3d(0, 0, 1);
            transform: scale3d(0, 0, 1);
  }
  40% {
    -webkit-transform: scale3d(1, 1, 1);
            transform: scale3d(1, 1, 1);
  }
}
.so-three-bounce-item {
  display: inline-block;
  -webkit-animation: so-three-bounce-bounce 1.4s ease-in-out 0s infinite both;
          animation: so-three-bounce-bounce 1.4s ease-in-out 0s infinite both;
}
.so-three-bounce-item div {
  border-radius: 100%;
}
.so-three-bounce-item:nth-child(1) {
  -webkit-animation-delay: -0.32s;
          animation-delay: -0.32s;
}
.so-three-bounce-item:nth-child(2) {
  -webkit-animation-delay: -0.16s;
          animation-delay: -0.16s;
}

.so-four-dots {
  position: relative;
  margin: auto;
  -webkit-animation: so-four-dots-rotate 1.6s infinite linear;
          animation: so-four-dots-rotate 1.6s infinite linear;
}
@-webkit-keyframes so-four-dots-rotate {
  0% {
    -webkit-transform: rotateZ(0deg);
            transform: rotateZ(0deg);
  }
  100% {
    -webkit-transform: rotateZ(359deg);
            transform: rotateZ(359deg);
  }
}
@keyframes so-four-dots-rotate {
  0% {
    -webkit-transform: rotateZ(0deg);
            transform: rotateZ(0deg);
  }
  100% {
    -webkit-transform: rotateZ(359deg);
            transform: rotateZ(359deg);
  }
}
@-webkit-keyframes so-four-dots-fade {
  0% {
    opacity: 0.2;
  }
  50% {
    opacity: 0.9;
  }
  100% {
    opacity: 0.2;
  }
}
@keyframes so-four-dots-fade {
  0% {
    opacity: 0.2;
  }
  50% {
    opacity: 0.9;
  }
  100% {
    opacity: 0.2;
  }
}
.so-four-dots-item {
  position: absolute;
  width: 32%;
  height: 32%;
  -webkit-animation: so-four-dots-fade 1.6s linear infinite;
          animation: so-four-dots-fade 1.6s linear infinite;
  line-height: 0;
  opacity: 0.2;
}
.so-four-dots-item div {
  border-radius: 100%;
}
.so-four-dots-item:nth-child(1) {
  top: 10%;
  left: 10%;
}
.so-four-dots-item:nth-child(2) {
  top: 10%;
  right: 10%;
  -webkit-animation-delay: 0.4s;
          animation-delay: 0.4s;
}
.so-four-dots-item:nth-child(3) {
  right: 10%;
  bottom: 10%;
  -webkit-animation-delay: 0.8s;
          animation-delay: 0.8s;
}
.so-four-dots-item:nth-child(4) {
  bottom: 10%;
  left: 10%;
  -webkit-animation-delay: 1.2s;
          animation-delay: 1.2s;
}

