
/* Shared loading skeleton: prevents blank transitions and empty async regions. */
#pageSkeleton{display:none;position:fixed;z-index:950;inset:58px 0 0;background:#080a0f;padding:clamp(18px,3vw,36px);overflow:hidden;pointer-events:none}
html.ui-loading #pageSkeleton{display:block}
.ui-skeleton-inner{max-width:1180px;margin:0 auto}
.ui-skeleton-line,.ui-skeleton-card,.ui-skeleton-pill{position:relative;overflow:hidden;background:#111922;border:1px solid #1e2a36}
.ui-skeleton-line::after,.ui-skeleton-card::after,.ui-skeleton-pill::after,.ui-region-skeleton span::after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.07),transparent);animation:ui-skeleton-shimmer 1.35s infinite}
.ui-skeleton-line{height:13px;border-radius:6px;margin:8px 0}.ui-skeleton-line.lg{height:30px;width:min(420px,70%);margin-bottom:16px}.ui-skeleton-line.sm{width:36%}
.ui-skeleton-pills{display:flex;gap:8px;margin:18px 0}.ui-skeleton-pill{width:82px;height:30px;border-radius:999px}
.ui-skeleton-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:16px 0}
.ui-skeleton-card{height:92px;border-radius:12px}
.ui-skeleton-table{border:1px solid #1e2a36;border-radius:14px;padding:12px;background:#0b1118}
.ui-skeleton-table .ui-skeleton-line{height:18px;margin:10px 0}
.ui-region-skeleton{min-height:120px;display:grid;gap:9px;padding:14px;border:1px solid #1e2a36;border-radius:12px;background:#0b1118}
.ui-region-skeleton span{position:relative;overflow:hidden;display:block;height:16px;border-radius:6px;background:#111922}.ui-region-skeleton span:nth-child(2n){width:82%}.ui-region-skeleton span:nth-child(3n){width:64%}
@keyframes ui-skeleton-shimmer{100%{transform:translateX(100%)}}
@media(max-width:760px){#pageSkeleton{inset:54px 0 0}.ui-skeleton-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){.ui-skeleton-line::after,.ui-skeleton-card::after,.ui-skeleton-pill::after,.ui-region-skeleton span::after{animation:none}}
