:root {
  --tx-primary: #1890ff;
  --tx-secondary: #6c757d;
  --tx-success: #67c23a;
  --tx-info: #0dcaf0;
  --tx-warning: #ffc107;
  --tx-danger: #ff4d4f;
  --tx-dark: #212529;
  --tx-light: #f8f9fa;
  --tx-border-default: #dfdfdf;
  --tx-hover-default: #e6f7ff;
  --tx-hover-hover: #d6f7ff;
  --tx-hover-primary: #40a9ff;
  --tx-hover-secondary: #565e64;
  --tx-hover-success: #10d83a;
  --tx-hover-info: #3dd5f3;
  --tx-hover-warning: #ffcd39;
  --tx-hover-danger: #ff7875;
  --tx-hover-dark: #1a1e21;
  --tx-hover-light: #e2e6ea;
  --tx-text-line-height: 32px;
}
/**
 * background-color
 */
.bg-primary {
  color: #ffffff;
  background-color: var(--tx-primary);
}
.bg-primary::-moz-selection {
  color: var(--tx-primary);
  background-color: #ffffff;
}
.bg-primary::selection {
  color: var(--tx-primary);
  background-color: #ffffff;
}
.bg-secondary {
  color: #ffffff;
  background-color: var(--tx-secondary);
}
.bg-secondary::-moz-selection {
  color: var(--tx-secondary);
  background-color: #ffffff;
}
.bg-secondary::selection {
  color: var(--tx-secondary);
  background-color: #ffffff;
}
.bg-success {
  color: #ffffff;
  background-color: var(--tx-success);
}
.bg-success::-moz-selection {
  color: var(--tx-success);
  background-color: #ffffff;
}
.bg-success::selection {
  color: var(--tx-success);
  background-color: #ffffff;
}
.bg-info {
  color: #ffffff;
  background-color: var(--tx-info);
}
.bg-info::-moz-selection {
  color: var(--tx-info);
  background-color: #ffffff;
}
.bg-info::selection {
  color: var(--tx-info);
  background-color: #ffffff;
}
.bg-warning {
  color: #ffffff;
  background-color: var(--tx-warning);
}
.bg-warning::-moz-selection {
  color: var(--tx-warning);
  background-color: #ffffff;
}
.bg-warning::selection {
  color: var(--tx-warning);
  background-color: #ffffff;
}
.bg-danger {
  color: #ffffff;
  background-color: var(--tx-danger);
}
.bg-danger::-moz-selection {
  color: var(--tx-danger);
  background-color: #ffffff;
}
.bg-danger::selection {
  color: var(--tx-danger);
  background-color: #ffffff;
}
.bg-dark {
  color: #ffffff;
  background-color: var(--tx-dark);
}
.bg-dark::-moz-selection {
  color: var(--tx-dark);
  background-color: #ffffff;
}
.bg-dark::selection {
  color: var(--tx-dark);
  background-color: #ffffff;
}
.bg-light {
  color: #000000;
  background-color: var(--tx-light);
}
.bg-light::-moz-selection {
  color: var(--tx-light);
  background-color: var(--tx-primary);
}
.bg-light::selection {
  color: var(--tx-light);
  background-color: var(--tx-primary);
}
.bg-active {
  background: var(--tx-hover-default);
}
.bg-active:hover {
  background-color: var(--tx-hover-hover);
}
.bg-black {
  color: #ffffff;
  background-color: black;
}
.bg-black::-moz-selection {
  color: black;
  background-color: #000000;
}
.bg-black::selection {
  color: black;
  background-color: #000000;
}
.bg-black-50 {
  background-color: rgba(0, 0, 0, 0.5);
}
.bg-white {
  color: #000000;
  background-color: white;
}
.bg-white-50 {
  background-color: rgba(255, 255, 255, 0.5);
}
.bg-transparent {
  background: transparent;
}
.bg-hover-none:hover {
  background: transparent !important;
}
/**
 * border
 */
.border {
  border: 1px solid var(--tx-border-default);
}
/**
 * border-[left|top|right|bottom]
 * border-[left|top|right|bottom]-0
 */
.border-left {
  border-left: 1px solid var(--tx-border-default);
}
.border-left-0 {
  border-left: 0 !important;
}
.border-top {
  border-top: 1px solid var(--tx-border-default);
}
.border-top-0 {
  border-top: 0 !important;
}
.border-right {
  border-right: 1px solid var(--tx-border-default);
}
.border-right-0 {
  border-right: 0 !important;
}
.border-bottom {
  border-bottom: 1px solid var(--tx-border-default);
}
.border-bottom-0 {
  border-bottom: 0 !important;
}
/**
 * border-[primariy|light]
 */
.border-primary {
  border-color: var(--tx-primary);
}
.border-secondary {
  border-color: var(--tx-secondary);
}
.border-success {
  border-color: var(--tx-success);
}
.border-info {
  border-color: var(--tx-info);
}
.border-warning {
  border-color: var(--tx-warning);
}
.border-danger {
  border-color: var(--tx-danger);
}
.border-dark {
  border-color: var(--tx-dark);
}
.border-light {
  border-color: var(--tx-light);
}
/**
 * border-0 ~ border-5
 */
.border-0 {
  border: 0 !important;
}
.border-1 {
  border-width: 1px;
}
.border-2 {
  border-width: 2px;
}
.border-3 {
  border-width: 3px;
}
.border-4 {
  border-width: 4px;
}
.border-5 {
  border-width: 5px;
}
/**
 * button 基础样式，参考 ant-design-vue button
 * 方便与其他框架组合使用，可以不使用 btn，只使用 btn-*
 * 为了与其他框架组合使用，.btn 内不使用 CSS 变量
 */
.btn {
  position: relative;
  border: 1px solid transparent;
  border-radius: 2px;
  box-shadow: 0 2px 0 rgba(0, 0, 0, 0.015);
  color: var(--tx-dark);
  cursor: pointer;
  display: inline-block;
  font-size: 14px;
  font-weight: normal;
  height: var(--tx-text-line-height);
  line-height: 1.5715;
  padding: 4px 15px;
  touch-action: manipulation;
  text-align: center;
  transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  white-space: nowrap;
}
.btn:active,
.btn:focus,
.btn:hover {
  outline: 0;
  text-decoration: none;
}
.btn:focus::after {
  position: absolute;
  inset: 0;
  border-radius: inherit;
  box-shadow: 0 0 0 0 var(--btn-wave-shadow-color);
  content: '';
  animation: btnFadeEffect 2s cubic-bezier(0.08, 0.82, 0.17, 1), btnWaveEffect 0.8s cubic-bezier(0.08, 0.82, 0.17, 1);
  animation-fill-mode: forwards;
  opacity: 0.2;
  pointer-events: none;
}
.btn.disabled,
.btn[disabled] {
  cursor: not-allowed;
  opacity: 0.65;
  pointer-events: none;
}
@keyframes btnFadeEffect {
  100% {
    opacity: 0;
  }
}
@keyframes btnWaveEffect {
  100% {
    box-shadow: 0 0 0 8px var(--btn-wave-shadow-color);
  }
}
/**
 * btn
 */
.btn-primary {
  --btn-wave-shadow-color: var(--tx-primary);
  background-color: var(--tx-primary);
  border-color: var(--tx-primary);
  color: #ffffff;
}
.btn-primary:active,
.btn-primary:focus,
.btn-primary:hover {
  background-color: var(--tx-hover-primary);
  border-color: var(--tx-hover-primary);
  color: #ffffff;
}
.btn-primary::-moz-selection, .btn-primary *::-moz-selection {
  color: var(--tx-hover-primary);
  background-color: #ffffff;
}
.btn-primary::selection,
.btn-primary *::selection {
  color: var(--tx-hover-primary);
  background-color: #ffffff;
}
.btn-outline-primary {
  --btn-wave-shadow-color: var(--tx-primary);
  border-color: var(--tx-primary);
  color: var(--tx-primary);
}
.btn-outline-primary:active,
.btn-outline-primary:focus,
.btn-outline-primary:hover {
  background-color: var(--tx-hover-primary);
  border-color: var(--tx-hover-primary);
  color: #ffffff;
}
.btn-outline-primary::-moz-selection, .btn-outline-primary *::-moz-selection {
  color: var(--tx-hover-primary);
  background-color: #ffffff;
}
.btn-outline-primary::selection,
.btn-outline-primary *::selection {
  color: var(--tx-hover-primary);
  background-color: #ffffff;
}
.btn-secondary {
  --btn-wave-shadow-color: var(--tx-secondary);
  background-color: var(--tx-secondary);
  border-color: var(--tx-secondary);
  color: #ffffff;
}
.btn-secondary:active,
.btn-secondary:focus,
.btn-secondary:hover {
  background-color: var(--tx-hover-secondary);
  border-color: var(--tx-hover-secondary);
  color: #ffffff;
}
.btn-secondary::-moz-selection, .btn-secondary *::-moz-selection {
  color: var(--tx-hover-secondary);
  background-color: #ffffff;
}
.btn-secondary::selection,
.btn-secondary *::selection {
  color: var(--tx-hover-secondary);
  background-color: #ffffff;
}
.btn-outline-secondary {
  --btn-wave-shadow-color: var(--tx-secondary);
  border-color: var(--tx-secondary);
  color: var(--tx-secondary);
}
.btn-outline-secondary:active,
.btn-outline-secondary:focus,
.btn-outline-secondary:hover {
  background-color: var(--tx-hover-secondary);
  border-color: var(--tx-hover-secondary);
  color: #ffffff;
}
.btn-outline-secondary::-moz-selection, .btn-outline-secondary *::-moz-selection {
  color: var(--tx-hover-secondary);
  background-color: #ffffff;
}
.btn-outline-secondary::selection,
.btn-outline-secondary *::selection {
  color: var(--tx-hover-secondary);
  background-color: #ffffff;
}
.btn-success {
  --btn-wave-shadow-color: var(--tx-success);
  background-color: var(--tx-success);
  border-color: var(--tx-success);
  color: #ffffff;
}
.btn-success:active,
.btn-success:focus,
.btn-success:hover {
  background-color: var(--tx-hover-success);
  border-color: var(--tx-hover-success);
  color: #ffffff;
}
.btn-success::-moz-selection, .btn-success *::-moz-selection {
  color: var(--tx-hover-success);
  background-color: #ffffff;
}
.btn-success::selection,
.btn-success *::selection {
  color: var(--tx-hover-success);
  background-color: #ffffff;
}
.btn-outline-success {
  --btn-wave-shadow-color: var(--tx-success);
  border-color: var(--tx-success);
  color: var(--tx-success);
}
.btn-outline-success:active,
.btn-outline-success:focus,
.btn-outline-success:hover {
  background-color: var(--tx-hover-success);
  border-color: var(--tx-hover-success);
  color: #ffffff;
}
.btn-outline-success::-moz-selection, .btn-outline-success *::-moz-selection {
  color: var(--tx-hover-success);
  background-color: #ffffff;
}
.btn-outline-success::selection,
.btn-outline-success *::selection {
  color: var(--tx-hover-success);
  background-color: #ffffff;
}
.btn-info {
  --btn-wave-shadow-color: var(--tx-info);
  background-color: var(--tx-info);
  border-color: var(--tx-info);
  color: #ffffff;
}
.btn-info:active,
.btn-info:focus,
.btn-info:hover {
  background-color: var(--tx-hover-info);
  border-color: var(--tx-hover-info);
  color: #ffffff;
}
.btn-info::-moz-selection, .btn-info *::-moz-selection {
  color: var(--tx-hover-info);
  background-color: #ffffff;
}
.btn-info::selection,
.btn-info *::selection {
  color: var(--tx-hover-info);
  background-color: #ffffff;
}
.btn-outline-info {
  --btn-wave-shadow-color: var(--tx-info);
  border-color: var(--tx-info);
  color: var(--tx-info);
}
.btn-outline-info:active,
.btn-outline-info:focus,
.btn-outline-info:hover {
  background-color: var(--tx-hover-info);
  border-color: var(--tx-hover-info);
  color: #ffffff;
}
.btn-outline-info::-moz-selection, .btn-outline-info *::-moz-selection {
  color: var(--tx-hover-info);
  background-color: #ffffff;
}
.btn-outline-info::selection,
.btn-outline-info *::selection {
  color: var(--tx-hover-info);
  background-color: #ffffff;
}
.btn-warning {
  --btn-wave-shadow-color: var(--tx-warning);
  background-color: var(--tx-warning);
  border-color: var(--tx-warning);
  color: #ffffff;
}
.btn-warning:active,
.btn-warning:focus,
.btn-warning:hover {
  background-color: var(--tx-hover-warning);
  border-color: var(--tx-hover-warning);
  color: #ffffff;
}
.btn-warning::-moz-selection, .btn-warning *::-moz-selection {
  color: var(--tx-hover-warning);
  background-color: #ffffff;
}
.btn-warning::selection,
.btn-warning *::selection {
  color: var(--tx-hover-warning);
  background-color: #ffffff;
}
.btn-outline-warning {
  --btn-wave-shadow-color: var(--tx-warning);
  border-color: var(--tx-warning);
  color: var(--tx-warning);
}
.btn-outline-warning:active,
.btn-outline-warning:focus,
.btn-outline-warning:hover {
  background-color: var(--tx-hover-warning);
  border-color: var(--tx-hover-warning);
  color: #ffffff;
}
.btn-outline-warning::-moz-selection, .btn-outline-warning *::-moz-selection {
  color: var(--tx-hover-warning);
  background-color: #ffffff;
}
.btn-outline-warning::selection,
.btn-outline-warning *::selection {
  color: var(--tx-hover-warning);
  background-color: #ffffff;
}
.btn-danger {
  --btn-wave-shadow-color: var(--tx-danger);
  background-color: var(--tx-danger);
  border-color: var(--tx-danger);
  color: #ffffff;
}
.btn-danger:active,
.btn-danger:focus,
.btn-danger:hover {
  background-color: var(--tx-hover-danger);
  border-color: var(--tx-hover-danger);
  color: #ffffff;
}
.btn-danger::-moz-selection, .btn-danger *::-moz-selection {
  color: var(--tx-hover-danger);
  background-color: #ffffff;
}
.btn-danger::selection,
.btn-danger *::selection {
  color: var(--tx-hover-danger);
  background-color: #ffffff;
}
.btn-outline-danger {
  --btn-wave-shadow-color: var(--tx-danger);
  border-color: var(--tx-danger);
  color: var(--tx-danger);
}
.btn-outline-danger:active,
.btn-outline-danger:focus,
.btn-outline-danger:hover {
  background-color: var(--tx-hover-danger);
  border-color: var(--tx-hover-danger);
  color: #ffffff;
}
.btn-outline-danger::-moz-selection, .btn-outline-danger *::-moz-selection {
  color: var(--tx-hover-danger);
  background-color: #ffffff;
}
.btn-outline-danger::selection,
.btn-outline-danger *::selection {
  color: var(--tx-hover-danger);
  background-color: #ffffff;
}
.btn-dark {
  --btn-wave-shadow-color: var(--tx-dark);
  background-color: var(--tx-dark);
  border-color: var(--tx-dark);
  color: #ffffff;
}
.btn-dark:active,
.btn-dark:focus,
.btn-dark:hover {
  background-color: var(--tx-hover-dark);
  border-color: var(--tx-hover-dark);
  color: #ffffff;
}
.btn-dark::-moz-selection, .btn-dark *::-moz-selection {
  color: var(--tx-hover-dark);
  background-color: #ffffff;
}
.btn-dark::selection,
.btn-dark *::selection {
  color: var(--tx-hover-dark);
  background-color: #ffffff;
}
.btn-outline-dark {
  --btn-wave-shadow-color: var(--tx-dark);
  border-color: var(--tx-dark);
  color: var(--tx-dark);
}
.btn-outline-dark:active,
.btn-outline-dark:focus,
.btn-outline-dark:hover {
  background-color: var(--tx-hover-dark);
  border-color: var(--tx-hover-dark);
  color: #ffffff;
}
.btn-outline-dark::-moz-selection, .btn-outline-dark *::-moz-selection {
  color: var(--tx-hover-dark);
  background-color: #ffffff;
}
.btn-outline-dark::selection,
.btn-outline-dark *::selection {
  color: var(--tx-hover-dark);
  background-color: #ffffff;
}
.btn-light {
  --btn-wave-shadow-color: var(--tx-light);
  background-color: var(--tx-light);
  border-color: var(--tx-light);
  color: #ffffff;
}
.btn-light:active,
.btn-light:focus,
.btn-light:hover {
  background-color: var(--tx-hover-light);
  border-color: var(--tx-hover-light);
  color: #ffffff;
}
.btn-light::-moz-selection, .btn-light *::-moz-selection {
  color: var(--tx-hover-light);
  background-color: #ffffff;
}
.btn-light::selection,
.btn-light *::selection {
  color: var(--tx-hover-light);
  background-color: #ffffff;
}
.btn-outline-light {
  --btn-wave-shadow-color: var(--tx-light);
  border-color: var(--tx-light);
  color: var(--tx-light);
}
.btn-outline-light:active,
.btn-outline-light:focus,
.btn-outline-light:hover {
  background-color: var(--tx-hover-light);
  border-color: var(--tx-hover-light);
  color: #ffffff;
}
.btn-outline-light::-moz-selection, .btn-outline-light *::-moz-selection {
  color: var(--tx-hover-light);
  background-color: #ffffff;
}
.btn-outline-light::selection,
.btn-outline-light *::selection {
  color: var(--tx-hover-light);
  background-color: #ffffff;
}
.btn-light {
  color: #000000;
}
.btn-light,
.btn-outline-light {
  --btn-wave-shadow-color: #999999;
}
.btn-light:active,
.btn-outline-light:active,
.btn-light:focus,
.btn-outline-light:focus,
.btn-light:hover,
.btn-outline-light:hover {
  border-color: var(--tx-light);
  color: #000000;
}
.btn-light::-moz-selection, .btn-outline-light::-moz-selection, .btn-light *::-moz-selection, .btn-outline-light *::-moz-selection {
  color: #ffffff;
  background-color: var(--tx-primary);
}
.btn-light::selection,
.btn-outline-light::selection,
.btn-light *::selection,
.btn-outline-light *::selection {
  color: #ffffff;
  background-color: var(--tx-primary);
}
.btn-link {
  --btn-wave-shadow-color: var(--tx-primary);
  color: var(--tx-primary);
}
.btn-link:active,
.btn-link:focus,
.btn-link:hover {
  color: var(--tx-hover-primary);
  text-decoration: underline;
}
.btn-primary:active,
.btn-outline-primary:active {
  background-color: #0d92ff;
}
.btn-secondary:active,
.btn-outline-secondary:active {
  background-color: #3e4449;
}
.btn-success:active,
.btn-outline-success:active {
  background-color: #0ca92d;
}
.btn-info:active,
.btn-outline-info:active {
  background-color: #0fc9ee;
}
.btn-warning:active,
.btn-outline-warning:active {
  background-color: #ffc006;
}
.btn-danger:active,
.btn-outline-danger:active {
  background-color: #ff4642;
}
.btn-dark:active,
.btn-outline-dark:active {
  background-color: #040404;
}
.btn-light:active,
.btn-outline-light:active {
  background-color: #c4cdd5;
}
.btn-sm {
  font-size: 0.875rem;
  height: auto;
  padding: 0.25rem 0.5rem;
}
.btn-lg {
  font-size: 1.25rem;
  height: auto;
  padding: 0.5rem 1rem;
}
/**
 * color
 */
.text-primary {
  color: var(--tx-primary) !important;
}
.text-secondary {
  color: var(--tx-secondary) !important;
}
.text-success {
  color: var(--tx-success) !important;
}
.text-info {
  color: var(--tx-info) !important;
}
.text-warning {
  color: var(--tx-warning) !important;
}
.text-danger {
  color: var(--tx-danger) !important;
}
.text-dark {
  color: var(--tx-dark) !important;
}
.text-light {
  color: var(--tx-light) !important;
}
.text-black {
  color: black !important;
}
.text-black-50 {
  color: rgba(0, 0, 0, 0.5) !important;
}
.text-blue {
  color: blue !important;
}
.text-cyan {
  color: cyan !important;
}
.text-gray {
  color: #9daeb0 !important;
}
.text-gray-dark {
  color: #343a40 !important;
}
.text-gray-light {
  color: #dee2e6 !important;
}
.text-green {
  color: green !important;
}
.text-indigo {
  color: indigo !important;
}
.text-muted {
  color: #6c757d !important;
}
.text-orange {
  color: orange !important;
}
.text-pink {
  color: pink !important;
}
.text-purple {
  color: purple !important;
}
.text-red {
  color: red !important;
}
.text-teal {
  color: teal !important;
}
.text-yellow {
  color: #ffd522 !important;
}
.text-white {
  color: white !important;
}
.text-white-50 {
  color: rgba(255, 255, 255, 0.5) !important;
}
/**
 * .text-alipay .text-money .text-wechat
 */
.text-alipay {
  color: #00a0e9;
}
.text-money {
  color: #ff6600;
}
.text-wechat {
  color: #09bb07;
}
/**
 * container
 */
.d-container {
  margin-right: auto;
  margin-left: auto;
  max-width: 95%;
  width: 100%;
}
@media (min-width: 576px) {
  .d-container {
    max-width: 540px;
  }
}
@media (min-width: 768px) {
  .d-container {
    max-width: 720px;
  }
}
@media (min-width: 992px) {
  .d-container {
    max-width: 960px;
  }
}
@media (min-width: 1200px) {
  .d-container {
    max-width: 1140px;
  }
}
@media (min-width: 1400px) {
  .d-container {
    max-width: 1320px;
  }
}
.a {
  color: var(--tx-primary);
  cursor: pointer;
}
.a:hover {
  color: var(--tx-hover-primary);
}
.a-dark {
  color: #363636;
  cursor: pointer;
}
.a-dark:hover {
  color: #000000;
}
.link-primary {
  color: var(--tx-primary);
}
.link-secondary {
  color: var(--tx-secondary);
}
.link-success {
  color: var(--tx-success);
}
.link-info {
  color: var(--tx-info);
}
.link-warning {
  color: var(--tx-warning);
}
.link-danger {
  color: var(--tx-danger);
}
.link-dark {
  color: var(--tx-dark);
}
.link-light {
  color: var(--tx-light);
}
.link-primary:focus,
.link-primary:hover {
  color: var(--tx-hover-primary);
}
.link-secondary:focus,
.link-secondary:hover {
  color: var(--tx-hover-secondary);
}
.link-success:focus,
.link-success:hover {
  color: var(--tx-hover-success);
}
.link-info:focus,
.link-info:hover {
  color: var(--tx-hover-info);
}
.link-warning:focus,
.link-warning:hover {
  color: var(--tx-hover-warning);
}
.link-danger:focus,
.link-danger:hover {
  color: var(--tx-hover-danger);
}
.link-dark:focus,
.link-dark:hover {
  color: var(--tx-hover-dark);
}
.link-light:focus,
.link-light:hover {
  color: var(--tx-hover-light);
}
.link-stretch::after {
  position: absolute;
  content: '';
  inset: 0;
}
/**
 * form-control，同 Ant Design Vue <a-input> 样式
 */
.form-control {
  --tx-form-control-p: 4px 11px;
  --tx-form-control-px: 11px;
  position: relative;
  display: inline-block;
  color: #252525;
  background-color: #ffffff;
  background-image: none;
  border: 1px solid var(--tx-border-default);
  border-radius: 2px;
  box-sizing: border-box;
  font-feature-settings: 'tnum';
  font-size: 14px;
  font-variant: tabular-nums;
  line-height: 1.5715;
  list-style: none;
  margin: 0;
  min-width: 0;
  padding: var(--tx-form-control-p);
  transition: all 0.3s;
  width: 100%;
}
.form-control:focus {
  border-color: var(--tx-hover-primary);
  box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);
  outline: 0;
}
.form-control::-moz-placeholder {
  color: #bfbfbf;
  -moz-user-select: none;
       user-select: none;
}
.form-control::placeholder {
  color: #bfbfbf;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}
.form-control:-moz-placeholder-shown {
  text-overflow: ellipsis;
}
.form-control:placeholder-shown {
  text-overflow: ellipsis;
}
.form-control[disabled] {
  color: #b5b5b5;
  background-color: #f5f5f5;
  border-color: var(--tx-border-default);
  box-shadow: none;
  cursor: not-allowed;
  opacity: 1;
}
.form-control[type=file] {
  -webkit-appearance: none;
  overflow: hidden;
  padding: 0;
}
.form-control[type=file]:not(.disabled):not([disabled]) {
  cursor: pointer;
}
.form-control[type=file]::-webkit-file-upload-button {
  -webkit-appearance: button;
  border: 0;
  border-right: 1px solid var(--tx-border-default);
  cursor: inherit;
  font: inherit;
  margin-right: var(--tx-form-control-px);
  padding: var(--tx-form-control-p);
}
.form-control[type=file].form-control-file-right {
  overflow: auto;
  padding: var(--tx-form-control-p);
}
.form-control[type=file].form-control-file-right::-webkit-file-upload-button {
  position: absolute;
  right: 0;
  top: 0;
  border-left: 1px solid var(--tx-border-default);
  border-right: 0;
  margin-left: var(--tx-form-control-px);
  margin-right: 0;
}
.form-control-sm {
  --tx-form-control-p: 0 7px;
  --tx-form-control-px: 7px;
}
.form-control-lg {
  --tx-form-control-p: 6.5px 11px;
  font-size: 16px;
}
textarea.form-control {
  height: auto;
  max-width: 100%;
  min-height: var(--tx-text-line-height);
  transition: all 0.3s, height 0s;
  vertical-align: bottom;
}
/**
 * 快速布局，结合 gap-*
 */
.d-space,
.d-space-wrap,
.d-inline-space {
  display: flex;
  flex-direction: row;
  gap: 1rem;
}
.d-space-wrap {
  align-content: flex-start;
  align-items: flex-start;
  flex-wrap: wrap;
}
.d-space-vertical,
.d-inline-space-vertical {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  gap: 1rem;
}
.d-space-vertical > hr,
.d-inline-space-vertical > hr,
.d-space-vertical .hr,
.d-inline-space-vertical .hr {
  margin: 0;
}
.d-inline-space,
.d-inline-space-vertical {
  display: inline-flex;
  align-items: flex-start;
}
.d-space > :empty,
.d-space-wrap > :empty,
.d-space-vertical > :empty,
.d-inline-space > :empty,
.d-inline-space-vertical > :empty {
  display: none;
}
.hr {
  display: block;
  background-color: currentColor;
  border: 0;
  height: 1px;
  margin: 1rem 0;
  min-width: 1em;
  opacity: 0.2;
  width: 100%;
}
.vr {
  display: inline-block;
  align-self: stretch;
  background-color: currentColor;
  min-height: 1rem;
  opacity: 0.2;
  width: 1px;
}
/**
 * table，同 Ant Design Vue <a-table> 样式
 */
.table-striped > tbody > tr:nth-child(even) {
  background-color: #fafafa;
}
.table {
  position: relative;
  margin: 0;
  padding: 0;
  border-collapse: collapse;
  box-sizing: border-box;
  color: rgba(0, 0, 0, 0.85);
  font-feature-settings: 'tnum';
  font-size: 14px;
  font-variant: tabular-nums;
  line-height: 1.5715;
  width: 100%;
}
.table:not(:last-child) {
  margin-bottom: 1rem;
}
.table > tbody > tr,
.table > tfoot > tr,
.table > thead > tr {
  border: 0;
}
.table > tbody > tr > td,
.table > tfoot > tr > td,
.table > thead > tr > td,
.table > tbody > tr > th,
.table > tfoot > tr > th,
.table > thead > tr > th {
  position: relative;
  border-bottom: 1px solid #f0f0f0;
  padding: 12px;
  transition: background 0.3s ease;
}
.table > tbody > tr > th,
.table > tfoot > tr > th,
.table > thead > tr > th {
  background-color: #fafafa;
}
.table:not(.table-bordered) > thead > tr > th:not(:last-child):before {
  position: absolute;
  top: 50%;
  right: 0;
  background-color: #f0ebd6;
  content: '';
  height: 1.6em;
  width: 1px;
  transform: translateY(-50%);
  transition: background-color 0.3s;
}
.table.table-hover > tbody > tr:hover,
.table.table-hover > tfoot > tr:hover,
.table.table-hover > thead > tr:hover {
  background-color: var(--tx-hover-default);
}
.table.table-hover > tbody > tr:hover > td,
.table.table-hover > tfoot > tr:hover > td,
.table.table-hover > thead > tr:hover > td,
.table.table-hover > tbody > tr:hover > th,
.table.table-hover > tfoot > tr:hover > th,
.table.table-hover > thead > tr:hover > th {
  background-color: unset;
}
.table.border-0 tr,
.table.border-0 td,
.table.border-0 th {
  border: 0 !important;
}
.table.border-top-0 tr:first-child td,
.table.border-top-0 tr:first-child th {
  border-top: 0 !important;
}
.table .align-middle td,
.table .align-middle th {
  vertical-align: middle;
}
tr.align-top td,
tr.align-top th {
  vertical-align: top;
}
.table-bordered {
  border: 1px solid #f0f0f0;
}
.table-bordered > tbody > tr > td,
.table-bordered > tfoot > tr > td,
.table-bordered > thead > tr > td,
.table-bordered > tbody > tr > th,
.table-bordered > tfoot > tr > th,
.table-bordered > thead > tr > th {
  border: 1px solid #f0f0f0;
}
.table-center-first > tbody > tr > td:first-child,
.table-center-first > tfoot > tr > td:first-child,
.table-center-first > thead > tr > td:first-child,
.table-center-first > tbody > tr > th:first-child,
.table-center-first > tfoot > tr > th:first-child,
.table-center-first > thead > tr > th:first-child {
  text-align: center;
}
.table-sm > tbody > tr > td,
.table-sm > tfoot > tr > td,
.table-sm > thead > tr > td,
.table-sm > tbody > tr > th,
.table-sm > tfoot > tr > th,
.table-sm > thead > tr > th {
  padding: 8px;
}
.table-lg > tbody > tr > td,
.table-lg > tfoot > tr > td,
.table-lg > thead > tr > td,
.table-lg > tbody > tr > th,
.table-lg > tfoot > tr > th,
.table-lg > thead > tr > th {
  padding: 16px;
}
/**
 * [m|p]-0 ~ 5
 * [m|p][x|y|l|t|r|b]-0 ~ 5
 * m[x|y|l|t|r|b]-auto
 */
/* [m|p][d|g|l|t|r|b|x|y]-10 ~ 40 */
.mg-10 {
  margin: 10px;
}
.ml-10 {
  margin-left: 10px;
}
.mt-10 {
  margin-top: 10px;
}
.mr-10 {
  margin-right: 10px;
}
.mb-10 {
  margin-bottom: 10px;
}
.pd-10 {
  padding: 10px;
}
.pl-10 {
  padding-left: 10px;
}
.pt-10 {
  padding-top: 10px;
}
.pr-10 {
  padding-right: 10px;
}
.pb-10 {
  padding-bottom: 10px;
}
.mx-10 {
  margin-left: 10px;
}
.mx-10 {
  margin-right: 10px;
}
.my-10 {
  margin-top: 10px;
}
.my-10 {
  margin-bottom: 10px;
}
.px-10 {
  padding-left: 10px;
}
.px-10 {
  padding-right: 10px;
}
.py-10 {
  padding-top: 10px;
}
.py-10 {
  padding-bottom: 10px;
}
.mg-20 {
  margin: 20px;
}
.ml-20 {
  margin-left: 20px;
}
.mt-20 {
  margin-top: 20px;
}
.mr-20 {
  margin-right: 20px;
}
.mb-20 {
  margin-bottom: 20px;
}
.pd-20 {
  padding: 20px;
}
.pl-20 {
  padding-left: 20px;
}
.pt-20 {
  padding-top: 20px;
}
.pr-20 {
  padding-right: 20px;
}
.pb-20 {
  padding-bottom: 20px;
}
.mx-20 {
  margin-left: 20px;
}
.mx-20 {
  margin-right: 20px;
}
.my-20 {
  margin-top: 20px;
}
.my-20 {
  margin-bottom: 20px;
}
.px-20 {
  padding-left: 20px;
}
.px-20 {
  padding-right: 20px;
}
.py-20 {
  padding-top: 20px;
}
.py-20 {
  padding-bottom: 20px;
}
.mg-30 {
  margin: 30px;
}
.ml-30 {
  margin-left: 30px;
}
.mt-30 {
  margin-top: 30px;
}
.mr-30 {
  margin-right: 30px;
}
.mb-30 {
  margin-bottom: 30px;
}
.pd-30 {
  padding: 30px;
}
.pl-30 {
  padding-left: 30px;
}
.pt-30 {
  padding-top: 30px;
}
.pr-30 {
  padding-right: 30px;
}
.pb-30 {
  padding-bottom: 30px;
}
.mx-30 {
  margin-left: 30px;
}
.mx-30 {
  margin-right: 30px;
}
.my-30 {
  margin-top: 30px;
}
.my-30 {
  margin-bottom: 30px;
}
.px-30 {
  padding-left: 30px;
}
.px-30 {
  padding-right: 30px;
}
.py-30 {
  padding-top: 30px;
}
.py-30 {
  padding-bottom: 30px;
}
.mg-40 {
  margin: 40px;
}
.ml-40 {
  margin-left: 40px;
}
.mt-40 {
  margin-top: 40px;
}
.mr-40 {
  margin-right: 40px;
}
.mb-40 {
  margin-bottom: 40px;
}
.pd-40 {
  padding: 40px;
}
.pl-40 {
  padding-left: 40px;
}
.pt-40 {
  padding-top: 40px;
}
.pr-40 {
  padding-right: 40px;
}
.pb-40 {
  padding-bottom: 40px;
}
.mx-40 {
  margin-left: 40px;
}
.mx-40 {
  margin-right: 40px;
}
.my-40 {
  margin-top: 40px;
}
.my-40 {
  margin-bottom: 40px;
}
.px-40 {
  padding-left: 40px;
}
.px-40 {
  padding-right: 40px;
}
.py-40 {
  padding-top: 40px;
}
.py-40 {
  padding-bottom: 40px;
}
.m-auto {
  margin: auto !important;
}
.mx-auto {
  margin-left: auto !important;
  margin-right: auto !important;
}
.my-auto {
  margin-top: auto !important;
  margin-bottom: auto !important;
}
.ml-auto {
  margin-left: auto !important;
}
.mt-auto {
  margin-top: auto !important;
}
.mr-auto {
  margin-right: auto !important;
}
.mb-auto {
  margin-bottom: auto !important;
}
.m--1 {
  margin: -1px !important;
}
.m-0 {
  margin: 0 !important;
}
.m-1 {
  margin: 0.25rem !important;
}
.m-2 {
  margin: 0.5rem !important;
}
.m-3 {
  margin: 1rem !important;
}
.m-4 {
  margin: 1.5rem !important;
}
.m-5 {
  margin: 3rem !important;
}
.mx--1 {
  margin-left: -1px !important;
  margin-right: -1px !important;
}
.mx-0 {
  margin-left: 0 !important;
  margin-right: 0 !important;
}
.mx-1 {
  margin-left: 0.25rem !important;
  margin-right: 0.25rem !important;
}
.mx-2 {
  margin-left: 0.5rem !important;
  margin-right: 0.5rem !important;
}
.mx-3 {
  margin-left: 1rem !important;
  margin-right: 1rem !important;
}
.mx-4 {
  margin-left: 1.5rem !important;
  margin-right: 1.5rem !important;
}
.mx-5 {
  margin-left: 3rem !important;
  margin-right: 3rem !important;
}
.my--1 {
  margin-top: -1px !important;
  margin-bottom: -1px !important;
}
.my-0 {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}
.my-1 {
  margin-top: 0.25rem !important;
  margin-bottom: 0.25rem !important;
}
.my-2 {
  margin-top: 0.5rem !important;
  margin-bottom: 0.5rem !important;
}
.my-3 {
  margin-top: 1rem !important;
  margin-bottom: 1rem !important;
}
.my-4 {
  margin-top: 1.5rem !important;
  margin-bottom: 1.5rem !important;
}
.my-5 {
  margin-top: 3rem !important;
  margin-bottom: 3rem !important;
}
.ml--1 {
  margin-left: -1px !important;
}
.ml-0 {
  margin-left: 0 !important;
}
.ml-1 {
  margin-left: 0.25rem !important;
}
.ml-2 {
  margin-left: 0.5rem !important;
}
.ml-3 {
  margin-left: 1rem !important;
}
.ml-4 {
  margin-left: 1.5rem !important;
}
.ml-5 {
  margin-left: 3rem !important;
}
.mt--1 {
  margin-top: -1px !important;
}
.mt-0 {
  margin-top: 0 !important;
}
.mt-1 {
  margin-top: 0.25rem !important;
}
.mt-2 {
  margin-top: 0.5rem !important;
}
.mt-3 {
  margin-top: 1rem !important;
}
.mt-4 {
  margin-top: 1.5rem !important;
}
.mt-5 {
  margin-top: 3rem !important;
}
.mr--1 {
  margin-right: -1px !important;
}
.mr-0 {
  margin-right: 0 !important;
}
.mr-1 {
  margin-right: 0.25rem !important;
}
.mr-2 {
  margin-right: 0.5rem !important;
}
.mr-3 {
  margin-right: 1rem !important;
}
.mr-4 {
  margin-right: 1.5rem !important;
}
.mr-5 {
  margin-right: 3rem !important;
}
.mb--1 {
  margin-bottom: -1px !important;
}
.mb-0 {
  margin-bottom: 0 !important;
}
.mb-1 {
  margin-bottom: 0.25rem !important;
}
.mb-2 {
  margin-bottom: 0.5rem !important;
}
.mb-3 {
  margin-bottom: 1rem !important;
}
.mb-4 {
  margin-bottom: 1.5rem !important;
}
.mb-5 {
  margin-bottom: 3rem !important;
}
.p--1 {
  padding: -1px !important;
}
.p-0 {
  padding: 0 !important;
}
.p-1 {
  padding: 0.25rem !important;
}
.p-2 {
  padding: 0.5rem !important;
}
.p-3 {
  padding: 1rem !important;
}
.p-4 {
  padding: 1.5rem !important;
}
.p-5 {
  padding: 3rem !important;
}
.px--1 {
  padding-left: -1px !important;
  padding-right: -1px !important;
}
.px-0 {
  padding-left: 0 !important;
  padding-right: 0 !important;
}
.px-1 {
  padding-left: 0.25rem !important;
  padding-right: 0.25rem !important;
}
.px-2 {
  padding-left: 0.5rem !important;
  padding-right: 0.5rem !important;
}
.px-3 {
  padding-left: 1rem !important;
  padding-right: 1rem !important;
}
.px-4 {
  padding-left: 1.5rem !important;
  padding-right: 1.5rem !important;
}
.px-5 {
  padding-left: 3rem !important;
  padding-right: 3rem !important;
}
.py--1 {
  padding-top: -1px !important;
  padding-bottom: -1px !important;
}
.py-0 {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
.py-1 {
  padding-top: 0.25rem !important;
  padding-bottom: 0.25rem !important;
}
.py-2 {
  padding-top: 0.5rem !important;
  padding-bottom: 0.5rem !important;
}
.py-3 {
  padding-top: 1rem !important;
  padding-bottom: 1rem !important;
}
.py-4 {
  padding-top: 1.5rem !important;
  padding-bottom: 1.5rem !important;
}
.py-5 {
  padding-top: 3rem !important;
  padding-bottom: 3rem !important;
}
.pl--1 {
  padding-left: -1px !important;
}
.pl-0 {
  padding-left: 0 !important;
}
.pl-1 {
  padding-left: 0.25rem !important;
}
.pl-2 {
  padding-left: 0.5rem !important;
}
.pl-3 {
  padding-left: 1rem !important;
}
.pl-4 {
  padding-left: 1.5rem !important;
}
.pl-5 {
  padding-left: 3rem !important;
}
.pt--1 {
  padding-top: -1px !important;
}
.pt-0 {
  padding-top: 0 !important;
}
.pt-1 {
  padding-top: 0.25rem !important;
}
.pt-2 {
  padding-top: 0.5rem !important;
}
.pt-3 {
  padding-top: 1rem !important;
}
.pt-4 {
  padding-top: 1.5rem !important;
}
.pt-5 {
  padding-top: 3rem !important;
}
.pr--1 {
  padding-right: -1px !important;
}
.pr-0 {
  padding-right: 0 !important;
}
.pr-1 {
  padding-right: 0.25rem !important;
}
.pr-2 {
  padding-right: 0.5rem !important;
}
.pr-3 {
  padding-right: 1rem !important;
}
.pr-4 {
  padding-right: 1.5rem !important;
}
.pr-5 {
  padding-right: 3rem !important;
}
.pb--1 {
  padding-bottom: -1px !important;
}
.pb-0 {
  padding-bottom: 0 !important;
}
.pb-1 {
  padding-bottom: 0.25rem !important;
}
.pb-2 {
  padding-bottom: 0.5rem !important;
}
.pb-3 {
  padding-bottom: 1rem !important;
}
.pb-4 {
  padding-bottom: 1.5rem !important;
}
.pb-5 {
  padding-bottom: 3rem !important;
}
.clearfix::after {
  clear: both;
  content: '';
  display: block;
}
/**
 * cursor
 */
.cursor-crosshair {
  cursor: crosshair !important;
}
.cursor-default {
  cursor: default !important;
}
.cursor-move {
  cursor: move !important;
}
.cursor-not-allowed {
  cursor: not-allowed !important;
}
.cursor-pointer {
  cursor: pointer !important;
}
/**
 * display
 */
.d-block {
  display: block !important;
}
.d-flex {
  display: flex !important;
}
.d-grid {
  display: grid !important;
}
.d-inline {
  display: inline !important;
}
.d-inline-block {
  display: inline-block !important;
}
.d-inline-flex {
  display: inline-flex !important;
}
.d-table {
  display: table !important;
}
.d-table-row {
  display: table-row !important;
}
.d-table-cell {
  display: table-cell !important;
}
.d-none {
  display: none !important;
}
@media print {
  .d-print-block {
    display: block !important;
  }
  .d-print-flex {
    display: flex !important;
  }
  .d-print-grid {
    display: grid !important;
  }
  .d-print-inline {
    display: inline !important;
  }
  .d-print-inline-block {
    display: inline-block !important;
  }
  .d-print-inline-flex {
    display: inline-flex !important;
  }
  .d-print-table {
    display: table !important;
  }
  .d-print-table-row {
    display: table-row !important;
  }
  .d-print-table-cell {
    display: table-cell !important;
  }
  .d-print-none {
    display: none !important;
  }
}
/**
 * flex-direction
 */
.flex-column {
  flex-direction: column !important;
}
.flex-column-reverse {
  flex-direction: column-reverse !important;
}
.flex-row {
  flex-direction: row !important;
}
.flex-row-reverse {
  flex-direction: row-reverse !important;
}
/**
 * flex-grow
 */
.flex-grow-0 {
  flex-grow: 0 !important;
}
.flex-grow-1 {
  flex-grow: 1 !important;
}
/**
 * flex-shrink
 */
.flex-shrink-0 {
  flex-shrink: 0 !important;
}
.flex-shrink-1 {
  flex-shrink: 1 !important;
}
/**
 * flex-wrap
 */
.flex-nowrap {
  flex-wrap: nowrap !important;
}
.flex-wrap {
  flex-wrap: wrap !important;
}
.flex-wrap-reverse {
  flex-wrap: wrap-reverse !important;
}
/**
 * flex-1 ~ flex-5
 */
.flex-1 {
  flex: 1 !important;
}
.flex-2 {
  flex: 2 !important;
}
.flex-3 {
  flex: 3 !important;
}
.flex-4 {
  flex: 4 !important;
}
.flex-5 {
  flex: 5 !important;
}
.flex-fill {
  flex: 1 1 auto !important;
}
/**
 * gap-0 ~ gap-5
 */
.gap-0 {
  gap: 0 !important;
}
.gap-1 {
  gap: 0.25rem !important;
}
.gap-2 {
  gap: 0.5rem !important;
}
.gap-3 {
  gap: 1rem !important;
}
.gap-4 {
  gap: 1.5rem !important;
}
.gap-5 {
  gap: 3rem !important;
}
/**
 * order-0 ~ order-5
 */
.order-0 {
  order: 0 !important;
}
.order-1 {
  order: 1 !important;
}
.order-2 {
  order: 2 !important;
}
.order-3 {
  order: 3 !important;
}
.order-4 {
  order: 4 !important;
}
.order-5 {
  order: 5 !important;
}
/**
 * align-content
 */
.align-content-around {
  align-content: space-around !important;
}
.align-content-between {
  align-content: space-between !important;
}
.align-content-center {
  align-content: center !important;
}
.align-content-end {
  align-content: flex-end !important;
}
.align-content-start {
  align-content: flex-start !important;
}
.align-content-stretch {
  align-content: stretch !important;
}
/**
 * align-items
 */
.align-items-baseline {
  align-items: baseline !important;
}
.align-items-center {
  align-items: center !important;
}
.align-items-end {
  align-items: flex-end !important;
}
.align-items-start {
  align-items: flex-start !important;
}
.align-items-stretch {
  align-items: stretch !important;
}
/**
 * align-self
 */
.align-self-auto {
  align-self: auto !important;
}
.align-self-baseline {
  align-self: baseline !important;
}
.align-self-center {
  align-self: center !important;
}
.align-self-end {
  align-self: flex-end !important;
}
.align-self-start {
  align-self: flex-start !important;
}
.align-self-stretch {
  align-self: stretch !important;
}
/**
 * justify-content
 */
.justify-content-around {
  justify-content: space-around !important;
}
.justify-content-between {
  justify-content: space-between !important;
}
.justify-content-center {
  justify-content: center !important;
}
.justify-content-evenly {
  justify-content: space-evenly !important;
}
.justify-content-end {
  justify-content: flex-end !important;
}
.justify-content-start {
  justify-content: flex-start !important;
}
/**
 * float
 */
.float-left {
  float: left !important;
}
.float-right {
  float: right !important;
}
.float-none {
  float: none !important;
}
/**
 * font-size fs-1 ~ fs-6 & fs-12 ~ fs-40
 */
.fs-0 {
  font-size: 0px !important;
}
.fs-1 {
  font-size: calc(1.375rem + 1.5vw);
}
.fs-2 {
  font-size: calc(1.325rem + 0.9vw);
}
.fs-3 {
  font-size: calc(1.3rem + 0.6vw);
}
.fs-4 {
  font-size: calc(1.275rem + 0.3vw);
}
.fs-5 {
  font-size: 1.25rem;
}
.fs-6 {
  font-size: 1rem;
}
.fs-sm {
  font-size: 0.875em;
}
.fs-lg {
  font-size: 1.25rem;
}
.fs-12 {
  font-size: 12px;
}
.fs-13 {
  font-size: 13px;
}
.fs-14 {
  font-size: 14px;
}
.fs-15 {
  font-size: 15px;
}
.fs-16 {
  font-size: 16px;
}
.fs-18 {
  font-size: 18px;
}
.fs-20 {
  font-size: 20px;
}
.fs-22 {
  font-size: 22px;
}
.fs-24 {
  font-size: 24px;
}
.fs-26 {
  font-size: 26px;
}
.fs-28 {
  font-size: 28px;
}
.fs-30 {
  font-size: 30px;
}
.fs-32 {
  font-size: 32px;
}
.fs-36 {
  font-size: 36px;
}
.fs-40 {
  font-size: 40px;
}
.font-bold {
  font-weight: bold !important;
}
.font-italic {
  font-style: italic !important;
}
.font-normal {
  font-style: normal !important;
  font-weight: normal !important;
}
.font-ar {
  direction: rtl;
  font-family: Arial, monospace;
  text-align: right;
  unicode-bidi: bidi-override;
}
.font-code {
  font-family: Monaco, Menlo, Consolas, 'Courier New', monospace;
}
.font-ja {
  font-family: Mincho, Arial, monospace;
  font-weight: bold;
}
/**
 * pointer-events
 */
.pointer-events-auto {
  pointer-events: auto !important;
}
.pointer-events-none {
  pointer-events: none !important;
}
/**
 * user-select
 */
.user-select-all {
  -webkit-user-select: all !important;
     -moz-user-select: all !important;
          user-select: all !important;
}
.user-select-auto {
  -webkit-user-select: auto !important;
     -moz-user-select: auto !important;
          user-select: auto !important;
}
.user-select-none {
  -webkit-user-select: none !important;
     -moz-user-select: none !important;
          user-select: none !important;
}
/**
 * opacity
 */
.opacity-0 {
  opacity: 0 !important;
}
.opacity-25 {
  opacity: 0.25 !important;
}
.opacity-50 {
  opacity: 0.5 !important;
}
.opacity-75 {
  opacity: 0.75 !important;
}
.opacity-100 {
  opacity: 100 !important;
}
/**
 * overflow
 */
.overflow-auto {
  overflow: auto !important;
}
.overflow-hidden {
  overflow: hidden !important;
}
.overflow-scroll {
  overflow: scroll !important;
}
.overflow-visible {
  overflow: visible !important;
}
/**
 * position
 */
.position-absolute {
  position: absolute !important;
}
.position-fixed {
  position: fixed !important;
}
.position-relative {
  position: relative !important;
}
.position-static {
  position: static !important;
}
.position-sticky {
  position: sticky !important;
}
.fixed-top,
.fixed-bottom {
  position: fixed;
  top: 0;
  right: 0;
  left: 0;
  z-index: 1030;
}
.fixed-top {
  top: 0;
}
.fixed-bottom {
  bottom: 0;
}
.sticky-top,
.sticky-bottom {
  position: sticky;
  z-index: 1020;
}
.sticky-top {
  top: 0;
}
.sticky-bottom {
  bottom: 0;
}
.inset-0 {
  inset: 0;
}
.left-0 {
  left: 0;
}
.left-50 {
  left: 50%;
}
.left-100 {
  left: 100%;
}
.top-0 {
  top: 0;
}
.top-50 {
  top: 50%;
}
.top-100 {
  top: 100%;
}
.right-0 {
  right: 0;
}
.right-50 {
  right: 50%;
}
.right-100 {
  right: 100%;
}
.bottom-0 {
  bottom: 0;
}
.bottom-50 {
  bottom: 50%;
}
.bottom-100 {
  bottom: 100%;
}
.scroll {
  overflow-x: auto !important;
  overflow-y: auto !important;
  /**
   * Firefox
   */
  scrollbar-width: thin;
}
.scroll::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}
.scroll::-webkit-scrollbar-thumb {
  height: 50px;
  background-color: var(--tx-primary);
  outline: 2px solid var(--tx-primary);
  outline-offset: -2px;
}
.scroll::-webkit-scrollbar-thumb:hover {
  height: 50px;
  background-color: var(--tx-primary);
}
.scroll::-webkit-scrollbar-track-piece {
  background-color: var(--tx-light);
}
.scroll-hover {
  overflow-x: auto !important;
  overflow-y: auto !important;
  /* 滚动条的整体部分 */
  /*鼠标移动上去再显示： 内层轨道，滚动条中间部分（轨道除去滚动条部分）*/
  /* 鼠标移动上去再显示：滚动条（可以拖动的那部分） */
  /* 垂直方向的滚动条 */
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 255, 255, 0) rgba(255, 255, 255, 0);
}
.scroll-hover::-webkit-scrollbar {
  width: 6px;
}
.scroll-hover:hover::-webkit-scrollbar-track-piece {
  /* 轨道除去滚动条部分的背景颜色 */
  background-color: #ffffff00;
  /* 轨道除去滚动条部分的圆角宽度 */
  border-radius: 6px;
}
.scroll-hover:hover::-webkit-scrollbar-thumb:hover {
  background-color: #bdbfc2;
}
.scroll-hover:hover::-webkit-scrollbar-thumb:vertical {
  background-color: #bdbfc2;
  border-radius: 8px;
}
.scroll-hover:hover {
  scrollbar-width: thin;
  scrollbar-color: #c1c1c1 #eee;
}
.scroll-smooth {
  scroll-behavior: smooth;
}
/* 优先级高于 .scroll */
.overflow-scroll-x {
  overflow-x: scroll !important;
}
.overflow-scroll-y {
  overflow-y: scroll !important;
}
/**
 * shadow
 */
.shadow {
  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
}
.shadow-sm {
  box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
}
.shadow-lg {
  box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175);
}
.shadow-none {
  box-shadow: none;
}
/**
 * height & width
 */
.h-auto {
  height: auto !important;
}
.h-25 {
  height: 25% !important;
}
.h-50 {
  height: 50% !important;
}
.h-75 {
  height: 75% !important;
}
.h-100 {
  height: 100% !important;
}
.w-auto {
  width: auto !important;
}
.w-25 {
  width: 25% !important;
}
.w-50 {
  width: 50% !important;
}
.w-75 {
  width: 75% !important;
}
.w-100 {
  width: 100% !important;
}
/**
 * text-transform
 */
.text-capitalize {
  text-transform: capitalize;
}
.text-lowercase {
  text-transform: lowercase;
}
.text-uppercase {
  text-transform: uppercase;
}
/**
 * white-space
 */
.text-nowrap {
  white-space: nowrap !important;
}
.text-pre {
  white-space: pre-wrap !important;
}
.text-pre-nowrap {
  white-space: pre !important;
}
.text-nowrap-title > td,
.text-nowrap-title > th {
  white-space: nowrap !important;
}
/**
 * text-align
 */
.text-center {
  text-align: center !important;
}
.text-left {
  text-align: left !important;
}
.text-right {
  text-align: right !important;
}
.text-justify {
  text-align: justify !important;
}
.text-break {
  word-break: break-word;
  word-wrap: break-word;
}
.text-break-all {
  word-break: break-all;
}
.text-ellipsis {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.text-hover {
  cursor: pointer;
}
.text-hover:hover {
  color: var(--tx-primary);
}
.text-line {
  line-height: var(--tx-text-line-height);
}
.text-through {
  text-decoration: line-through !important;
}
.text-underline {
  text-decoration: underline !important;
}
/**
 * vertical-align
 */
.align-baseline {
  vertical-align: baseline !important;
}
.align-bottom {
  vertical-align: bottom !important;
}
.align-middle {
  vertical-align: middle !important;
}
.align-text-bottom {
  vertical-align: text-bottom !important;
}
.align-text-top {
  vertical-align: text-top !important;
}
.align-top {
  vertical-align: top !important;
}
/**
 * rotate 0 ~ 270
 */
.rotate-0 {
  transform: rotate(0deg);
}
.rotate-90 {
  transform: rotate(90deg);
}
.rotate-180 {
  transform: rotate(180deg);
}
.rotate-270 {
  transform: rotate(270deg);
}
.translate-middle {
  transform: translate(-50%, -50%);
}
.translate-middle-x {
  transform: translateX(-50%);
}
.translate-middle-y {
  transform: translateY(-50%);
}
/**
 * visibility
 */
.invisible {
  visibility: hidden !important;
}
.visible {
  visibility: visible !important;
}
/**
 * z-0 ~ z-50
 */
.z-0 {
  z-index: 0 !important;
}
.z-10 {
  z-index: 10;
}
.z-20 {
  z-index: 20;
}
.z-30 {
  z-index: 30;
}
.z-40 {
  z-index: 40;
}
.z-50 {
  z-index: 50;
}
/*  Antd 样式调整 begin */
.ant-btn::-moz-selection, .ant-btn *::-moz-selection {
  text-shadow: none;
}
.ant-btn::selection,
.ant-btn *::selection {
  text-shadow: none;
}
.ant-btn-primary::-moz-selection, .ant-btn-primary *::-moz-selection {
  color: var(--tx-primary);
  background-color: #ffffff;
}
.ant-btn-primary::selection,
.ant-btn-primary *::selection {
  color: var(--tx-primary);
  background-color: #ffffff;
}
.ant-btn-dangerous::-moz-selection, .ant-btn-dangerous *::-moz-selection {
  color: var(--tx-danger);
  background-color: #ffffff;
}
.ant-btn-dangerous::selection,
.ant-btn-dangerous *::selection {
  color: var(--tx-danger);
  background-color: #ffffff;
}
.ant-btn-group.vertical-top > .ant-btn,
.ant-btn-group.vertical-top > span > .ant-btn {
  vertical-align: top;
}
.ant-btn-icon-only > i {
  line-height: 0 !important;
}
body .anticon,
body .ant-btn-icon-only > i {
  vertical-align: -0.125em;
}
.ant-card > .ant-affix {
  background: #ffffff;
  border: 1px solid #e8e8e8;
  margin: -1px;
}
.ant-card-bordered + .ant-card-bordered {
  margin-top: -1px;
}
.ant-checkbox-group[readonly] .ant-checkbox-input,
.ant-checkbox-group[readonly] .ant-checkbox-wrapper {
  cursor: default;
}
.ant-divider.ant-divider-horizontal:after,
.ant-divider.ant-divider-horizontal:before {
  border-top: 2px dashed var(--tx-primary);
}
.ant-divider.ant-divider-horizontal .ant-divider-inner-text {
  color: var(--tx-primary);
}
.ant-drawer-header {
  padding-top: 19px;
  padding-bottom: 19px;
}
.ant-drawer-body {
  overflow-y: scroll;
}
.ant-drawer-extra .ant-btn + .ant-btn {
  margin-left: 16px;
}
.ant-input:focus.border-danger {
  box-shadow: 0 0 0 2px rgba(255, 24, 24, 0.2);
}
.ant-input:focus.border-warning {
  box-shadow: 0 0 0 2px rgba(255, 237, 24, 0.2);
}
.ant-menu-vertical .ant-menu-item:not(:last-child) {
  margin-bottom: 0;
}
.ant-modal-footer .ant-btn + .ant-btn,
.ant-modal-confirm-btns .ant-btn + .ant-btn {
  margin-left: 20px !important;
}
.ant-notification-notice-description {
  white-space: break-spaces;
}
.ant-pagination-options-quick-jumper input {
  text-align: center;
}
.ant-popover-buttons {
  text-align: center;
}
.ant-radio-disabled + span,
.ant-radio-disabled .ant-radio-inner,
.ant-radio-disabled .ant-radio-input {
  color: #898989;
}
.ant-radio-group[readonly] {
  opacity: 0.6;
}
.ant-radio-group[readonly] .ant-radio-button-wrapper {
  cursor: default;
}
.ant-select-selection--multiple .ant-select-selection__rendered {
  margin-left: 3px;
}
.ant-table-tbody > tr.ant-table-row:hover > td,
.ant-table-tbody > tr > td.ant-table-cell-row-hover {
  background-color: var(--tx-hover-default);
}
.table-sm .ant-table-pagination,
.table-sm .ant-table-placeholder {
  padding: 8px !important;
}
.ant-tag:last-child {
  margin-right: 0;
}
.ant-tag-checkable:not(.ant-tag-checkable-checked):active {
  color: white;
}
/* Antd 样式调整 end */
/* Antd 样式扩展 begin */
.a-card-padding-0 > .ant-card-body {
  padding: 0;
}
.a-drawer-footer {
  position: absolute;
  background: #ffffff;
  border-top: 1px solid #f0f0f0;
  bottom: 0;
  left: 0;
  right: 17px;
  padding: 10px 16px;
  z-index: 5;
}
.a-drawer-footer-hint {
  height: 53px;
}
.a-popover-p-0 .ant-popover-inner {
  box-shadow: 0 0 8px rgba(0, 0, 0, 0.15);
}
.a-popover-p-0 .ant-popover-inner-content {
  padding: 0;
}
.a-popover-pd-10 .ant-popover-inner-content {
  padding: 10px;
}
.a-select-with-label {
  display: flex;
}
.a-select-with-label .ant-btn {
  cursor: default;
  margin-right: -1px;
  position: relative;
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}
.a-select-with-label .ant-btn:focus,
.a-select-with-label .ant-btn:hover {
  z-index: 10;
}
.a-select-with-label .ant-select {
  flex: 1;
  font-size: 13px;
}
.a-select-with-label .ant-select .ant-select-selection {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}
/* Antd 样式扩展 end */
/**
 * deprecated begin
 */
.black {
  color: #000000;
}
.blue {
  color: blue;
}
.gray {
  color: #9daeb0;
}
.gray-dark,
.dark-gray {
  color: #565656;
}
.gray-light,
.light-gray {
  color: #acacac;
}
.green {
  color: green;
}
.orange {
  color: orange;
}
.red {
  color: red;
}
.white {
  color: white !important;
}
.yellow {
  color: #ffd522;
}
.color-money {
  color: #ff6600;
}
.color-alipay {
  color: #00a0e9 !important;
}
.color-weixin {
  color: #09bb07 !important;
}
.color-error {
  color: #fa5151;
}
.color-success {
  color: #00b578;
}
.bg-hover {
  background: var(--tx-hover-default);
}
.bold {
  font-weight: bold;
}
.code {
  font-family: Monaco, Menlo, Consolas, 'Courier New', monospace;
}
.italic {
  font-style: italic;
}
.f12 {
  font-size: 12px;
}
.f13 {
  font-size: 13px;
}
.f14 {
  font-size: 14px;
}
.f15 {
  font-size: 15px;
}
.f16 {
  font-size: 16px;
}
.f18 {
  font-size: 18px;
}
.f20 {
  font-size: 20px;
}
.f22 {
  font-size: 22px;
}
.f24 {
  font-size: 24px;
}
.f26 {
  font-size: 26px;
}
.f28 {
  font-size: 28px;
}
.f30 {
  font-size: 30px;
}
.f32 {
  font-size: 32px;
}
.f36 {
  font-size: 36px;
}
.f40 {
  font-size: 40px;
}
.pe-auto {
  pointer-events: auto;
}
.pe-none {
  pointer-events: none;
}
.absolute {
  position: absolute;
}
.relative {
  position: relative;
}
.scroll-auto {
  overflow-x: auto !important;
  overflow-y: auto !important;
}
.scroll-auto::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}
.scroll-auto::-webkit-scrollbar-thumb {
  height: 50px;
  background-color: var(--tx-primary);
  outline: 2px solid var(--tx-primary);
  outline-offset: -2px;
}
.scroll-auto::-webkit-scrollbar-thumb:hover {
  height: 50px;
  background-color: var(--tx-primary);
}
.scroll-auto::-webkit-scrollbar-track-piece {
  background-color: var(--tx-light);
}
.middle {
  vertical-align: middle !important;
}
.middle.table th,
.middle.table td {
  vertical-align: middle;
}
.vertical-top {
  vertical-align: top !important;
}
tr.vertical-top th,
tr.vertical-top td {
  vertical-align: top;
}
.block {
  display: block;
}
.hidden {
  display: none !important;
}
.scroll-x {
  overflow-x: scroll !important;
}
.scroll-y {
  overflow-y: scroll !important;
}
.text-pre-wrap {
  white-space: pre-wrap !important;
}
/**
 * deprecated end
 */

/* 天璇前端项目 CSS 重置经验文件，不打包到样式助手，业务方单独选用 */

* {
  word-break: break-all; /* Firefox */
  word-break: break-word; /* Chrome */
}

a:focus {
  text-decoration: none;
}

b, label {
  font-weight: inherit;
}

body {
  font-family: 'Microsoft YaHei', serif;
}

i {
  font-style: inherit;
}

i[class^=icon-], i[class*=' icon-'] {
  position: relative;
  display: inline-block;
  background-position: center center;
  background-repeat: no-repeat;
  background-size: 100% 100%;
}

img {
  image-orientation: 0deg !important; /* 标准值 */
  image-orientation: none !important; /* 实际该值有效，同时设置 <img crossorigin="anonymous"> */
  max-width: 100%;
}

p:last-child,
table:last-child {
  margin-bottom: 0;
}

textarea {
  resize: vertical;
}

th {
  text-align: inherit;
}

