.processing-panel,
.error-panel {
  min-height: 480px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 35px;
  text-align: center;
}

.processing-panel[hidden],
.error-panel[hidden] { display: none; }

.processing-panel h3,
.error-panel h3 {
  margin: 25px 0 7px;
  font-size: 1.6rem;
}

.processing-panel p,
.error-panel p {
  max-width: 370px;
  margin: 0;
  color: var(--muted);
}

.processing-ring {
  position: relative;
  width: 148px;
  height: 148px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: conic-gradient(var(--blue) 0deg, var(--acid) 90deg, #e2e4de 90deg);
  animation: ring-spin 2.6s linear infinite;
}

.processing-ring::before {
  content: "";
  position: absolute;
  inset: 10px;
  border-radius: 50%;
  background: #fff;
}

.processing-ring span {
  position: relative;
  z-index: 1;
  font-size: 2rem;
  font-weight: 800;
  animation: ring-counter 2.6s linear infinite;
}

.processing-line {
  width: min(330px, 90%);
  height: 4px;
  margin-top: 32px;
  overflow: hidden;
  background: #e6e8e2;
}

.processing-line span {
  display: block;
  width: 38%;
  height: 100%;
  background: var(--blue);
  animation: processing-slide 1.3s ease-in-out infinite;
}

.error-mark {
  width: 78px;
  height: 78px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #ffe4e0;
  color: #d9392c;
  font-size: 2.3rem;
  font-weight: 800;
}

.error-panel .button { margin-top: 28px; }

@keyframes ring-spin { to { transform: rotate(360deg); } }
@keyframes ring-counter { to { transform: rotate(-360deg); } }
@keyframes processing-slide {
  0% { transform: translateX(-100%); }
  50% { transform: translateX(165%); }
  100% { transform: translateX(-100%); }
}
