/* Global loading gate — full-screen until markReady() lifts it (js/loading.js). */
#app-loading{position:fixed;inset:0;z-index:2000;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:18px;background:#0b1220;color:#eaf2fb;font:600 14px/1 system-ui,'Segoe UI',sans-serif;opacity:1;transition:opacity .3s ease}
#app-loading.off{opacity:0;pointer-events:none}
#app-loading .al-spin{width:44px;height:44px;border-radius:50%;border:4px solid rgba(255,255,255,.14);border-top-color:#00e5ab;animation:al-spin .8s linear infinite}
#app-loading .al-lbl{letter-spacing:2px;text-transform:uppercase;font-size:.8rem;color:#8ea2b6}
#app-loading .al-bar{width:min(220px,56vw);height:6px;border-radius:999px;background:rgba(255,255,255,.1);overflow:hidden}
#app-loading .al-bar > i{display:block;height:100%;width:12%;border-radius:inherit;background:linear-gradient(90deg,#00e5ab,#5eead4);
  transform-origin:left center;animation:al-indeterminate 1.1s ease-in-out infinite}
#app-loading .al-bar.determinate > i{animation:none;width:0%;transition:width .25s ease}
@keyframes al-spin{to{transform:rotate(360deg)}}
@keyframes al-indeterminate{
  0%{transform:translateX(-120%) scaleX(.35)}
  50%{transform:translateX(80%) scaleX(.7)}
  100%{transform:translateX(280%) scaleX(.35)}
}
@media (prefers-reduced-motion:reduce){
  #app-loading .al-spin,#app-loading .al-bar > i{animation:none}
  #app-loading .al-bar > i{width:40%}
}
