.loading-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: oklch(0% 0 0 / 0.7);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: var(--z-overlay);
}

.loading-content {
    background: var(--lora-surface);
    backdrop-filter: blur(24px);
    padding: var(--space-3);
    border-radius: var(--border-radius-base);
    text-align: center;
    border: 1px solid var(--lora-border);
    width: min(400px, 90vw);
}

.loading-spinner {
    border: 4px solid #f3f3f3;
    border-top: 4px solid #3498db;
    border-radius: 50%;
    width: 40px;
    height: 40px;
    animation: spin 1s linear infinite;
    margin: 0 auto 1rem;
}

.loading-status {
    margin-bottom: 1rem;
    color: var(--text-color);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
    padding: 0 var(--space-2);
}

.progress-container {
    width: 280px;
    background-color: var(--lora-border);
    border-radius: 4px;
    overflow: hidden;
    margin: 0 auto;
}

.progress-bar {
    width: 0%;
    height: var(--space-2);
    background-color: var(--lora-accent);
    transition: width 200ms ease-out;
}

/* Enhanced progress display */
.progress-details-container {
    margin-top: var(--space-3);
    width: 100%;
    text-align: left;
}

.overall-progress-label {
    font-size: 0.9rem;
    margin-bottom: var(--space-1);
    color: var(--text-color);
}

.current-item-progress {
    margin-top: var(--space-2);
}

.current-item-label {
    font-size: 0.9rem;
    margin-bottom: var(--space-1);
    color: var(--text-color);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.current-item-bar-container {
    height: 8px;
    background-color: var(--lora-border);
    border-radius: 4px;
    overflow: hidden;
    margin-bottom: var(--space-1);
}

.current-item-bar {
    height: 100%;
    background-color: var(--lora-accent);
    transition: width 200ms ease-out;
    width: 0%;
}

.current-item-percent {
    font-size: 0.8rem;
    color: var(--text-color-secondary, var(--text-color));
    opacity: 0.7;
}

.download-transfer-stats {
    margin-top: var(--space-2);
    font-size: 0.85rem;
    color: var(--text-color);
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
}

.download-transfer-stats .download-transfer-bytes,
.download-transfer-stats .download-transfer-speed {
    display: flex;
    align-items: center;
    gap: var(--space-1);
    white-space: nowrap;
}

@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

@media (prefers-reduced-motion: reduce) {
    .model-card,
    .progress-bar,
    .current-item-bar {
        transition: none;
    }
}
