.password-field-wrap{display:flex;align-items:stretch;gap:8px}.password-field-wrap input{flex:1;margin-bottom:0}.password-toggle{min-width:72px;margin:5px 0 13px;padding:10px 12px}.password-help,.password-caps,.password-match{display:block;margin:-6px 0 12px;font-size:13px}.password-help{color:#9bb0c4}.password-caps{color:#ffd76d}.password-match.ok{color:#72ed91}.password-match.err{color:#ff9b9b}

/* v6.28.18 password field sizing */
.password-field-wrap{
  display:flex;
  align-items:stretch;
  gap:8px;
  width:100%;
}

.password-field-wrap input[type="password"],
.password-field-wrap input[type="text"]{
  flex:1 1 auto;
  width:100%;
  height:42px !important;
  min-height:42px !important;
  max-height:42px !important;
  padding:10px 14px !important;
  margin:5px 0 13px !important;
  font-size:16px;
  line-height:20px;
  box-sizing:border-box;
}

.password-field-wrap .password-toggle{
  flex:0 0 auto;
  height:42px !important;
  min-height:42px !important;
  max-height:42px !important;
  margin:5px 0 13px !important;
  padding:0 14px !important;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  box-sizing:border-box;
}

input[type="password"]{
  height:42px;
  min-height:42px;
  max-height:42px;
  box-sizing:border-box;
}

@media(max-width:560px){
  .password-field-wrap{
    gap:6px;
  }

  .password-field-wrap .password-toggle{
    min-width:68px;
  }
}


/* v6.28.19 high-contrast password messages */
.password-help,
.password-strength-line {
  color:#e6f1fb !important;
  background:#102235;
  border:1px solid #365b7d;
  border-radius:6px;
  padding:8px 10px;
  margin:2px 0 12px !important;
  font-weight:600;
}

.password-caps {
  color:#111827 !important;
  background:#ffd84d !important;
  border:2px solid #fff1a8;
  border-radius:6px;
  padding:9px 11px;
  margin:2px 0 12px !important;
  font-weight:800;
  box-shadow:0 0 0 1px rgba(0,0,0,.25);
}

.password-caps::before {
  content:"⚠ ";
}

.password-match.ok,
.field-message.success {
  color:#08150d !important;
  background:#7ff0a1 !important;
  border:2px solid #c8ffd7;
  border-radius:6px;
  padding:8px 10px;
  font-weight:800;
}

.password-match.err,
.field-message.error {
  color:#ffffff !important;
  background:#9f1d2d !important;
  border:2px solid #ffb3bd;
  border-radius:6px;
  padding:8px 10px;
  font-weight:800;
}

.password-requirements {
  color:#f5f9fd !important;
  background:#0d1e2d !important;
  border:2px solid #4a7396 !important;
}

.password-requirements strong {
  color:#ffffff !important;
}

.password-requirements li {
  color:#e8f0f7 !important;
}

.password-requirements li.valid {
  color:#08150d !important;
  background:#83eba1;
  border-radius:4px;
  padding:4px 6px;
}

.password-requirements li.invalid {
  color:#ffffff !important;
  background:#7e2430;
  border-radius:4px;
  padding:4px 6px;
}

.password-toggle {
  color:#ffffff !important;
  background:#1769aa !important;
  border:2px solid #75bfff !important;
  font-weight:700;
}

.password-toggle:hover,
.password-toggle:focus {
  background:#2186d4 !important;
  outline:3px solid #b9e0ff;
  outline-offset:2px;
}

input[type="password"]:focus,
.password-field-wrap input:focus {
  border-color:#80c9ff !important;
  box-shadow:0 0 0 3px rgba(53,160,255,.35) !important;
  outline:none;
}

[hidden] {
  display:none !important;
}
