{# @tailwind-safelist bg-primary/10 bg-cohorts/10 bg-warning/10 bg-error/10 bg-success/10 bg-info/10 bg-pink/10 #} {# ============================================================================ Champs de formulaire réutilisables pour les contrats Utilise Tailwind CSS - Compatible avec les formulaires Symfony ============================================================================ #}
{# Nom du contrat #}
{{ form_label(form.name, null, { 'label_attr': {'class': 'block text-sm font-medium text-gray-700'} }) }} {{ form_widget(form.name, { 'attr': {'class': 'w-full px-4 py-2.5 border border-gray-200 rounded-xl bg-white text-gray-900 placeholder-gray-400 focus:ring-2 focus:ring-primary/20 focus:border-primary transition-colors'} }) }} {{ form_errors(form.name) }}
{# Dates de début et fin #}
{{ form_label(form.startDate, null, { 'label_attr': {'class': 'block text-sm font-medium text-gray-700'} }) }} {{ form_widget(form.startDate, { 'attr': {'class': 'w-full px-4 py-2.5 border border-gray-200 rounded-xl bg-white text-gray-900 focus:ring-2 focus:ring-primary/20 focus:border-primary transition-colors'} }) }} {{ form_errors(form.startDate) }}
{{ form_label(form.endDate, null, { 'label_attr': {'class': 'block text-sm font-medium text-gray-700'} }) }} {{ form_widget(form.endDate, { 'attr': {'class': 'w-full px-4 py-2.5 border border-gray-200 rounded-xl bg-white text-gray-900 focus:ring-2 focus:ring-primary/20 focus:border-primary transition-colors'} }) }} {{ form_errors(form.endDate) }}
{# Utilisateurs max et prix par licence #}
{{ form_label(form.maxUsers, null, { 'label_attr': {'class': 'block text-sm font-medium text-gray-700'} }) }} {{ form_widget(form.maxUsers, { 'attr': {'class': 'w-full px-4 py-2.5 border border-gray-200 rounded-xl bg-white text-gray-900 focus:ring-2 focus:ring-primary/20 focus:border-primary transition-colors'} }) }} {% if form.maxUsers.vars.help is defined and form.maxUsers.vars.help %}

{{ form.maxUsers.vars.help }}

{% endif %} {{ form_errors(form.maxUsers) }}
{{ form_label(form.pricePerLicense, null, { 'label_attr': {'class': 'block text-sm font-medium text-gray-700'} }) }}
{{ form_widget(form.pricePerLicense, { 'attr': {'class': 'w-full px-4 py-2.5 pr-12 border border-gray-200 rounded-xl bg-white text-gray-900 focus:ring-2 focus:ring-primary/20 focus:border-primary transition-colors'} }) }} € TTC
{% if form.pricePerLicense.vars.help is defined and form.pricePerLicense.vars.help %}

{{ form.pricePerLicense.vars.help }}

{% endif %} {{ form_errors(form.pricePerLicense) }}
{# Tokens mensuels #}
{{ form_label(form.monthlyTokens, null, { 'label_attr': {'class': 'block text-sm font-medium text-gray-700'} }) }} {{ form_widget(form.monthlyTokens, { 'attr': {'class': 'w-full px-4 py-2.5 border border-gray-200 rounded-xl bg-white text-gray-900 focus:ring-2 focus:ring-primary/20 focus:border-primary transition-colors'} }) }} {% if form.monthlyTokens.vars.help is defined and form.monthlyTokens.vars.help %}

{{ form.monthlyTokens.vars.help }}

{% endif %} {{ form_errors(form.monthlyTokens) }}
{# Accès SAM #}
{{ form_errors(form.hasSamAccess) }}
{# Notes internes #}
{{ form_label(form.notes, null, { 'label_attr': {'class': 'block text-sm font-medium text-gray-700'} }) }} {{ form_widget(form.notes, { 'attr': { 'class': 'w-full px-4 py-3 border border-gray-200 rounded-xl bg-white text-gray-900 placeholder-gray-400 focus:ring-2 focus:ring-primary/20 focus:border-primary transition-colors resize-none', 'rows': '4' } }) }}

Notes visibles uniquement par les administrateurs.

{{ form_errors(form.notes) }}