/* XENA Universe shared blocking-state layer.
   A server transaction must never look like a dead tap.  Individual pages can
   call XenaLoading.track()/show(), while ordinary navigation is covered here. */
#xena-global-loader[hidden]{display:none!important}
#xena-global-loader{position:fixed;inset:0;z-index:2147483000;display:grid;place-items:center;padding:max(24px,env(safe-area-inset-top)) 24px max(24px,env(safe-area-inset-bottom));background:radial-gradient(circle at 50% 42%,rgba(30,18,58,.78),rgba(2,4,13,.94) 62%);backdrop-filter:blur(11px);-webkit-backdrop-filter:blur(11px);opacity:0;transition:opacity .18s ease;pointer-events:auto}
#xena-global-loader.is-visible{opacity:1}
.xena-loader__panel{width:min(320px,calc(100vw - 48px));padding:25px 25px 22px;border:1px solid rgba(99,231,255,.62);border-radius:20px;background:linear-gradient(145deg,rgba(12,19,41,.96),rgba(35,11,54,.95));box-shadow:0 0 0 1px rgba(255,48,176,.2) inset,0 20px 65px rgba(0,0,0,.65),0 0 40px rgba(63,224,255,.22);text-align:center;color:#effaff;font-family:Manrope,system-ui,sans-serif}
.xena-loader__rings{position:relative;width:62px;height:62px;margin:0 auto 18px;border:2px solid rgba(63,224,255,.22);border-top-color:#5eefff;border-right-color:#ff4ac0;border-radius:50%;animation:xenaLoaderSpin .9s linear infinite}
.xena-loader__rings:after{content:"X";position:absolute;inset:8px;display:grid;place-items:center;border:1px solid rgba(232,196,104,.65);border-radius:50%;font:800 17px/1 ui-monospace,monospace;color:#f6d777;text-shadow:0 0 12px rgba(232,196,104,.7)}
.xena-loader__eyebrow{display:block;margin-bottom:7px;color:#6eeeff;font:700 10px/1.2 ui-monospace,monospace;letter-spacing:.22em}
.xena-loader__label{display:block;font-size:15px;font-weight:800;line-height:1.45}
.xena-loader__bar{height:3px;overflow:hidden;margin-top:17px;border-radius:99px;background:rgba(255,255,255,.1)}
.xena-loader__bar i{display:block;width:46%;height:100%;border-radius:inherit;background:linear-gradient(90deg,#5eefff,#ff4ac0,#f3d473);animation:xenaLoaderSweep 1.05s ease-in-out infinite}
@keyframes xenaLoaderSpin{to{transform:rotate(360deg)}}
@keyframes xenaLoaderSweep{0%{transform:translateX(-115%)}100%{transform:translateX(250%)}}
@media(prefers-reduced-motion:reduce){.xena-loader__rings,.xena-loader__bar i{animation:none}}
