/* Shared recovery requests follow the same field and feedback pattern. */
.recovery-required { color: #b91c1c; }
:is(#receipt-form, #recoveryForm) input, #manage-request input { min-height: 44px; border: 1.5px solid #6b7280; }
:is(#receipt-form, #recoveryForm) input[aria-invalid="true"], #manage-request input[aria-invalid="true"] { border: 2px solid #dc3545; }
:is(#receipt-form, #recoveryForm) button, #manage-request button { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; min-height: 44px; min-width: 44px; white-space: normal; }
:is(#receipt-form, #recoveryForm) input:focus-visible, #manage-request input:focus-visible,
:is(#receipt-form, #recoveryForm) button:focus-visible, #manage-request button:focus-visible,
.recovery-email-status:focus-visible { outline: 3px solid var(--accent, #2563eb); outline-offset: var(--space-2, 2px); }
.recovery-email-status { overflow-wrap: anywhere; }
.recovery-email-status.is-error { color: #991b1b; }
.recovery-email-status.is-success { color: #166534; }
.consent-card .recovery-email-status.is-error { color: #991b1b; }
.consent-card .recovery-email-status.is-success { color: #166534; }
.recovery-submit-spinner { width: 1em; height: 1em; flex-shrink: 0; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: recovery-spin .8s linear infinite; }
@keyframes recovery-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .recovery-submit-spinner { animation: none; } }

#receipt-form button[aria-busy="true"], #manage-request button[aria-busy="true"] { position: relative; cursor: wait; opacity: .65; }
.recovery-submit-spinner { position: absolute; left: 2px; top: calc(50% - 6px); width: 12px; height: 12px; box-sizing: border-box; }

#receipt-form button, #manage-request button {
    padding: var(--space-10) var(--space-18);
    border: 1px solid var(--accent);
    border-radius: var(--radius-8);
    background: var(--accent);
    color: var(--color-white);
    font: 600 16px/1.5 var(--font-family-sans);
}
#receipt-form button:hover, #manage-request button:hover { background: var(--color-blue-700); }

/* Canonical fields for this flow, with invalid borders kept distinct. */
#receipt-form input,
#manage-request input {
    min-height: 44px;
    max-width: 100%;
    padding: var(--space-10, 10px) var(--space-12, 12px);
    border: 1px solid #64748b;
    border-radius: var(--radius-8, 8px);
    background: var(--bg, #fff);
    color: var(--text-primary, #111827);
    font-family: inherit;
    font-size: var(--font-size-16, 16px);
    line-height: 1.5;
    box-sizing: border-box;
}
#receipt-form input[aria-invalid="true"],
#manage-request input[aria-invalid="true"] { border: 2px solid #dc3545; }
