@layer components {

    .loading-btn {
        position: relative;
    }

    .loader {
        display: none; 
        &.active {
            position: absolute;
            cursor: default;
            display: flex;
            justify-content: center;
            align-items: center;
            background-color: var(--color-button-primary);
            top: 0;
            right: 0;
            left: 0;
            bottom: 0;
        }
    }

    .btn-default .loader.active {
        background-color: var(--color-button-default);
    }
    .btn-primary .loader.active {
        background-color: var(--color-button-primary);
    }
    .btn-warning .loader.active {
        background-color: var(--color-button-warning);
    }
    .btn-danger .loader.active {
        background-color: var(--color-button-danger);
    }

    .spinner {
        width: 20px;
        height: 20px;
        border: 3px solid transparent;
        border-radius: 50%;
        border-top-color: white;
        border-right-color: white;
        animation: spin 0.8s linear infinite;
    }

    @keyframes spin {
        0% {
            transform: rotate(0deg);
        }

        100% {
            transform: rotate(360deg);
        }
    }
}