

.loading-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(var(--sw-white-rgb), 0.65);
    z-index: 99999;
    display: flex;
    align-items: flex-end;
    justify-content: flex-end;
    padding: 0 28px 28px 0;
    box-sizing: border-box;
}

.loading-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 14px;
}

.loading-logo-container {
    position: relative;
    width: 64px;
    height: 80px;
}

.loading-logo-gray,
.loading-logo-color {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.loading-logo-gray {
    filter: grayscale(1) brightness(1.4) opacity(0.6);
}

.loading-logo-color {
    clip-path: inset(100% 0 0 0);
}

.loading-spinner {
    width: 36px;
    height: 36px;
    position: relative;
}

.loading-spinner-dot {
    width: 5px;
    height: 5px;
    background: var(--brand-primary, var(--sw-ink-600));
    border-radius: 50%;
    position: absolute;
    animation: loading-pulse 1.2s ease-in-out infinite;
}

@keyframes loading-pulse {
    0%, 100% { transform: scale(0.6); opacity: 0.4; }
    50% { transform: scale(1.4); opacity: 1; }
}

.loading-message { display:none; margin:0; font-weight:600; text-align:center; }
.loading-overlay.is-blocking, body.sw-sim-generating .loading-overlay { display:flex!important;align-items:center;justify-content:center;padding:24px;background:rgba(var(--sw-white-rgb),.92); }
.loading-overlay.is-blocking .loading-message,body.sw-sim-generating .loading-message { display:block; }

.loading-cancel { min-height:44px; max-width:100%; white-space:normal; }
.loading-overlay.is-blocking .loading-content { max-width:100%; }
