CSS FORM STATE
:has()で入力状態を 親カードに反映する
状態を持っているのはinput。見た目を変えたいのは外側のカード。 未入力、OK、エラーをCSSだけで切り替えます。
Input State Cards
入力状態に合わせて、親カード全体の見た目が変わります
:placeholder-shown / :valid / :invalid
空欄も invalid になるので、未入力とエラーを分けたいときは :placeholder-shown を合わせると扱いやすいです。