.cw-captcha{
  --cw-line:#dfd6ca;
  --cw-text:#5a4636;
  --cw-text-strong:#6b441d;
  --cw-green:#dcece4;
  --cw-green-bd:#b5d2c1;
  --cw-green-tx:#165f41;
  --cw-warn:#f7e2de;
  --cw-warn-bd:#dfb8b0;
  --cw-warn-tx:#7b2e1f;
  margin:18px auto;
  padding:18px;
  border:1px solid var(--cw-line);
  border-radius:22px;
  background:linear-gradient(180deg,#faf8f5 0%,#f4efe8 100%);
  box-shadow:0 5px 18px rgba(103,77,48,.08);
  font-family:Georgia,"Times New Roman",serif;
  color:var(--cw-text);
  max-width:490px;
}

.cw-captcha__head{
  margin-bottom:14px;
  text-align:center;
}

.cw-captcha__title{
  display:block;
  margin-bottom:6px;
  color:var(--cw-text-strong);
  font-size:20px;
}

.cw-captcha__desc{
  font-size:15px;
  line-height:1.6;
}

.cw-captcha__board{
  display:grid;
  grid-template-columns:repeat(4, minmax(52px, 1fr));
  gap:6px;
  max-width:280px;
  margin:0 auto;
}

.cw-captcha__sq{
  position:relative;
  aspect-ratio:1 / 1;
  border:1px solid rgba(93,54,24,.18);
  border-radius:14px;
  padding:0;
  cursor:pointer;
  transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}

.cw-captcha__sq.is-light{
  background:#f2dfc7;
}

.cw-captcha__sq.is-dark{
  background:#a66b35;
}

.cw-captcha__sq:hover{
  transform:translateY(-1px);
  box-shadow:0 6px 14px rgba(80,52,24,.14);
}

.cw-captcha__sq.is-selected{
  outline:none;
  border-color:#2f8f67;
  box-shadow:0 0 0 3px rgba(47,143,103,.18);
}

.cw-captcha__piece{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:30px;
  color:#2e1909;
}

.cw-captcha__coord{
  position:absolute;
  right:7px;
  bottom:5px;
  font-size:11px;
  opacity:.72;
  color:#2c1c10;
}

.cw-captcha__status{
  min-height:24px;
  margin-top:12px;
  font-size:14px;
  line-height:1.5;
  text-align:center;
}

.cw-captcha__status.is-ok{
  color:var(--cw-green-tx);
}

.cw-captcha__status{
  min-height:24px;
  margin-top:12px;
  font-size:14px;
  line-height:1.5;
  text-align:center;
}

.cw-captcha__status.is-ok{
  color:var(--cw-green-tx) !important;
  font-weight:700;
}

.cw-captcha__status.is-error{
  color:var(--cw-warn-tx) !important;
  font-weight:700;
}

@media (max-width: 640px){
  .cw-captcha__board{
    max-width:240px;
  }
}