/* Largeur disponible, marges régulières et colonnes empilées sur petit écran. */
body .container,
body main.container,
body main .container-fluid {
    width: 100%;
    max-width: none;
}
body > .navbar > .container,
body > main.container,
body > .footer > .container {
    padding-inline: clamp(12px, 2vw, 32px);
}
body main .container,
body main .container-fluid {
    padding-inline: 0;
}
main .row > *, .navbar-brand, .navbar-brand > div { min-width: 0; }
.navbar-brand { white-space: normal; }
.navbar-brand img { flex-shrink: 0; }
main .card, main .alert, main .list-group-item { overflow-wrap: anywhere; }
main .form-control, main .form-select { min-width: 0; max-width: 100%; }
main .form-floating > label { max-width: 100%; overflow: hidden; text-overflow: ellipsis; }
main .btn { white-space: normal; }
main .alert-danger { border: 3px solid #b42318; font-weight: 600; }
main .d-flex.justify-content-between { flex-wrap: wrap; gap: .75rem; }
@media (max-width: 991.98px) {
    body .navbar-brand { max-width: calc(100% - 70px); margin-right: 0; }
    body .navbar-toggler { flex-shrink: 0; }
    .navbar-brand img { margin-right: .5rem !important; }
    main .btn-group { flex-wrap: wrap; }
}
@media (max-width: 575.98px) {
    main .card-body, main .card-header { padding: 1rem; }
    main .btn-group > .btn { flex: 1 1 auto; width: auto; margin-bottom: 0; }
    main .d-flex.gap-2 { flex-wrap: wrap; }
    main .d-flex.gap-2 > .btn { flex: 1 1 auto; width: auto; }
    main .form-section { padding: 1rem; }
    main .h2, main h1 { font-size: 1.5rem; }
}
