/* Shared signup/sign-in form bits for /owner/, /partner/, /staff/ (see js/authForms.js). */
.field-err { color: var(--bad, #B3261E); font-size: 12.5px; font-weight: 500; margin: 4px 0 0; }
input[aria-invalid="true"] { border-color: var(--bad, #B3261E); }
.pw { position: relative; }
.pw input { padding-right: 64px; }
.pw button[data-reveal] { position: absolute; right: 4px; bottom: 4px; padding: 6px 12px; min-height: 36px; border: 0; background: none; color: var(--accent, #007F82); font-size: 12.5px; font-weight: 600; }
.pw button[data-reveal]:hover { text-decoration: underline; }
.req { color: var(--muted, #5F6D72); font-size: 12.5px; margin: 4px 0 0; }
.steps { display: flex; align-items: center; gap: 8px; color: var(--muted, #5F6D72); font-size: 12.5px; font-weight: 600; margin: 0 0 6px; }
.steps i { flex: 1; height: 4px; border-radius: 99px; background: var(--line, #E6E6E0); }
.steps i.on { background: var(--accent, #007F82); }
.consent { display: flex; gap: 10px; align-items: flex-start; font-weight: 500; font-size: 13px; color: var(--text, #0C1415); }
.consent input { width: 20px; height: 20px; margin: 1px 0 0; flex: none; }
.consent a { color: var(--accent, #007F82); }
.form-status { font-size: 13px; margin: 8px 0 0; color: var(--ok, #16834A); }
.form-status.bad { color: var(--bad, #B3261E); }
.recover { font-size: 13px; margin: 6px 0 0; }
.recover a { color: var(--accent, #007F82); font-weight: 600; }
@media (prefers-reduced-motion: reduce) { .card, .stat, dialog[open], .gym-hero { animation: none !important; } }

:focus-visible { outline: 3px solid var(--accent, #007F82); outline-offset: 2px; }
