appearance: noneでブラウザ標準の見た目を外し、input要素自体をデザインするチェックボックス。キーボード操作もラベル連動もそのまま生きます。
プレビュー枠は右下をドラッグすると高さを変えられます
書き換えるとプレビューに即反映されます。変更はこのページ内だけで、リロードすると元に戻ります。
昔の定番だった「inputを隠してspanを装飾」ではなく、appearance: none でinput要素自体を直接デザインします。要素を差し替えないので、クリック・スペースキー・label連動・:checked などの標準動作がすべてそのまま使えます。チェックマークは ::before の clip-path で描き、:checked で scale(0)→scale(1) に切り替えて表示します。
色を変えたいだけなら accent-color: #b0413e; の1行で済みます。形まで変えたいときにこのレシピを使ってください。
appearance: noneを使ったカスタムチェックボックスを作ってください。inputを隠すのではなくinput自体を装飾し、チェックマークは::beforeとclip-pathで描画、:checkedで表示、focus-visibleのリングも付けてください。