:root {
  --el-popup-modal-bg-color: var(--el-color-black);
  --el-popup-modal-opacity: .5;
}

.v-modal-enter {
  animation: v-modal-in var(--el-transition-duration-fast) ease;
}

.v-modal-leave {
  animation: v-modal-out var(--el-transition-duration-fast) ease forwards;
}

@keyframes v-modal-in {
  0% {
    opacity: 0;
  }
}

@keyframes v-modal-out {
  to {
    opacity: 0;
  }
}

.v-modal {
  width: 100%;
  height: 100%;
  opacity: var(--el-popup-modal-opacity);
  background: var(--el-popup-modal-bg-color);
  position: fixed;
  top: 0;
  left: 0;
}

.el-popup-parent--hidden {
  overflow: hidden;
}

.el-dialog {
  --el-dialog-width: 50%;
  --el-dialog-margin-top: 15vh;
  --el-dialog-bg-color: var(--el-bg-color);
  --el-dialog-box-shadow: var(--el-box-shadow);
  --el-dialog-title-font-size: var(--el-font-size-large);
  --el-dialog-content-font-size: 14px;
  --el-dialog-font-line-height: var(--el-font-line-height-primary);
  --el-dialog-padding-primary: 16px;
  --el-dialog-border-radius: var(--el-border-radius-base);
  margin: var(--el-dialog-margin-top, 15vh) auto 50px;
  background: var(--el-dialog-bg-color);
  border-radius: var(--el-dialog-border-radius);
  box-shadow: var(--el-dialog-box-shadow);
  box-sizing: border-box;
  padding: var(--el-dialog-padding-primary);
  width: var(--el-dialog-width, 50%);
  overflow-wrap: break-word;
  position: relative;
}

.el-dialog:focus {
  outline: none !important;
}

.el-dialog.is-align-center {
  margin: auto;
}

.el-dialog.is-fullscreen {
  --el-dialog-width: 100%;
  --el-dialog-margin-top: 0;
  border-radius: 0;
  height: 100%;
  margin-bottom: 0;
  overflow: auto;
}

.el-dialog__wrapper {
  margin: 0;
  position: fixed;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  overflow: auto;
}

.el-dialog.is-draggable .el-dialog__header {
  cursor: move;
  -webkit-user-select: none;
  user-select: none;
}

.el-dialog__header {
  padding-bottom: var(--el-dialog-padding-primary);
}

.el-dialog__header.show-close {
  padding-right: calc(var(--el-dialog-padding-primary) + var(--el-message-close-size, 16px));
}

.el-dialog__headerbtn {
  cursor: pointer;
  width: 48px;
  height: 48px;
  font-size: var(--el-message-close-size, 16px);
  background: none;
  border: none;
  outline: none;
  padding: 0;
  position: absolute;
  top: 0;
  right: 0;
}

.el-dialog__headerbtn .el-dialog__close {
  color: var(--el-color-info);
  font-size: inherit;
}

.el-dialog__headerbtn:focus .el-dialog__close, .el-dialog__headerbtn:hover .el-dialog__close {
  color: var(--el-color-primary);
}

.el-dialog__title {
  line-height: var(--el-dialog-font-line-height);
  font-size: var(--el-dialog-title-font-size);
  color: var(--el-text-color-primary);
}

.el-dialog__body {
  color: var(--el-text-color-regular);
  font-size: var(--el-dialog-content-font-size);
}

.el-dialog__footer {
  padding-top: var(--el-dialog-padding-primary);
  text-align: right;
  box-sizing: border-box;
}

.el-dialog--center {
  text-align: center;
}

.el-dialog--center .el-dialog__body {
  text-align: initial;
}

.el-dialog--center .el-dialog__footer {
  text-align: inherit;
}

.el-modal-dialog.is-penetrable {
  pointer-events: none;
}

.el-modal-dialog.is-penetrable .el-dialog {
  pointer-events: auto;
}

.el-overlay-dialog {
  position: fixed;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  overflow: auto;
}

.el-overlay-dialog.is-closing .el-dialog {
  pointer-events: none;
}

.dialog-fade-enter-active {
  animation: modal-fade-in var(--el-transition-duration);
}

.dialog-fade-enter-active .el-overlay-dialog {
  animation: dialog-fade-in var(--el-transition-duration);
}

.dialog-fade-leave-active {
  animation: modal-fade-out var(--el-transition-duration);
}

.dialog-fade-leave-active .el-overlay-dialog {
  animation: dialog-fade-out var(--el-transition-duration);
}

@keyframes dialog-fade-in {
  0% {
    opacity: 0;
    transform: translateY(-20px);
  }

  to {
    opacity: 1;
    transform: translate(0);
  }
}

@keyframes dialog-fade-out {
  0% {
    opacity: 1;
    transform: translate(0);
  }

  to {
    opacity: 0;
    transform: translateY(-20px);
  }
}

@keyframes modal-fade-in {
  0% {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

@keyframes modal-fade-out {
  0% {
    opacity: 1;
  }

  to {
    opacity: 0;
  }
}
