/* Spinner while POST forms submit — used with public/js/form-submit-loader.js (load after site/admin CSS). */

@keyframes hg-form-spin {
    to {
        transform: rotate(360deg);
    }
}

button[type="submit"].hg-submit-pending,
input[type="submit"].hg-submit-pending {
    cursor: wait;
    pointer-events: none;
}

/* Keep spinner inline without overriding the button's normal alignment. */
button[type="submit"].hg-submit-pending::before,
input[type="submit"].hg-submit-pending::before {
    content: "";
    display: inline-block;
    vertical-align: middle;
    width: 1.05em;
    height: 1.05em;
    margin-right: 0.45rem;
    box-sizing: border-box;
    border: 2px solid currentColor;
    border-right-color: transparent;
    border-radius: 50%;
    animation: hg-form-spin 0.68s linear infinite;
    opacity: 0.95;
}

/* Centered submit buttons (margin: auto) keep their position while loading. */
button[type="submit"].hg-submit-pending--centered,
input[type="submit"].hg-submit-pending--centered {
    display: flex;
    width: fit-content;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
    align-items: center;
    justify-content: center;
}

body.attach-access-lite button[type="submit"].hg-submit-pending::before,
body.attach-access-lite input[type="submit"].hg-submit-pending::before {
    border-color: rgba(255, 255, 255, 0.95);
    border-right-color: transparent;
}

/* Admin icon buttons: overlay spinner so layout does not shift. */
.admin-action-btn[type="submit"].hg-submit-pending {
    position: relative;
}

.admin-action-btn[type="submit"].hg-submit-pending::before {
    position: absolute;
    left: 50%;
    top: 50%;
    margin: 0;
    transform: translate(-50%, -50%);
}

.admin-action-btn[type="submit"].hg-submit-pending svg {
    visibility: hidden;
}

/* ---------- reCAPTCHA v3: Google badge (bottom-right, above page chrome) ---------- */

.grecaptcha-badge {
    z-index: 9999;
}
