.field-hint {
    display: flex;
    align-items: center;
    gap: 0.375rem;
    padding: 0 1rem;
    font-size: var(--text-xs);
    line-height: var(--text-xs--line-height);
    font-weight: 500;

    color: var(--color-gray-500);

    transition:
        color var(--anim-duration) ease,
        opacity var(--anim-duration) ease;
}

.field-hint[hidden] {
    display: none;
}

.field-hint::before {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    width: 1rem;
    min-width: 1rem;
    height: 1rem;

    font-size: 0.75rem;
    line-height: 1;
    font-weight: 700;
}

.field-hint.valid {
    color: var(--color-green-600);
}

.field-hint.valid::before {
    content: "✔";
}

.field-hint.invalid {
    color: var(--color-red-600);
}

.field-hint.invalid::before {
    content: "!";
}