.auth-pending .app-shell { display: none; }
.auth-gate { min-height: 100vh; display: grid; place-items: center; padding: 24px; background: #f4f5f7; }
.auth-gate[hidden] { display: none; }
.auth-card { width: min(430px, 100%); padding: 28px; border-radius: 18px; background: #fff; box-shadow: 0 18px 60px rgba(18, 28, 45, .12); }
.auth-brand { text-align: center; margin-bottom: 22px; }
.auth-brand strong { display: block; color: #e53935; font-size: 25px; }
.auth-brand span { color: #7a8493; font-size: 13px; }
.auth-tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; padding: 4px; margin-bottom: 18px; border-radius: 10px; background: #f1f3f6; }
.auth-tabs button { padding: 9px; border: 0; border-radius: 8px; color: #697382; background: transparent; }
.auth-tabs button.is-active { color: #202938; background: #fff; box-shadow: 0 2px 8px rgba(0,0,0,.07); }
.auth-form { display: grid; gap: 13px; }
.auth-form[hidden] { display: none; }
.auth-form label { display: grid; gap: 6px; color: #4f5968; font-size: 13px; }
.auth-form input { width: 100%; box-sizing: border-box; padding: 12px 13px; border: 1px solid #d9dee7; border-radius: 9px; font: inherit; }
.auth-primary, .auth-secondary { min-height: 43px; border-radius: 9px; font: inherit; cursor: pointer; }
.auth-primary { border: 0; color: #fff; background: #e53935; }
.auth-secondary { border: 1px solid #d9dee7; color: #303a49; background: #fff; }
.auth-message { min-height: 20px; margin: 12px 0 0; color: #677180; font-size: 13px; line-height: 1.55; }
.auth-message.is-error { color: #c62828; }
.auth-households { display: grid; gap: 10px; margin: 12px 0 20px; }
.auth-household { display: grid; gap: 3px; padding: 13px; border: 1px solid #e1e5eb; border-radius: 10px; text-align: left; background: #fff; }
.auth-household strong { color: #242d3b; }
.auth-household span { color: #7b8492; font-size: 12px; }
.auth-divider { display: flex; align-items: center; gap: 10px; margin: 18px 0; color: #9299a5; font-size: 12px; }
.auth-divider::before, .auth-divider::after { content: ""; height: 1px; flex: 1; background: #e5e8ed; }
.auth-user-line { margin: -12px 0 18px; color: #737d8b; text-align: center; font-size: 13px; }
@media (max-width: 560px) { .auth-gate { padding: 14px; } .auth-card { padding: 22px 18px; border-radius: 14px; } }
