/* [BHPPA-69] Style przełącznika podglądu hasła (ikona oka) oraz checklisty wymagań hasła.
   Uwaga: płaska struktura selektorów, bez zagnieżdżania (zgodnie z zasadami projektu). */

.password-toggle-wrapper {
    position: relative;
    display: block;
    width: 100%;
}

.password-toggle-wrapper input {
    padding-right: 40px;
}

.password-toggle {
    position: absolute;
    top: 50%;
    right: 8px;
    transform: translateY(-50%);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    padding: 0;
    margin: 0;
    border: 0;
    background: transparent;
    color: #6b6b6b;
    cursor: pointer;
    line-height: 0;
}

.password-toggle:hover {
    color: #222;
}

.password-toggle:focus-visible {
    outline: 2px solid #005fcc;
    outline-offset: 2px;
    border-radius: 4px;
}

.password-toggle .password-toggle__eye-off {
    display: none;
}

.password-toggle.is-visible .password-toggle__eye {
    display: none;
}

.password-toggle.is-visible .password-toggle__eye-off {
    display: inline-block;
}

/* Checklist wymagań hasła */
.password-checklist {
    list-style: none;
    margin: 6px 0 0;
    padding: 0;
    font-size: 12px;
    line-height: 1.5;
}

.password-checklist__item {
    display: flex;
    align-items: center;
    color: #8a8a8a;
}

.password-checklist__item .password-checklist__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 16px;
    height: 16px;
    margin-right: 6px;
    font-weight: 700;
}

.password-checklist__item .password-checklist__icon::before {
    content: '\2022'; /* kropka - stan neutralny */
}

.password-checklist__item[data-ok="0"] {
    color: #c0392b;
}

.password-checklist__item[data-ok="0"] .password-checklist__icon::before {
    content: '\2715'; /* x */
}

.password-checklist__item[data-ok="1"] {
    color: #1e7e34;
}

.password-checklist__item[data-ok="1"] .password-checklist__icon::before {
    content: '\2713'; /* haczyk */
}

/* [BHPPA-69] Wyrównanie etykiety pola hasła do pola input.
   Checklist doklejany jest do .control i rozciąga jej wysokość, a że wiersz ma
   align-items:center, etykieta „Hasło:" lądowała w połowie całego bloku (nad/pod polem).
   align-self przywraca wyrównanie etykiety do góry — na wysokość pola, jak w pozostałych
   wierszach; padding-top zrównuje tekst etykiety z tekstem w polu. */
.form-container .form .row:has(.password-checklist) .label {
    align-self: flex-start;
    padding-top: 0.5em;
}
