/* CSFM Multi-Accueil — formulaire de pré-inscription */
.csfm-ma-wrapper{--c:#0d4e9b;--c2:#1f7fe8;--ok:#059669;--bd:#e2e8f0;--bg:#f8fafc;--tx:#374151;--dk:#0d2040;
  max-width:860px;margin:0 auto;font-family:inherit;color:var(--tx);line-height:1.6}
.csfm-ma-intro{text-align:center;margin-bottom:22px}
.csfm-ma-intro-title{font-size:clamp(1.4rem,3.5vw,1.9rem);font-weight:800;color:var(--dk);margin:0 0 4px}
.csfm-ma-intro-sub{color:var(--c);font-weight:600;margin:0 0 8px}
.csfm-ma-intro-note{font-size:.9rem;color:#64748b;margin:0}
.csfm-ma-intro-note a{color:var(--c2);font-weight:600}

/* Progress */
.csfm-ma-progress{display:flex;flex-wrap:wrap;gap:6px;position:relative;margin:0 0 26px;padding-bottom:6px}
.csfm-ma-pstep{display:flex;align-items:center;gap:7px;flex:1;min-width:120px;opacity:.5;transition:opacity .2s}
.csfm-ma-pstep.active,.csfm-ma-pstep.done{opacity:1}
.csfm-ma-pnum{width:26px;height:26px;border-radius:50%;background:var(--bd);color:#64748b;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.82rem;flex-shrink:0}
.csfm-ma-pstep.active .csfm-ma-pnum{background:var(--c);color:#fff}
.csfm-ma-pstep.done .csfm-ma-pnum{background:var(--ok);color:#fff}
.csfm-ma-plabel{font-size:.8rem;font-weight:600}
.csfm-ma-ptrack{position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--bd);border-radius:2px}
.csfm-ma-pfill{height:100%;background:var(--c);border-radius:2px;transition:width .3s}

/* Steps & fields */
.csfm-ma-step{animation:csfmMaFade .25s both}
@keyframes csfmMaFade{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.csfm-ma-title{font-size:1.3rem;font-weight:800;color:var(--dk);margin:0 0 16px}
.csfm-ma-step h4{font-size:1rem;color:var(--c);margin:20px 0 10px;padding-bottom:5px;border-bottom:1px solid var(--bd)}
.csfm-ma-step h4 small{font-weight:400;color:#94a3b8;font-size:.8rem}
.csfm-ma-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.csfm-ma-field{display:flex;flex-direction:column;gap:5px}
.csfm-ma-full{grid-column:1/-1}
.csfm-ma-field label{font-size:.82rem;font-weight:600;color:var(--dk)}
.csfm-ma-field .req{color:#dc2626}
.csfm-ma-wrapper input[type=text],.csfm-ma-wrapper input[type=email],.csfm-ma-wrapper input[type=tel],
.csfm-ma-wrapper input[type=date],.csfm-ma-wrapper input[type=number],.csfm-ma-wrapper select,.csfm-ma-wrapper textarea{
  width:100%;padding:10px 12px;border:1.5px solid var(--bd);border-radius:9px;font-size:.93rem;font-family:inherit;
  color:var(--dk);background:var(--bg);box-sizing:border-box;transition:border-color .15s,box-shadow .15s}
.csfm-ma-wrapper input:focus,.csfm-ma-wrapper select:focus,.csfm-ma-wrapper textarea:focus{
  border-color:var(--c2);background:#fff;box-shadow:0 0 0 3px rgba(31,127,232,.18);outline:none}
.csfm-ma-wrapper input.csfm-ma-invalid,.csfm-ma-wrapper select.csfm-ma-invalid{border-color:#dc2626;box-shadow:0 0 0 3px rgba(220,38,38,.14)}
.csfm-ma-radios{display:flex;flex-wrap:wrap;gap:14px;padding-top:4px}
.csfm-ma-radios label,.csfm-ma-check{display:inline-flex;align-items:center;gap:6px;font-size:.9rem;font-weight:500;cursor:pointer}
.csfm-ma-inline{display:flex;gap:22px;margin-top:12px;flex-wrap:wrap}
.csfm-ma-checkgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px}
.csfm-ma-alg{display:grid;grid-template-columns:auto 1fr;gap:8px 14px;align-items:center}
.csfm-ma-precision{max-width:100%}
.csfm-ma-hp{display:none !important}
.csfm-ma-sep{border:none;border-top:1px solid var(--bd);margin:20px 0}
.csfm-ma-toggle{display:inline-flex;align-items:center;gap:8px;font-weight:600;color:var(--c);cursor:pointer;margin:6px 0}
.csfm-ma-help{font-size:.85rem;color:#64748b;margin:0 0 14px}

/* Tables (vaccins, personnes, autorisations) */
.csfm-ma-table-wrap{overflow-x:auto}
.csfm-ma-table{width:100%;border-collapse:collapse}
.csfm-ma-table th,.csfm-ma-table td{border:1px solid var(--bd);padding:8px 10px;text-align:left;font-size:.88rem}
.csfm-ma-table th{background:#eef4fb;color:var(--dk)}
.csfm-ma-center{text-align:center}
.csfm-ma-sm{max-width:150px}
.csfm-ma-auths{display:flex;flex-direction:column;gap:8px}
.csfm-ma-auth-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:10px 12px;background:var(--bg);border:1px solid var(--bd);border-radius:9px;flex-wrap:wrap}
.csfm-ma-auth-row span{font-size:.9rem;flex:1;min-width:220px}
.csfm-ma-person-row{margin-bottom:8px}

/* Consent */
.csfm-ma-consent{display:flex;align-items:flex-start;gap:10px;padding:14px 16px;background:#eff6ff;border:1px solid #bfdbfe;border-radius:10px;margin:12px 0;cursor:pointer;font-size:.9rem}
.csfm-ma-consent input{margin-top:3px;flex-shrink:0}
.csfm-ma-legal{background:#fff9e6;border:1px solid #f59e0b;border-radius:10px;padding:14px 18px;font-size:.86rem;margin:14px 0}
.csfm-ma-recap{background:var(--bg);border:1px solid var(--bd);border-radius:10px;padding:16px 20px;margin-bottom:16px}
.csfm-ma-recap h4{margin-top:0}
.csfm-ma-recap dl{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;font-size:.88rem;margin:0}
.csfm-ma-recap dt{color:#64748b}

/* Nav & buttons */
.csfm-ma-nav{display:flex;justify-content:space-between;gap:12px;margin-top:26px}
.csfm-ma-btn{padding:13px 26px;border:none;border-radius:10px;font-size:.95rem;font-weight:700;cursor:pointer;font-family:inherit;transition:transform .15s,box-shadow .15s,background .15s}
.csfm-ma-btn-pri{background:var(--c);color:#fff;box-shadow:0 4px 14px rgba(13,78,155,.32);margin-left:auto}
.csfm-ma-btn-pri:hover{background:#0b427f;transform:translateY(-1px)}
.csfm-ma-btn-sec{background:#fff;color:var(--tx);border:1.5px solid var(--bd)}
.csfm-ma-btn-sec:hover{border-color:var(--c)}
.csfm-ma-btn-ok{background:var(--ok);color:#fff;box-shadow:0 4px 14px rgba(5,150,105,.32);margin-left:auto}
.csfm-ma-btn-ok:hover{background:#047857;transform:translateY(-1px)}
.csfm-ma-btn[disabled]{opacity:.6;cursor:not-allowed}

/* Feedback */
.csfm-ma-success{text-align:center;padding:36px 24px;background:#f0fdf4;border:1px solid #86efac;border-radius:14px}
.csfm-ma-success-icon{width:60px;height:60px;border-radius:50%;background:var(--ok);color:#fff;font-size:32px;line-height:60px;margin:0 auto 12px}
.csfm-ma-error{background:#fef2f2;border:1px solid #fca5a5;color:#991b1b;border-radius:10px;padding:14px 18px;margin-top:16px}

@media(max-width:640px){
  .csfm-ma-grid{grid-template-columns:1fr}
  .csfm-ma-plabel{display:none}
  .csfm-ma-pstep{min-width:0;flex:0 0 auto}
  .csfm-ma-nav{flex-wrap:wrap}
}
