/* /core/assets/auth.css — styling for the CORE public auth views.
 *
 * These views are the last-resort tier (active theme -> enabled module -> core), so
 * they cannot rely on a theme stylesheet existing: a forked theme may ship none of
 * this. The rules are deliberately neutral — translucent greys plus one red for
 * errors — so they sit acceptably on a light or a dark theme without fighting it. A
 * theme that wants its own sign-in look ships views/auth-login.php, and then this
 * file is never loaded.
 */

.auth-card{max-width:26rem;margin:3rem auto;padding:2rem;border:1px solid rgba(128,128,128,.3);border-radius:.75rem}
.auth-card h1{margin-top:0;font-size:1.5rem}
.auth-field{margin-bottom:1rem}
.auth-field label{display:block;margin-bottom:.35rem;font-weight:600;font-size:.9rem}
.auth-field input{
    width:100%;
    box-sizing:border-box;
    padding:.6rem .7rem;
    border:1px solid rgba(128,128,128,.45);
    border-radius:.4rem;
    font:inherit;
}
.auth-check{display:flex;align-items:center;gap:.5rem;margin:0 0 1rem;font-size:.9rem;cursor:pointer}
.auth-check input{margin:0;width:1rem;height:1rem}
.auth-hint{display:block;margin-top:.3rem;font-size:.8rem;opacity:.75}
.auth-error{padding:.7rem .8rem;margin-bottom:1.25rem;border-radius:.4rem;background:rgba(200,40,40,.12);border:1px solid rgba(200,40,40,.4)}
.auth-submit{
    width:100%;
    padding:.7rem;
    border:0;
    border-radius:.4rem;
    font:inherit;
    font-weight:600;
    cursor:pointer;
}
.auth-alt{margin:1.25rem 0 0;text-align:center;font-size:.9rem}
.auth-lead{margin:0 0 1.25rem;font-size:.95rem;opacity:.85}
.auth-notice{padding:.8rem;margin-bottom:1.25rem;border-radius:.4rem;background:rgba(200,150,40,.12);border:1px solid rgba(200,150,40,.4)}
.auth-notice p{margin:0 0 .6rem}
.auth-inline-submit{padding:.4rem .8rem;border:0;border-radius:.3rem;font:inherit;font-weight:600;cursor:pointer}
.auth-card-wide{max-width:32rem}
.auth-ok{padding:.7rem .8rem;margin-bottom:1.25rem;border-radius:.4rem;background:rgba(40,160,90,.12);border:1px solid rgba(40,160,90,.4)}
.auth-section{margin:2rem 0 1rem;padding-top:1.25rem;border-top:1px solid rgba(128,128,128,.25);font-size:1.05rem}
.auth-links{margin:0;padding-left:1.25rem}
.auth-links li{margin:.35rem 0}
.auth-signout{margin-top:2rem;padding-top:1.25rem;border-top:1px solid rgba(128,128,128,.25)}
.auth-rows{margin:0 0 1.5rem}
.auth-rows div{display:flex;justify-content:space-between;gap:1rem;padding:.5rem 0;border-bottom:1px solid rgba(128,128,128,.2)}
.auth-rows dt{font-weight:600}
.auth-rows dd{margin:0;text-align:right;word-break:break-all}

/* Recovery codes are shown once and meant to be copied or printed, so they get a
   monospaced grid rather than a bullet list. */
.auth-codes{list-style:none;margin:0 0 1.25rem;padding:0;display:grid;
    grid-template-columns:repeat(auto-fill,minmax(9rem,1fr));gap:.4rem}
.auth-codes code{display:block;padding:.45rem .6rem;border:1px solid rgba(128,128,128,.35);
    border-radius:.4rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
    letter-spacing:.06em;text-align:center}
/* The trap stays out of sight with full specificity: a theme rule that outranked it would show a
 * person a field that marks their sign-up as a bot's when filled. */
.auth-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
