/* EriFaye TV V8.17 - Inscription wizard propre */
.ef-register-section{
    padding-top:24px !important;
}
.ef-register-shell{
    width:min(100%, 980px);
    margin:0 auto;
}
.ef-register-card{
    position:relative;
    overflow:hidden;
    border:1px solid rgba(255,255,255,.11);
    border-radius:28px;
    background:linear-gradient(180deg,rgba(17,24,38,.94),rgba(9,13,22,.96));
    box-shadow:0 26px 80px rgba(0,0,0,.38);
    padding:26px;
}
.ef-register-card:before{
    content:"";
    position:absolute;
    inset:-130px auto auto -110px;
    width:260px;
    height:260px;
    border-radius:999px;
    background:rgba(239,13,25,.14);
    filter:blur(16px);
    pointer-events:none;
}
.ef-register-head{
    position:relative;
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:18px;
    margin-bottom:20px;
}
.ef-register-head h1{
    margin:10px 0 6px;
    font-size:clamp(26px,3.2vw,40px);
    line-height:1.06;
    font-weight:650;
    letter-spacing:-.035em;
}
.ef-register-head p{
    margin:0;
    max-width:640px;
    color:rgba(255,255,255,.72);
    font-size:15px;
    line-height:1.55;
}
.ef-register-login-link{
    flex:0 0 auto;
    white-space:nowrap;
    margin-top:4px;
}
.ef-register-progress{
    position:relative;
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:10px;
    margin:18px 0 22px;
}
.ef-register-step-pill{
    display:flex;
    align-items:center;
    gap:8px;
    min-width:0;
    padding:10px;
    border:1px solid rgba(255,255,255,.09);
    border-radius:18px;
    background:rgba(255,255,255,.045);
    color:rgba(255,255,255,.68);
    transition:border-color .18s ease, background .18s ease, color .18s ease, box-shadow .18s ease;
}
.ef-register-step-pill strong{
    flex:0 0 auto;
    width:28px;
    height:28px;
    border-radius:999px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    background:rgba(255,255,255,.08);
    color:#fff;
    font-size:13px;
    font-weight:650;
}
.ef-register-step-pill span{
    display:block;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-size:12px;
    font-weight:500;
}
.ef-register-step-pill.is-active{
    border-color:rgba(239,13,25,.65);
    background:rgba(239,13,25,.12);
    color:#fff;
    box-shadow:0 12px 34px rgba(239,13,25,.12);
}
.ef-register-step-pill.is-active strong{
    background:#ef0d19;
}
.ef-register-step-pill.is-complete{
    border-color:rgba(40,167,69,.48);
    background:rgba(40,167,69,.105);
    color:#fff;
}
.ef-register-step-pill.is-complete strong{
    background:#28a745;
}
.ef-register-body{
    position:relative;
}
.ef-register-step{
    display:none;
    animation:efWizardFade .18s ease both;
}
.ef-register-step.is-active{
    display:block;
}
@keyframes efWizardFade{
    from{opacity:.5; transform:translateY(8px)}
    to{opacity:1; transform:translateY(0)}
}
.ef-step-title{
    margin-bottom:18px;
}
.ef-step-title h2{
    margin:0 0 6px;
    font-size:clamp(20px,2.4vw,27px);
    font-weight:620;
    letter-spacing:-.025em;
}
.ef-step-title p{
    margin:0;
    color:rgba(255,255,255,.68);
    font-size:14px;
    line-height:1.5;
}
.ef-form-grid-2{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;
}
.ef-form-block{
    margin-bottom:14px;
}
.ef-form-block label,
.ef-register-card label{
    display:block;
    margin:0 0 7px;
    color:rgba(255,255,255,.86);
    font-size:13px;
    font-weight:550;
}
.ef-form-help{
    margin:8px 0 0;
    color:rgba(255,255,255,.52);
    font-size:12px;
    line-height:1.42;
}
.ef-register-card input:not([type="checkbox"]),
.ef-register-card select,
.ef-register-card textarea{
    width:100%;
    min-height:52px;
    border-radius:16px;
    border:1px solid rgba(255,255,255,.14);
    background:rgba(255,255,255,.055);
    color:#fff;
    padding:0 16px;
    font-family:"Manrope",system-ui,sans-serif;
    font-size:15px;
    font-weight:400;
    outline:none;
    transition:border-color .18s ease, box-shadow .18s ease, background .18s ease;
}
.ef-register-card input:not([type="checkbox"]):focus,
.ef-register-card textarea:focus{
    border-color:rgba(239,13,25,.72);
    box-shadow:0 0 0 3px rgba(239,13,25,.15);
    background:rgba(255,255,255,.075);
}
.ef-register-card input::placeholder{
    color:rgba(255,255,255,.4);
}
.ef-choice-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
}
.ef-choice-card{
    position:relative;
    width:100%;
    min-height:116px;
    text-align:left;
    cursor:pointer;
    padding:18px;
    border:1px solid rgba(255,255,255,.12);
    border-radius:22px;
    background:rgba(255,255,255,.045);
    color:#fff;
    font-family:"Manrope",system-ui,sans-serif;
    transition:border-color .18s ease, box-shadow .18s ease, transform .18s ease, background .18s ease;
}
.ef-choice-card:hover,
.ef-choice-card.is-selected,
.ef-choice-card[aria-checked="true"]{
    border-color:rgba(40,167,69,.85);
    box-shadow:0 0 10px rgba(40,167,69,.8), 0 14px 32px rgba(40,167,69,.15);
    background:rgba(40,167,69,.075);
    transform:translateY(-1px);
}
.ef-choice-icon{
    width:38px;
    height:38px;
    border-radius:14px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    margin-bottom:12px;
    background:rgba(239,13,25,.16);
    color:#ff3843;
}
.ef-choice-card.is-selected .ef-choice-icon,
.ef-choice-card[aria-checked="true"] .ef-choice-icon{
    background:rgba(40,167,69,.18);
    color:#34c759;
}
.ef-choice-card strong{
    display:block;
    margin-bottom:4px;
    font-size:16px;
    font-weight:620;
}
.ef-choice-card small{
    display:block;
    color:rgba(255,255,255,.64);
    line-height:1.42;
    font-size:12.5px;
    font-weight:400;
}
.ef-email-extra{
    display:none;
    margin-top:16px;
    padding:16px;
    border:1px solid rgba(255,255,255,.08);
    border-radius:22px;
    background:rgba(255,255,255,.035);
}
.ef-email-extra.is-visible{
    display:block;
}
.ef-otp-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
    gap:16px;
}
.ef-otp-card{
    padding:16px;
    border:1px solid rgba(255,255,255,.1);
    border-radius:22px;
    background:rgba(255,255,255,.04);
}
.ef-otp-card h3{
    margin:0 0 6px;
    font-size:16px;
    font-weight:620;
}
.ef-otp-card p{
    margin:0 0 12px;
    color:rgba(255,255,255,.62);
    font-size:13px;
    line-height:1.45;
}
.ef-register-actions{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:10px;
    margin-top:22px;
}
.ef-register-actions .ef-btn{
    min-width:145px;
}
.ef-register-error{
    display:none;
    margin:0 0 16px;
    padding:12px 14px;
    border-radius:16px;
    border:1px solid rgba(239,13,25,.38);
    background:rgba(239,13,25,.14);
    color:#fff;
    font-size:13px;
    line-height:1.45;
}
.ef-register-error.is-visible{
    display:block;
}
.ef-pin-fields{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;
}
@media (max-width: 860px){
    .ef-register-card{padding:22px 18px;border-radius:24px;}
    .ef-register-head{display:block;}
    .ef-register-login-link{margin-top:14px;display:inline-flex;}
    .ef-register-progress{grid-template-columns:repeat(5, minmax(42px,1fr));gap:6px;}
    .ef-register-step-pill{padding:8px 6px;justify-content:center;}
    .ef-register-step-pill span{display:none;}
    .ef-form-grid-2,
    .ef-choice-grid,
    .ef-otp-grid,
    .ef-pin-fields{grid-template-columns:1fr;gap:12px;}
}
@media (max-width: 575.98px){
    .ef-register-section{padding-top:18px !important;}
    .ef-register-card{padding:18px 14px;border-radius:22px;}
    .ef-register-head h1{font-size:25px;}
    .ef-register-progress{margin-top:14px;margin-bottom:18px;}
    .ef-register-actions{display:grid;grid-template-columns:1fr;gap:10px;}
    .ef-register-actions .ef-btn{width:100%;max-width:100%;min-width:0;}
    .ef-choice-card{min-height:104px;padding:15px;}
    .ef-otp-card{padding:14px;}
}


/* EriFaye TV V8.19 - Wizard actions propres */
.ef-register-actions{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-top:22px;
}
.ef-register-action-spacer{
    flex:1 1 auto;
    min-width:12px;
}
.ef-register-actions .ef-btn{
    min-width:150px;
    max-width:100%;
    white-space:normal;
    text-align:center;
}
.ef-register-actions [hidden]{
    display:none !important;
}
.ef-otp-intro{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
    gap:14px;
    margin-top:12px;
}
.ef-otp-intro-card{
    border:1px solid rgba(255,255,255,.10);
    border-radius:20px;
    background:rgba(255,255,255,.035);
    padding:16px;
}
.ef-otp-intro-card strong{
    display:block;
    color:#fff;
    font-size:15px;
    font-weight:600;
    margin-bottom:6px;
}
.ef-otp-intro-card span{
    display:block;
    color:rgba(255,255,255,.66);
    font-size:13px;
    line-height:1.45;
}
.ef-otp-grid[hidden],
.ef-otp-intro[hidden]{
    display:none !important;
}
@media (max-width: 860px){
    .ef-otp-intro{grid-template-columns:1fr;}
}
@media (max-width: 575.98px){
    .ef-register-actions{
        gap:10px;
        flex-wrap:nowrap;
    }
    .ef-register-actions .ef-btn{
        min-width:0;
        flex:0 1 auto;
        padding-left:14px;
        padding-right:14px;
    }
}


/* EriFaye TV V8.50.7 - Inscription téléphone strict + étape récap */
.ef-register-step-pill.is-clickable{
    cursor:pointer;
    outline:none;
}
.ef-register-step-pill.is-clickable:hover,
.ef-register-step-pill.is-clickable:focus-visible{
    border-color:rgba(40,167,69,.86);
    background:rgba(40,167,69,.16);
    box-shadow:0 0 0 3px rgba(40,167,69,.16), 0 14px 32px rgba(40,167,69,.16);
}
.ef-register-recap{
    display:grid;
    gap:12px;
    padding:16px;
    border:1px solid rgba(255,255,255,.10);
    border-radius:22px;
    background:rgba(255,255,255,.04);
}
.ef-recap-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    padding:12px 0;
    border-bottom:1px solid rgba(255,255,255,.08);
}
.ef-recap-row:last-child{
    border-bottom:0;
}
.ef-recap-row span{
    color:rgba(255,255,255,.66);
    font-size:13px;
    line-height:1.35;
}
.ef-recap-row strong{
    color:#fff;
    font-size:14px;
    font-weight:650;
    line-height:1.35;
    text-align:right;
    overflow-wrap:anywhere;
}
.ef-recap-help{
    margin-top:12px !important;
}
.ef-register-card input[data-ef-register-phone-main],
.ef-register-card input[data-ef-register-phone-confirm]{
    letter-spacing:.03em;
    font-weight:650;
}
@media (max-width: 575.98px){
    .ef-register-progress{grid-template-columns:repeat(5, minmax(38px,1fr));}
    .ef-register-step-pill strong{width:26px;height:26px;font-size:12px;}
    .ef-recap-row{display:block;}
    .ef-recap-row strong{display:block;text-align:left;margin-top:5px;}
}

/* EF_MOBILE_DESIGN_FIX_V1_START
   Messages formulaires sous les boutons : connexion + inscription wizard.
*/
.ef-auth-card .ef-alert-after-action {
  margin: 14px 0 0 !important;
  color: #fff !important;
}
.ef-register-messages-after-actions {
  display: grid;
  gap: 10px;
  margin-top: 14px;
}
.ef-register-messages-after-actions .ef-register-error:not(.is-visible):empty {
  display: none !important;
}
.ef-register-messages-after-actions .ef-register-error,
.ef-register-messages-after-actions .ef-register-server-error {
  color: #fff !important;
}
@media (max-width: 760px) {
  .ef-register-messages-after-actions {
    margin-top: 12px;
  }
}
/* EF_MOBILE_DESIGN_FIX_V1_END */

/* EF_PATCH_ANCHOR: login_clean_register_style_v1
   Connexion alignée sur la logique visuelle de Créer un compte.
   Le formulaire ne dépend plus de .ef-auth-card, afin d'éviter le fond clair hérité du template auth.
*/
.ef-login-card{
    width:min(100%,520px);
    padding:28px;
}
.ef-login-card .ef-login-head{
    margin-bottom:0;
}
.ef-login-card .ef-login-head h1{
    margin:14px 0 10px;
    font-size:36px;
    line-height:1;
    font-weight:600;
    letter-spacing:-.045em;
}
.ef-login-card .ef-login-head p{
    margin:0 0 18px;
    max-width:none;
    color:rgba(255,255,255,.74);
}
.ef-login-card .ef-form-block{
    margin-bottom:14px;
}
.ef-login-card .ef-label-text{
    display:inline-flex;
    align-items:center;
    gap:8px;
}
.ef-login-card .ef-label-icon{
    width:17px;
    height:17px;
    color:#38bdf8;
    flex:0 0 auto;
}
.ef-login-card .ef-label-icon svg{
    display:block;
    width:17px;
    height:17px;
}
.ef-login-secret-field{
    position:relative;
}
.ef-login-secret-icon{
    position:absolute;
    left:15px;
    top:50%;
    transform:translateY(-50%);
    display:inline-flex;
    width:18px;
    height:18px;
    color:rgba(255,255,255,.72);
    pointer-events:none;
    z-index:2;
}
.ef-login-secret-icon .ef-label-icon{
    width:18px;
    height:18px;
    color:inherit;
}
.ef-login-secret-icon svg{
    display:block;
    width:18px;
    height:18px;
}
.ef-login-card .ef-login-secret-input{
    padding-left:46px !important;
    letter-spacing:.16em;
}
.ef-login-card .ef-login-secret-input::placeholder{
    letter-spacing:normal;
}
.ef-login-card input:-webkit-autofill,
.ef-login-card input:-webkit-autofill:hover,
.ef-login-card input:-webkit-autofill:focus,
.ef-login-card input:-webkit-autofill:active{
    -webkit-text-fill-color:#ffffff !important;
    caret-color:#ffffff !important;
    box-shadow:0 0 0 1000px #151d2b inset !important;
    border:1px solid rgba(255,255,255,.14) !important;
    transition:background-color 9999s ease-out 0s !important;
}
@media (max-width:640px){
    .ef-login-card{padding:22px 18px;border-radius:24px;}
    .ef-login-card .ef-login-head h1{font-size:30px;}
}

/* EF_PATCH_ANCHOR: login_icons_inside_inputs_v1
   Connexion : labels simples en gras, icônes uniquement dans les champs avec séparateur.
*/
.ef-login-card .ef-form-block > label{
    display:block;
    margin:0 0 8px;
    color:#ffffff;
    font-weight:800;
}

.ef-login-input-field{
    display:flex;
    align-items:center;
    width:100%;
    min-height:52px;
    border:1px solid rgba(255,255,255,.14);
    border-radius:16px;
    background:rgba(255,255,255,.055);
    overflow:hidden;
    transition:border-color .18s ease, box-shadow .18s ease, background .18s ease;
}

.ef-login-input-field:focus-within{
    border-color:rgba(239,13,25,.72);
    box-shadow:0 0 0 3px rgba(239,13,25,.15);
    background:rgba(255,255,255,.075);
}

.ef-login-input-icon{
    flex:0 0 48px;
    width:48px;
    min-height:52px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    color:rgba(255,255,255,.72);
}

.ef-login-input-icon svg{
    display:block;
    width:18px;
    height:18px;
}

.ef-login-input-separator{
    flex:0 0 1px;
    width:1px;
    height:28px;
    background:rgba(255,255,255,.16);
}

.ef-login-card .ef-login-input-field input{
    flex:1 1 auto;
    min-width:0;
    width:100%;
    min-height:52px;
    border:0 !important;
    border-radius:0 !important;
    background:transparent !important;
    color:#ffffff !important;
    box-shadow:none !important;
    padding:0 16px !important;
    outline:none !important;
}

.ef-login-card .ef-login-input-field input:focus{
    border:0 !important;
    background:transparent !important;
    box-shadow:none !important;
}

.ef-login-card .ef-login-input-field .ef-login-secret-input{
    letter-spacing:.16em;
}

.ef-login-card .ef-login-input-field .ef-login-secret-input::placeholder{
    letter-spacing:normal;
}

.ef-login-card .ef-login-input-field input:-webkit-autofill,
.ef-login-card .ef-login-input-field input:-webkit-autofill:hover,
.ef-login-card .ef-login-input-field input:-webkit-autofill:focus,
.ef-login-card .ef-login-input-field input:-webkit-autofill:active{
    -webkit-text-fill-color:#ffffff !important;
    caret-color:#ffffff !important;
    box-shadow:0 0 0 1000px #151d2b inset !important;
    border:0 !important;
    transition:background-color 9999s ease-out 0s !important;
}

/* EF_PATCH_ANCHOR: login_alert_spacing_v1
   Connexion : espace clair entre le bouton et le message retour.
*/
.ef-login-card .ef-alert-after-action{
    margin-top:12px;
    margin-bottom:0;
}

