/* Orbit Monitor — password field, strength meter and rules checklist (used by reset-password and the Profile password popup). */
.pw-field { position: relative; display: flex; align-items: center; }
.pw-field .input { padding-right: 44px; }
.pw-field__toggle { position: absolute; right: 5px; top: 50%; transform: translateY(-50%); display: grid; place-items: center; width: 32px; height: 32px; border-radius: 8px; color: var(--text-3); transition: background var(--dur-fast), color var(--dur-fast); }
.pw-field__toggle:hover { background: var(--surface-3); color: var(--text); }
.pw-meter { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 4px; margin-top: 12px; }
.pw-meter span { height: 4px; border-radius: 2px; background: var(--meter-track); transition: background var(--dur) var(--ease); }
.pw-meter[data-score="1"] span:nth-child(-n+1) { background: var(--danger-dot); }
.pw-meter[data-score="2"] span:nth-child(-n+2) { background: var(--warn-dot); }
.pw-meter[data-score="3"] span:nth-child(-n+3), .pw-meter[data-score="4"] span { background: var(--ok); }
.pw-label { display: flex; justify-content: space-between; gap: var(--sp-3); margin-top: 6px; font-size: var(--fs-xs); color: var(--text-3); }
.pw-label b { font-weight: 600; color: var(--text-2); }
.pw-label[data-score="1"] b { color: var(--danger-text); } .pw-label[data-score="2"] b { color: var(--warn-text); } .pw-label[data-score="3"] b, .pw-label[data-score="4"] b { color: var(--ok-text); }
.pw-rules { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px var(--sp-4); margin-top: 14px; padding: 14px; border: 1px solid var(--border); border-radius: var(--radius-lg); background: var(--surface-2); }
.pw-rule { display: flex; align-items: center; gap: 8px; font-size: var(--fs-xs); color: var(--text-3); transition: color var(--dur-fast); }
.pw-rule .icon { width: 15px; height: 15px; }
.pw-rule__on { display: none; } .pw-rule.is-met { color: var(--text-2); } .pw-rule.is-met .pw-rule__on { display: block; color: var(--ok); } .pw-rule.is-met .pw-rule__off { display: none; }
.pw-match { min-height: 18px; font-size: var(--fs-xs); color: var(--text-3); }
.pw-match.is-ok { color: var(--ok-text); } .pw-match.is-bad { color: var(--danger-text); }
@media (max-width: 480px) { .pw-rules { grid-template-columns: minmax(0, 1fr); } }
