{% extends 'base.html.twig' %}{% block title %}Mot de passe oublié - PaySolution{% endblock %}{% block body %}<div class="min-h-screen flex items-center justify-center py-12 px-4 sm:px-6 lg:px-8 bg-gradient-to-br from-gray-50 to-blue-50"> <div class="max-w-md w-full"> <div class="bg-white rounded-2xl shadow-2xl overflow-hidden"> <!-- Header --> <div class="bg-gradient-to-r from-primary to-primary-dark px-8 py-10 text-center"> <div class="mx-auto h-20 w-20 flex items-center justify-center rounded-full bg-white bg-opacity-20 backdrop-blur-sm mb-4"> <svg class="h-12 w-12 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 7a2 2 0 012 2m4 0a6 6 0 01-7.743 5.743L11 17H9v2H7v2H4a1 1 0 01-1-1v-2.586a1 1 0 01.293-.707l5.964-5.964A6 6 0 1121 9z"></path> </svg> </div> <h2 class="text-3xl font-extrabold text-white"> Mot de passe oublié ? </h2> <p class="mt-2 text-blue-100"> Pas de problème, nous allons vous aider </p> </div> <div class="px-8 py-8"> {% for message in app.flashes('success') %} <div class="rounded-lg bg-green-50 border-l-4 border-green-500 p-4 mb-6"> <div class="flex"> <div class="flex-shrink-0"> <svg class="h-6 w-6 text-green-500" fill="currentColor" viewBox="0 0 20 20"> <path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z" clip-rule="evenodd"></path> </svg> </div> <div class="ml-3"> <h3 class="text-sm font-medium text-green-800 mb-1">Email envoyé !</h3> <p class="text-sm text-green-700">{{ message }}</p> <p class="text-xs text-green-600 mt-2"> 💡 Vérifiez également votre dossier spam/courrier indésirable. </p> </div> </div> </div> {% endfor %} <div class="bg-blue-50 border-l-4 border-primary rounded-lg p-4 mb-6"> <div class="flex"> <div class="flex-shrink-0"> <svg class="h-5 w-5 text-primary" fill="currentColor" viewBox="0 0 20 20"> <path fill-rule="evenodd" d="M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z" clip-rule="evenodd"></path> </svg> </div> <div class="ml-3"> <p class="text-sm text-blue-700"> Saisissez votre adresse email et nous vous enverrons un lien pour réinitialiser votre mot de passe. </p> </div> </div> </div> {{ form_start(form, {'attr': {'class': 'space-y-6'}}) }} <div> <label class="block text-sm font-medium text-gray-700 mb-2"> <svg class="w-4 h-4 inline-block mr-1 text-primary" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"></path> </svg> {{ form_label(form.email) }} <span class="text-danger">*</span> </label> {{ form_widget(form.email) }} {{ form_errors(form.email) }} </div> <div class="flex items-center justify-between pt-4"> <a href="{{ path('app_login') }}" class="text-sm font-medium text-primary hover:text-primary-dark transition duration-200 flex items-center"> <svg class="w-4 h-4 mr-1" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 19l-7-7m0 0l7-7m-7 7h18"></path> </svg> Retour à la connexion </a> <button type="submit" class="inline-flex items-center px-6 py-3 bg-gradient-to-r from-primary to-primary-dark hover:from-primary-dark hover:to-primary text-white font-semibold rounded-lg transition duration-300 shadow-lg hover:shadow-xl transform hover:scale-105"> <svg class="w-5 h-5 mr-2" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"></path> </svg> Envoyer le lien </button> </div> {{ form_end(form) }} </div> <div class="bg-gray-50 px-8 py-4 text-center border-t border-gray-200"> <p class="text-xs text-gray-500"> <svg class="w-4 h-4 inline-block mr-1" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 15v2m-6 4h12a2 2 0 002-2v-6a2 2 0 00-2-2H6a2 2 0 00-2 2v6a2 2 0 002 2zm10-10V7a4 4 0 00-8 0v4h8z"></path> </svg> Le lien de réinitialisation expirera après 1 heure </p> </div> </div> </div></div>{% endblock %}