/* 会員ログイン・メール認証（管理画面ログインでも共用） */
.page-shell { padding-right: 0; padding-left: 0; }
.auth-card { width: min(560px, 100%); margin: 3vh auto 0; padding: clamp(28px, 6vw, 56px); background: var(--card); border: 1px solid var(--line); box-shadow: 0 24px 70px rgba(0,0,0,.05); }
.member-login-card h1 { margin-bottom: 14px; font-size: clamp(1.75rem, 3.6vw, 2.15rem); }
.admin-login-card h1 { margin-bottom: 14px; font-size: clamp(1.4rem, 2.9vw, 1.72rem); }
.stack { display: grid; gap: 10px; margin-top: 32px; }
.code-input { letter-spacing: .35em; font-size: 1.4rem; text-align: center; }
.admin-mfa-qr { margin: 24px auto; text-align: center; width: fit-content; max-width: 100%; border: 1px solid var(--line); background: #fff; line-height: 0; }
.admin-mfa-qr svg { width: auto; height: auto; max-width: 100%; display: inline-block; vertical-align: top; background: #fff; image-rendering: pixelated; image-rendering: crisp-edges; }
.admin-mfa-secret { margin: 0 0 8px; word-break: break-all; }
.admin-mfa-secret code { font-size: 1.05rem; letter-spacing: .08em; }
.admin-recovery-codes { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 24px; padding: 0; margin: 24px 0; list-style: none; }
.admin-recovery-codes li { padding: 8px 0; border-bottom: 1px solid var(--line); }
.admin-recovery-codes code { font-size: 1.05rem; letter-spacing: .12em; }
.admin-recovery-actions { display: grid; gap: 16px; }
.admin-recovery-confirm { display: flex; gap: 8px; align-items: flex-start; }

@media print {
    header, footer, .no-print { display: none !important; }
    .admin-recovery-print { box-shadow: none; border: 0; }
}

@media (max-width: 640px) {
    .auth-card { margin-top: 0; }
}
