
.profile-password-block{display:grid;grid-column:1 / -1;gap:10px;min-width:0;}
.profile-field--password,.profile-field--password-confirm{min-width:0;}
.password-ru{display:flex;align-items:center;gap:8px;min-height:46px;height:46px;box-sizing:border-box;border-radius:12px;border:1px solid var(--line);background:var(--bg);padding:6px 10px;transition:border-color .15s ease, box-shadow .15s ease;}
.password-ru:focus-within{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 18%, transparent);}
.password-ru.password-invalid{border-color:var(--danger);box-shadow:0 0 0 2px color-mix(in srgb, var(--danger) 16%, transparent);}
.password-ru.password-valid{border-color:color-mix(in srgb, var(--ok) 42%, var(--line));}
.password-ru input{flex:1 1 auto;min-width:0;min-height:100%;border:0;background:transparent;color:var(--ink);padding:0;font:inherit;font-weight:600;outline:none;box-shadow:none;}
.password-ru input::placeholder{color:var(--muted);font-weight:500;}
.password-toggle{flex:0 0 auto;width:32px;height:32px;border-radius:10px;border:1px solid var(--line);background:transparent;color:var(--muted);cursor:pointer;position:relative;}
.password-toggle::before{content:"";position:absolute;inset:0;margin:auto;width:16px;height:10px;border:1.8px solid currentColor;border-radius:10px / 7px;top:8px;bottom:auto;left:7px;}
.password-toggle::after{content:"";position:absolute;width:5px;height:5px;border-radius:50%;background:currentColor;left:13.5px;top:12.5px;}
.password-toggle.is-shown::before{transform:rotate(-12deg);}
.password-toggle.is-shown span{display:none;}
.password-toggle:hover{color:var(--ink);border-color:color-mix(in srgb, var(--accent) 45%, var(--line));}
.password-feedback{display:none;margin-top:6px;color:var(--danger);font-size:12px;line-height:1.4;}
.password-feedback.is-visible{display:block;}
.password-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;}
.password-actions .btn{width:auto;}
.password-rules{margin:0;padding:0;list-style:none;display:grid;gap:8px;}
.password-rules li{position:relative;padding-left:22px;color:var(--muted);font-size:13px;line-height:1.35;}
.password-rules li::before{content:"";position:absolute;left:0;top:3px;width:14px;height:14px;border-radius:50%;border:1px solid var(--line);background:transparent;}
.password-rules li.is-ok{color:var(--ink);}
.password-rules li.is-ok::before{border-color:color-mix(in srgb, var(--ok) 50%, var(--line));background:color-mix(in srgb, var(--ok) 22%, transparent);box-shadow:inset 0 0 0 3px color-mix(in srgb, var(--ok) 75%, transparent);}
.password-rules li.is-bad{color:var(--danger);}
.password-rules li.is-bad::before{border-color:color-mix(in srgb, var(--danger) 50%, var(--line));background:color-mix(in srgb, var(--danger) 18%, transparent);}
@media (min-width:900px){
  .profile-password-block{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;}
  .profile-field--password,.password-actions,.password-rules,.profile-field--password-confirm{grid-column:1 / -1;}
}
