/* V72: visible native CSS animation on all image loaders and DashboardQuick cards.
   The old SVG animation inside CSS background did not rotate in every
   browser, and Dashboard .admin-visual-link::after had display:none!important. */
img.bhs-image-loading{background-color:#f1f7f5!important;
 background-image:url("/assets/site/images/behsanj-loading-spinner.svg")!important;
 background-position:center!important;background-repeat:no-repeat!important;
 background-size:32px 32px!important}
img.bhs-image-error{background-color:#f3f5f5}
.admin-visual-link.bhs-quick-image-loading{position:relative}
.admin-visual-link.bhs-quick-image-loading::after{
 content:""!important;display:block!important;position:absolute!important;
 width:38px;height:38px;left:50%;top:37%;
 border:4px solid #daece5;border-top-color:#0b7667;
 background:#fff;border-radius:50%;
 box-shadow:0 2px 12px rgba(0,50,40,.14);
 transform:translate(-50%,-50%);
 animation:bhs-dashboard-spinner-v57 .72s linear infinite!important;
 z-index:5;pointer-events:none;opacity:1!important
}
@keyframes bhs-dashboard-spinner-v57{
  from{transform:translate(-50%,-50%) rotate(0deg)}
  to{transform:translate(-50%,-50%) rotate(360deg)}
}
@media(prefers-reduced-motion:reduce){
 img.bhs-image-loading{background-image:none!important}
 .admin-visual-link.bhs-quick-image-loading::after{animation:none!important;
 border-top-color:#0b7667}
}

/* V72: CSS background SVGs cannot be relied on to animate when rendered as
   img backgrounds. The image observer adds a layout-neutral, absolute sibling
   to the image's existing parent; only the inner ring rotates. */
.bhs-image-loader-host{position:relative}
.bhs-image-spinner-overlay-active.bhs-image-loading{
 background-image:none!important
}
.bhs-image-loader-indicator{
 position:absolute!important;display:block!important;
 left:50%;top:50%;width:var(--bhs-image-spinner-size,34px);
 height:var(--bhs-image-spinner-size,34px);
 z-index:12;pointer-events:none!important;
 transform:translate(-50%,-50%);
 border-radius:50%;
 background:rgba(255,255,255,.9);
 box-shadow:0 2px 12px rgba(11,81,62,.13);
}
.bhs-image-loader-indicator::before{
 content:"";display:block;position:absolute;inset:2px;
 border:3px solid #d1e9df;border-top-color:#087c62;
 border-right-color:#11a180;border-radius:50%;
 animation:bhs-image-spinner-rotate-v72 .75s linear infinite!important;
 will-change:transform;
}
@keyframes bhs-image-spinner-rotate-v72{
 0%{transform:rotate(0deg)}
 100%{transform:rotate(360deg)}
}
@media(prefers-reduced-motion:reduce){
 .bhs-image-loader-indicator::before{
   animation:none!important;will-change:auto
 }
}
