.pwa-update {
  position: fixed;
  z-index: 1000;
  right: max(1rem, env(safe-area-inset-right));
  bottom: max(1rem, env(safe-area-inset-bottom));
  left: max(1rem, env(safe-area-inset-left));
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  max-width: 32rem;
  min-height: 3.5rem;
  margin-left: auto;
  padding: 0.65rem 0.75rem 0.65rem 1rem;
  color: #f8f2df;
  font: 600 0.9rem/1.35 system-ui, sans-serif;
  background: #101c2e;
  border: 1px solid #ffd98b;
  border-radius: 1rem;
  box-shadow: 0 0.75rem 2.5rem rgb(0 0 0 / 45%);
}

.pwa-update[hidden] {
  display: none;
}

.pwa-update__button {
  min-width: 6.5rem;
  min-height: 2.75rem;
  padding: 0.55rem 0.8rem;
  color: #09101a;
  font: inherit;
  background: #ffd98b;
  border: 0;
  border-radius: 0.75rem;
  cursor: pointer;
}

.pwa-update__actions {
  display: flex;
  align-items: center;
  gap: 0.4rem;
}

.pwa-update__button--quiet {
  min-width: 4rem;
  color: #f8f2df;
  background: transparent;
  border: 1px solid rgb(248 242 223 / 45%);
}

.pwa-update__button:focus-visible {
  outline: 3px solid #73d8ff;
  outline-offset: 3px;
}

@media (min-width: 40rem) {
  .pwa-update {
    left: auto;
  }
}

@media (max-width: 24rem) {
  .pwa-update {
    align-items: stretch;
    flex-direction: column;
  }

  .pwa-update__actions {
    justify-content: flex-end;
  }
}

@media (prefers-reduced-motion: no-preference) {
  .pwa-update:not([hidden]) {
    animation: pwa-update-arrive 180ms ease-out both;
  }
}

@keyframes pwa-update-arrive {
  from {
    opacity: 0;
    transform: translateY(0.75rem);
  }
}
