.password-control { position:relative; display:block; width:100%; direction:ltr; }
.password-control > input { width:100%; box-sizing:border-box; padding-right:52px; padding-left:14px; direction:ltr; text-align:left; }
.password-control > .password-toggle { position:absolute; inset-inline-end:5px; top:50%; transform:translateY(-50%); display:grid; place-items:center; width:42px; height:42px; padding:0; margin:0; border:0; border-radius:9px; background:transparent; color:#61766e; cursor:pointer; touch-action:manipulation; }
.password-control > .password-toggle:hover { color:#065f46; background:transparent; }
.password-control > .password-toggle:focus { box-shadow:none; }
.password-control > .password-toggle:focus:not(:focus-visible) { outline:none; }
.password-control > .password-toggle:focus-visible { outline:2px solid #b08a2e; outline-offset:-2px; border-radius:50%; }
.password-toggle svg { width:21px; height:21px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; pointer-events:none; }
.password-toggle[aria-pressed="false"] .password-eye-open,.password-toggle[aria-pressed="true"] .password-eye-closed { display:none; }
@media(hover:hover) and (pointer:fine) {
  .password-toggle[aria-pressed="false"]:hover .password-eye-open { display:block; }
  .password-toggle[aria-pressed="false"]:hover .password-eye-closed { display:none; }
}
.password-control > input::-ms-reveal { display:none; }
.password-strength { width:75%; max-height:0; margin-top:0; margin-left:0; margin-right:auto; direction:ltr; overflow:hidden; opacity:0; transition:max-height .2s ease,margin-top .2s ease,opacity .2s ease; --password-color:#94a3a0; --password-progress:0%; }
.password-strength.is-visible { max-height:64px; margin-top:9px; opacity:1; }
.password-strength-caption { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:6px; font-size:12px; line-height:1.6; color:#62766e; }
.password-strength-caption strong { font-weight:700; color:var(--password-text,var(--password-color)); }
.password-strength-track { height:5px; overflow:hidden; border-radius:99px; background:#e9efec; }
.password-strength-fill { display:block; width:var(--password-progress); height:100%; border-radius:inherit; background:var(--password-color); transition:width .3s ease,background-color .3s ease; }
.password-strength[data-level="1"] { --password-color:#dc2626; --password-progress:25%; }
.password-strength[data-level="2"] { --password-color:#ca8a04; --password-text:#854d0e; --password-progress:50%; }
.password-strength[data-level="3"] { --password-color:#059669; --password-text:#047857; --password-progress:75%; }
.password-strength[data-level="4"] { --password-color:#047857; --password-progress:100%; }
.password-format-error { margin:8px 0 0; color:#b91c1c; font-size:12px; line-height:1.7; }
@media(prefers-reduced-motion:reduce) { .password-strength,.password-strength-fill { transition:none; } }
