body {
    background-color: skyblue;
}

/* === Validation client dans les modales (cf. assets/modal_validation.js) === */

/* Bootstrap 5 active déjà :invalid styling sur .was-validated, mais on renforce
   pour que ce soit visible immédiatement même sans .invalid-feedback dans le DOM. */
.modal .was-validated .form-control:invalid,
.modal .was-validated .form-select:invalid {
    border-color: #dc3545 !important;
    box-shadow: 0 0 0 .15rem rgba(220, 53, 69, .15) !important;
    background-image: none; /* retire l'icône Bootstrap par défaut, peut chevaucher avec un placeholder */
}

.modal .was-validated .form-control:invalid:focus,
.modal .was-validated .form-select:invalid:focus {
    box-shadow: 0 0 0 .25rem rgba(220, 53, 69, .25) !important;
}

/* Petit indicateur visuel sur les labels des champs requis dans les modales :
   astérisque rouge automatique. Repose sur la classe `required` que Symfony Form
   ajoute aux labels des champs marqués `required: true` (NotBlank), ET sur le
   sélecteur :has() pour les form themes qui n'ajoutent pas la classe (form_row
   custom, etc.). */
.modal label.required::after,
.modal .form-label.required::after,
.modal .form-label:has(+ input[required])::after,
.modal .form-label:has(+ select[required])::after,
.modal .form-label:has(+ textarea[required])::after {
    content: ' *';
    color: #dc3545;
    font-weight: 700;
}

/* === CKEditor 5 — fix lisibilité ===
   Du HTML existant peut contenir des inline styles (ex: <span style="color:#fff">)
   ou des classes Bootstrap text-white héritées d'anciennes saisies sous thème dark.
   On force le texte en sombre sur tous les éléments de la zone editable, avec
   !important pour dépasser les inline styles. (Compromis : un texte rouge volontaire
   du user serait aussi forcé en sombre — à raffiner plus tard si besoin.) */
.ck-editor__editable,
.ck-editor__editable_inline,
.ck.ck-editor__main > .ck-editor__editable {
    background: #ffffff !important;
    color: #1f2937 !important;
}
.ck-editor__editable,
.ck-editor__editable * {
    color: #1f2937 !important;
}
.ck-editor__editable a,
.ck-editor__editable a * { color: #783BC5 !important; }
.ck-editor__editable code,
.ck-editor__editable pre {
    background: #f5f0fc !important;
    color: #3d1d77 !important;
    border: 1px solid #e4dcf3;
}
.ck-editor__editable blockquote {
    border-left: 3px solid #a87ce8;
    background: #faf7fe;
}

/* Animation discrète quand on active was-validated : le form "secoue" pour signaler
   qu'on attend une action. Désactivable via prefers-reduced-motion. */
@keyframes rbx-form-shake {
    0%, 100% { transform: translateX(0); }
    25% { transform: translateX(-4px); }
    75% { transform: translateX(4px); }
}
.modal form.was-validated:has(:invalid) {
    animation: rbx-form-shake .25s ease-in-out;
}
@media (prefers-reduced-motion: reduce) {
    .modal form.was-validated { animation: none; }
}
