.auth-shell{max-width:520px;min-height:0;margin:24px auto;padding-bottom:24px}
.auth-form,.local-entry form{display:grid;gap:12px;margin:20px 0}
.auth-form input{min-height:48px;padding:12px;border:1px solid #bcb6c6;border-radius:12px;font:inherit;width:100%;box-sizing:border-box}
.auth-form label{font-weight:600}.local-entry{margin-top:24px}.local-entry>p{font-size:.875rem;color:var(--muted)}
#login-error:empty{display:none}#login-error{color:#862135}.auth-form button,.local-entry button{min-height:48px}
input:focus-visible,button:focus-visible,a:focus-visible{outline:3px solid #14b7dc;outline-offset:3px}
@media(max-width:560px){.auth-shell{margin:0;min-height:100dvh;border-radius:0}}
.browser-entry .auth-form{gap:10px}
.auth-roles{display:flex;gap:10px;border:0;padding:0;margin:0 0 12px;min-width:0}
.auth-roles legend{font-weight:600;margin-bottom:10px}
.auth-roles label{flex:1;position:relative;cursor:pointer}
.auth-roles input{position:absolute;width:1px;height:1px;min-height:0;opacity:0}
.auth-roles span{display:flex;align-items:center;justify-content:center;min-height:48px;border:1px solid #d6cfdf;border-radius:12px;font-size:.95rem}
.auth-roles input:checked+span{color:var(--purple);background:#f1eaf8;border-color:var(--purple)}
.auth-roles input:focus-visible+span{outline:3px solid var(--cyan);outline-offset:3px}
.browser-entry .auth-form>button{margin-top:10px}
.auth-help{font-size:.875rem;line-height:1.6;color:var(--muted)}
.auth-alternative{display:grid;gap:12px;padding-top:22px;margin-top:24px;border-top:1px solid #e4dfe9;text-align:center;font-size:.875rem;color:var(--muted)}
.auth-alternative a{display:flex;min-height:48px;align-items:center;justify-content:center;text-decoration:none}
