.loading-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,0.7);display:flex;justify-content:center;align-items:center;z-index:9999;opacity:1;transition:opacity 0.3s ease}.loading-overlay.hidden{opacity:0;pointer-events:none}.loading-content{background:white;border-radius:12px;padding:2rem;max-width:500px;width:90%;box-shadow:0 10px 40px rgba(0,0,0,0.3);text-align:center}.loader{width:50px;aspect-ratio:1;display:grid;margin:0 auto 1.5rem}.loader:before,.loader:after{content:'';grid-area:1/1;border-radius:50%;background:#ff9900;-webkit-mask:repeating-linear-gradient(#000 0 5px,#0000 0 10px);mask:repeating-linear-gradient(#000 0 5px,#0000 0 10px);animation:l35 1.5s infinite}.loader:after{-webkit-mask:repeating-linear-gradient(#0000 0 5px,#000 0 10px);mask:repeating-linear-gradient(#0000 0 5px,#000 0 10px);--s:-1}@keyframes l35{0%,10%{transform:translate(0) rotate(0)}35%{transform:translate(calc(var(--s,1) * 50%)) rotate(0)}66%{transform:translate(calc(var(--s,1) * 50%)) rotate(calc(var(--s,1) * 180deg))}90%,100%{transform:translate(0) rotate(calc(var(--s,1) * 180deg))}}.loading-steps{margin:1.5rem 0;text-align:left}.loading-step{display:flex;align-items:center;padding:0.75rem 1rem;margin:0.5rem 0;border-radius:8px;background:#f5f5f5;opacity:0.4;transition:all 0.3s ease}.loading-step.active{opacity:1;background:#fff3e0;border-left:4px solid #ff9900}.loading-step.completed{opacity:0.7;background:#e8f5e9}.loading-step .step-icon{font-size:1.5rem;margin-right:1rem;min-width:2rem}.loading-step .step-text{font-size:0.95rem;color:#333}.loading-progress{margin:1.5rem 0 1rem}.progress-bar{width:100%;height:8px;background:#e0e0e0;border-radius:4px;overflow:hidden;margin-bottom:0.5rem}.progress-fill{height:100%;background:linear-gradient(90deg,#ff9900,#ffb84d);border-radius:4px;width:0%;transition:width 0.5s ease}.progress-text{font-size:0.9rem;color:#666;font-weight:500}.loading-retry{margin-top:1.5rem;padding:1rem;background:#fff3cd;border-left:4px solid #ffc107;border-radius:8px;display:flex;align-items:center;text-align:left}.loading-retry.hidden{display:none}.loading-retry .retry-icon{font-size:1.5rem;margin-right:1rem;animation:rotate 2s linear infinite}.loading-retry .retry-text{font-size:0.9rem;color:#856404}@keyframes rotate{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}