/* ==========================================================================
   Application updates
   ========================================================================== */

.app-update-progress-alert .alert__body {
  padding-bottom: var(--ingenioc-space-5);
}

.app-update-progress-text {
  color: var(--ingenioc-text);
  font-size: var(--ingenioc-font-size-sm);
  line-height: var(--ingenioc-line-height-relaxed);
}

.app-update-progress {
  display: flex;
  align-items: center;
  gap: var(--ingenioc-space-3);
  margin-top: var(--ingenioc-space-5);
}

.app-update-progress__track {
  position: relative;
  flex: 1 1 auto;
  height: var(--ingenioc-space-2);
  overflow: hidden;
  border-radius: var(--ingenioc-radius-pill);
  background: var(--ingenioc-surface-muted);
}

.app-update-progress__bar {
  width: var(--ingenioc-space-0);
  height: 100%;
  border-radius: inherit;
  background: var(--ingenioc-primary);
  transition: width var(--ingenioc-transition);
}

.app-update-progress__value {
  flex: 0 0 auto;
  min-width: var(--ingenioc-space-8);
  color: var(--ingenioc-text-muted);
  font-size: var(--ingenioc-font-size-sm);
  font-variant-numeric: tabular-nums;
  text-align: right;
}

/*
 * SecureApkUpdater не отдаёт прогресс downloadAndVerify().
 * Поэтому показываем корректный indeterminate progress, а не фальшивые 0%.
 */
.app-update-progress.is-indeterminate .app-update-progress__bar {
  position: absolute;
  width: 38%;
  animation: app-update-progress-indeterminate 1.15s linear infinite;
}

.app-update-progress.is-indeterminate .app-update-progress__value {
  color: var(--ingenioc-text-soft);
}

@keyframes app-update-progress-indeterminate {
  from {
    transform: translateX(-120%);
  }

  to {
    transform: translateX(320%);
  }
}

@media (prefers-reduced-motion: reduce) {
  .app-update-progress.is-indeterminate
  .app-update-progress__bar {
    width: 45%;
    animation: none;
    transform: translateX(60%);
  }
}