.action-pending { cursor: progress; }
.action-spinner {
    display: inline-block;
    width: 1em;
    height: 1em;
    vertical-align: middle;
    border: .15em solid currentColor;
    border-right-color: transparent;
    border-radius: 50%;
    animation: action-spin .65s linear infinite;
}
.action-pending-input {
    color: transparent !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='9' fill='none' stroke='%236c757d' stroke-width='3' stroke-dasharray='42 15'/%3E%3C/svg%3E");
    background-position: center;
    background-repeat: no-repeat;
    background-size: 1em 1em;
}
@keyframes action-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
    .action-spinner { animation-duration: 1.5s; }
}
