@use '../../_styles/mixin.scss' as *;

.o-message {
  display: flex;
  align-items: var(--message-align);
  padding: var(--message-padding);
  background-color: var(--message-bg-color);
  border-radius: var(--message-radius);
  box-shadow: var(--message-shadow);
  width: fit-content;
  transition: all var(--o-duration-m1) var(--o-easing-standard-out);
  text-align: center;
}

.o-message-colorful:not(.o-message-loading) {
  overflow: hidden;
  position: relative;
  background-color: rgba(var(--message-bg-color), 0.05);

  &:after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: var(--message-sidebar-width);
    height: 100%;
    background-color: rgb(var(--message-bg-color));
  }
}

.o-message-main {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  font-size: var(--message-text-size);
  line-height: var(--message-text-height);
  color: var(--message-color);
}

.o-message-content {
  overflow: hidden;
  text-overflow: ellipsis;
  text-align: var(--message-text-align);
  word-break: var(--message-word-break);
  display: -webkit-box;
  -webkit-line-clamp: var(--message-content-max-row);
  -webkit-box-orient: vertical;
}

.o-message-title {
  margin-bottom: var(--message-title-gap);
  font-size: var(--message-title-size);
  line-height: var(--message-title-height);
  font-weight: 600;
}

.o-message-icon {
  font-size: var(--message-icon-size);
  color: var(--message-icon-color);
  margin-right: var(--message-icon-gap);
  display: inline-flex;
  align-items: center;
}

.o-message-close {
  display: inline-flex;
  align-items: center;
  cursor: pointer;
  margin-left: var(--message-icon-gap);
  font-size: var(--message-icon-size);
  color: var(--message-icon-close-color);
  transition: color var(--o-duration-s) var(--o-easing-standard);

  @include x-svg-hover;
  @include hover {
    color: var(--message-icon-close-color-hover);
  }

  &:active {
    color: var(--message-icon-close-color-active);
  }
}

.o-message-list {
  position: fixed;
  z-index: var(--z-index);
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
}

.o-message-list-top {
  top: var(--message-list-top-offset);

  .o-message + .o-message {
    margin-top: var(--message-gap);
  }
}

.o-message-list-bottom {
  bottom: var(--message-list-bottom-offset);

  .o-message + .o-message {
    margin-top: var(--message-gap);
  }
}

.o-message-fade-enter-from {
  opacity: 0;
}

.o-message-fade-enter-active,
.o-message-fade-leave-active {
  transition: all var(--o-duration-m1) var(--o-easing-standard-out);
}

.o-message-fade-leave-to {
  opacity: 0;
}
