/* Shared VendPlay loading screen. Hidden until its controller starts. */
.vp-loader { display:none; }
.vp-loader.is-active {
 display:flex; position:fixed; inset:0; z-index:10000; overflow:hidden;
 align-items:center; justify-content:center; padding:28px;
 background:radial-gradient(ellipse at 50% 42%, #fff 0%, #f3faf7 45%, #e2efeb 100%) !important;
 color:#142a2a; opacity:1; visibility:visible;
 transition:opacity .4s ease, visibility .4s ease;
}
.vp-loader::after { display:none !important; content:none !important; }
.vp-loader.is-active::before {
 content:""; position:absolute; width:min(78vw,620px); aspect-ratio:1;
 border:1px solid rgba(0,151,120,.12); border-radius:50%;
 box-shadow:0 0 0 64px rgba(0,151,120,.035),0 0 0 128px rgba(0,151,120,.025);
 pointer-events:none;
}
.vp-loader-content { position:relative; width:min(100%,340px); text-align:center; }
.vp-loader .vp-loader-logo {
 display:block; width:min(100%,280px); height:auto; margin:0 auto 24px; animation:none;
 filter:drop-shadow(0 8px 12px rgba(10,50,42,.06));
}
.vp-loader-tagline { margin:0 0 44px; font:600 11px/1.5 "Plus Jakarta Sans",sans-serif; letter-spacing:.2em; text-transform:uppercase; color:#4c7067; }
.vp-loader-meta { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px; font:600 13px/1.5 "Plus Jakarta Sans",sans-serif; }
.vp-loader-indicator { width:7px; height:7px; flex:none; border-radius:50%; background:#00ab88; box-shadow:0 0 0 5px rgba(0,171,136,.1); animation:vpLoadingPulse 1.6s ease-in-out infinite; }
.vp-loader .vp-loader-track { width:100%; height:5px; margin:0; border-radius:20px; overflow:hidden; background:rgba(16,73,59,.1); animation:none; }
.vp-loader .vp-loader-bar { width:100% !important; height:100%; background:linear-gradient(90deg,#078b74,#00cda3); transform:scaleX(0); transform-origin:left; animation:none; transition:transform .35s ease; }
.vp-loader-note { margin:16px 0 0; color:#648077; font:400 12px/1.5 "Plus Jakarta Sans",sans-serif; }
.vp-loader.is-active.hidden { opacity:0; visibility:hidden; pointer-events:none; }
@keyframes vpLoadingPulse { 50% { opacity:.45; box-shadow:0 0 0 8px rgba(0,171,136,.04); } }
@media(prefers-reduced-motion:reduce) { .vp-loader.is-active,.vp-loader .vp-loader-bar { transition:none; } .vp-loader-indicator { animation:none; } }
