Tarefa marcada

Tarefa marcada: um card em CSS. Copie as regras, ou o prompt que o reconstrói.

tasktodocheckboxhasstatelight

CSS
.card-084 {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 360px;
  padding: 12px 14px;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  font-family: system-ui,sans-serif;
  color: #111827;
  cursor: pointer;
  transition: background .2s,border-color .2s
}
.card-084 input {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0
}
.card-084__check {
  flex: none;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  border: 2px solid #d1d5db;
  display: grid;
  place-items: center;
  transition: background .15s,border-color .15s
}
.card-084__check::after {
  content: "";
  width: 5px;
  height: 9px;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg) scale(0);
  transition: transform .15s
}
.card-084__text {
  flex: 1;
  display: flex;
  flex-direction: column
}
.card-084 b {
  font-size: 14px;
  transition: color .2s
}
.card-084 small {
  font-size: 12px;
  color: #6b7280
}
.card-084 em {
  padding: 2px 7px;
  border-radius: 6px;
  background: #fee2e2;
  color: #b91c1c;
  font-style: normal;
  font-size: 11px;
  font-weight: 700
}
.card-084:hover .card-084__check {
  border-color: #22c55e
}
.card-084:has(:checked) {
  background: #f9fafb;
  border-color: #e5e7eb
}
.card-084:has(:checked) .card-084__check {
  background: #22c55e;
  border-color: #22c55e
}
.card-084:has(:checked) .card-084__check::after {
  transform: rotate(45deg) scale(1)
}
.card-084:has(:checked) b {
  text-decoration: line-through;
  color: #9ca3af
}
.card-084:has(:checked) em {
  opacity: .4
}
.card-084:has(:focus-visible) {
  outline: 2px solid #22c55e;
  outline-offset: 2px
}
HTML
<label class="card-084">
  <input type="checkbox">
  <span class="card-084__check"></span>
  <span class="card-084__text"><b>Write the container-query guide</b><small>Due Friday · Content</small></span>
  <em>P1</em>
</label>
Prompt

Crie um card de tarefa em linha de 360px como um label ao redor de um checkbox oculto: branco, borda de 1px #e5e7eb, raio de 12px. À esquerda um checkbox circular customizado de 20px com anel de 2px #d1d5db (verde no hover), no meio um título de tarefa 14px bold sobre uma linha 12px #6b7280 "Due Friday · Content", à direita um chip de prioridade vermelho "P1" (#fee2e2 / #b91c1c). Quando :has(:checked): fundo #f9fafb, o círculo preenche verde #22c55e com um check branco, o título ganha line-through em #9ca3af, e o chip esmaece para 40% de opacidade.