/* NUMBO Magic Link: scoped to authentication pages; enhanced with native form fallback. */
.auth-site [data-magic-link-form] .button-email-link {
    align-items: center;
    gap: .65rem;
    min-height: 3.25rem;
    transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease;
}
.auth-site [data-magic-state="idle"] .button-email-link,
.auth-site [data-magic-state="idle"] .button-email-link:hover,
.auth-site [data-magic-state="idle"] .button-email-link:active {
    border-color: var(--color-border-strong);
    background: var(--color-button-secondary);
    color: var(--color-text-muted);
    cursor: not-allowed;
    box-shadow: none;
}
.auth-site [data-magic-state="ready"] .button-email-link {
    border-color: var(--color-button-primary);
    background: var(--color-button-primary);
    color: var(--color-button-primary-text);
    box-shadow: 0 .25rem 1rem var(--color-shadow);
}
.auth-site [data-magic-state="ready"] .button-email-link:hover {
    border-color: var(--color-button-primary-hover);
    background: var(--color-button-primary-hover);
    color: var(--color-button-primary-hover-text);
}
.auth-site [data-magic-state="ready"] .button-email-link:active {
    border-color: var(--color-button-primary-active);
    background: var(--color-button-primary-active);
    color: var(--color-button-primary-active-text);
}
.auth-site [data-magic-state="submitting"] .button-email-link,
.auth-site [data-magic-state="submitting"] .button-email-link:hover,
.auth-site [data-magic-state="submitting"] .button-email-link:active {
    border-color: var(--color-border-strong);
    background: var(--color-surface-soft);
    color: var(--color-text-secondary);
    box-shadow: none;
    cursor: wait;
    opacity: .78;
}
.auth-site [data-magic-link-spinner] {
    display: inline-block;
    width: 1.05rem;
    height: 1.05rem;
    flex: 0 0 auto;
    border: 2px solid currentColor;
    border-right-color: transparent;
    border-radius: 50%;
    animation: numbo-magic-link-spin .75s linear infinite;
}
.auth-site [data-magic-link-spinner][hidden],
.auth-site [data-magic-link-status][hidden] { display: none; }
.auth-site [data-magic-link-status] {
    margin-top: .75rem;
    font-size: .87rem;
    color: var(--color-text-secondary);
}
.auth-site .magic-link-retry.is-waiting,
.auth-site .magic-link-retry.is-waiting:hover,
.auth-site .magic-link-retry.is-waiting:active {
    border-color: var(--color-border-strong);
    background: var(--color-button-secondary);
    color: var(--color-text-muted);
    cursor: not-allowed;
    box-shadow: none;
}
.auth-site [data-magic-link-countdown] {
    margin-top: 1.25rem;
    color: var(--color-text-secondary);
    font-size: .9rem;
}
@keyframes numbo-magic-link-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
    .auth-site [data-magic-link-spinner] { animation-duration: 2s; }
    .auth-site [data-magic-link-form] .button-email-link { transition: none; }
}
