.notification-center-backdrop.ng-hide {
  opacity: 0;
}

.notification-center-backdrop.ng-hide-add, .notification-center-backdrop.ng-hide-remove {
  transition: opacity 450ms;
}

.notification-center-backdrop {
  width: 100vw;
  height: calc(100 * var(--window-inner-height));
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 81;
  outline: none;
  background-color: rgba(var(--backdrop-color));
}

.notification-center-backdrop.dark-mode {
  background-color: rgba(21, 21, 21, 0.42); /* todo: use variable */
}

.notification-center {
  box-sizing: border-box;
  width: 395px;
  max-width: calc(100 * var(--window-inner-height));
  background-color: rgba(var(--background-content));
  position: fixed;
  margin: 8px;
  margin-left: calc(env(safe-area-inset-left, 0) + 8px);
  margin-right: calc(env(safe-area-inset-right, 0) + 8px);
  right: 0;
  top: calc(var(--navbar-top-height) + env(safe-area-inset-top, 0));
  bottom: calc(var(--navbar-bottom-height) + env(safe-area-inset-bottom, 0));
  z-index: 82;
  box-shadow: 0 0 3px rgba(var(--shadow-color));
  overflow-x: hidden;
  display: none;
  opacity: 0;
  flex-direction: column;
  border-radius: var(--default-radius-large);
  animation: fadeOut 420ms ease;
}

.notification-center.is-visible {
  display: flex;
  opacity: 1;
  animation: fadeIn 420ms ease;
}

.notification-center .notification-center-toolbar {
  display: flex;
  height: 48px;
  padding: 8px;
  box-sizing: border-box;
  justify-content: center;
  align-items: center;
  background-color: rgba(var(--toolbar-color));
  color: rgba(var(--toolbar-font-color));
}

.notification-center .notification-center-toolbar h2 {
  font-size: 12pt;
  font-weight: normal;
  text-align: left;
}

.notification-center .notification-center-toolbar button {
  box-sizing: border-box;
  min-width: 0 !important;
  width: 36px !important;
  height: 36px !important;
  padding: 0;
  margin: 0;
}

.notification-center .notification-center-toolbar button md-icon {
  color: rgba(var(--toolbar-font-color));
}

.notification-center .notification-center-content {
  box-sizing: border-box;
  overflow-y: auto;
  overflow-x: hidden;
  flex-grow: 1;
  display: flex;
  flex-direction: column;
}

.notification-center .notification-group {
  display: flex;
  flex-shrink: 0;
  flex-direction: column;
  box-sizing: border-box;
  overflow: hidden;
  padding: 0;
  padding-top: 8px;
  outline: none;
  position: relative;
}

.notification-center .notification-group.ng-leave.ng-leave-active {
  animation: fadeout-from-right 420ms forwards;
}

@keyframes fadeout-from-right {
  from {
    opacity: 1;
    right: 0;
  }
  to {
    opacity: 0;
    right: -100%;
  }
}

.notification-center .notification-group .notification-group-title {
  font-size: 11pt;
  cursor: pointer;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  outline: none;
  padding: 8px;
}

.notification-center .notification-group .notification-group-title span:nth-child(2), .notification-center .notification-group .notification-group-title span:nth-child(3) {
  color: rgba(90, 90, 90, 1);
  font-size: 10pt;
  text-align: right;
  border-radius: var(--default-radius-large);
  border: 1px solid rgba(var(--primary-color));
  padding: 0 4px;
}

.notification-center .notification-group.is-expanded .notification-group-title span:nth-child(2), .notification-center .notification-group .notification-group-title span:nth-child(3) {
  display: none;
}

.notification-center .notification-group.is-expanded .notification-group-title span:nth-child(3) {
  display: inline-block;
}

.notification-center .notification-group .notification-directive {
  transform: translateX(0);
}

.notification-center .notification-group-content.is-stack::before {
  box-shadow: none;
}

.notification-center.is-expanded .notification-group-content.is-stack {
  box-shadow: none;
}

.notification-center .notification-group .notification-directive.ng-enter {
  transition: transform 420ms ease;
  transform: translateX(100%);
}

.notification-center .notification-group .notification-directive.ng-enter-active {
  transform: translateX(0);
}

.notification-center .notification-group .notification-directive:nth-child(n+2) {
  display: none;
  animation: fadeOut 420ms ease forwards;
}

.notification-center .notification-group.is-expanded .notification-directive:nth-child(n+2) {
  display: flex;
  animation: fadeIn 420ms ease forwards;
}

.notification-center .notification-group .notification-group-more {
  color: rgba(var(--color-alpha-black));
}

.notification-center .notification-group .notification-group-content {
  display: flex;
  flex-direction: column;
}

.notification-center .notification-group.is-expanded .notification-group-more {
  display: none;
}

.notification-center .notification-center-actions {
  box-sizing: border-box;
  display: flex;
  height: 52px;
  justify-content: flex-end;
  align-items: center;
  background-color: rgba(var(--background-content-accent));
}

.notification-center .notification-center-actions button {
  flex: 1;
  font-size: 10pt;
  text-overflow: ellipsis;
}

.notification-center .no-notifications {
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
  padding: 8px;
  color: rgba(var(--font-color), 0.42);
  flex: 1;
}

@media (max-width: 599px) {
  .notification-center {
    min-width: 0;
    width: 100vw;
    margin: 0;
    box-shadow: none;
    box-sizing: content-box;
    border-radius: 0
  }
}

@keyframes fadeIn {
  0% {
    display: none;
    opacity: 0;
  }
  1% {
    display: flex;
    opacity: 0;
  }
  100% {
    display: flex;
    opacity: 1;
  }
}

@keyframes fadeOut {
  0% {
    display: flex;
    opacity: 1;
  }
  99% {
    display: flex;
    opacity: 0;
  }
  100% {
    display: none;
    opacity: 0;
  }
}