Input — labelled text field with hint, error and affix-icon support.

```jsx
import { Input } from "./Input.jsx";

<Input label="Full name" placeholder="Ada Okafor" required />
<Input label="Email" type="email" hint="We'll only use this to confirm your order." />
<Input label="Quantity" error="Enter a number between 1 and 12." defaultValue="0" />
<Input label="Search" iconLeft={<SearchIcon />} placeholder="Search the catalogue" />
```

Props: `label`, `hint`, `error` (switches to invalid styling), `required`, `iconLeft`, `iconRight`. Forwards all native `<input>` props. Focus ring is rust; invalid is brick.
