/* Keep the original Show/Hide text control inside the field at every viewport size.
   Optional theme variables retain the 4.4 branding customizations. */
.treadmaster-password {
    display: block;
    position: relative;
    width: 100%;
    min-width: 0;
}

body .treadmaster-password > input.form-control {
    width: 100%;
    /* Reserve space even when the active theme sets shorthand input padding. */
    padding-inline-end: 5rem !important;
}

.treadmaster-password > button.toggle-password {
    z-index: 5;
    position: absolute;
    inset-inline-end: 0.5rem;
    top: 50%;
    transform: translateY(-50%);
    appearance: none;
    border: none;
    background: none;
    cursor: pointer;
    padding: 0.25rem;
    font-family: var(--tm-password-toggle-font-family, inherit);
    color: var(--tm-password-toggle-color, inherit);
    font-size: var(--tm-password-toggle-font-size, 0.875rem);
    font-weight: var(--tm-password-toggle-font-weight, 600);
    letter-spacing: var(--tm-password-toggle-letter-spacing, normal);
    text-transform: var(--tm-password-toggle-text-transform, uppercase);
}

/* Theme validation rules may load later and add an icon behind Show/Hide.
   Keep the invalid border and error message, but suppress that decorative icon
   for both Moodle errors and Bootstrap's native validation state. */
.treadmaster-password > input.is-invalid,
.was-validated .treadmaster-password > input:invalid {
    background-image: none !important;
}
