/* Pasivite 2.8.52.9 — flux publics, inscriptions, formulaires */

/* Contact : structure explicite, aucune dépendance à l'auto-placement fragile. */
.contact-quick-routes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 18px}
.contact-quick-routes>a{display:grid;grid-template-columns:38px minmax(0,1fr) 18px;align-items:center;gap:10px;min-width:0;min-height:72px;padding:14px 16px;border:1px solid #d7e3ea;border-radius:16px;background:#fff;color:#12355b;text-decoration:none;box-sizing:border-box}
.contact-quick-routes>a>span{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:#e7f7f4;color:#087f79;font-weight:900}
.contact-quick-routes>a>div{min-width:0}
.contact-quick-routes strong,.contact-quick-routes small{display:block;min-width:0;overflow-wrap:anywhere;word-break:normal}
.contact-quick-routes strong{font-size:1rem;line-height:1.2}
.contact-quick-routes small{margin-top:3px;color:#66778b;font-size:.86rem;line-height:1.3}
.contact-quick-routes b{justify-self:end;color:#7c8da0;font-size:1.35rem}
.contact-quick-routes>a.is-urgent{background:#fffafa;border-color:#efd8dd}
.contact-quick-routes>a.is-urgent>span{background:#fdebed;color:#b42336}
.contact-quick-routes>a.is-partner{background:#f3fbf9;border-color:#b7ddd5}

.contact-form-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:8px}
.contact-form-heading>div{min-width:0}
.contact-form-heading>small{flex:0 0 auto}
.contact-field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.contact-field-grid>*{min-width:0}
.contact-modern-page,.contact-modern-grid,.contact-form-card,.contact-side-column,.contact-modern-form{min-width:0}
.contact-modern-form textarea{max-width:100%}

/* La case de confirmation humaine reste horizontale : elle ne doit jamais hériter d'un label en grille. */
.contact-human-check-form .human-confirm-card,
.contact-modern-form .human-confirm-card{display:flex!important;align-items:flex-start!important;gap:12px!important;min-width:0!important;width:100%!important;box-sizing:border-box!important}
.contact-human-check-form .human-confirm-card input,
.contact-modern-form .human-confirm-card input{flex:0 0 22px!important;width:22px!important;height:22px!important;min-width:22px!important;min-height:22px!important;margin:2px 0 0!important;padding:0!important}
.contact-human-check-form .human-confirm-card span,
.contact-modern-form .human-confirm-card span{display:block!important;min-width:0!important;width:auto!important;overflow-wrap:anywhere!important;line-height:1.35!important}
.contact-human-check-form .human-confirm-card small,
.contact-modern-form .human-confirm-card small{display:block!important;margin-top:3px!important}

/* Admin utilisateurs : dense, lisible, mais responsive. */
.users-admin-summary{display:flex;align-items:baseline;gap:8px;padding:10px 14px;border:1px solid #d4e2e9;border-radius:14px;background:#fff}
.users-admin-summary strong{font-size:1.5rem;color:#12355b}.users-admin-summary span{color:#607487}
.users-admin-layout{grid-template-columns:minmax(260px,.68fr) minmax(0,2.1fr)!important}
.users-table-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px}
.users-table-head h2{margin:0}.users-table-head p{margin:4px 0 0;color:#607487}.users-table-head>span{white-space:nowrap;color:#607487}
.users-admin-table{min-width:1040px}
.users-admin-table td,.users-admin-table th{vertical-align:top}
.status-pill{display:inline-flex;align-items:center;min-height:26px;padding:3px 9px;border-radius:999px;font-size:.82rem;font-weight:800}
.status-pill.is-ok{background:#e8f7f0;color:#176c4c}.status-pill.is-warning{background:#fff4da;color:#8a5a00}.status-pill.is-off{background:#eef1f4;color:#596673}
.users-action-stack{min-width:160px}.users-action-stack form,.users-action-stack button{width:100%}
.admin-help{color:#607487;line-height:1.45}

@media(max-width:980px){
  .contact-quick-routes{grid-template-columns:1fr 1fr}
  .contact-quick-routes>a.is-partner{grid-column:1/-1}
  .users-admin-layout{grid-template-columns:1fr!important}
}
@media(max-width:640px){
  .contact-quick-routes{grid-template-columns:1fr}
  .contact-quick-routes>a.is-partner{grid-column:auto}
  .contact-field-grid{grid-template-columns:1fr}
  .contact-form-heading{flex-direction:column;gap:5px}
  .contact-human-check{display:block!important}
  .contact-human-check-icon{margin-bottom:10px}
}

/* Durcissement transversal des formulaires publics : jamais de débordement ni de chevauchement. */
body.public-body .main-content form,
body.public-body .main-content fieldset,
body.public-body .main-content label,
body.public-body .main-content .form-row,
body.public-body .main-content .form-grid,
body.public-body .main-content .senior-form{min-width:0;max-width:100%;box-sizing:border-box}
body.public-body .main-content input[type="text"],
body.public-body .main-content input[type="email"],
body.public-body .main-content input[type="password"],
body.public-body .main-content input[type="tel"],
body.public-body .main-content input[type="url"],
body.public-body .main-content input[type="search"],
body.public-body .main-content select,
body.public-body .main-content textarea{max-width:100%;box-sizing:border-box}
body.public-body .main-content .consent-box,
body.public-body .main-content .check-line{min-width:0;overflow-wrap:anywhere}
body.public-body .main-content .consent-box>span,
body.public-body .main-content .check-line>span{min-width:0;overflow-wrap:anywhere}

/* 2.8.52.10 — hotfix Contact : un seul gate humain + géométrie bornée. */
.contact-modern-page{width:100%;max-width:1180px;margin-inline:auto;box-sizing:border-box}
.contact-modern-hero,.contact-quick-routes,.contact-human-check,.contact-modern-grid{min-width:0;max-width:100%;box-sizing:border-box}
.contact-quick-routes{grid-template-columns:repeat(2,minmax(0,1fr))}
.contact-human-check{display:grid!important;grid-template-columns:48px minmax(0,1fr);gap:18px;align-items:start;width:100%;padding:22px;border:1px solid #cfe1e7;border-radius:18px;background:#fff;overflow:hidden;box-sizing:border-box}
.contact-human-check-copy,.contact-human-check-form{min-width:0;width:100%;max-width:100%;box-sizing:border-box}
.contact-human-check-copy h2{margin:.2rem 0 .65rem;font-size:clamp(1.55rem,3vw,2.25rem);line-height:1.08;overflow-wrap:break-word}
.contact-human-check-copy p{max-width:78ch;overflow-wrap:break-word}
.contact-human-check-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:999px;background:#e7f7f4;color:#087f79;font-weight:900}
.contact-human-check-form .human-confirm-card{max-width:100%!important;padding:14px!important;white-space:normal!important;word-break:normal!important}
.contact-human-check-form .human-confirm-card span{max-width:100%!important;overflow-wrap:break-word!important;word-break:normal!important;white-space:normal!important}
.contact-modern-form input,.contact-modern-form select,.contact-modern-form textarea{width:100%;max-width:100%;box-sizing:border-box}
@media(max-width:760px){.contact-quick-routes{grid-template-columns:1fr}.contact-human-check{grid-template-columns:1fr;padding:18px}.contact-human-check-icon{margin-bottom:0}.contact-field-grid{grid-template-columns:1fr}}

/* 2.8.52.11 — CAPTCHA unique intégré au formulaire Contact. */
.contact-captcha-block{display:block;min-width:0;max-width:100%;margin:4px 0 16px;padding:14px 16px;border:1px solid #cfe1e7;border-radius:14px;background:#f7fbfc;box-sizing:border-box;overflow:hidden}
.contact-captcha-block>p{margin:0 0 10px;color:#12355b}
.contact-captcha-block .cf-turnstile{display:block;max-width:100%;overflow:hidden}
.contact-captcha-block .human-confirm-card{display:flex!important;align-items:flex-start!important;gap:12px!important;min-width:0!important;width:100%!important;max-width:100%!important;margin:0!important;padding:10px 0!important;box-sizing:border-box!important}
.contact-captcha-block .human-confirm-card input{flex:0 0 22px!important;width:22px!important;height:22px!important;min-width:22px!important;min-height:22px!important;margin:2px 0 0!important;padding:0!important}
.contact-captcha-block .human-confirm-card span{display:block!important;min-width:0!important;width:auto!important;overflow-wrap:break-word!important;word-break:normal!important;white-space:normal!important;line-height:1.35!important}
.contact-captcha-block .human-confirm-card small{display:block!important;margin-top:3px!important}
