:root {
  --captcha-bg: #f5f7fa;
  --captcha-border: #c4ced9;
  --captcha-text: #1d2733;
  --captcha-muted: #5a6774;
  --captcha-action: #1366d6;
  --captcha-action-dark: #0f4ca0;
  --captcha-ok: #118341;
  --captcha-error: #b42318;
}

.captcha-box {
  background: var(--captcha-bg);
  border: 1px solid var(--captcha-border);
  border-radius: 12px;
  padding: 14px;
  max-width: 360px;
  font-family: "Trebuchet MS", Verdana, sans-serif;
}

.captcha-title {
  margin: 0 0 8px;
  color: var(--captcha-text);
  font-weight: 700;
}

.captcha-prompt {
  margin: 0 0 10px;
  color: var(--captcha-muted);
  min-height: 20px;
}

.captcha-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  margin-bottom: 10px;
}

.captcha-cell {
  border: 1px solid var(--captcha-border);
  border-radius: 8px;
  padding: 12px 0;
  background: #ffffff;
  cursor: pointer;
  font-size: 1rem;
  color: var(--captcha-text);
}

.captcha-cell.active {
  border-color: var(--captcha-action);
  background: #dce9ff;
  font-weight: 700;
}

.captcha-actions {
  display: flex;
  gap: 8px;
}

.captcha-btn {
  border: none;
  border-radius: 8px;
  padding: 8px 12px;
  cursor: pointer;
  color: #fff;
  background: var(--captcha-action);
  font-weight: 600;
}

.captcha-btn:hover {
  background: var(--captcha-action-dark);
}

.captcha-btn.secondary {
  background: #576574;
}

.captcha-status {
  margin: 10px 0 0;
  min-height: 18px;
  color: var(--captcha-muted);
}

.captcha-status.ok {
  color: var(--captcha-ok);
}

.captcha-status.error {
  color: var(--captcha-error);
}
