.auth-page { min-height: 100dvh; display: grid; place-items: center; padding: 24px 16px; }
.auth-card { width: min(400px, 100%); padding: 28px 28px 22px; }
.auth-brand { display: flex; align-items: center; gap: 10px; margin-bottom: 22px; }
.auth-mark { width: 36px; height: 36px; display: grid; place-items: center; border-radius: var(--ps-radius-card); background: var(--ps-primary); color: #fff; }
.auth-mark svg { width: 21px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.auth-brand strong { display: block; font-size: 17px; font-weight: 600; }
.auth-brand small { color: var(--ps-text-muted); font-size: 12px; }
.auth-card h1 { margin: 0 0 4px; font-size: 18px; font-weight: 600; }
.auth-card .lead { margin: 0 0 18px; color: var(--ps-text-muted); font-size: 13px; }
.auth-card .notice { margin-bottom: 14px; }
.divider { display: flex; align-items: center; gap: 10px; margin: 18px 0 14px; color: var(--ps-text-subtle); font-size: 12px; }
.divider::before, .divider::after { content: ""; flex: 1; height: 1px; background: var(--ps-border); }
.auth-foot { margin-top: 14px; color: var(--ps-text-muted); font-size: 12px; text-align: center; }
.feishu-icon { width: 18px; height: 18px; }
.rules { margin: 0 0 14px; padding-left: 18px; color: var(--ps-text-muted); font-size: 12px; }
