
:root{
    --nc-blue:#0866ff;
    --nc-blue-dark:#0757d9;
    --nc-navy:#102653;
    --nc-navy-2:#0c1f46;
    --nc-soft:#f4f7fc;
    --nc-line:#e2e8f1;
    --nc-text:#172033;
    --nc-muted:#718096;
    --nc-white:#ffffff;
    --nc-shadow:0 26px 70px rgba(18,42,82,.13);
}

.page-connexion,
.page-inscription,
.page-connexion input,
.page-connexion button,
.page-connexion select,
.page-inscription input,
.page-inscription button,
.page-inscription select{
    font-family:'Poppins',sans-serif;
}

.auth-navbar,
.auth-footer{
    font-family:'Poppins',sans-serif;
}

.nova-auth{
    min-height:calc(100vh - 72px);
    background:#f4f7fc;
    font-family:'Poppins',sans-serif;
}

.nova-auth-layout{
    min-height:calc(100vh - 72px);
    display:grid;
    grid-template-columns:minmax(390px,.88fr) minmax(520px,1.12fr);
}

.nova-register-layout{
    grid-template-columns:minmax(380px,.72fr) minmax(650px,1.28fr);
}

.nova-auth-cover{
    position:relative;
    min-height:680px;
    background-size:cover;
    background-position:center;
    overflow:hidden;
    color:#fff;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
}

.nova-auth-cover-login{
    background-image:url('https://images.unsplash.com/photo-1600607687920-4e2a09cf159d?auto=format&fit=crop&w=1300&q=88');
}

.nova-auth-cover-register{
    background-image:url('https://images.unsplash.com/photo-1600585154340-be6161a56a0c?auto=format&fit=crop&w=1300&q=88');
}

.nova-auth-cover-overlay{
    position:absolute;
    inset:0;
    background:
        linear-gradient(180deg,rgba(5,29,72,.24),rgba(5,22,52,.92)),
        linear-gradient(90deg,rgba(46,127,168,.30),rgba(5,22,52,.20));
}

.nova-auth-cover-top{
    position:relative;
    z-index:2;
    padding:42px 48px;
}

.cover-pill{
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:8px 12px;
    border-radius:999px;
    border:1px solid rgba(255,255,255,.20);
    background:rgba(255,255,255,.10);
    backdrop-filter:blur(10px);
    font-size:11px;
    font-weight:600;
}

.nova-auth-cover-content{
    position:relative;
    z-index:2;
    padding:48px;
    max-width:650px;
}

.cover-kicker{
    display:block;
    margin-bottom:12px;
    color:#9ec7ff;
    font-size:12px;
    font-weight:700;
    letter-spacing:.14em;
}

.nova-auth-cover h1{
    margin:0 0 17px;
    font-size:clamp(36px,4vw,56px);
    line-height:1.06;
    letter-spacing:-2.4px;
}

.nova-auth-cover p{
    max-width:590px;
    margin:0;
    color:rgba(255,255,255,.78);
    font-size:14px;
    line-height:1.8;
}

.cover-stats{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:10px;
    margin-top:31px;
}

.cover-stats > div{
    padding:14px;
    display:flex;
    align-items:center;
    gap:10px;
    border-radius:13px;
    border:1px solid rgba(255,255,255,.12);
    background:rgba(255,255,255,.08);
    backdrop-filter:blur(9px);
}

.cover-stats i{
    font-size:18px;
    color:#9ec7ff;
}

.cover-stats strong,
.cover-stats small{
    display:block;
}

.cover-stats strong{
    font-size:11px;
}

.cover-stats small{
    margin-top:2px;
    color:rgba(255,255,255,.62);
    font-size:8px;
}

.cover-benefits{
    display:grid;
    gap:11px;
    margin-top:28px;
}

.cover-benefits span{
    display:flex;
    align-items:center;
    gap:9px;
    color:rgba(255,255,255,.85);
    font-size:12px;
    font-weight:500;
}

.cover-benefits i{
    color:#91beff;
    font-size:15px;
}

.nova-auth-panel{
    background:#fff;
    display:flex;
    justify-content:center;
    align-items:center;
    padding:50px 32px;
}

.nova-register-panel{
    align-items:flex-start;
    padding-top:38px;
    padding-bottom:38px;
}

.nova-auth-box{
    width:min(440px,100%);
}

.nova-auth-box-register{
    width:min(830px,100%);
}

.auth-brand-mobile{
    display:none;
    align-items:center;
    gap:10px;
    margin-bottom:22px;
}

.auth-switch{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:5px;
    padding:5px;
    margin-bottom:30px;
    border-radius:12px;
    background:#f0f3f8;
}

.auth-switch a{
    min-height:42px;
    display:flex;
    justify-content:center;
    align-items:center;
    border-radius:9px;
    color:#7a8799;
    font-size:12px;
    font-weight:600;
    transition:.2s;
}

.auth-switch a.active{
    color:var(--nc-blue);
    background:#fff;
    box-shadow:0 6px 18px rgba(17,52,104,.08);
}

.auth-heading{
    display:flex;
    align-items:center;
    gap:15px;
    margin-bottom:24px;
}

.auth-heading-icon{
    flex:0 0 48px;
    width:48px;
    height:48px;
    border-radius:14px;
    display:grid;
    place-items:center;
    background:#edf4ff;
    color:var(--nc-blue);
    font-size:20px;
}

.auth-overline{
    display:block;
    margin-bottom:2px;
    color:var(--nc-blue);
    font-size:9px;
    font-weight:700;
    letter-spacing:.12em;
    text-transform:uppercase;
}

.auth-heading h2{
    margin:0;
    color:#19263d;
    font-size:28px;
    line-height:1.1;
    letter-spacing:-1px;
}

.auth-heading p{
    margin:6px 0 0;
    color:#8490a2;
    font-size:11px;
    line-height:1.5;
}

.auth-heading-register{
    margin-bottom:21px;
}

.nova-alert{
    display:flex;
    align-items:flex-start;
    gap:10px;
    margin-bottom:10px;
    padding:11px 13px;
    border-radius:10px;
    font-size:11px;
    line-height:1.5;
}

.nova-alert-error{
    color:#a32438;
    background:#fff2f4;
    border:1px solid #ffd8df;
}

.nova-alert-success{
    color:#176848;
    background:#effaf5;
    border:1px solid #cfeede;
}

.nova-form{
    display:grid;
    gap:17px;
}

.nova-field{
    display:grid;
    gap:7px;
}

.nova-field label,
.nova-label-row label{
    color:#344158;
    font-size:11px;
    font-weight:600;
}

.nova-label-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:15px;
}

.nova-link{
    color:var(--nc-blue);
    font-size:10px;
    font-weight:600;
}

.nova-field input,
.nova-field select{
    width:100%;
    height:49px;
    border:1px solid #dce3ed;
    border-radius:10px;
    padding:0 13px;
    outline:none;
    color:#202d44;
    background:#fff;
    font-size:12px;
    transition:.2s;
}

.nova-field input::placeholder{
    color:#a0aabc;
}

.nova-field input:focus,
.nova-field select:focus{
    border-color:#8db9ff;
    box-shadow:0 0 0 4px rgba(46,127,168,.07);
}

.nova-input-icon{
    position:relative;
}

.nova-input-icon > i{
    position:absolute;
    top:50%;
    left:14px;
    transform:translateY(-50%);
    color:#8c99ab;
    font-size:15px;
}

.nova-input-icon input{
    padding-left:41px;
    padding-right:45px;
}

.nova-password{
    position:relative;
}

.nova-password.plain input{
    padding-right:44px;
}

.nova-password-toggle{
    position:absolute;
    right:8px;
    top:50%;
    transform:translateY(-50%);
    width:33px;
    height:33px;
    border:0;
    border-radius:8px;
    display:grid;
    place-items:center;
    background:transparent;
    color:#7a879a;
    cursor:pointer;
}

.nova-password-toggle:hover{
    color:var(--nc-blue);
    background:#f2f6fc;
}

.nova-checkline{
    display:flex;
    align-items:flex-start;
    gap:9px;
    color:#68758a;
    font-size:10px;
    line-height:1.5;
}

.nova-checkline input{
    margin-top:2px;
    accent-color:var(--nc-blue);
}

.nova-btn{
    min-height:49px;
    border:1px solid transparent;
    border-radius:10px;
    padding:0 17px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:9px;
    font-size:11px;
    font-weight:700;
    cursor:pointer;
    transition:.2s;
}

.nova-btn-primary{
    background:var(--nc-blue);
    color:#fff;
    box-shadow:0 11px 24px rgba(46,127,168,.18);
}

.nova-btn-primary:hover{
    background:var(--nc-blue-dark);
    transform:translateY(-1px);
}

.nova-btn-light{
    color:#526076;
    background:#fff;
    border-color:#dbe3ee;
}

.auth-bottom-note{
    margin-top:27px;
    padding-top:19px;
    border-top:1px solid #edf0f5;
    display:flex;
    justify-content:center;
    align-items:center;
    gap:8px;
    color:#8691a2;
    font-size:10px;
}

.auth-bottom-note a{
    display:inline-flex;
    align-items:center;
    color:var(--nc-blue);
    font-weight:700;
}

.auth-security{
    display:flex;
    justify-content:center;
    gap:16px;
    margin-top:17px;
    color:#9aa4b3;
    font-size:9px;
}

.auth-security span{
    display:flex;
    align-items:center;
    gap:5px;
}

/* ---------------- INSCRIPTION ---------------- */

.registration-progress{
    display:flex;
    align-items:center;
    justify-content:center;
    margin-bottom:23px;
}

.progress-item{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:5px;
    min-width:58px;
}

.progress-item span{
    width:30px;
    height:30px;
    display:grid;
    place-items:center;
    border-radius:50%;
    border:1px solid #dce3ed;
    background:#fff;
    color:#8a95a6;
    font-size:10px;
    font-weight:700;
}

.progress-item small{
    color:#8b96a7;
    font-size:8px;
    font-weight:600;
}

.progress-item.active span,
.progress-item.done span{
    border-color:var(--nc-blue);
    background:var(--nc-blue);
    color:#fff;
}

.progress-item.active small,
.progress-item.done small{
    color:var(--nc-blue);
}

.progress-line{
    width:58px;
    height:1px;
    background:#dfe5ed;
    margin:0 5px 17px;
}

.register-step{
    display:none;
}

.register-step.active{
    display:block;
    animation:novaFade .28s ease;
}

@keyframes novaFade{
    from{opacity:0;transform:translateY(7px)}
    to{opacity:1;transform:none}
}

.step-title{
    display:flex;
    align-items:center;
    gap:11px;
    margin-bottom:18px;
    padding-bottom:15px;
    border-bottom:1px solid #edf0f5;
}

.step-icon{
    flex:0 0 38px;
    width:38px;
    height:38px;
    border-radius:11px;
    display:grid;
    place-items:center;
    color:var(--nc-blue);
    background:#edf4ff;
}

.step-title strong{
    display:block;
    color:#253249;
    font-size:12px;
}

.step-title small{
    display:block;
    margin-top:3px;
    color:#8a95a6;
    font-size:9px;
}

.account-type-grid-v2{
    display:grid;
    grid-template-columns:repeat(5,1fr);
    gap:8px;
    margin-bottom:16px;
}

.account-choice{
    position:relative;
}

.account-choice input{
    position:absolute;
    opacity:0;
}

.account-choice > span{
    min-height:77px;
    padding:10px 7px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:7px;
    border:1px solid #dfe6ef;
    border-radius:11px;
    background:#fff;
    cursor:pointer;
    transition:.2s;
    text-align:center;
}

.account-choice i{
    color:#718096;
    font-size:18px;
}

.account-choice strong{
    color:#5e6b7f;
    font-size:8px;
    line-height:1.25;
}

.account-choice input:checked + span{
    border-color:var(--nc-blue);
    background:#f3f8ff;
    box-shadow:0 0 0 2px rgba(46,127,168,.06);
}

.account-choice input:checked + span i,
.account-choice input:checked + span strong{
    color:var(--nc-blue);
}

.nova-grid{
    display:grid;
    gap:12px;
    margin-top:12px;
}

.nova-grid.two{
    grid-template-columns:repeat(2,1fr);
}

.nova-grid.three{
    grid-template-columns:repeat(3,1fr);
}

.business-fields-v2{
    display:none;
    margin-top:14px;
    padding:14px;
    border:1px dashed #d8e1ed;
    border-radius:12px;
    background:#f8fafd;
}

.business-fields-v2.show{
    display:block;
}

.business-caption{
    display:flex;
    align-items:center;
    gap:8px;
    margin-bottom:4px;
    color:#526177;
    font-size:10px;
    font-weight:700;
}

.business-caption i{
    color:var(--nc-blue);
}

.step-actions{
    display:flex;
    justify-content:space-between;
    gap:10px;
    margin-top:21px;
    padding-top:16px;
    border-top:1px solid #edf0f5;
}

.step-actions.right{
    justify-content:flex-end;
}

.step-actions .nova-btn{
    min-width:128px;
}

.nova-help{
    color:#919cad;
    font-size:8px;
    line-height:1.45;
}

.iti{
    width:100%;
}

.iti input{
    width:100% !important;
    padding-left:92px !important;
}

.iti__selected-country-primary{
    border-radius:10px 0 0 10px;
}

.iti__country-list{
    font-family:'Poppins',sans-serif;
    font-size:11px;
    z-index:99999;
}

.whatsapp-choice{
    min-height:47px;
    padding:0 13px;
    display:flex;
    align-items:center;
    border:1px solid #dfe6ef;
    border-radius:10px;
    background:#f8fafd;
    cursor:pointer;
}

.whatsapp-choice input{
    width:auto;
    height:auto;
    margin-right:9px;
    accent-color:var(--nc-blue);
}

.whatsapp-choice span{
    display:flex;
    align-items:center;
    gap:7px;
    color:#536177;
    font-size:10px;
    font-weight:500;
}

.whatsapp-choice i{
    color:#21a366;
    font-size:14px;
}

.whatsapp-extra{
    display:none;
}

.whatsapp-extra.show{
    display:grid;
}

.plan-selector-v2{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:10px;
    margin-bottom:17px;
}

.plan-choice-v2{
    position:relative;
}

.plan-choice-v2 input{
    position:absolute;
    opacity:0;
}

.plan-choice-v2 > span{
    min-height:125px;
    padding:15px;
    display:flex;
    flex-direction:column;
    border:1px solid #dfe6ef;
    border-radius:12px;
    cursor:pointer;
    position:relative;
    transition:.2s;
}

.plan-choice-v2 strong{
    color:#536075;
    font-size:10px;
    letter-spacing:.08em;
}

.plan-choice-v2 b{
    display:block;
    margin:10px 0 6px;
    color:#1f2c44;
    font-size:22px;
}

.plan-choice-v2 b small{
    color:#8c97a8;
    font-size:8px;
    font-weight:500;
}

.plan-choice-v2 > span > small{
    color:#8490a2;
    font-size:8px;
    line-height:1.45;
}

.plan-choice-v2 em{
    position:absolute;
    right:9px;
    top:9px;
    padding:3px 6px;
    border-radius:999px;
    background:#edf4ff;
    color:var(--nc-blue);
    font-size:7px;
    font-style:normal;
    font-weight:700;
}

.plan-choice-v2 input:checked + span{
    border-color:var(--nc-blue);
    background:#f4f8ff;
    box-shadow:0 0 0 2px rgba(46,127,168,.06);
}

.step-subtitle{
    display:flex;
    align-items:center;
    gap:8px;
    margin:4px 0 10px;
    color:#415069;
    font-size:10px;
    font-weight:700;
}

.step-subtitle i{
    color:var(--nc-blue);
}

.nova-terms{
    margin-top:2px;
}

.register-bottom-note{
    margin-top:18px;
}

@media(max-width:1100px){
    .nova-auth-layout,
    .nova-register-layout{
        grid-template-columns:1fr;
    }

    .nova-auth-cover{
        min-height:390px;
    }

    .nova-auth-cover-content{
        padding:35px 38px;
    }

    .nova-auth-cover-top{
        padding:32px 38px;
    }

    .nova-auth-panel{
        padding:42px 24px;
    }

    .nova-register-panel{
        padding-top:30px;
    }
}

@media(max-width:760px){
    .auth-brand-mobile{
        display:flex;
    }

    .nova-auth-cover{
        min-height:315px;
    }

    .nova-auth-cover-top{
        padding:23px 22px;
    }

    .nova-auth-cover-content{
        padding:23px 22px 28px;
    }

    .nova-auth-cover h1{
        font-size:34px;
        letter-spacing:-1.7px;
    }

    .nova-auth-cover p{
        font-size:12px;
    }

    .cover-stats{
        display:none;
    }

    .cover-benefits{
        grid-template-columns:1fr;
        gap:7px;
    }

    .cover-benefits span{
        font-size:10px;
    }

    .nova-auth-panel{
        padding:30px 16px;
    }

    .auth-heading-icon{
        width:42px;
        height:42px;
        flex-basis:42px;
    }

    .auth-heading h2{
        font-size:25px;
    }

    .account-type-grid-v2{
        grid-template-columns:repeat(2,1fr);
    }

    .nova-grid.two,
    .nova-grid.three{
        grid-template-columns:1fr;
    }

    .plan-selector-v2{
        grid-template-columns:1fr;
    }

    .plan-choice-v2 > span{
        min-height:auto;
    }

    .registration-progress{
        margin-bottom:18px;
    }

    .progress-line{
        width:32px;
    }

    .step-actions .nova-btn{
        min-width:0;
        flex:1;
    }

    .auth-security{
        flex-direction:column;
        align-items:center;
        gap:5px;
    }
}


.login-identifier-note{
    display:flex;
    align-items:flex-start;
    gap:9px;
    padding:11px 12px;
    margin:0 0 13px;
    border-radius:10px;
    background:#f3f7fd;
    border:1px solid #e1e9f4;
    color:#617086;
    font-size:9px;
    line-height:1.55;
}
.login-identifier-note i{
    margin-top:1px;
    color:var(--nc-blue);
    font-size:13px;
}
.login-identifier-note strong{
    color:#33435b;
}

.iti{
    width:100%;
}
.iti input#telephone,
.iti input#whatsapp_input{
    padding-left:96px !important;
}



/* ==========================================================
   NOVA-IMMO AUTH — TYPOGRAPHIE LISIBLE V2
   ========================================================== */

.page-connexion,
.page-inscription {
    font-family: 'Poppins', sans-serif !important;
    font-size: 14px !important;
}

.auth-switch a {
    font-size: 13px !important;
    min-height: 45px !important;
}

.auth-overline {
    font-size: 10px !important;
}

.auth-heading h2 {
    font-size: 31px !important;
}

.auth-heading p {
    margin-top: 7px !important;
    font-size: 13px !important;
    line-height: 1.6;
}

.nova-alert {
    font-size: 12px !important;
}

.nova-field label,
.nova-label-row label {
    font-size: 12px !important;
}

.nova-link {
    font-size: 11px !important;
}

.nova-field input,
.nova-field select {
    height: 52px !important;
    font-size: 13px !important;
}

.nova-checkline {
    font-size: 11px !important;
}

.nova-btn {
    min-height: 52px !important;
    font-size: 12px !important;
}

.auth-bottom-note {
    font-size: 11px !important;
}

.auth-security {
    font-size: 10px !important;
}

.cover-pill {
    font-size: 12px !important;
}

.cover-kicker {
    font-size: 13px !important;
}

.nova-auth-cover p {
    font-size: 15px !important;
    line-height: 1.8 !important;
}

.cover-stats strong {
    font-size: 12px !important;
}

.cover-stats small {
    font-size: 10px !important;
}

.cover-benefits span {
    font-size: 13px !important;
}

/* Etapes inscription */

.progress-item span {
    width: 33px !important;
    height: 33px !important;
    font-size: 11px !important;
}

.progress-item small {
    font-size: 9px !important;
}

.step-title strong {
    font-size: 14px !important;
}

.step-title small {
    margin-top: 4px !important;
    font-size: 10px !important;
    line-height: 1.45;
}

.account-choice strong {
    font-size: 10px !important;
}

.business-caption {
    font-size: 11px !important;
}

.nova-help {
    font-size: 10px !important;
    line-height: 1.5 !important;
}

.whatsapp-choice span {
    font-size: 11px !important;
}

.plan-choice-v2 strong {
    font-size: 11px !important;
}

.plan-choice-v2 b {
    font-size: 24px !important;
}

.plan-choice-v2 b small {
    font-size: 10px !important;
}

.plan-choice-v2 > span > small {
    font-size: 10px !important;
}

.plan-choice-v2 em {
    font-size: 8px !important;
}

.step-subtitle {
    font-size: 12px !important;
}

.login-identifier-note {
    font-size: 10px !important;
}

/* MOBILE AUTH */

@media (max-width: 760px) {

    .nova-auth {
        background: #fff !important;
    }

    /*
     * On évite l'effet "image collée au formulaire".
     * Une petite séparation visuelle est ajoutée.
     */
    .nova-auth-cover {
        min-height: 330px !important;
        margin-bottom: 14px !important;
        border-radius: 0 0 24px 24px !important;
    }

    .nova-auth-panel {
        padding: 28px 18px 38px !important;
    }

    .nova-auth-box,
    .nova-auth-box-register {
        width: 100% !important;
    }

    .auth-switch {
        margin-bottom: 26px !important;
    }

    .auth-switch a {
        font-size: 12px !important;
    }

    .auth-heading {
        margin-bottom: 22px !important;
    }

    .auth-heading h2 {
        font-size: 27px !important;
    }

    .auth-heading p {
        font-size: 12px !important;
    }

    .nova-field label,
    .nova-label-row label {
        font-size: 12px !important;
    }

    .nova-field input,
    .nova-field select {
        height: 53px !important;
        font-size: 13px !important;
    }

    .nova-btn {
        min-height: 53px !important;
        font-size: 12px !important;
    }

    .step-title strong {
        font-size: 13px !important;
    }

    .step-title small {
        font-size: 10px !important;
    }

    .account-choice strong {
        font-size: 10px !important;
    }

    .plan-choice-v2 strong {
        font-size: 11px !important;
    }

    .plan-choice-v2 > span > small {
        font-size: 10px !important;
    }

    .nova-help {
        font-size: 10px !important;
    }

    .auth-bottom-note {
        font-size: 11px !important;
    }
}


/* ==========================================================
   NOVA-IMMO AUTH — CHARTE CYAN V3
   ========================================================== */

:root {
    --nc-blue: #2E7FA8;
    --nc-blue-dark: #236689;
    --nc-navy: #1C5878;
    --nc-navy-2: #1D6D90;
    --nc-soft: #F4FBFE;
    --nc-line: #DDECF3;
    --nc-text: #17202A;
    --nc-muted: #6E7D89;
    --nc-white: #FFFFFF;

    --nc-orange: #2E7FA8;
    --nc-orange-dark: #236689;
}

/* couverture plus claire */
.nova-auth-cover-overlay {
    background:
        linear-gradient(180deg, rgba(28,88,120,.16), rgba(28,88,120,.76)),
        linear-gradient(90deg, rgba(46,127,168,.28), rgba(28,88,120,.14)) !important;
}

/* onglet actif */
.auth-switch a.active {
    color: var(--nc-blue-dark) !important;
}

/* icônes */
.auth-heading-icon,
.step-icon {
    background: #EEF6F9 !important;
    color: var(--nc-blue-dark) !important;
}

/* boutons d'authentification : bleu professionnel V4 */
.nova-btn-primary {
    background: var(--nc-orange) !important;
    color: #fff !important;
    box-shadow: 0 11px 24px rgba(46,127,168,.20) !important;
}

.nova-btn-primary:hover {
    background: var(--nc-orange-dark) !important;
}

/* choix actifs */
.account-choice input:checked + span,
.plan-choice-v2 input:checked + span {
    border-color: var(--nc-blue) !important;
    background: #F2FAFD !important;
}

.account-choice input:checked + span i,
.account-choice input:checked + span strong {
    color: var(--nc-blue-dark) !important;
}

.plan-choice-v2 em {
    background: #EEF6F9 !important;
    color: var(--nc-blue-dark) !important;
}

/* focus champs */
.nova-field input:focus,
.nova-field select:focus {
    border-color: #71B5CF !important;
    box-shadow: 0 0 0 4px rgba(46,127,168,.09) !important;
}


/* ==========================================================
   VALIDATION E-MAIL — MODALE ENTRE ÉTAPE 1 ET ÉTAPE 2
   ========================================================== */

.nova-email-modal {
    position: fixed;
    inset: 0;
    z-index: 15000;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 20px;
    background: rgba(12, 38, 55, .68);
    backdrop-filter: blur(8px);
}

.nova-email-modal.show {
    display: flex;
}

.nova-email-modal-card {
    width: 100%;
    max-width: 480px;
    position: relative;
    padding: 32px;
    border: 1px solid var(--nc-line);
    border-radius: 26px;
    background: #fff;
    box-shadow: 0 28px 80px rgba(18, 63, 83, .28);
    text-align: center;
    animation: novaTokenPop .22s ease;
}

.nova-email-modal-close {
    position: absolute;
    top: 16px;
    right: 16px;
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    border: 0;
    border-radius: 13px;
    background: var(--nc-soft);
    color: var(--nc-navy);
    cursor: pointer;
}

.nova-email-modal-icon {
    width: 70px;
    height: 70px;
    display: grid;
    place-items: center;
    margin: 0 auto 17px;
    border-radius: 22px;
    background: #EEF6F9;
    color: var(--nc-blue-dark);
    font-size: 29px;
}

.nova-email-modal-card h3 {
    margin: 6px 0 10px;
    color: var(--nc-text);
    font-size: 24px;
    font-weight: 800;
}

.nova-email-modal-card p {
    margin: 0;
    color: var(--nc-muted);
    font-size: 13px;
    line-height: 1.7;
}

.nova-email-modal-card p strong {
    color: var(--nc-navy);
}

.nova-token-boxes {
    margin: 20px 0 8px;
}

.nova-token-boxes input {
    width: 100%;
    height: 64px;
    border: 1px solid var(--nc-line);
    border-radius: 16px;
    outline: 0;
    color: var(--nc-navy);
    background: #fff;
    text-align: center;
    letter-spacing: 12px;
    font-family: Poppins, sans-serif;
    font-size: 28px;
    font-weight: 800;
}

.nova-token-boxes input:focus {
    border-color: var(--nc-blue);
    box-shadow: 0 0 0 4px rgba(46, 127, 168, .10);
}

.nova-token-message {
    min-height: 23px;
    margin: 6px 0;
    color: #B42318;
    font-size: 12px;
    font-weight: 700;
}

.nova-token-message.success {
    color: #18764B;
}

.nova-token-verify {
    width: 100%;
    min-height: 52px;
    justify-content: center;
}

.nova-token-verify:disabled,
.nova-token-resend:disabled {
    opacity: .6;
    cursor: wait;
}

.nova-token-resend {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin-top: 14px;
    padding: 7px 10px;
    border: 0;
    color: var(--nc-blue-dark);
    background: transparent;
    font-family: Poppins, sans-serif;
    font-size: 12px;
    font-weight: 800;
    cursor: pointer;
}

.nova-token-note {
    display: block;
    margin-top: 10px;
    color: var(--nc-muted);
    font-size: 10px;
    line-height: 1.6;
}

.nova-link-button {
    padding: 0;
    border: 0;
    background: transparent;
    font-family: inherit;
    cursor: pointer;
}

.nova-reset-form {
    margin-top: 20px;
    text-align: left;
}

.nova-reset-field {
    margin-bottom: 6px;
}

.nova-reset-form .nova-token-message {
    text-align: center;
}

.nova-reset-form .nova-token-verify {
    margin-top: 4px;
}

@keyframes novaTokenPop {
    from {
        opacity: 0;
        transform: translateY(12px) scale(.97);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

@media (max-width: 520px) {
    .nova-email-modal {
        padding: 14px;
    }

    .nova-email-modal-card {
        padding: 27px 20px 24px;
        border-radius: 22px;
    }

    .nova-email-modal-card h3 {
        font-size: 21px;
    }

    .nova-token-boxes input {
        letter-spacing: 9px;
    }
}


/* ==========================================================
   NOVA-IMMO AUTH — BLEU PROFESSIONNEL V4
   ========================================================== */

:root {
    --nc-blue: #2E7FA8;
    --nc-blue-dark: #236689;
    --nc-navy: #1C5878;
    --nc-navy-2: #174B66;
    --nc-soft: #F3F8FA;
    --nc-line: #DDE8ED;
    --nc-text: #17202A;
    --nc-muted: #6D7C87;
    --nc-white: #FFFFFF;
}

/* Couverture */
.nova-auth-cover-overlay {
    background:
        linear-gradient(180deg, rgba(28,88,120,.18), rgba(28,88,120,.78)),
        linear-gradient(90deg, rgba(46,127,168,.24), rgba(28,88,120,.12)) !important;
}

/* CTA connexion / inscription : BLEU */
.nova-btn-primary {
    background: var(--nc-blue) !important;
    color: #fff !important;
    box-shadow: 0 11px 24px rgba(46,127,168,.22) !important;
}

.nova-btn-primary:hover {
    background: var(--nc-blue-dark) !important;
}

/* sélections */
.auth-switch a.active,
.account-choice input:checked + span i,
.account-choice input:checked + span strong,
.plan-choice-v2 em {
    color: var(--nc-blue-dark) !important;
}

.account-choice input:checked + span,
.plan-choice-v2 input:checked + span {
    border-color: var(--nc-blue) !important;
    background: #F2F8FA !important;
}

.auth-heading-icon,
.step-icon {
    background: #EEF6F9 !important;
    color: var(--nc-blue-dark) !important;
}

.nova-field input:focus,
.nova-field select:focus {
    border-color: #71B5CF !important;
    box-shadow: 0 0 0 4px rgba(46,127,168,.09) !important;
}
