/* GenerationProgress overlay (MP-07). Live theme variables only. */
.genprog-root { position: fixed; inset: 0; z-index: 1000; display: grid; place-items: center; padding: 1rem; }
.genprog-backdrop { position: absolute; inset: 0; background: var(--modal-overlay-bg, rgba(0,0,0,0.55)); backdrop-filter: blur(2px); }
.genprog-card {
    position: relative; width: min(520px, 100%); background: var(--bg-primary); color: var(--text-primary);
    border: 1px solid var(--border-primary); border-radius: 0.75rem; box-shadow: var(--shadow-xl, 0 20px 60px rgba(0,0,0,0.3));
    padding: 1.4rem 1.5rem;
}
.genprog-head { display: flex; align-items: center; gap: 0.9rem; margin-bottom: 1rem; }
.genprog-title { margin: 0; font-size: 1.1rem; }
.genprog-sub { margin: 0.2rem 0 0; font-size: 0.85rem; color: var(--text-secondary); }
.genprog-spinner {
    width: 30px; height: 30px; border-radius: 50%; flex: 0 0 auto;
    border: 3px solid var(--border-primary); border-top-color: var(--color-primary-600);
    animation: genprog-spin 0.8s linear infinite;
}
.genprog-spinner.is-stopped { animation: none; border-top-color: var(--color-error-500, var(--border-primary)); }
@keyframes genprog-spin { to { transform: rotate(360deg); } }

.genprog-bar { height: 8px; background: var(--bg-secondary); border-radius: 999px; overflow: hidden; }
.genprog-fill { height: 100%; width: 0%; background: var(--color-primary-600); transition: width 0.35s ease; }

.genprog-hold { margin: 0.9rem 0 0; font-size: 0.85rem; color: var(--text-secondary); background: var(--bg-warning-light, var(--bg-secondary)); border-left: 3px solid var(--color-warning-500, var(--color-primary-600)); padding: 0.55rem 0.7rem; border-radius: 0.25rem; }
.genprog-hold.is-error { background: var(--bg-error-light, var(--bg-secondary)); border-left-color: var(--color-error-500, var(--color-error)); color: var(--color-error-700, var(--text-primary)); }

.genprog-log { list-style: none; margin: 0.9rem 0 0; padding: 0.5rem 0.6rem; max-height: 140px; overflow-y: auto; background: var(--bg-secondary); border-radius: 0.4rem; font-family: var(--font-mono, monospace); font-size: 0.76rem; color: var(--text-secondary); }
.genprog-log li { padding: 0.12rem 0; }
.genprog-foot { display: flex; justify-content: flex-end; margin-top: 1rem; }

/* Reduced motion: no spin */
@media (prefers-reduced-motion: reduce) { .genprog-spinner { animation: none; } .genprog-fill { transition: none; } }
