/* ── Auth pages (login, request access) ──────────────────────── */

.auth-page
{
    min-height: calc(100vh - 3.25rem);
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: var(--space-16) var(--space-4);
    background-color: var(--bg-alt);
}
.auth-card
{
    background-color: var(--bg);
    border: 1px solid var(--rule);
    border-top: 3px solid var(--ink);
    padding: var(--space-8);
    width: 100%;
    max-width: 400px;
}
.auth-card__wordmark
{
    display: block;
    font-family: var(--font-ui);
    font-size: var(--size-md);
    font-weight: 600;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--ink);
    border-bottom: none;
    margin-bottom: var(--space-8);
}
@media (hover: hover)
{
    .auth-card__wordmark:hover { color: var(--accent); border-bottom: none; }
}
.auth-card__title
{
    font-family: var(--font-body);
    font-size: var(--size-xl);
    font-weight: 500;
    margin-bottom: var(--space-2);
}
.auth-card__subtitle
{
    font-family: var(--font-ui);
    font-size: var(--size-sm);
    color: var(--ink-3);
    line-height: var(--lh-loose);
    margin-bottom: var(--space-8);
}
.auth-card__error
{
    background-color: var(--accent-bg);
    border: 1px solid var(--accent);
    color: var(--accent);
    font-family: var(--font-ui);
    font-size: var(--size-sm);
    padding: var(--space-3) var(--space-4);
    margin-bottom: var(--space-6);
}
.auth-card__success
{
    background-color: #e8f0e8;
    border: 1px solid #5a8a5a;
    color: #2d5a2d;
    font-family: var(--font-ui);
    font-size: var(--size-sm);
    padding: var(--space-4) var(--space-4);
    line-height: var(--lh-base);
}
[data-theme="dark"] .auth-card__success
{
    background-color: #1a2a1a;
    border-color: #4a7a4a;
    color: #8ab88a;
}
.auth-form { display: flex; flex-direction: column; gap: var(--space-4); }
.auth-form__field
{
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}
.auth-form__field label
{
    font-family: var(--font-ui);
    font-size: var(--size-xs);
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--ink-3);
}
.required { color: var(--accent); }
.optional { font-weight: 400; letter-spacing: 0; text-transform: none; color: var(--ink-4); }
.auth-form__field input,
.auth-form__field textarea
{
    width: 100%;
    padding: var(--space-3) var(--space-4);
    background-color: var(--bg-alt);
    border: 1px solid var(--rule);
    color: var(--ink);
    font-family: var(--font-ui);
    font-size: var(--size-sm);
    outline: none;
    transition: border-color var(--transition);
    box-sizing: border-box;
}
.auth-form__field input:focus,
.auth-form__field textarea:focus
{
    border-color: var(--ink-2);
}
.auth-form__hint
{
    font-family: var(--font-ui);
    font-size: var(--size-xs);
    color: var(--ink-4);
}
.auth-form__submit
{
    font-family: var(--font-ui);
    font-size: var(--size-sm);
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    background-color: var(--ink);
    color: var(--bg);
    border: 2px solid var(--ink);
    padding: var(--space-3) var(--space-6);
    cursor: pointer;
    transition: all var(--transition);
    width: 100%;
    margin-top: var(--space-2);
}
@media (hover: hover)
{
    .auth-form__submit:hover
    {
        background-color: var(--accent);
        border-color: var(--accent);
    }
}
.auth-card__footer-link
{
    font-family: var(--font-ui);
    font-size: var(--size-sm);
    color: var(--ink-3);
    margin-top: var(--space-6);
    margin-bottom: 0;
    border-top: 1px solid var(--rule);
    padding-top: var(--space-4);
}
.auth-card__footer-link a { color: var(--accent); border-bottom: none; }
@media (hover: hover)
{
    .auth-card__footer-link a:hover { color: var(--accent-dim); border-bottom: none; }
}
.account-back-link
{
    display: inline-block;
    font-family: var(--font-ui);
    font-size: var(--size-xs);
    font-weight: 600;
    color: var(--ink-3);
    border-bottom: none;
    margin-bottom: var(--space-6);
}
@media (hover: hover)
{
    .account-back-link:hover
    {
        color: var(--accent);
        border-bottom: none;
    }
}
/* ── account settings page sections ──────────────────────────── */

.account-section
{
    margin-bottom: var(--space-2);
}
.account-section__heading
{
    font-family: var(--font-ui);
    font-size: var(--size-xs);
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--ink-3);
    margin-bottom: var(--space-2);
}
.account-section__note
{
    font-family: var(--font-ui);
    font-size: var(--size-xs);
    color: var(--ink-4);
    line-height: var(--lh-base);
    margin-bottom: var(--space-4);
}
.account-divider
{
    border-top: 1px solid var(--rule);
    margin: var(--space-8) 0;
}
/* honeypot field: pushed off-screen and out of the tab order so a real person
   never sees or reaches it. a bot that fills every field gives itself away. */
.hp-field
{
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

