/* Styles personnalisés */ input[type="text"], input[type="number"], select { @apply border border-gray-300 rounded-md px-3 py-2; } /* Animation de chargement */ .loading { position: relative; pointer-events: none; } .loading::after { content: ""; position: absolute; top: 50%; left: 50%; width: 20px; height: 20px; margin: -10px 0 0 -10px; border: 2px solid #ffffff; border-top-color: transparent; border-radius: 50%; animation: loading 0.6s linear infinite; } @keyframes loading { to { transform: rotate(360deg); } } /* Message de succès */ .success-message { @apply fixed top-4 right-4 bg-green-500 text-white px-6 py-3 rounded-md shadow-lg transform transition-transform duration-300; transform: translateX(120%); } .success-message.show { transform: translateX(0); } /* Message d'erreur */ .error-message { @apply fixed top-4 right-4 bg-red-500 text-white px-6 py-3 rounded-md shadow-lg transform transition-transform duration-300; transform: translateX(120%); } .error-message.show { transform: translateX(0); }