/* Password page: forgot / reset / invite / message cards. */
.pw-icon { width: 64px; height: 64px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: var(--accent-soft); color: var(--accent); }
.pw-icon[data-tone=ok] { background: var(--st-resolved-bg); color: var(--st-resolved-fg); }
.pw-icon[data-tone=warn] { background: var(--st-progress-bg); color: var(--st-progress-fg); }
.pw-icon[data-tone=error] { background: var(--st-overdue-bg); color: var(--st-overdue-fg); }

.pw-toggle { width: 38px; height: 38px; border: 0; border-radius: 9px; background: transparent; display: flex; align-items: center; justify-content: center; color: var(--muted); flex-shrink: 0; }

.pw-rules { list-style: none; margin: -6px 0 0; padding: 0; display: flex; flex-direction: column; gap: 6px; font-size: 13px; color: var(--muted); }
.pw-rules li { display: flex; align-items: center; gap: 8px; transition: color .2s; }
.pw-rule-mark { width: 16px; height: 16px; border-radius: 50%; border: 1.5px solid #CDD3D9; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; transition: background-color .2s, border-color .2s; }
.pw-rules li.ok { color: var(--st-resolved-fg); }
.pw-rules li.ok .pw-rule-mark { background: var(--st-resolved-fg); border-color: var(--st-resolved-fg); color: #FFFFFF; }

/* Art side: shield with soft pulsing rings. */
.pw-art { position: relative; width: 220px; height: 220px; display: flex; align-items: center; justify-content: center; }
.pw-art-core { position: relative; width: 112px; height: 112px; border-radius: 32px; background: #FFFFFF; color: var(--accent); display: flex; align-items: center; justify-content: center; box-shadow: 0 24px 50px -26px rgba(31,35,40,.45); }
.pw-art-ring { position: absolute; inset: 0; border-radius: 50%; border: 2px solid color-mix(in srgb, var(--accent) 30%, transparent); animation: pwRing 2.4s ease-out infinite; }
@keyframes pwRing { from { transform: scale(.55); opacity: .9; } to { transform: scale(1.1); opacity: 0; } }
