.cap-box {
  display:flex; align-items:center; justify-content:space-between;
  background:#1a1d23; border:1px solid #2b2f36; border-radius:10px;
  padding:14px 16px;
}
.cap-check { display:flex; align-items:center; gap:12px; cursor:pointer; margin:0; }
.cap-check input { position:absolute; opacity:0; width:0; height:0; }

.cap-mark {
  width:24px; height:24px; border:2px solid #4a4f57; border-radius:6px;
  display:inline-block; position:relative; flex-shrink:0; box-sizing:border-box;
  transition:background .15s, border-color .15s;
}

.cap-check input:checked + .cap-mark {
  background:#2fb344; border-color:#2fb344;
}
.cap-check input:checked + .cap-mark::after {
  content:""; position:absolute; left:7px; top:3px;
  width:6px; height:11px; border:solid #fff; border-width:0 2px 2px 0;
  transform:rotate(45deg);
}

.cap-mark.loading {
  border-radius:50%;
  border:2px solid #4a4f57;
  border-top-color:#2fb344;
  background:transparent;
  transition:none;                          
  animation:cap-spin .45s linear infinite;
}
.cap-mark.loading::after { content:none; }

@keyframes cap-spin { to { transform:rotate(360deg); } }

.cap-label { color:#c7ccd4; font-size:15px; }
.cap-brand { color:#6c7280; font-size:12px; }