/**

 * Animation clic + état chargement — tous les boutons des pages d'authentification.

 */



@keyframes kdLoginBtnClick {

    0% { transform: scale(1); }

    35% { transform: scale(0.94); }

    70% { transform: scale(0.98); }

    100% { transform: scale(1); }

}



@keyframes kdLoginBtnSpin {

    to { transform: rotate(360deg); }

}



body.login-page button:not(.password-toggle):not(.message-close):not(.verif-email-message__close):not([data-kd-no-anim]),

body.pos-erp-login-page button:not(.password-toggle):not([data-kd-no-anim]),

body.agence-erp-login-page button:not([data-kd-no-anim]),

body.customer-auth-page button:not([data-kd-no-anim]),

body.verification-email-page button:not(.verif-email-message__close):not([data-kd-no-anim]) {

    position: relative;

    transform-origin: center;

    transition: transform 0.14s cubic-bezier(0.4, 0, 0.2, 1),

                box-shadow 0.14s ease,

                filter 0.14s ease,

                opacity 0.14s ease;

}



body.login-page button:not(.password-toggle):not(.message-close):not(.verif-email-message__close):not([data-kd-no-anim]):not(:disabled):active,

body.pos-erp-login-page button:not(.password-toggle):not([data-kd-no-anim]):not(:disabled):active,

body.agence-erp-login-page button:not([data-kd-no-anim]):not(:disabled):active,

body.customer-auth-page button:not([data-kd-no-anim]):not(:disabled):active,

body.verification-email-page button:not(.verif-email-message__close):not([data-kd-no-anim]):not(:disabled):active {

    transform: scale(0.96);

    filter: brightness(0.94);

}



.kd-login-btn--clicked {

    animation: kdLoginBtnClick 0.34s cubic-bezier(0.4, 0, 0.2, 1);

}



.kd-login-btn--loading {

    pointer-events: none;

    opacity: 0.92;

    cursor: wait;

}



.kd-login-btn--loading::after {

    content: '';

    display: inline-block;

    width: 0.95em;

    height: 0.95em;

    margin-left: 0.55em;

    border: 2px solid rgba(255, 255, 255, 0.35);

    border-top-color: rgba(255, 255, 255, 0.95);

    border-radius: 50%;

    animation: kdLoginBtnSpin 0.7s linear infinite;

    vertical-align: -0.1em;

}



.kd-login-btn--loading-light::after,

body.verification-email-page .verif-email-btn.kd-login-btn--loading::after,

body.verification-email-page .verif-email-footer button.kd-login-btn--loading::after {

    border-color: rgba(0, 0, 0, 0.12);

    border-top-color: rgba(0, 0, 0, 0.55);

}



body.customer-auth-page .kd-login-btn--loading::after {

    border-color: rgba(255, 255, 255, 0.4);

    border-top-color: #fff;

}



@media (prefers-reduced-motion: reduce) {

    .kd-login-btn--clicked {

        animation: none;

    }



    body.login-page button:active,

    body.pos-erp-login-page button:active,

    body.agence-erp-login-page button:active,

    body.customer-auth-page button:active,

    body.verification-email-page button:active {

        transform: none;

        filter: none;

    }



    .kd-login-btn--loading::after {

        animation: none;

        border-top-color: transparent;

    }

}


