/* Shared authentication layout and form presentation. */
.auth-page { width: 100%; max-width: 520px; margin: 0 auto; padding-block: clamp(2rem, 6vw, 4.5rem); }
.auth-page--wide { max-width: 700px; }
.auth-card { overflow: hidden; border: 1px solid var(--color-border); border-radius: var(--radius-lg, 16px); background: var(--color-surface); box-shadow: var(--shadow-sm, 0 2px 8px rgb(15 23 42 / 5%)); }
.auth-card-body { padding: clamp(1.25rem, 4vw, 2rem); }
.auth-header { margin: 0 auto 1.25rem; text-align: center; }
.auth-mark { display: inline-grid; place-items: center; width: 2.75rem; height: 2.75rem; margin-bottom: .75rem; border-radius: var(--radius-md, 12px); color: var(--color-brand); background: var(--color-brand-soft); }
.auth-header h1 { margin: 0 0 .45rem; font-size: clamp(1.55rem, 4vw, 2rem); line-height: 1.2; }
.auth-header p { max-width: 48ch; margin: 0 auto; color: var(--color-text-secondary); line-height: 1.55; }
.auth-form { display: grid; gap: 1rem; }
.auth-field { display: grid; gap: .4rem; }
.auth-field label, .auth-label { font-weight: 600; }
.auth-field input:not([type=checkbox]), .auth-field select, .auth-field textarea { width: 100%; min-height: 46px; padding: .65rem .75rem; border: 1px solid var(--color-border-strong); border-radius: var(--radius-sm, 8px); background: var(--color-surface); color: var(--color-text); font: inherit; font-size: 16px; }
.auth-field input:focus-visible, .auth-field select:focus-visible, .auth-field textarea:focus-visible { outline: 3px solid var(--color-focus); outline-offset: 2px; }
.auth-field [aria-invalid=true] { border-color: var(--color-danger); }
.auth-help, .auth-meta { color: var(--color-text-muted); font-size: .9rem; line-height: 1.5; }
.auth-error { color: var(--color-danger); font-size: .925rem; }
.auth-summary { margin-bottom: 1rem; padding: .85rem 1rem; border: 1px solid var(--color-danger); border-radius: var(--radius-sm, 8px); background: var(--color-danger-soft); color: var(--color-text); }
.auth-checkbox { display: flex; align-items: flex-start; gap: .65rem; line-height: 1.5; }
.auth-checkbox input { flex: 0 0 auto; width: 1.15rem; height: 1.15rem; margin-top: .2rem; accent-color: var(--color-brand); }
.auth-password-wrap { position: relative; }
.auth-password-wrap input { padding-right: 6rem !important; }
.auth-password-toggle { position: absolute; inset-block: 0; right: .4rem; display: inline-flex; align-items: center; justify-content: center; min-width: 5rem; border: 0; background: transparent; color: var(--color-brand); font: inherit; font-size: .9rem; cursor: pointer; }
.auth-footer { margin-top: 1.25rem; padding-top: 1rem; border-top: 1px solid var(--color-border); text-align: center; color: var(--color-text-secondary); }
.auth-footer p { margin: .5rem 0; }
.auth-footer a, .auth-link { color: var(--color-brand); font-weight: 600; text-underline-offset: .15em; }
.auth-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.auth-grid .auth-field--full { grid-column: 1 / -1; }
.auth-submit { width: 100%; min-height: 46px; }
@media (max-width: 520px) { .auth-page, .auth-page--wide { width: 100%; } .auth-grid { grid-template-columns: 1fr; } .auth-grid .auth-field--full { grid-column: auto; } }
@media (prefers-reduced-motion: reduce) { .auth-page *, .auth-page *::before, .auth-page *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; } }
