*{box-sizing:border-box}
html,body{margin:0;min-height:100%;font-family:"Segoe UI",Arial,sans-serif}
body{height:100vh;display:grid;place-items:center;background:#f4f7fb;overflow:hidden;opacity:1;transition:opacity .32s ease}
body.loader-leaving{opacity:0}
.enterprise-loader{width:60px;height:60px;display:grid;grid-template-columns:repeat(2,21px);grid-template-rows:repeat(2,21px);gap:8px;align-content:center;justify-content:center;filter:drop-shadow(0 8px 22px rgba(15,108,189,.18))}
.enterprise-loader span{display:block;width:21px;height:21px;border-radius:5px;background:#0f6cbd;color:#0f6cbd;font-size:0;animation:rdPulse 1.15s ease-in-out infinite;will-change:transform,opacity}
.enterprise-loader span:nth-child(2){animation-delay:.12s}
.enterprise-loader span:nth-child(3){animation-delay:.36s}
.enterprise-loader span:nth-child(4){animation-delay:.24s}
@keyframes rdPulse{0%,100%{opacity:.25;transform:scale(.76)}50%{opacity:1;transform:scale(1)}}
@media (max-width:480px){.enterprise-loader{width:54px;height:54px;grid-template-columns:repeat(2,19px);grid-template-rows:repeat(2,19px);gap:7px}.enterprise-loader span{width:19px;height:19px;border-radius:4px}}
@media (prefers-reduced-motion:reduce){body{transition:none}.enterprise-loader span{animation:rdReduced 1.15s ease-in-out infinite}@keyframes rdReduced{0%,100%{opacity:.35}50%{opacity:1}}}


/* edisportal V4 - Loading viewport safety */
html,body{width:100%;max-width:100%;min-height:100dvh}
body{height:100dvh}
@media(max-height:320px){.enterprise-loader{transform:scale(.82)}}
