:root {
  --rv-brand-color: #3f45ff;
  --rv-black: #000;
  --rv-white: #fff;
  --rv-gray-1: #f7f8fa;
  --rv-gray-2: #f2f3f5;
  --rv-gray-3: #ebedf0;
  --rv-gray-4: #dcdee0;
  --rv-gray-5: #c8c9cc;
  --rv-gray-6: #969799;
  --rv-gray-7: #646566;
  --rv-gray-8: #323232;
  --rv-red: #f44336;
  --rv-blue: #3f45ff;
  --rv-orange: #ff976a;
  --rv-orange-dark: #ff590d;
  --rv-orange-light: #fffbe8;
  --rv-green: #00c853;
  --rv-gradient-red: linear-gradient(to right, #ff6034, #ee0a24);
  --rv-gradient-orange: linear-gradient(to right, #ffd01e, #ff8917);
  --rv-primary-color: var(--rv-blue);
  --rv-success-color: var(--rv-green);
  --rv-danger-color: var(--rv-red);
  --rv-warning-color: var(--rv-orange);
  --rv-text-color: var(--rv-gray-8);
  --rv-text-color-weak: #969799;
  --rv-active-color: var(--rv-gray-2);
  --rv-active-opacity: 0.7;
  --rv-disabled-opacity: 0.5;
  --rv-background-color: var(--rv-gray-1);
  --rv-background-color-light: #fafafa;
  --rv-text-link-color: #576b95;
  --rv-padding-base: 4px;
  --rv-padding-xs: 8px;
  --rv-padding-sm: 12px;
  --rv-padding-md: 16px;
  --rv-padding-lg: 24px;
  --rv-padding-xl: 32px;
  --rv-font-size-xs: 10px;
  --rv-font-size-sm: 12px;
  --rv-font-size-md: 14px;
  --rv-font-size-lg: 16px;
  --rv-font-size-xl: 18px;
  --rv-font-size-xxl: 20px;
  --rv-font-size-xxxl: 24px;
  --rv-font-weight-bold: 500;
  --rv-line-height-xs: 14px;
  --rv-line-height-sm: 18px;
  --rv-line-height-md: 20px;
  --rv-line-height-lg: 22px;
  --rv-line-height-xl: 24px;
  --rv-line-height-xxl: 28px;
  --rv-line-height-xxxl: 32px;
  --rv-base-font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', Helvetica, Segoe UI, Arial, Roboto, 'PingFang SC', 'miui', 'Hiragino Sans GB', 'Microsoft Yahei', sans-serif;
  --rv-price-integer-font-family: Avenir-Heavy, PingFang SC, Helvetica Neue, Arial, sans-serif;
  --rv-animation-duration-base: 0.3s;
  --rv-animation-duration-fast: 0.2s;
  --rv-animation-timing-function-enter: ease-out;
  --rv-animation-timing-function-leave: ease-in;
  --rv-border-color: var(--rv-gray-3);
  --rv-border-width-base: 1px;
  --rv-border-radius-sm: 2px;
  --rv-border-radius-md: 4px;
  --rv-border-radius-lg: 8px;
  --rv-border-radius-max: 999px;
}
html {
  -webkit-tap-highlight-color: transparent;
}
body {
  margin: 0;
  font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', Helvetica, Segoe UI, Arial, Roboto, 'PingFang SC', 'miui', 'Hiragino Sans GB', 'Microsoft Yahei', sans-serif;
}
a {
  text-decoration: none;
}
input,
button,
textarea {
  color: inherit;
  font: inherit;
}
a:focus,
input:focus,
button:focus,
textarea:focus,
[class*='rv-']:focus {
  outline: none;
}
ol,
ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
@-webkit-keyframes rv-spin {
  0% {
    -webkit-transform: rotate(0);
    transform: rotate(0);
  }
  100% {
    -webkit-transform: rotate(359deg);
    transform: rotate(359deg);
  }
}
@keyframes rv-spin {
  0% {
    -webkit-transform: rotate(0);
    transform: rotate(0);
  }
  100% {
    -webkit-transform: rotate(359deg);
    transform: rotate(359deg);
  }
}
@-webkit-keyframes rv-slide-up-enter {
  from {
    -webkit-transform: translate3d(0, 100%, 0);
            transform: translate3d(0, 100%, 0);
  }
}
@keyframes rv-slide-up-enter {
  from {
    -webkit-transform: translate3d(0, 100%, 0);
            transform: translate3d(0, 100%, 0);
  }
}
@-webkit-keyframes rv-slide-up-leave {
  to {
    -webkit-transform: translate3d(0, 100%, 0);
            transform: translate3d(0, 100%, 0);
  }
}
@keyframes rv-slide-up-leave {
  to {
    -webkit-transform: translate3d(0, 100%, 0);
            transform: translate3d(0, 100%, 0);
  }
}
@-webkit-keyframes rv-slide-down-enter {
  from {
    -webkit-transform: translate3d(0, -100%, 0);
            transform: translate3d(0, -100%, 0);
  }
}
@keyframes rv-slide-down-enter {
  from {
    -webkit-transform: translate3d(0, -100%, 0);
            transform: translate3d(0, -100%, 0);
  }
}
@-webkit-keyframes rv-slide-down-leave {
  to {
    -webkit-transform: translate3d(0, -100%, 0);
            transform: translate3d(0, -100%, 0);
  }
}
@keyframes rv-slide-down-leave {
  to {
    -webkit-transform: translate3d(0, -100%, 0);
            transform: translate3d(0, -100%, 0);
  }
}
@-webkit-keyframes rv-slide-left-enter {
  from {
    -webkit-transform: translate3d(-100%, 0, 0);
            transform: translate3d(-100%, 0, 0);
  }
}
@keyframes rv-slide-left-enter {
  from {
    -webkit-transform: translate3d(-100%, 0, 0);
            transform: translate3d(-100%, 0, 0);
  }
}
@-webkit-keyframes rv-slide-left-leave {
  to {
    -webkit-transform: translate3d(-100%, 0, 0);
            transform: translate3d(-100%, 0, 0);
  }
}
@keyframes rv-slide-left-leave {
  to {
    -webkit-transform: translate3d(-100%, 0, 0);
            transform: translate3d(-100%, 0, 0);
  }
}
@-webkit-keyframes rv-slide-right-enter {
  from {
    -webkit-transform: translate3d(100%, 0, 0);
            transform: translate3d(100%, 0, 0);
  }
}
@keyframes rv-slide-right-enter {
  from {
    -webkit-transform: translate3d(100%, 0, 0);
            transform: translate3d(100%, 0, 0);
  }
}
@-webkit-keyframes rv-slide-right-leave {
  to {
    -webkit-transform: translate3d(100%, 0, 0);
            transform: translate3d(100%, 0, 0);
  }
}
@keyframes rv-slide-right-leave {
  to {
    -webkit-transform: translate3d(100%, 0, 0);
            transform: translate3d(100%, 0, 0);
  }
}
@-webkit-keyframes rv-fade-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes rv-fade-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@-webkit-keyframes rv-fade-out {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}
@keyframes rv-fade-out {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}
@-webkit-keyframes rv-zoom-in {
  from {
    -webkit-transform: scale(0.8);
            transform: scale(0.8);
    opacity: 0;
  }
  to {
    -webkit-transform: scale(1);
            transform: scale(1);
    opacity: 1;
  }
}
@keyframes rv-zoom-in {
  from {
    -webkit-transform: scale(0.8);
            transform: scale(0.8);
    opacity: 0;
  }
  to {
    -webkit-transform: scale(1);
            transform: scale(1);
    opacity: 1;
  }
}
@-webkit-keyframes rv-zoom-out {
  from {
    -webkit-transform: scale(1);
            transform: scale(1);
    opacity: 1;
  }
  to {
    -webkit-transform: scale(0.8);
            transform: scale(0.8);
    opacity: 0;
  }
}
@keyframes rv-zoom-out {
  from {
    -webkit-transform: scale(1);
            transform: scale(1);
    opacity: 1;
  }
  to {
    -webkit-transform: scale(0.8);
            transform: scale(0.8);
    opacity: 0;
  }
}
@-webkit-keyframes rv-rotate {
  from {
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg);
  }
  to {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg);
  }
}
@keyframes rv-rotate {
  from {
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg);
  }
  to {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg);
  }
}
.rv-fade-enter-active {
  -webkit-animation: 0.3s rv-fade-in both ease-out;
          animation: 0.3s rv-fade-in both ease-out;
}
.rv-fade-exit-active {
  -webkit-animation: 0.3s rv-fade-out both ease-in;
          animation: 0.3s rv-fade-out both ease-in;
}
.rv-slide-up-enter-active {
  -webkit-animation: 0.3s rv-slide-up-enter both ease-out;
          animation: 0.3s rv-slide-up-enter both ease-out;
}
.rv-slide-up-exit-active {
  -webkit-animation: 0.3s rv-slide-up-leave both ease-in;
          animation: 0.3s rv-slide-up-leave both ease-in;
}
.rv-slide-down-enter-active {
  -webkit-animation: rv-slide-down-enter 0.3s both ease-out;
          animation: rv-slide-down-enter 0.3s both ease-out;
}
.rv-slide-down-exit-active {
  -webkit-animation: rv-slide-down-leave 0.3s both ease-in;
          animation: rv-slide-down-leave 0.3s both ease-in;
}
.rv-slide-left-enter-active {
  -webkit-animation: rv-slide-left-enter 0.3s both ease-out;
          animation: rv-slide-left-enter 0.3s both ease-out;
}
.rv-slide-left-exit-active {
  -webkit-animation: rv-slide-left-leave 0.3s both ease-in;
          animation: rv-slide-left-leave 0.3s both ease-in;
}
.rv-slide-right-enter-active {
  -webkit-animation: rv-slide-right-enter 0.3s both ease-out;
          animation: rv-slide-right-enter 0.3s both ease-out;
}
.rv-slide-right-exit-active {
  -webkit-animation: rv-slide-right-leave 0.3s both ease-in;
          animation: rv-slide-right-leave 0.3s both ease-in;
}
.rv-zoom-enter-active {
  -webkit-animation: 0.3s rv-zoom-in both ease-out;
          animation: 0.3s rv-zoom-in both ease-out;
}
.rv-zoom-exit-active {
  -webkit-animation: 0.3s rv-zoom-out both ease-in;
          animation: 0.3s rv-zoom-out both ease-in;
}
.rv-ellipsis {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.rv-multi-ellipsis--l2 {
  display: -webkit-box !important;
  overflow: hidden;
  text-overflow: ellipsis;
  -webkit-line-clamp: 2;
  /* autoprefixer: ignore next */
  -webkit-box-orient: vertical;
}
.rv-multi-ellipsis--l3 {
  display: -webkit-box !important;
  overflow: hidden;
  text-overflow: ellipsis;
  -webkit-line-clamp: 3;
  /* autoprefixer: ignore next */
  -webkit-box-orient: vertical;
}
.rv-safe-area-top {
  padding-top: constant(safe-area-inset-top);
  padding-top: env(safe-area-inset-top);
}
.rv-safe-area-bottom {
  padding-bottom: constant(safe-area-inset-bottom);
  padding-bottom: env(safe-area-inset-bottom);
}
[class*='rv-hairline']::after {
  position: absolute;
  box-sizing: border-box;
  content: ' ';
  pointer-events: none;
  top: -50%;
  right: -50%;
  bottom: -50%;
  left: -50%;
  border: 0 solid var(--rv-gray-3);
  -webkit-transform: scale(0.5);
          transform: scale(0.5);
}
.rv-hairline,
.rv-hairline--top,
.rv-hairline--left,
.rv-hairline--right,
.rv-hairline--bottom,
.rv-hairline--surround,
.rv-hairline--top-bottom {
  position: relative;
}
.rv-hairline--top::after {
  border-top-width: 1px;
}
.rv-hairline--left::after {
  border-left-width: 1px;
}
.rv-hairline--right::after {
  border-right-width: 1px;
}
.rv-hairline--bottom::after {
  border-bottom-width: 1px;
}
.rv-hairline--top-bottom::after,
.rv-hairline-unset--top-bottom::after {
  border-width: 1px 0;
}
.rv-hairline--surround::after {
  border-width: 1px;
}
[class*='rv-shadow']:hover,
[class*='rv-shadow']:active {
  box-shadow: rgba(0, 0, 0, 0.2) 0 2px 4px -1px, rgba(0, 0, 0, 0.14) 0 4px 5px 0, rgba(0, 0, 0, 0.12) 0 1px 10px 0;
}
.rv-shadow--1 {
  box-shadow: rgba(0, 0, 0, 0.2) 0 2px 1px -1px, rgba(0, 0, 0, 0.14) 0 1px 1px 0, rgba(0, 0, 0, 0.12) 0 1px 3px 0;
}
.rv-shadow--2 {
  box-shadow: rgba(0, 0, 0, 0.2) 0 3px 1px -2px, rgba(0, 0, 0, 0.14) 0 2px 2px 0, rgba(0, 0, 0, 0.12) 0 1px 5px 0;
}
.rv-shadow--3 {
  box-shadow: rgba(0, 0, 0, 0.2) 0 3px 3px -2px, rgba(0, 0, 0, 0.14) 0 3px 4px 0, rgba(0, 0, 0, 0.12) 0 1px 8px 0;
}
.rv-icon--spin {
  -webkit-animation: rv-spin 1.5s infinite linear;
          animation: rv-spin 1.5s infinite linear;
}

:root {
  --rv-notify-text-color: var(--rv-white);
  --rv-notify-padding: var(--rv-padding-xs) var(--rv-padding-md);
  --rv-notify-font-size: var(--rv-font-size-md);
  --rv-notify-line-height: var(--rv-line-height-md);
  --rv-notify-primary-background-color: var(--rv-primary-color);
  --rv-notify-success-background-color: var(--rv-success-color);
  --rv-notify-danger-background-color: var(--rv-danger-color);
  --rv-notify-warning-background-color: var(--rv-warning-color);
}
.rv-notify {
  display: -webkit-box;
  display: -webkit-flex;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
          justify-content: center;
  box-sizing: border-box;
  padding: var(--rv-notify-padding);
  color: var(--rv-notify-text-color);
  font-size: var(--rv-notify-font-size);
  line-height: var(--rv-notify-line-height);
  white-space: pre-wrap;
  text-align: center;
  word-wrap: break-word;
}
.rv-notify--primary {
  background-color: var(--rv-notify-primary-background-color);
}
.rv-notify--success {
  background-color: var(--rv-notify-success-background-color);
}
.rv-notify--danger {
  background-color: var(--rv-notify-danger-background-color);
}
.rv-notify--warning {
  background-color: var(--rv-notify-warning-background-color);
}

:root {
  --rv-popup-background-color: var(--rv-white);
  --rv-popup-transition: transform var(--rv-animation-duration-base);
  --rv-popup-round-border-radius: 16px;
  --rv-popup-close-icon-size: 22px;
  --rv-popup-close-icon-color: var(--rv-gray-5);
  --rv-popup-close-icon-active-color: var(--rv-gray-6);
  --rv-popup-close-icon-margin: 16px;
  --rv-popup-close-icon-z-index: 1;
  --rv-popup-title-color: 'inherit';
  --rv-popup-title-font-size: 16px;
  --rv-popup-description-font-size: 14px;
  --rv-popup-description-color: #969799;
}
.rv-overflow-hidden {
  overflow: hidden !important;
}
.rv-popup {
  position: fixed;
  max-height: 100%;
  overflow-y: auto;
  background-color: var(--rv-popup-background-color);
  -webkit-transition: var(--rv-popup-transition);
  transition: var(--rv-popup-transition);
  -webkit-overflow-scrolling: touch;
}
.rv-popup--center {
  top: 50%;
  left: 50%;
  -webkit-transform: translate3d(-50%, -50%, 0);
          transform: translate3d(-50%, -50%, 0);
}
.rv-popup--center.rv-popup--round {
  border-radius: var(--rv-popup-round-border-radius);
}
.rv-popup--top {
  top: 0;
  left: 0;
  width: 100%;
}
.rv-popup--top.rv-popup--round {
  border-radius: 0 0 var(--rv-popup-round-border-radius) var(--rv-popup-round-border-radius);
}
.rv-popup--right {
  top: 0;
  right: 0;
}
.rv-popup--right.rv-popup--round {
  border-radius: var(--rv-popup-round-border-radius) 0 0 var(--rv-popup-round-border-radius);
}
.rv-popup--bottom {
  bottom: 0;
  left: 0;
  width: 100%;
}
.rv-popup--bottom.rv-popup--round {
  border-radius: var(--rv-popup-round-border-radius) var(--rv-popup-round-border-radius) 0 0;
}
.rv-popup--left {
  top: 0;
  left: 0;
}
.rv-popup--left.rv-popup--round {
  border-radius: 0 var(--rv-popup-round-border-radius) var(--rv-popup-round-border-radius) 0;
}
.rv-popup-slide-top-enter,
.rv-popup-slide-top-exit-active {
  -webkit-transform: translate3d(0, -100%, 0);
          transform: translate3d(0, -100%, 0);
}
.rv-popup-slide-right-enter,
.rv-popup-slide-right-exit-active {
  -webkit-transform: translate3d(100%, 0, 0);
          transform: translate3d(100%, 0, 0);
}
.rv-popup-slide-bottom-enter,
.rv-popup-slide-bottom-exit-active {
  -webkit-transform: translate3d(0, 100%, 0);
          transform: translate3d(0, 100%, 0);
}
.rv-popup-slide-left-enter,
.rv-popup-slide-left-exit-active {
  -webkit-transform: translate3d(-100%, 0, 0);
          transform: translate3d(-100%, 0, 0);
}
.rv-popup-slide-top-enter-active,
.rv-popup-slide-left-enter-active,
.rv-popup-slide-right-enter-active,
.rv-popup-slide-bottom-enter-active {
  -webkit-transform: translate3d(0, 0, 0);
          transform: translate3d(0, 0, 0);
  -webkit-transition: var(--rv-popup-transition);
  transition: var(--rv-popup-transition);
}
.rv-popup-slide-top-exit-active,
.rv-popup-slide-left-exit-active,
.rv-popup-slide-right-exit-active,
.rv-popup-slide-bottom-exit-active {
  -webkit-transition: var(--rv-popup-transition);
  transition: var(--rv-popup-transition);
  -webkit-transition-timing-function: var(--rv-animation-timing-function-leave);
          transition-timing-function: var(--rv-animation-timing-function-leave);
}
.rv-popup__close-icon {
  position: absolute;
  z-index: var(--rv-popup-close-icon-z-index);
  color: var(--rv-popup-close-icon-color);
  font-size: var(--rv-popup-close-icon-size);
  cursor: pointer;
}
.rv-popup__close-icon:active {
  color: var(--rv-popup-close-icon-active-color);
}
.rv-popup__close-icon--top-left {
  top: var(--rv-popup-close-icon-margin);
  left: var(--rv-popup-close-icon-margin);
}
.rv-popup__close-icon--top-right {
  top: var(--rv-popup-close-icon-margin);
  right: var(--rv-popup-close-icon-margin);
}
.rv-popup__close-icon--bottom-left {
  bottom: var(--rv-popup-close-icon-margin);
  left: var(--rv-popup-close-icon-margin);
}
.rv-popup__close-icon--bottom-right {
  right: var(--rv-popup-close-icon-margin);
  bottom: var(--rv-popup-close-icon-margin);
}
.rv-popup__title {
  margin: 20px 12px;
  font-weight: 500;
  color: var(--rv-popup-title-color);
  font-size: var(--rv-popup-title-font-size);
  line-height: var(--rv-popup-title-font-size);
  text-align: center;
}
.rv-popup__description {
  margin: 0 20px;
  color: var(--rv-popup-description-color);
  font-size: var(--rv-popup-description-font-size);
}

:root {
  --rv-overlay-z-index: 1;
  --rv-overlay-background-color: rgba(0, 0, 0, 0.7);
}
.rv-overlay {
  position: fixed;
  top: 0;
  left: 0;
  z-index: var(--rv-overlay-z-index);
  width: 100%;
  height: 100%;
  background-color: var(--rv-overlay-background-color);
}

:root {
  --rv-uploader-size: 80px;
  --rv-uploader-icon-size: 24px;
  --rv-uploader-icon-color: var(--rv-gray-4);
  --rv-uploader-text-color: var(--rv-gray-6);
  --rv-uploader-text-font-size: var(--rv-font-size-sm);
  --rv-uploader-upload-background-color: var(--rv-gray-1);
  --rv-uploader-upload-active-color: var(--rv-active-color);
  --rv-uploader-delete-color: var(--rv-white);
  --rv-uploader-delete-icon-size: 14px;
  --rv-uploader-delete-background-color: rgba(0, 0, 0, 0.7);
  --rv-uploader-file-background-color: var(--rv-background-color);
  --rv-uploader-file-icon-size: 24px;
  --rv-uploader-file-icon-color: var(--rv-gray-7);
  --rv-uploader-file-name-padding: 0 var(--rv-padding-base);
  --rv-uploader-file-name-margin-top: var(--rv-padding-xs);
  --rv-uploader-file-name-font-size: var(--rv-font-size-sm);
  --rv-uploader-file-name-text-color: var(--rv-gray-7);
  --rv-uploader-mask-text-color: var(--rv-white);
  --rv-uploader-mask-background-color: rgba(50, 50, 51, 0.88);
  --rv-uploader-mask-icon-size: 22px;
  --rv-uploader-mask-message-font-size: var(--rv-font-size-sm);
  --rv-uploader-mask-message-line-height: var(--rv-line-height-xs);
  --rv-uploader-loading-icon-size: 22px;
  --rv-uploader-loading-icon-color: var(--rv-white);
  --rv-uploader-disabled-opacity: var(--rv-disabled-opacity);
  --rv-uploader-gap: var(--rv-padding-xs);
}
.rv-uploader {
  position: relative;
  display: inline-block;
}
.rv-uploader__wrapper {
  display: -webkit-box;
  display: -webkit-flex;
  display: flex;
  -webkit-flex-wrap: wrap;
          flex-wrap: wrap;
  gap: var(--rv-uploader-gap);
  padding-bottom: var(--rv-uploader-gap);
}
.rv-uploader__wrapper--disabled {
  opacity: var(--rv-uploader-disabled-opacity);
}
.rv-uploader__input {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  cursor: pointer;
  opacity: 0;
}
.rv-uploader__input-wrapper {
  position: relative;
}
.rv-uploader__input:disabled {
  cursor: not-allowed;
}
.rv-uploader__upload {
  position: relative;
  display: -webkit-box;
  display: -webkit-flex;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
  -webkit-align-items: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
          justify-content: center;
  box-sizing: border-box;
  width: var(--rv-uploader-size);
  height: var(--rv-uploader-size);
  background-color: var(--rv-uploader-upload-background-color);
}
.rv-uploader__upload:active {
  background-color: var(--rv-uploader-upload-active-color);
}
.rv-uploader__upload--readOnly:active {
  background-color: var(--rv-uploader-upload-background-color);
}
.rv-uploader__upload-icon {
  color: var(--rv-uploader-icon-color);
  font-size: var(--rv-uploader-icon-size);
}
.rv-uploader__upload-text {
  margin-top: var(--rv-padding-xs);
  color: var(--rv-uploader-text-color);
  font-size: var(--rv-uploader-text-font-size);
}
.rv-uploader__preview {
  position: relative;
  cursor: pointer;
}
.rv-uploader__preview-image {
  display: block;
  width: var(--rv-uploader-size);
  height: var(--rv-uploader-size);
  overflow: hidden;
}
.rv-uploader__preview-delete {
  position: absolute;
  top: 0;
  right: 0;
  display: -webkit-box;
  display: -webkit-flex;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
          justify-content: center;
  width: var(--rv-uploader-delete-icon-size);
  height: var(--rv-uploader-delete-icon-size);
  background-color: var(--rv-uploader-delete-background-color);
  border-radius: 0 0 0 12px;
}
.rv-uploader__preview-delete-icon {
  color: var(--rv-uploader-delete-color);
  font-size: var(--rv-uploader-delete-icon-size);
  -webkit-transform: scale(0.7) translate(10%, -10%);
          transform: scale(0.7) translate(10%, -10%);
}
.rv-uploader__preview-cover {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
}
.rv-uploader__mask {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  display: -webkit-box;
  display: -webkit-flex;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
  -webkit-align-items: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
          justify-content: center;
  color: var(--rv-uploader-mask-text-color);
  background-color: var(--rv-uploader-mask-background-color);
}
.rv-uploader__mask-icon {
  font-size: var(--rv-uploader-mask-icon-size);
}
.rv-uploader__mask-message {
  margin-top: 6px;
  padding: 0 var(--rv-padding-base);
  font-size: var(--rv-uploader-mask-message-font-size);
  line-height: var(--rv-uploader-mask-message-line-height);
}
.rv-uploader__loading {
  width: var(--rv-uploader-loading-icon-size);
  height: var(--rv-uploader-loading-icon-size);
  color: var(--rv-uploader-loading-icon-color);
}
.rv-uploader__file {
  display: -webkit-box;
  display: -webkit-flex;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
  -webkit-align-items: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
          justify-content: center;
  width: var(--rv-uploader-size);
  height: var(--rv-uploader-size);
  background-color: var(--rv-uploader-file-background-color);
}
.rv-uploader__file-icon {
  color: var(--rv-uploader-file-icon-color);
  font-size: var(--rv-uploader-file-icon-size);
}
.rv-uploader__file-name {
  box-sizing: border-box;
  width: 100%;
  margin-top: var(--rv-uploader-file-name-margin-top);
  padding: var(--rv-uploader-file-name-padding);
  color: var(--rv-uploader-file-name-text-color);
  font-size: var(--rv-uploader-file-name-font-size);
  text-align: center;
}

:root {
  --rv-image-preview-index-text-color: var(--rv-white);
  --rv-image-preview-index-font-size: var(--rv-font-size-md);
  --rv-image-preview-index-line-height: var(--rv-line-height-md);
  --rv-image-preview-index-text-shadow: 0 1px 1px var(--rv-gray-8);
  --rv-image-preview-overlay-background-color: rgba(0, 0, 0, 0.9);
  --rv-image-preview-close-icon-size: 22px;
  --rv-image-preview-close-icon-color: var(--rv-gray-5);
  --rv-image-preview-close-icon-active-color: var(--rv-gray-6);
  --rv-image-preview-close-icon-margin: var(--rv-padding-md);
  --rv-image-preview-close-icon-z-index: 2;
}
.rv-image-preview.rv-popup {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: transparent;
  -webkit-transform: none;
          transform: none;
  -webkit-user-select: none;
          user-select: none;
  touch-action: none;
}
.rv-image-preview__content {
  width: 100vw;
  height: 100vh;
  max-height: -webkit-fill-available;
  touch-action: none;
  -webkit-user-select: none;
          user-select: none;
  overflow: hidden;
}
.rv-image-preview__slides {
  height: 100%;
  position: relative;
  z-index: 1;
  cursor: grab;
  touch-action: none;
}
.rv-image-preview__slides-inner {
  height: 100%;
  white-space: nowrap;
}
.rv-image-preview__slides-inner > * {
  margin-right: 16px;
}
.rv-image-preview__slide {
  position: relative;
  width: 100%;
  height: 100%;
  display: inline-block;
}
.rv-image-preview__control {
  position: absolute;
  z-index: 1;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  cursor: grab;
  touch-action: none;
}
.rv-image-preview__image-wrapper {
  width: 100%;
  height: 100%;
  display: -webkit-box;
  display: -webkit-flex;
  display: flex;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
          justify-content: center;
  -webkit-box-align: center;
  -webkit-align-items: center;
          align-items: center;
}
.rv-image-preview__image-wrapper img {
  display: block;
  max-width: 100%;
  max-height: 100%;
}
.rv-image-preview__indicator {
  position: absolute;
  bottom: 12px;
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
}
.rv-image-preview__index {
  position: absolute;
  top: var(--rv-padding-md);
  left: 50%;
  color: var(--rv-image-preview-index-text-color);
  font-size: var(--rv-image-preview-index-font-size);
  line-height: var(--rv-image-preview-index-line-height);
  text-shadow: var(--rv-image-preview-index-text-shadow);
  -webkit-transform: translate(-50%, 0);
          transform: translate(-50%, 0);
}
.rv-image-preview__overlay.rv-overlay {
  background-color: var(--rv-image-preview-overlay-background-color);
}
.rv-image-preview__close-icon {
  position: absolute;
  z-index: var(--rv-image-preview-close-icon-z-index);
  color: var(--rv-image-preview-close-icon-color);
  font-size: var(--rv-image-preview-close-icon-size);
  cursor: pointer;
}
.rv-image-preview__close-icon:active {
  color: var(--rv-image-preview-close-icon-active-color);
}
.rv-image-preview__close-icon--top-left {
  top: var(--rv-image-preview-close-icon-margin);
  left: var(--rv-image-preview-close-icon-margin);
}
.rv-image-preview__close-icon--top-right {
  top: var(--rv-image-preview-close-icon-margin);
  right: var(--rv-image-preview-close-icon-margin);
}
.rv-image-preview__close-icon--bottom-left {
  bottom: var(--rv-image-preview-close-icon-margin);
  left: var(--rv-image-preview-close-icon-margin);
}
.rv-image-preview__close-icon--bottom-right {
  right: var(--rv-image-preview-close-icon-margin);
  bottom: var(--rv-image-preview-close-icon-margin);
}

:root {
  --rv-loading-text-color: var(--rv-gray-6);
  --rv-loading-text-font-size: var(--rv-font-size-md);
  --rv-loading-spinner-color: var(--rv-gray-5);
  --rv-loading-spinner-size: 30px;
  --rv-loading-spinner-animation-duration: 0.8s;
}
.rv-loading {
  position: relative;
  color: var(--rv-gray-5);
  font-size: 0;
  vertical-align: middle;
}
.rv-loading__spinner {
  position: relative;
  display: inline-block;
  width: var(--rv-loading-spinner-size);
  max-width: 100%;
  height: var(--rv-loading-spinner-size);
  max-height: 100%;
  vertical-align: middle;
  -webkit-animation: rv-rotate var(--rv-loading-spinner-animation-duration) linear infinite;
          animation: rv-rotate var(--rv-loading-spinner-animation-duration) linear infinite;
}
.rv-loading__spinner--spinner {
  -webkit-animation-timing-function: steps(12);
          animation-timing-function: steps(12);
}
.rv-loading__spinner--circular {
  -webkit-animation-duration: 2s;
          animation-duration: 2s;
}
.rv-loading__spinner--ball {
  -webkit-animation: none;
          animation: none;
}
.rv-loading__line {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.rv-loading__line::before {
  display: block;
  width: 2px;
  height: 25%;
  margin: 0 auto;
  background-color: currentColor;
  border-radius: 40%;
  content: ' ';
}
.rv-loading__circular {
  display: block;
  width: 100%;
  height: 100%;
}
.rv-loading__circular circle {
  -webkit-animation: rv-circular 1.5s ease-in-out infinite;
          animation: rv-circular 1.5s ease-in-out infinite;
  stroke: currentColor;
  stroke-width: 3;
  stroke-linecap: round;
}
.rv-loading__text {
  display: inline-block;
  margin-left: var(--rv-padding-xs);
  color: var(--rv-loading-text-color);
  font-size: var(--rv-loading-text-font-size);
  vertical-align: middle;
}
.rv-loading--vertical {
  display: -webkit-box;
  display: -webkit-flex;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
  -webkit-align-items: center;
          align-items: center;
}
.rv-loading--vertical .rv-loading__text {
  margin: var(--rv-padding-xs) 0 0;
}
.rv-loading__ball {
  position: relative;
  display: -webkit-box;
  display: -webkit-flex;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
          align-items: center;
  width: 100%;
  height: 100%;
  -webkit-transform: translateZ(0) scale(1);
          transform: translateZ(0) scale(1);
  -webkit-transform-origin: 0 0;
          transform-origin: 0 0;
  /* see note above */
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
}
.rv-loading__ball div {
  position: absolute;
  box-sizing: content-box;
  width: 12px;
  height: 12px;
  border-radius: 50%;
}
.rv-loading__ball div:nth-child(1) {
  background: #448aff;
  -webkit-animation: rv-ball--right 1s linear infinite;
          animation: rv-ball--right 1s linear infinite;
  -webkit-animation-delay: -0.5s;
          animation-delay: -0.5s;
}
.rv-loading__ball div:nth-child(2) {
  background: #ef5350;
  -webkit-animation: rv-ball--right 1s linear infinite;
          animation: rv-ball--right 1s linear infinite;
  -webkit-animation-delay: 0s;
          animation-delay: 0s;
}
.rv-loading__ball div:nth-child(3) {
  background: #448aff;
  -webkit-animation: rv-ball 1s linear infinite;
          animation: rv-ball 1s linear infinite;
  -webkit-animation-delay: -0.5s;
          animation-delay: -0.5s;
}
@-webkit-keyframes rv-ball {
  0% {
    -webkit-transform: translate(0 0);
            transform: translate(0 0);
    opacity: 1;
  }
  49.99% {
    -webkit-transform: translate(24px, 0);
            transform: translate(24px, 0);
    opacity: 1;
  }
  50% {
    -webkit-transform: translate(24px, 0);
            transform: translate(24px, 0);
    opacity: 0;
  }
  100% {
    -webkit-transform: translate(0, 0);
            transform: translate(0, 0);
    opacity: 0;
  }
}
@keyframes rv-ball {
  0% {
    -webkit-transform: translate(0 0);
            transform: translate(0 0);
    opacity: 1;
  }
  49.99% {
    -webkit-transform: translate(24px, 0);
            transform: translate(24px, 0);
    opacity: 1;
  }
  50% {
    -webkit-transform: translate(24px, 0);
            transform: translate(24px, 0);
    opacity: 0;
  }
  100% {
    -webkit-transform: translate(0, 0);
            transform: translate(0, 0);
    opacity: 0;
  }
}
@-webkit-keyframes rv-ball--right {
  0% {
    -webkit-transform: translate(0, 0);
            transform: translate(0, 0);
  }
  50% {
    -webkit-transform: translate(24px, 0);
            transform: translate(24px, 0);
  }
  100% {
    -webkit-transform: translate(0, 0);
            transform: translate(0, 0);
  }
}
@keyframes rv-ball--right {
  0% {
    -webkit-transform: translate(0, 0);
            transform: translate(0, 0);
  }
  50% {
    -webkit-transform: translate(24px, 0);
            transform: translate(24px, 0);
  }
  100% {
    -webkit-transform: translate(0, 0);
            transform: translate(0, 0);
  }
}
/* generated by https://loading.io/ */
@-webkit-keyframes rv-circular {
  0% {
    stroke-dasharray: 1, 200;
    stroke-dashoffset: 0;
  }
  50% {
    stroke-dasharray: 90, 150;
    stroke-dashoffset: -40;
  }
  100% {
    stroke-dasharray: 90, 150;
    stroke-dashoffset: -120;
  }
}
@keyframes rv-circular {
  0% {
    stroke-dasharray: 1, 200;
    stroke-dashoffset: 0;
  }
  50% {
    stroke-dasharray: 90, 150;
    stroke-dashoffset: -40;
  }
  100% {
    stroke-dasharray: 90, 150;
    stroke-dashoffset: -120;
  }
}
.rv-loading__spinner--spinner i:nth-of-type(1) {
  -webkit-transform: rotate(30deg);
          transform: rotate(30deg);
  opacity: 1;
}
.rv-loading__spinner--spinner i:nth-of-type(2) {
  -webkit-transform: rotate(60deg);
          transform: rotate(60deg);
  opacity: 0.9375;
}
.rv-loading__spinner--spinner i:nth-of-type(3) {
  -webkit-transform: rotate(90deg);
          transform: rotate(90deg);
  opacity: 0.875;
}
.rv-loading__spinner--spinner i:nth-of-type(4) {
  -webkit-transform: rotate(120deg);
          transform: rotate(120deg);
  opacity: 0.8125;
}
.rv-loading__spinner--spinner i:nth-of-type(5) {
  -webkit-transform: rotate(150deg);
          transform: rotate(150deg);
  opacity: 0.75;
}
.rv-loading__spinner--spinner i:nth-of-type(6) {
  -webkit-transform: rotate(180deg);
          transform: rotate(180deg);
  opacity: 0.6875;
}
.rv-loading__spinner--spinner i:nth-of-type(7) {
  -webkit-transform: rotate(210deg);
          transform: rotate(210deg);
  opacity: 0.625;
}
.rv-loading__spinner--spinner i:nth-of-type(8) {
  -webkit-transform: rotate(240deg);
          transform: rotate(240deg);
  opacity: 0.5625;
}
.rv-loading__spinner--spinner i:nth-of-type(9) {
  -webkit-transform: rotate(270deg);
          transform: rotate(270deg);
  opacity: 0.5;
}
.rv-loading__spinner--spinner i:nth-of-type(10) {
  -webkit-transform: rotate(300deg);
          transform: rotate(300deg);
  opacity: 0.4375;
}
.rv-loading__spinner--spinner i:nth-of-type(11) {
  -webkit-transform: rotate(330deg);
          transform: rotate(330deg);
  opacity: 0.375;
}
.rv-loading__spinner--spinner i:nth-of-type(12) {
  -webkit-transform: rotate(360deg);
          transform: rotate(360deg);
  opacity: 0.3125;
}

:root {
  --rv-image-placeholder-text-color: var(--rv-gray-6);
  --rv-image-placeholder-font-size: var(--rv-font-size-md);
  --rv-image-placeholder-background-color: var(--rv-background-color);
  --rv-image-loading-icon-size: 32px;
  --rv-image-loading-icon-color: var(--rv-gray-4);
  --rv-image-error-icon-size: 32px;
  --rv-image-error-icon-color: var(--rv-gray-4);
}
.rv-image {
  position: relative;
  display: inline-block;
}
.rv-image--block {
  display: block;
  width: 100%;
  height: 100%;
}
.rv-image--fix {
  overflow: hidden;
}
.rv-image--fix .rv-image__img {
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
}
.rv-image--fix-width .rv-image__img {
  width: 100%;
  height: auto;
}
.rv-image--fix-height .rv-image__img {
  width: auto;
  height: 100%;
}
.rv-image--round {
  overflow: hidden;
  border-radius: var(--rv-border-radius-max);
}
.rv-image--round .rv-image__img {
  border-radius: inherit;
}
.rv-image__img,
.rv-image__error,
.rv-image__loading {
  display: block;
  width: 100%;
  height: 100%;
}
.rv-image__error,
.rv-image__loading {
  position: absolute;
  top: 0;
  left: 0;
  display: -webkit-box;
  display: -webkit-flex;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
  -webkit-align-items: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
          justify-content: center;
  color: var(--rv-image-placeholder-text-color);
  font-size: var(--rv-image-placeholder-font-size);
  background-color: var(--rv-image-placeholder-background-color);
}
.rv-image__loading-icon {
  color: var(--rv-image-loading-icon-color);
  font-size: var(--rv-image-loading-icon-size);
}
.rv-image__error-icon {
  color: var(--rv-image-error-icon-color);
  font-size: var(--rv-image-error-icon-size);
}

.rv-lazyload {
  position: relative;
  display: block;
  width: 100%;
}

:root {
  --rv-skeleton-row-height: 16px;
  --rv-skeleton-row-background-color: var(--rv-active-color);
  --rv-skeleton-row-margin-top: var(--rv-padding-sm);
  --rv-skeleton-title-width: 40%;
  --rv-skeleton-avatar-size: 32px;
  --rv-skeleton-avatar-background-color: var(--rv-active-color);
  --rv-skeleton-animation-duration: 1.2s;
}
.rv-skeleton {
  display: -webkit-box;
  display: -webkit-flex;
  display: flex;
  padding: 0 var(--rv-padding-md);
}
.rv-skeleton__avatar {
  -webkit-flex-shrink: 0;
          flex-shrink: 0;
  width: var(--rv-skeleton-avatar-size);
  height: var(--rv-skeleton-avatar-size);
  margin-right: var(--rv-padding-md);
  background-color: var(--rv-skeleton-avatar-background-color);
}
.rv-skeleton__avatar--round {
  border-radius: var(--rv-border-radius-max);
}
.rv-skeleton__content {
  width: 100%;
}
.rv-skeleton__avatar + .rv-skeleton__content {
  padding-top: var(--rv-padding-xs);
}
.rv-skeleton__row,
.rv-skeleton__title {
  height: var(--rv-skeleton-row-height);
  background-color: var(--rv-skeleton-row-background-color);
}
.rv-skeleton__title {
  width: var(--rv-skeleton-title-width);
  margin: 0;
}
.rv-skeleton__row:not(:first-child) {
  margin-top: var(--rv-skeleton-row-margin-top);
}
.rv-skeleton__title + .rv-skeleton__row {
  margin-top: 20px;
}
.rv-skeleton--animate {
  -webkit-animation: rv-skeleton-blink var(--rv-skeleton-animation-duration) ease-in-out infinite;
          animation: rv-skeleton-blink var(--rv-skeleton-animation-duration) ease-in-out infinite;
}
.rv-skeleton--round .rv-skeleton__row,
.rv-skeleton--round .rv-skeleton__title {
  border-radius: var(--rv-border-radius-max);
}
@-webkit-keyframes rv-skeleton-blink {
  50% {
    opacity: 0.6;
  }
}
@keyframes rv-skeleton-blink {
  50% {
    opacity: 0.6;
  }
}

