/* One calm waiting state for the storefront and its admin panel. */
@keyframes sf-loading-turn { to { rotate: 360deg; } }
button[aria-busy="true"]:not([data-image-loading]),
.pv-body button[aria-busy="true"]:not([data-image-loading]) { cursor: default; opacity: 1; }
button[aria-busy="true"]:not([data-image-loading]) { display: inline-flex; align-items: center; justify-content: center; gap: 12px; }
button[aria-busy="true"]:not([data-image-loading]) > svg { display: none; }
button[aria-busy="true"]:not([data-image-loading])::after,
[data-loading-status][data-loading-active]::before,
[data-image-loading][aria-busy="true"]::after {
  content: ""; display: inline-block; box-sizing: border-box; width: 16px; height: 16px;
  flex: 0 0 16px; border: 1px solid transparent; border-top-color: currentColor; border-right-color: currentColor;
  border-radius: 50%; animation: sf-loading-turn 1s linear infinite;
}
[data-loading-status] { display: inline-flex; align-items: center; gap: 10px; }
[data-loading-status][hidden] { display: none !important; }
.sf-page-loading { position: fixed; z-index: 120; left: 50%; bottom: max(24px, env(safe-area-inset-bottom)); translate: -50% 0;
  max-width: calc(100vw - 32px); padding: 12px 16px; border: 1px solid #e5e5e5;
  background: #fff; color: #111; font: 400 11px/1.5 Onest, Arial, sans-serif;
  letter-spacing: .08em; text-transform: uppercase;
  pointer-events: none;
}
body[data-page-loading], body[data-page-loading] *,
.pv-body[data-page-loading], .pv-body[data-page-loading] * { cursor: default; }
.pv-body [aria-busy="true"] :disabled, .pv-body [aria-busy="true"] [aria-disabled="true"] { cursor: default; }
[data-image-loading]:not(dialog) { position: relative; }
[data-image-loading][aria-busy="true"]::after { position: absolute; inset: 0; margin: auto; color: #111; pointer-events: none; }
[data-image-loading][data-image-failed] > img { visibility: hidden; }
[data-image-loading][data-image-failed]::after { content: "Фото не загрузилось"; position: absolute; inset: 0; display: grid;
  place-content: center; padding: 8px; color: #777; background: #f7f7f7; text-align: center; font-size: 11px; pointer-events: none;
}
.pv-cart-loading { margin: 12px 0; min-height: 22px; color: #666; font-size: 13px; }
@media (prefers-reduced-motion: reduce) {
  button[aria-busy="true"]::after, [data-loading-status][data-loading-active]::before,
  [data-image-loading][aria-busy="true"]::after { animation: none; }
}
