/**
 * Overlay de progresso dos formularios do EmendasGov
 *
 * Usado ao cadastrar/editar uma emenda e ao registrar um andamento
 * do tramite (onde o percentual reflete o upload real dos anexos).
 */

.form-progress-overlay {
     position: fixed;
     inset: 0;
     z-index: 1080;
     display: flex;
     align-items: center;
     justify-content: center;
     padding: 1rem;
     background: rgba(33, 37, 41, 0.55);
     backdrop-filter: blur(2px);
     opacity: 0;
     visibility: hidden;
     transition: opacity 0.2s ease, visibility 0.2s ease;
}

.form-progress-overlay.is-visible {
     opacity: 1;
     visibility: visible;
}

.form-progress-card {
     width: 100%;
     max-width: 380px;
     padding: 2rem;
     border-radius: 0.75rem;
     background: #fff;
     box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.25);
     text-align: center;
     transform: translateY(8px);
     transition: transform 0.2s ease;
}

.form-progress-overlay.is-visible .form-progress-card {
     transform: translateY(0);
}

.form-progress-spinner {
     width: 3rem;
     height: 3rem;
     margin: 0 auto 1rem;
     border: 4px solid #e9ecef;
     border-top-color: #0d6efd;
     border-radius: 50%;
     animation: form-progress-spin 0.8s linear infinite;
}

@keyframes form-progress-spin {
     to {
          transform: rotate(360deg);
     }
}

.form-progress-title {
     margin-bottom: 0.25rem;
     font-size: 1.05rem;
     font-weight: 600;
     color: #212529;
}

.form-progress-detail {
     margin-bottom: 1.25rem;
     font-size: 0.875rem;
     color: #6c757d;
     word-break: break-word;
}

.form-progress-track {
     height: 0.5rem;
     overflow: hidden;
     border-radius: 1rem;
     background: #e9ecef;
}

.form-progress-fill {
     width: 0;
     height: 100%;
     border-radius: 1rem;
     background: linear-gradient(90deg, #0d6efd, #0dcaf0);
     transition: width 0.25s ease;
}

.form-progress-percent {
     margin-top: 0.5rem;
     font-size: 0.875rem;
     font-weight: 600;
     font-variant-numeric: tabular-nums;
     color: #0d6efd;
}

/* Estado de erro: o envio falhou e o overlay traz a mensagem */
.form-progress-card.has-error .form-progress-spinner {
     border-color: #f5c2c7;
     border-top-color: #dc3545;
     animation: none;
}

.form-progress-card.has-error .form-progress-fill {
     background: #dc3545;
}

.form-progress-card.has-error .form-progress-percent {
     color: #dc3545;
}

/* Concluido: barra verde antes do redirecionamento */
.form-progress-card.is-done .form-progress-spinner {
     border-color: #a3cfbb;
     border-top-color: #198754;
     animation: none;
}

.form-progress-card.is-done .form-progress-fill {
     background: #198754;
}

.form-progress-card.is-done .form-progress-percent {
     color: #198754;
}

@media (prefers-reduced-motion: reduce) {

     .form-progress-overlay,
     .form-progress-card,
     .form-progress-fill {
          transition: none;
     }

     .form-progress-spinner {
          animation-duration: 2s;
     }
}
