.a2-password-policy-hint {
  display: block;
  font-size: 80%; }

/* position span to show last char */
.a2-password-show-last-char {
  text-align: center;
  width: 20px;
  font-weight: bold; }

.a2-password-show-last-char + input[type=password] {
  padding-left: 1.25rem; }

.a2-password-policy-container {
  display: block;
  margin-top: 0.6em;
  margin-left: 1.8em; }

.a2-password-policy-rule.a2-password-ok {
  color: green; }

.a2-password-policy-rule {
  display: inline-block;
  width: 10em;
  white-space: pre; }

.a2-password-policy-rule::after {
  font-family: FontAwesome;
  display: inline-block;
  width: 2rem;
  text-align: center;
  content: "\f00c";
  /* ok icon */
  color: green;
  visibility: hidden; }

.a2-password-ok.a2-password-policy-rule::after {
  visibility: visible; }

/* Password strength meter & hints */
.a2-password-feedback {
  margin-bottom: 1.8em;
  display: none; }

.a2-password-strength {
  margin: 0.4rem 0;
  display: none; }
  .a2-password-strength--label {
    display: inline;
    font-weight: bold; }
  .a2-password-strength--name {
    display: inline; }
  .a2-password-strength--gauge {
    display: flex;
    height: 0.7rem;
    margin: 0.2rem 0; }
  .a2-password-strength--bar {
    flex-grow: 1; }
    .a2-password-strength--bar:not(:last-child) {
      margin-right: 0.4rem; }
  .a2-password-strength.strength-0 .a2-password-strength--bar {
    background: darkred; }
  .a2-password-strength.strength-1 .a2-password-strength--bar {
    background: orange; }
  .a2-password-strength.strength-2 .a2-password-strength--bar {
    background: yellow; }
  .a2-password-strength.strength-3 .a2-password-strength--bar {
    background: yellowgreen; }
  .a2-password-strength.strength-4 .a2-password-strength--bar {
    background: darkgreen; }
  .a2-password-strength.strength-0 {
    display: block; }
  .a2-password-strength.strength-0 .a2-password-strength--bar:nth-child(n+2) {
    background: transparent; }
  .a2-password-strength.strength-1 {
    display: block; }
  .a2-password-strength.strength-1 .a2-password-strength--bar:nth-child(n+3) {
    background: transparent; }
  .a2-password-strength.strength-2 {
    display: block; }
  .a2-password-strength.strength-2 .a2-password-strength--bar:nth-child(n+4) {
    background: transparent; }
  .a2-password-strength.strength-3 {
    display: block; }
  .a2-password-strength.strength-3 .a2-password-strength--bar:nth-child(n+5) {
    background: transparent; }
  .a2-password-strength.strength-4 {
    display: block; }
  .a2-password-strength.strength-4 .a2-password-strength--bar:nth-child(n+6) {
    background: transparent; }

.a2-password-hint {
  margin: 0.4rem 0;
  display: inline-block; }
  .a2-password-hint:before {
    font-size: 90%; }
  .a2-password-hint.a2-password-hidden {
    display: none; }
  .a2-password-hint--content {
    display: inline; }
    .a2-password-hint--content .a2-password-hint--hint {
      font-weight: bold; }

input[type=password][data-min-strength] ~ .a2-password-feedback {
  display: block; }

input[type=password][data-min-strength] ~ .a2-password-policy-hint {
  display: none; }

/* Equality check */
.a2-password-nok .a2-password-check-equality-default,
.a2-password-ok .a2-password-check-equality-default {
  display: none; }

.a2-password-check-equality-matched,
.a2-password-check-equality-unmatched {
  display: none; }

.a2-password-nok .a2-password-check-equality-unmatched,
.a2-password-ok .a2-password-check-equality-matched {
  display: inline; }
