.loading-overlay{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;background:#10182866;backdrop-filter:blur(2px);animation:loading-fade .15s ease}
.loading-overlay[hidden]{display:none}
.loading-box{display:flex;flex-direction:column;align-items:center;gap:14px;min-width:260px;padding:28px 32px;border-radius:16px;background:var(--surface,#fff);color:var(--text,#1d2939);border:1px solid var(--border,#e4e7ec);box-shadow:0 20px 50px #10182833;text-align:center}
.loading-box strong{font-size:16px;font-weight:600}
.loading-box small{color:var(--muted,#667085);font-size:12px}
.loading-spinner{width:44px;height:44px;border-radius:50%;border:4px solid var(--border,#e4e7ec);border-top-color:var(--primary,#465fff);animation:loading-spin .8s linear infinite}
body.loading-active{cursor:progress;overflow:hidden}
@keyframes loading-spin{to{transform:rotate(360deg)}}
@keyframes loading-fade{from{opacity:0}to{opacity:1}}
@media (prefers-reduced-motion:reduce){.loading-spinner{animation-duration:1.6s}.loading-overlay{animation:none}}
