/* BlurHash progressive image loading — shared across site / manager / kiosk */
.prog-img {
  position: relative;
  display: inline-block;
  overflow: hidden;
  vertical-align: middle;
  background: #1e293b;
  line-height: 0;
}

.prog-img--block {
  display: block;
  width: 100%;
}

.prog-img--48 {
  width: 48px;
  height: 48px;
  border-radius: 6px;
}

.prog-img--72 {
  width: 72px;
  height: 72px;
  border-radius: 8px;
}

.prog-img--96 {
  width: 96px;
  height: 96px;
  border-radius: 8px;
}

.prog-img--fill {
  width: 100%;
  height: 100%;
}

.prog-img-placeholder {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.08);
  transform-origin: center;
  pointer-events: none;
  z-index: 0;
}

.prog-img-placeholder--inline {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  transform: scale(1.08);
  pointer-events: none;
  z-index: 0;
}

.prog-img-main {
  position: relative;
  z-index: 1;
  display: block;
  max-width: 100%;
  opacity: 0;
  filter: blur(18px);
  transform: scale(1.04);
  transition:
    opacity 0.45s ease,
    filter 0.45s ease,
    transform 0.45s ease;
}

.prog-img.is-loaded .prog-img-main,
img.prog-img-inline.is-loaded {
  opacity: 1;
  filter: blur(0);
  transform: scale(1);
}

.prog-img.is-loaded .prog-img-placeholder,
img.prog-img-inline.is-loaded + .prog-img-placeholder--inline,
img.prog-img-inline.is-loaded ~ .prog-img-placeholder--inline {
  opacity: 0;
  transition: opacity 0.35s ease;
}

.prog-img--48 .prog-img-main,
.prog-img--48 .prog-img-placeholder {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 6px;
}

.prog-img--72 .prog-img-main,
.prog-img--72 .prog-img-placeholder {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 8px;
}

.prog-img--96 .prog-img-main,
.prog-img--96 .prog-img-placeholder {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 8px;
}

.prog-img--fill .prog-img-main {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.prog-img--block .prog-img-main {
  width: 100%;
  height: auto;
}

.prog-img-host {
  position: relative;
}

.prog-img-host > .prog-img-placeholder--inline {
  position: absolute;
  inset: 0;
}
