.form-field { display: grid; gap: 6px; }
.form-field__label { font-size: 14px; font-weight: 500; }
.form-field__control { position: relative; }
.form-field__input {
    width: 100%;
    height: 44px;
    padding: 0 12px;
    border: 1px solid var(--border-strong);
    border-radius: var(--radius-l);
    background: var(--surface);
    color: var(--text);
    font: 16px var(--font); /* 16px: iOS doesn't zoom into the field on focus */
}
.form-field__input:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
.form-field--invalid .form-field__input { border-color: var(--danger); }
.form-field__control:has(.form-field__toggle:not([hidden])) .form-field__input { padding-right: 68px; }
.form-field__toggle {
    position: absolute;
    top: 4px;
    right: 4px;
    height: 36px;
    padding: 0 12px;
    border: 0;
    border-radius: var(--radius-m);
    background: transparent;
    color: var(--text-muted);
    font: 500 13px var(--font);
    cursor: pointer;
}
.form-field__toggle:hover { background: var(--surface-2); color: var(--text); }
.form-field__error { color: var(--danger); font-size: 13px; }
.form-field__hint { color: var(--text-muted); font-size: 13px; }
