/* Animações para o modal */
.fixed {
    animation: fadeIn 0.3s ease-in-out;
}

@keyframes fadeIn {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

/* Estilo para tabela responsiva */
.overflow-x-auto {
    overflow-x: auto;
}

table {
    min-width: 800px;
}

/* Badges de nível */
.bg-purple-100 {
    background-color: #f3e8ff;
}

.text-purple-800 {
    color: #6b21a5;
}

.bg-blue-100 {
    background-color: #dbeafe;
}

.text-blue-800 {
    color: #1e40af;
}

.bg-green-100 {
    background-color: #dcfce7;
}

.text-green-800 {
    color: #166534;
}

/* Animações */
@keyframes slideUp {
    from {
        transform: translateY(100%);
        opacity: 0;
    }
    to {
        transform: translateY(0);
        opacity: 1;
    }
}

.animate-slide-up {
    animation: slideUp 0.3s ease-out;
}

/* Loading spinner */
@keyframes spin {
    from {
        transform: rotate(0deg);
    }
    to {
        transform: rotate(360deg);
    }
}

.animate-spin {
    animation: spin 1s linear infinite;
}

/* Melhorias na tabela */
table {
    border-collapse: separate;
    border-spacing: 0;
}

tbody tr:hover {
    background-color: #f9fafb;
    transition: background-color 0.2s ease;
}

/* Botões de ação */
button svg {
    transition: transform 0.2s ease;
}

button:hover svg {
    transform: scale(1.1);
}

/* Modal */
#entidadeModal {
    animation: fadeIn 0.2s ease-out;
}

@keyframes fadeIn {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

/* Estilos para o menu */
#menu-container button {
    transition: all 0.2s ease-in-out;
}

#menu-container button svg {
    transition: transform 0.2s ease;
}

#menu-container button:hover svg {
    transform: scale(1.05);
}

#menu-container .bg-blue-500 {
    box-shadow: 0 2px 4px rgba(59, 130, 246, 0.2);
}

/* Efeito de ripple ao clicar */
#menu-container button:active {
    transform: scale(0.98);
}