/* =====================================================================
   AGGalvão · Componente — Modal
   ===================================================================== */

.modal {
    position: fixed; inset: 0; z-index: 200;
    background: rgba(18, 18, 18, .5);
    display: none; align-items: flex-start; justify-content: center;
    padding: 4vh 1rem; overflow-y: auto;
    backdrop-filter: blur(2px);
}
.modal.aberto { display: flex; }
.modal-caixa {
    background: #fff; border-radius: var(--raio);
    width: min(560px, 100%);
    box-shadow: var(--sombra-lg);
    animation: subir .18s ease;
}
.modal-caixa.larga { width: min(760px, 100%); }
@keyframes subir { from { opacity: 0; transform: translateY(-10px); } }
.modal-cabecalho {
    padding: .9rem 1.1rem; border-bottom: 1px solid var(--borda);
    display: flex; align-items: center; gap: .75rem;
}
.modal-cabecalho h2 { flex: 1; font-size: .95rem; }
.modal-corpo { padding: 1.1rem; }
.modal-corpo.rolagem-tabela { padding: 0; max-height: 62vh; overflow: auto; }
.modal-rodape {
    padding: .8rem 1.1rem; border-top: 1px solid var(--borda);
    display: flex; gap: .55rem; justify-content: flex-end; flex-wrap: wrap;
    background: var(--superficie-2); border-radius: 0 0 var(--raio) var(--raio);
}
.btn-fechar { background: none; border: 0; font-size: 1.3rem; line-height: 1; cursor: pointer; color: var(--cinza); padding: 0 .2rem; }
.btn-fechar:hover { color: var(--vermelho); }
