/* Shared configurable loader visual foundation. Feature files own only placement and lifecycle. */
.pxab-configurable-loader{position:fixed;inset:0;z-index:999990;display:none;align-items:center;justify-content:center;min-height:220px;padding:clamp(18px,4vw,38px);box-sizing:border-box;overflow:hidden;isolation:isolate}
.pxab-configurable-loader::before{content:'';position:absolute;inset:0;background:var(--pxab-loader-backdrop,#fff);opacity:calc(var(--pxab-loader-backdrop-opacity,82)*.01);backdrop-filter:blur(2px)}
.pxab-configurable-loader__box{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center;gap:var(--pxab-loader-gap,12px);max-width:min(92%,620px);box-sizing:border-box;padding:18px 22px;border-radius:var(--pxab-loader-panel-radius,24px);background:var(--pxab-loader-panel-bg,rgba(255,255,255,.92));font-size:var(--pxab-loader-font-size,18px);font-weight:850;text-align:center;line-height:1.35;color:var(--pxab-loader-text,#111827)}
.pxab-configurable-loader--style-pill .pxab-configurable-loader__box{border-radius:999px;padding:14px 24px}
.pxab-configurable-loader--style-minimal .pxab-configurable-loader__box{padding:10px;background:transparent}
.pxab-configurable-loader__box.has-loader-shadow{box-shadow:0 18px 48px rgba(15,23,42,.18)}
.pxab-configurable-loader__icon{position:relative;display:inline-flex;flex:0 0 var(--pxab-loader-icon-size,34px);align-items:center;justify-content:center;width:var(--pxab-loader-icon-size,34px);height:var(--pxab-loader-icon-size,34px);min-width:var(--pxab-loader-icon-size,34px);min-height:var(--pxab-loader-icon-size,34px);box-sizing:border-box;overflow:visible;color:var(--pxab-loader-icon,#e11d48);line-height:0;transform-origin:50% 50%}
.pxab-configurable-loader__icon svg{display:block;width:100%;height:100%;box-sizing:border-box;overflow:visible;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.pxab-configurable-loader__icon[data-pxab-loader-icon="spinner"]{border:0!important;border-radius:999px;background:none!important;-webkit-background-clip:border-box!important;background-clip:border-box!important}
.pxab-configurable-loader__icon[data-pxab-loader-icon="spinner"]::before{content:'';position:absolute;inset:0;display:block;box-sizing:border-box;border:3px solid color-mix(in srgb,currentColor 22%,transparent);border-top-color:currentColor;border-radius:999px;transform:rotate(0deg);transform-origin:50% 50%;will-change:transform}
.pxab-configurable-loader__icon[data-pxab-loader-icon="dots"]::before{content:'•••';font-size:1.25em;letter-spacing:.14em;line-height:1;transform:translateY(-.08em)}
.pxab-configurable-loader__text{min-width:0;color:var(--pxab-loader-text,#111827);overflow-wrap:anywhere}
.pxab-configurable-loader--text-gradient .pxab-configurable-loader__text{background:linear-gradient(100deg,var(--pxab-loader-gradient-1),var(--pxab-loader-gradient-2),var(--pxab-loader-gradient-3),var(--pxab-loader-gradient-1));background-size:300% 100%;-webkit-background-clip:text;background-clip:text;color:transparent}
.pxab-configurable-loader--icon-gradient .pxab-configurable-loader__icon{color:var(--pxab-loader-gradient-1,#e11d48)}
.pxab-configurable-loader--anim-spin .pxab-configurable-loader__icon[data-pxab-loader-icon="spinner"]::before{animation:pxab-configurable-loader-spin .9s linear infinite}
.pxab-configurable-loader--anim-spin .pxab-configurable-loader__icon[data-pxab-loader-icon="search"] svg{animation:pxab-configurable-loader-spin .9s linear infinite}
.pxab-configurable-loader--anim-pulse .pxab-configurable-loader__box{animation:pxab-configurable-loader-pulse 1s ease-in-out infinite alternate}
.pxab-configurable-loader--anim-bounce .pxab-configurable-loader__icon{animation:pxab-configurable-loader-bounce .75s ease-in-out infinite alternate}
.pxab-configurable-loader--anim-glow .pxab-configurable-loader__box{animation:pxab-configurable-loader-glow 1s ease-in-out infinite alternate}
.pxab-configurable-loader__character{display:inline-block;white-space:pre}
@keyframes pxab-configurable-loader-spin{to{transform:rotate(360deg)}}
@keyframes pxab-configurable-loader-pulse{to{transform:scale(1.04)}}
@keyframes pxab-configurable-loader-bounce{to{transform:translateY(-6px)}}
@keyframes pxab-configurable-loader-glow{to{box-shadow:0 18px 54px color-mix(in srgb,var(--pxab-loader-gradient-1) 30%,transparent)}}
@media(max-width:700px){.pxab-configurable-loader__box{font-size:max(15px,var(--pxab-loader-font-size,18px));padding:16px 18px}}
@media(forced-colors:active){.pxab-configurable-loader::before{background:Canvas;opacity:1}.pxab-configurable-loader__box{border:2px solid CanvasText;background:Canvas;color:CanvasText}.pxab-configurable-loader__text,.pxab-configurable-loader__icon{color:CanvasText!important;-webkit-text-fill-color:CanvasText!important}}
@media(prefers-reduced-motion:reduce){.pxab-configurable-loader *,.pxab-configurable-loader *::before,.pxab-configurable-loader *::after{animation:none!important;transition:none!important}.pxab-configurable-loader__icon[data-pxab-loader-icon="spinner"]::before{border-color:currentColor}}
