/* PayKita global click + button loading feedback */
button,
.btn,
.link-button,
.sidebar-toggle,
.nav a {
    -webkit-tap-highlight-color: transparent;
}

button:not(:disabled),
.btn:not(.is-loading),
.link-button:not(:disabled),
.sidebar-toggle:not(:disabled),
.nav a {
    transition: transform .12s ease, filter .15s ease, box-shadow .15s ease, opacity .15s ease;
}

button:not(:disabled):active,
.btn:not(.is-loading):active,
.link-button:not(:disabled):active,
.sidebar-toggle:not(:disabled):active,
.nav a:active {
    transform: scale(.975);
}

button.is-loading,
.btn.is-loading {
    position: relative;
    gap: 8px;
    cursor: wait !important;
    pointer-events: none;
    opacity: .86;
    user-select: none;
}

button.is-loading:disabled {
    opacity: .86;
}

.pk-btn-spinner {
    width: 15px;
    height: 15px;
    flex: 0 0 15px;
    display: inline-block;
    border: 2px solid currentColor;
    border-right-color: transparent;
    border-radius: 50%;
    animation: pkButtonSpin .65s linear infinite;
}

.pk-btn-loading-text {
    display: inline-block;
    white-space: nowrap;
}

@keyframes pkButtonSpin {
    to { transform: rotate(360deg); }
}

@media (prefers-reduced-motion: reduce) {
    button,
    .btn,
    .link-button,
    .sidebar-toggle,
    .nav a {
        transition: none !important;
    }
    .pk-btn-spinner {
        animation-duration: 1.2s;
    }
}
