.field {
    display: grid;
    gap: 0.35rem;
}

.field__label,
.role-fieldset__legend {
    font-size: 0.82rem;
    text-align: center;
}

.field__input {
    width: 100%;
    min-height: 2.15rem;
    padding: 0.45rem 0.8rem;
    border: 1px solid #cfcfcf;
    border-radius: 0.55rem;
    background: var(--color-white);
    color: var(--color-text);
    font: inherit;
    text-align: left;
}

.field__input::placeholder { color: #a9a9a9; }
.field__input:focus { border-color: var(--color-yellow); outline: 2px solid transparent; }
.field__input[aria-invalid="true"] { border-color: var(--color-dark-red); }

.field__error {
    min-height: 0.85rem;
    color: var(--color-dark-red);
    font-size: 0.68rem;
    line-height: 1.15;
}

.role-fieldset {
    margin: 0;
    padding: 0;
    border: 0;
}

.role-fieldset__legend {
    width: 100%;
    margin-bottom: 0.45rem;
}

.role-options {
    display: flex;
    justify-content: center;
    gap: 2rem;
}

.role-option {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    cursor: pointer;
}

.role-option input { accent-color: var(--color-dark-red); }

.field__help {
    margin: 0;
    color: #555;
    font-size: 0.66rem;
    line-height: 1.2;
    text-align: left;
}

.password-control {
    position: relative;
    width: 100%;
}

.password-control__input {
    padding-right: 2.75rem;
}

.password-control__toggle {
    position: absolute;
    top: 50%;
    right: 0.55rem;
    display: grid;
    width: 1.75rem;
    height: 1.75rem;
    padding: 0;
    transform: translateY(-50%);
    place-items: center;
    border: 0;
    background: transparent;
    color: var(--color-dark-red);
    cursor: pointer;
}

.password-control__icon {
    width: 1.25rem;
    height: 1.25rem;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.password-control__icon--open {
    display: none;
}

.password-control__icon--closed {
    display: block;
}

/* Contraseña visible: ojo abierto */
.password-control__toggle[aria-pressed="true"] .password-control__icon--open {
    display: block;
}

.password-control__toggle[aria-pressed="true"] .password-control__icon--closed {
    display: none;
}

.password-control__toggle:focus-visible {
    outline: 2px solid var(--color-yellow);
    outline-offset: 2px;
}
